Skip to content

malockey/notification-service

Repository files navigation

📬 Notification Service

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.


📌 Objetivo

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.


⚙️ Funcionalidades

  • 📤 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.

🛠 Tecnologias Utilizadas

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

📁 Estrutura do Projeto

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 NestJS

🧪 Testes

O projeto possui cobertura de testes unitários para as entidades e casos de uso. Para executá-los, utilize:

npm run test

🚀 Executando Localmente

1. Clone o repositório

git clone https://github.com/seu-usuario/notification-service.git
cd notification-service

2. Instale as dependências

npm install

3. Configure o banco de dados

O projeto utiliza SQLite para fins de desenvolvimento e testes.

npx prisma generate
npx prisma migrate dev --name init

4. Inicie o servidor

npm run start:dev

A API estará disponível em `http://localhost:3000\`.


📌 Requisitos

  • Node.js >= 18.x
  • npm >= 9.x

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors