Este projeto é uma API simples de autenticação construída com Node.js + Express, criada com o objetivo de demonstrar conceitos fundamentais usados em aplicações reais, como:
- Clean Architecture
- Princípios de separação de responsabilidades
- Uso de casos de uso (Use Cases)
- Camadas independentes (Domain, Use Cases, Infra)
- Testes com Jest + Supertest
Apesar de usar Express, o foco não é o framework, e sim a claridade da arquitetura, mostrando como organizar bem um projeto mesmo em algo pequeno.
Um banco de dados em memória (InMemoryUserDatabase) é usado apenas para facilitar testes e deixar o código mais claro.
Os testes utilizam:
- Jest para o runner
- Supertest para simular requisições HTTP
Os testes cobrem:
- Criar usuário
- Buscar usuário
- Validar erros
- Atualizar usuário
O Express foi escolhido propositalmente por ser simples, permitindo focar no que realmente importa:
- Arquitetura
- Domain-driven
- Casos de uso
- Boas práticas
O objetivo do projeto é mostrar conhecimento, não criar uma API complexa.
Instale as dependências:
npm installExecute os testes:
npm testRode a API:
npm run dev