Microsserviço de backend construído com NestJS e Prisma ORM, com foco no gerenciamento de notificações. O sistema permite o envio, cancelamento, listagem e contagem de notificações por destinatário, utilizando princípios de Clean Architecture e Domain-Driven Design (DDD) para garantir escalabilidade e facilidade de manutenção.
Este projeto tem como finalidade fornecer uma API simples, robusta e testável para o controle de notificações em sistemas distribuídos. É ideal para ser integrado a arquiteturas baseadas em microsserviços, plataformas de mensageria ou sistemas de backend que requerem controle centralizado de alertas.
- 📤 Envio de notificações com título e corpo personalizados.
- 📬 Listagem de notificações filtradas por destinatário.
- 🔢 Contagem de notificações por destinatário.
- ❌ Cancelamento de notificações previamente enviadas.
- ✅ Testes unitários cobrindo entidades e casos de uso.
| Camada | Ferramenta/Lib |
|---|---|
| Framework Backend | NestJS |
| Linguagem | TypeScript |
| ORM/Database | Prisma ORM + SQLite |
| Testes | Jest |
| Lint e Formatação | ESLint + Prettier |
| Gerenciamento de Pacotes | npm |
src/
├── application/
│ ├── entities/ # Entidades de domínio (Notification, Content)
│ ├── use-cases/ # Casos de uso (send, cancel, count, get)
│ └── repositories/ # Contratos de repositório
├── infra/
│ └── prisma/ # Implementação com Prisma ORM
├── main.ts # Ponto de entrada da aplicação
├── app.module.ts # Módulo raiz do NestJSO projeto possui cobertura de testes unitários para as entidades e casos de uso. Para executá-los, utilize:
npm run testgit clone https://github.com/seu-usuario/notification-service.git
cd notification-servicenpm installO projeto utiliza SQLite para fins de desenvolvimento e testes.
npx prisma generate
npx prisma migrate dev --name initnpm run start:devA API estará disponível em `http://localhost:3000\`.
- Node.js >= 18.x
- npm >= 9.x