Construir uma aplicação web com algumas funções essenciais relacionadas ao gerenciamento de contas bancárias.
- Possibilitar abertura de uma conta;
- Os dados necessárioos são: Nome completo e CPF;
- Só é permitido uma conta por pessoa;
- Com essa conta deve ser possível realizar transações;
- Transferências para outras contas;
- Depósito em conta existente;
- As contas não podem ter valor negativo;
- Por questão de segurança, cada transação de depósito não pode ser maior do que R$5.000;
- Aplicação funcional, ou seja, cumprindo os requisitos;
- Utilização de boas práticas (princípios SOLID, code-smells, etc)
- Estrutura e organização (componentização, uso de camadas, etc)
- Legibilidade do código (nomenclatura de classes, métodos e variáveis, lint, etc)
- Implementação de testes que garantam que o código está atendendo os requisitos
- Documentação (histórico de commits no git, readme, diagramas, etc)
- Node@>=16
- Npm@>6
- Docker
- Docker Compose
- Rode o comando
npm install
- Rode o comando
docker compose up
para rodar a API e o banco de dados pelo docker.
O hot reload está habilitado, ou seja, ao salvar um arquivo o projeto sera atualizado automaticamente sem precisar rodar o docker novamente
Controller: Responsável por validar a requisição, repassar para o serviço de domínio correto e entregar a resposta ao cliente.
Service: Responsável por aplicar as regras de negócio.
Repository: Responsável pela persistência de dados
Acesse http://localhost:3000/docs
Rode o comando npm run test:coverage