Skip to content

Este é um projeto desenvolvido para gerenciar notificações utilizando o framework NestJS integrado ao Prisma como ORM. O objetivo é implementar um serviço backend robusto, utilizando princípios do SOLID, casos de uso bem definidos e testes automatizados.

Notifications You must be signed in to change notification settings

stecks10/notifications-service

Repository files navigation

Aqui está a versão atualizada do seu README.md com a adição do Swagger:


Notifications Service

Descrição

Este é um projeto desenvolvido para gerenciar notificações utilizando o framework NestJS integrado ao Prisma como ORM. O objetivo é implementar um serviço backend robusto, utilizando princípios do SOLID, casos de uso bem definidos e testes automatizados.

Funcionalidades

  • Criação de notificações
  • Leitura de notificações
  • Cancelamento de notificações
  • Marcar notificações como não lidas
  • Contagem de notificações por destinatário
  • Consulta de notificações por destinatário

Tecnologias Utilizadas

  • NestJS: Framework para aplicações Node.js
  • Prisma: ORM para interação com o banco de dados
  • TypeScript: Linguagem principal do projeto
  • Jest: Testes automatizados
  • Swagger: Documentação interativa da API

Instalação

  1. Clone o repositório:
    git clone no repositório
    cd notifications-service
  2. Instale as dependências:
    npm install
  3. Configure o banco de dados Prisma:
    • Certifique-se de que o arquivo .env está configurado corretamente.
    • Rode o comando:
      npx prisma migrate dev

Scripts Disponíveis

  • Iniciar o projeto:
    npm start
  • Iniciar o projeto em modo de desenvolvimento:
    npm run start:dev
  • Executar testes:
    npm test
  • Construir o projeto:
    npm run build

Estrutura do Projeto

  • src/app: Contém as entidades, casos de uso e regras de negócio.
  • src/infra: Infraestrutura do projeto, incluindo o Prisma e repositórios.
  • src/http: Rotas, controllers e validações HTTP.
  • test: Testes automatizados para os casos de uso e demais componentes.

Documentação da API com Swagger

A documentação interativa da API está disponível em:

http://localhost:3000/api/docs

Como usar o Swagger:

  1. Acesse http://localhost:3000/api/docs no navegador.
  2. Expanda os endpoints para visualizar os detalhes.
  3. Use a opção Try it out para testar os endpoints diretamente na interface.

Rotas Disponíveis

POST /notifications

Cria uma nova notificação.

  • Corpo da requisição:
    {
      "recipientId": "string",
      "content": "string",
      "category": "string"
    }
  • Exemplo de resposta:
    {
      "id": "string",
      "recipientId": "string",
      "content": "string",
      "category": "string",
      "createdAt": "string"
    }

PATCH /notifications/:id/cancel

Cancela uma notificação.

PATCH /notifications/:id/read

Marca uma notificação como lida.

PATCH /notifications/:id/unread

Marca uma notificação como não lida.

GET /notifications/count/from/:recipientId

Obtém a contagem de notificações de um destinatário.

GET /notifications/from/:recipientId

Obtém as notificações de um destinatário.

Contribuição

  1. Crie uma branch para suas alterações:
    git checkout -b minha-feature
  2. Faça commit das suas alterações:
    git commit -m "Minha nova funcionalidade"
  3. Envie as alterações:
    git push origin minha-feature
  4. Abra um Pull Request no GitHub.

Licença

Este projeto está sob a licença UNLICENSED.

About

Este é um projeto desenvolvido para gerenciar notificações utilizando o framework NestJS integrado ao Prisma como ORM. O objetivo é implementar um serviço backend robusto, utilizando princípios do SOLID, casos de uso bem definidos e testes automatizados.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published