Skip to content

Microsserviço de notificações desenvolvido com NestJS e Prisma

Notifications You must be signed in to change notification settings

marcusviniciusfa/notifications-service

Repository files navigation

Notifications Service

Desenvolvido durante o Ignite Lab NodeJS

Iniciando

  • git clone https://github.com/marcusviniciusfa/notifications-service.git faça o download do repositório notifications-service
  • cd notifications-service entre no diretório do projeto
  • npm install instale as dependências do projeto
  • mv sample.env .env renomeie o arquivo .env de amostra e popule as variáveis com os dados do Kafka

Executando os testes

  • npm run test

Fazendo requisições

  • npm run start:dev inicie a aplicação em modo de desenvolvimento
  • Clique no botão abaixo para importar a collection de requests para o Insomnia, ou salve e importe o arquivo notifications-service_requests-collection.har para o seu REST Client de preferência.

Run in Insomnia}

Consumindo notificações do Kafka

  • git clone https://github.com/marcusviniciusfa/kafka-producer-to-notifications-service.git faça o download do repositório kafka-producer-to-notifications-service e siga o passo a passo no README para produzir mensagens com notificações que serão consumidas pelo serviço de notificações
  • npx prisma studio utilize o prisma studio para conseguir visualizar as notificações inseridas na tabela Notifications

Tecnologias utilizadas

  • NestJS
  • Prisma
  • Jest
  • Kafka

Conceitos, padrões e princípios estudados

  • Dependency Inversion Principle (D do SOLID. Utilizado nos use cases, e nos controllers)
  • Dependency Injection (Ex.: Decorator @Injectable na estrutura do NestJS)
  • Single Responsibility Principle (S do SOLID. Utilizado principalmente nos use cases)
  • Domain Driven Design (DDD)
    • Entities (Ex.: Entidade Notification)
    • Value Objects (Ex.: Entidade Content, utilizada para validação e teste unitário do conteúdo da notificação)
  • Repository Pattern
  • In-Memory-Database
  • Mappers

Comandos úteis

  • nest new project-name cria a estrutura padrão de um projeto nest
  • npx prisma init --datasource-provider sqlite inicializa o prisma apontando o provider de banco de dados sqlite
  • npx prisma migrate dev cria migration em modo desenvolvimento
  • npx prisma studio inicia o prisma studio para visualizar o banco de dados

About

Microsserviço de notificações desenvolvido com NestJS e Prisma

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published