Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 2.91 KB

README.md

File metadata and controls

70 lines (56 loc) · 2.91 KB

Notifications Service

Notifications Service é um serviço de mensageira que permite criar notificações, marcar como lida e nao lida, listar e contabilizar mensagens de um usuário. Desenvolvido com o framework NestJS com a clean architecture.

Flow

📒 Índice

📃 Descrição

Notifications Service é um serviço de mensageira que permite criar notificações, marcar como lida e nao lida, listar e contabilizar mensagens de um usuário. Desenvolvido com o framework NestJS com a clean architecture, com a adição de libs como Prisma ORM para auxilio na manipulação dos dados para um banco de dados e Jest para a cobertura de testes.

📌 Requisitos Funcionais

  • Cadastrar notificação
  • Marcar notificação como lida
  • Marcar notificação como não lida
  • Listar todas as notificações de um usuário
  • Contar todas as notificações de um usuário

💻 Tecnologias

  • TypeScript
  • NestJS
  • Class Validation
  • Prisma ORM
  • Jest

📍 Endpoints

Método Endpoint Resumo
POST /notification Responsável por cadastrar notificação
PATCH /notification/:id/read Responsável por marcar notificação como lida, informando o ID
PATCH /notification/:id/unread Responsável por marcar notificação como não lida, informando o ID
GET /notification/count/from/:recipientId Responsável por listar todas as notificações pelo ID do usuário
GET /notification/from/:recipientId Responsável por contar todas as notificações pelo ID do usuário

🚀 Instalação

  # Clone este repositório:
  $ git clone https://github.com/CleilsonAndrade/notifications-service.git
  $ cd ./notifications-service

  # Instalar as dependências:
  $ yarn install

  # Gerar o código TypeScript com base nos modelos do Prisma:
  $ npx prisma generate

  # Aplicar migrações ao banco de dados:
  $ npx prisma migrate dev

  # Executar:
  $ yarn start:dev
  
  # Executar testes:
  $ yarn test:watch

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💜 by CleilsonAndrade