Olá, desenvolvedores! Me chamo Aparício Junior e estou participando do processo seletivo "Programa de aceleração Tech". Bem-vindos ao repositório do desafio de contratação da Kanastra para a posição de Software Engineer. Este README contém todas as informações e instruções necessárias.
- Frontend ReactJS: Ao acessar a aplicação, você será calorosamente recebido pela tela "Hello Kanastra".
- Backend Python com FAST API: Conta com um endpoint
/charges
que aceita requisições POST para processar cobranças. - Modelagem de Banco de Dados MySQL: Conta com scripts feitos com MySQL para modelar e salvar as requisições provindas da API.
- Testes Unitários: Implementei testes unitários utilizando pytest, unittest e coverage para garantir a qualidade e a confiabilidade do código.
Para garantir que a aplicação funcione perfeitamente no seu ambiente, utilizamos o Docker.
Todos os serviços (backend, frontend e banco de dados) são orquestrados via docker-compose
.
- Docker instalado e rodando na sua máquina.
- Docker Compose instalado.
- Limpeza do Docker: Vamos garantir que seu Docker esteja limpo de imagens para evitar qualquer conflito. Exclua e pare todos os containeres conflitantes.
Execute o comando:
docker system prune -a
- Atenção: Este comando removerá todas as imagens não utilizadas.
-
Construção e Execução: Com o Docker pronto, é hora de construir e executar nossa aplicação:
docker-compose build docker-compose up
-
Desmontando e parando containeres (a critério de conhecimento, não pare-os agora)
docker-compose down
- Frontend: Após os serviços estarem em execução, acesse
http://localhost:8000
e você será redirecionado para a aplicação React. - Swagger FASTAPI: Para testar a API de forma ágil e fácil, utilize o Swagger UI disponível em
http://localhost:8000/docs
.
Para enviar uma requisição de teste para o endpoint /charges
, siga o exemplo de payload abaixo:
{
"name": "Michelle Mitri",
"governmentId": "10067798101",
"email": "example@kanastra.com.br",
"debtAmount": 990.00,
"debtDueDate": "26/01/2025"
}
Para verificar os dados inclusos no banco de dados MySQL, que está rodando em um container Docker, siga os passos abaixo:
-
Acesso via Docker: Execute o comando para acessar o container do banco de dados:
docker exec -it kanatra-database mysql -u root -p
Quando solicitado, insira a senha
RootPassword
. -
Verificação dos Dados: Uma vez dentro do MySQL, você pode verificar os dados com os seguintes comandos SQL:
USE Kanastra; SELECT * FROM charges;
Para assegurar a qualidade e o correto funcionamento das funcionalidades do sistema, é essencial realizar testes unitários. Siga os comandos abaixo para executar os testes no ambiente Docker:
-
Listagem de Containers: Verifique os containers em execução para identificar o ID do container
kanastra-backend
:docker ps
-
Acesso ao Container: Utilize o ID obtido para acessar o bash do container
kanastra-backend
:docker exec -it <ID do kanastra-backend> bash
-
Execução dos Testes: Dentro do container, execute os testes com o
pytest
:coverage run -m pytest -vv
-
Relatório de Cobertura: Após a execução dos testes, gere o relatório de cobertura:
coverage report -m
-
Relatório HTML: Para uma visualização mais detalhada e formatada, gere o relatório em HTML:
coverage html
Para qualquer dúvida, feedback ou se você simplesmente quer bater um papo, não hesite em entrar em contato comigo! Aqui estão as informações para que você possa me encontrar:
- Email: apariciojunior11@gmail.com
- LinkedIn: Aparício Junior
- Curso: Sistemas para Internet
- Período: 5º Semestre
Estou sempre aberto a novas conexões e oportunidades de aprendizado. Vamos conversar! 💼🎓🚀