Este é um projeto incrível chamado Template Pattern que usa Docker para facilitar a execução da aplicação e dos testes. Basicamente ele segue uma estrutura de repository pattern para alocar seus módulos.
Resumidamente, a aplicação possui:
- clientes
- lojas
- produtos
- histórico de compra
Os clientes eles possuem nome e valor na conta, isto é adicionado quando é criado o cliente
As lojas possuem nome e estado de abertura (Se elas estão abertas ou não)
Os produtos precisam estar vinculado a uma loja, e possuem nome, quantidade atual, valor unitário
O histórico de compra precisa de um cliente, de uma loja, e de um produto e a quantidade comprada do produto
A finalidade do projeto não é "Criar um projeto de manipulação de itens e etc", isto foi apenas um contexto, o projeto é para demonstrar como seria a utilização de uma organização baseada em um design de repositórios, onde neste contexto os produtos conversam com a loja, a compra do cliente conversa com a loja, com o produto e com o cliente, desta forma demonstrando como seriam esses relacionamentos.
A cobertura de testes unitários deste projeto se encontram em 91%, fiquem a vontade para melhorar os testes e lançar correções.
Certifique-se de ter o Docker e o Docker Compose instalados na sua máquina.
- Clone este repositório para o seu ambiente local:
git clone https://github.com/DanielXavierJob/RepositoryPatternProject
cd RepositoryPatternProject- Construa os contêineres Docker usando o Docker Compose:
docker compose buildPara executar os testes, você pode usar o comando a seguir:
docker compose run --rm testIsso iniciará o contêiner de teste, executará os testes e exibirá os resultados no terminal.
Para executar a aplicação, você pode usar o comando a seguir:
docker compose up appCaso queira deixar em segundo plano só adicioanr a flag -d ao final do bash
Isso iniciará o contêiner da aplicação.
A documentação swagger da aplicação se encontra na rota: http://localhost:5000
Para parar os contêineres Docker em execução, você pode usar o seguinte comando:
docker compose downIsso encerrará os contêineres e limpará os recursos utilizados.
Se você quiser contribuir para este projeto, sinta-se à vontade para fazer um fork e enviar pull requests. Agradecemos antecipadamente por suas contribuições!