Este é uma projeto é um projeto para uma sistema para uma lanchonete usando as melhores práticas de arquitetura de software.
Tabela de conteúdos
Para executar o projeto localmente siga as próximas etapas.
- Docker com compose Veja a documentação para instalar o docker no seu sistema se ainda não tiver instalado.
- NodeJS no mínimo na versão 16. Recomendado a versão 18 (LTS) disponível no site oficial.
A instalação é bem simples, siga as seguintes etapas:
- Clone o repositório
git clone https://github.com/jonilsonds9/lanchonete.git
- Entre na pasta do projeto
cd lanchonete
- Crie um arquivo novo arquivo com as váriaveis de ambiente
.env
usando o.env.example
cp .env.example .env
- Agora execute o projeto usando o docker compose
docker compose --profile=all up
Este sistema conta com uma aplicação externa que realiza os pagamentos, de forma mockada, visando apenas dar suporte ao fluxo da aplicação principal.
Nessa página você terá o link para a documentação (Swagger) e poderar utilizar toda a aplicação!
http://localhost:3000/health
A resposta deve seguir o seguinte formato:
{
"status": "ok",
"info": {
"database": {
"status": "up"
},
"gateway-pagamento": {
"status": "up"
}
},
"error": {
},
"details": {
"database": {
"status": "up"
},
"gateway-pagamento": {
"status": "up"
}
}
}
Para o projeto utilizamos o banco de dados PostgreSQL que suporta uma variedade de tipos de dados diferentes, possui uma licença de código aberto, ou seja, podendo ser utilizado por diversas aplicações de forma gratuita. Utiliza a linguagem SQL, tornando mais fácil a migração para outros bancos de dados relacionais, caso surja a necessidade. Também da suporte a transações ACID e pode lidar com grandes volumes de dados.
O PostgreSQL se tornou muito popular pela sua fácil utilização, sendo assim uma ótima opção para se trabalhar em equipes e aplicações de pequeno porte, facilitando o entendimento e manutenção do projeto entre integrantes da equipe. Por conseguir lidar com grandes quantidades de dados, o PostgreSQL ė uma ótima opção ao se trabalhar com análise de dados, e também possui a capacidade de expandir de acordo com o crescimento da aplicação, já que inicialmente ela será de pequeno porte.
Por fim, conseguimos gerenciar e monitorar o nosso banco de dados utilizando recursos disponibilizados no próprio PostgreSQL, garantindo o desempenho e segurança dos nossos dados.
Nossa modelagem de banco de dados é a seguinte:
Os arquivos .yml com todas as instruções de cluster estão no diretório:
|- kubernetes
- Começando o projeto
- Dockerização
- Documentação