Este projeto consiste em uma arquitetura baseada em microsserviços utilizando Node.js, Docker, CI/CD e observabilidade com Prometheus e Grafana.
O sistema foi desenvolvido para gerenciamento de salas e reservas, utilizando uma estrutura desacoplada e escalável.
Responsável pela autenticação, roteamento e observabilidade.
- Autenticação JWT
- Middleware de autorização
- Proxy para microsserviços
- Swagger
- Métricas Prometheus
- Integração com Grafana
Responsável pelo gerenciamento das salas.
- Cadastro de salas
- Edição de salas
- Exclusão de salas
- Ativação/Inativação
- Listagem de salas
Responsável pelo gerenciamento das reservas.
- Criar reservas
- Editar reservas
- Cancelar reservas
- Validação de conflitos de horário
- Controle de disponibilidade
- Node.js
- Express
- PostgreSQL
- Sequelize
- Docker
- Docker Compose
- GitHub Actions
- SonarCloud
- Prometheus
- Grafana
- Swagger
Projeto organizado utilizando Git Flow:
| Branch | Objetivo |
|---|---|
| feature/* | Desenvolvimento de funcionalidades |
| develop | Ambiente DEV |
| staging | Validação intermediária |
| release | Preparação para homologação |
| main | Ambiente HOMOL |
Pipeline automatizado utilizando GitHub Actions:
- Build automático
- Execução de testes
- Cobertura de testes
- SonarCloud
- Build Docker
- Publicação de imagens
| Branch | Ambiente |
|---|---|
| develop | DEV |
| main | HOMOL |
Todos os microsserviços foram containerizados.
Cada serviço possui:
- Dockerfile próprio
- Build independente
- Execução isolada
O ambiente completo é iniciado via Docker Compose.
git clone https://github.com/lk4trina/trabalho-microsservico.gitdocker-compose up --build| Serviço | Porta |
|---|---|
| API Gateway | 3000 |
| Rooms Service | 3002 |
| Bookings Service | 3001 |
| Back For Front | 3003 |
| PostgreSQL | 5432 |
| Prometheus | 9090 |
| Grafana | 3004 |
- JWT Authentication
- GitHub Secrets
- Dependabot habilitado
- Swagger restrito por ambiente
Projeto possui:
- Testes unitários
- Testes de integração
- Testes E2E com Selenium
Cobertura gerada automaticamente no pipeline CI.
backend/
├── api-gateway
├── rooms-service
├── bookings-service
└── back-for-front