Este projeto implementa uma API de checkout utilizando a arquitetura Clean Architecture 🏛️, visando a criação de um sistema robusto, testável e de fácil manutenção. O design foca em separar claramente as responsabilidades através de diferentes camadas, garantindo a independência dos componentes e a possibilidade de evoluir cada parte do sistema de forma independente.
A aplicação é dividida nas seguintes camadas:
- Entities: O núcleo do nosso domínio, contém as entidades essenciais como
Customer
,Product
, eSale
. - Use Cases: Orquestram o fluxo de negócios e dependem de interfaces para interagir com outras camadas.
- Interface Adapters: Incluem adaptadores e mapeadores para converter dados entre as camadas de caso de uso e entidades, e entre entidades e os detalhes externos.
- Frameworks & Drivers: Contém a implementação de frameworks e drivers como bancos de dados, UI, frameworks web, etc.
Para rodar o projeto localmente, siga os passos abaixo:
- Clone o repositório.
- Instale as dependências com
yarn install
ounpm install
. - Configure as variáveis de ambiente conforme o exemplo no arquivo
.env.template
. - Execute o comando
docker-compose up
para iniciar os contêineres necessários. - Acesse
http://localhost:3333
para ver a API em funcionamento.
Desenvolvido com ❤️ por @jeanvcastro