https://github.com/rickreisdev/notification-queue
Um sistema simples para envio e acompanhamento de mensagens assíncronas.
https://github.com/rickreisdev/notification-queue
Last synced: 9 months ago
JSON representation
Um sistema simples para envio e acompanhamento de mensagens assíncronas.
- Host: GitHub
- URL: https://github.com/rickreisdev/notification-queue
- Owner: rickreisdev
- Created: 2025-08-07T17:23:57.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-10-02T20:58:27.000Z (9 months ago)
- Last Synced: 2025-10-02T22:29:00.258Z (9 months ago)
- Language: TypeScript
- Homepage:
- Size: 1.52 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Notification Queue
## Descrição
O Notification Queue é um sistema completo para envio e acompanhamento de mensagens assíncronas. O backend processa as mensagens utilizando RabbitMQ, garantindo que o processamento seja desacoplado e escalável. O frontend exibe o status das mensagens em tempo real, permitindo ao usuário acompanhar o fluxo de notificações.
### Funcionalidades
- Envio de mensagens pelo frontend
- Processamento assíncrono das mensagens no backend via RabbitMQ
- Atualização do status das mensagens no frontend conforme são processadas
## Tecnologias Utilizadas
### Backend (`notificador-backend`)
- **NestJS**: Framework Node.js para aplicações escaláveis e eficientes
- **TypeScript**: Tipagem estática para maior robustez
- **RabbitMQ**: Mensageria para processamento assíncrono
- **amqplib**: Cliente RabbitMQ para Node.js
- **Jest**: Testes automatizados
- **ESLint & Prettier**: Padronização e qualidade de código
### Frontend (`notificador-frontend`)
- **Angular**: Framework para aplicações web reativas
- **TypeScript**: Tipagem estática
- **RxJS**: Programação reativa
- **uuid**: Geração de identificadores únicos
- **Karma & Jasmine**: Testes automatizados
## Como rodar o projeto
### Pré-requisitos
- Node.js (recomendado versão 18+)
- RabbitMQ rodando localmente ou em ambiente acessível
## Observações
- Certifique-se de que o RabbitMQ está configurado corretamente e acessível pelo backend.
- Certifique-se de criar/colar o arquivo .env no diretório do backend contendo a url de conexão com o RabbitMQ.
- O frontend se comunica com o backend para enviar mensagens e receber atualizações de status.
### Backend
1. Instale as dependências:
```bash
cd notificador-backend
npm install
```
2. Inicie o servidor em modo desenvolvimento:
```bash
npm run start:dev
```
Ou em modo produção:
```bash
npm run start:prod
```
3. Execute os testes:
```bash
npm run test
```
### Frontend
1. Instale as dependências:
```bash
cd notificador-frontend
npm install
```
2. Inicie o servidor de desenvolvimento:
```bash
ng serve
```
Acesse `http://localhost:4200` no navegador para visualizar a aplicação.
3. Execute os testes unitários:
```bash
ng test
```
## Estrutura do Projeto
```
notification-queue/
├── notificador-backend/ # Backend NestJS
└── notificador-frontend/ # Frontend Angular
```
## Recursos Adicionais
- [NestJS Documentation](https://docs.nestjs.com)
- [Angular CLI Reference](https://angular.dev/tools/cli)
- [RabbitMQ Documentation](https://www.rabbitmq.com/documentation.html)