Bem-vindo ao repositório principal do Desafio Técnico para a vaga de Desenvolvedor. Este projeto é uma solução Full-Stack completa para gestão de pedidos de delivery, contendo simulador de compras, painel de parceiros, máquina de estados e testes de performance.
O ecossistema é dividido em duas aplicações principais, cada uma com sua própria documentação detalhada:
- ☕ Documentação do Backend (Java/Spring Boot) ➔
- ⚛️ Documentação do Frontend (React/Vite) ➔
- 📋 Diário de Bordo e Backlog ➔
- 🗺️ Roadmap e Quadro Kanban (GitHub Projects) ➔
A maneira mais fácil e recomendada de rodar a aplicação é utilizando o Docker. Toda a infraestrutura (Banco de Dados PostgreSQL, API Java e Frontend React) foi conteinerizada para rodar com um único comando.
- Linux / macOS: Ter o
dockere odocker-composeinstalados. - Windows: Ter o Docker Desktop instalado e rodando em segundo plano.
-
Clone este repositório para a sua máquina.
-
Renomeie o arquivo
.env.example(localizado na raiz do projeto) para.env. Você pode manter as credenciais e variáveis padrão que já estão preenchidas nele. -
Abra o terminal na raiz do projeto (onde está o arquivo
docker-compose.yml). -
Execute o comando de build e inicialização:
No Linux/macOS ou Windows (PowerShell/CMD):
docker compose up --build
⏳ Aviso Importante: A primeira execução pode levar alguns minutos. O Docker irá baixar as imagens base (Node, Eclipse Temurin Java, PostgreSQL), baixar todas as dependências do Gradle/NPM e compilar as aplicações. Nas próximas vezes, a inicialização será quase instantânea.
Com os containers rodando, você pode acessar os serviços nos seguintes endereços:
- Frontend (Interface Web): http://localhost:5173
- Backend (Swagger / Documentação da API): http://localhost:8080/swagger-ui.html
- Banco de Dados (PostgreSQL):
localhost:5432
Este projeto inclui uma suíte robusta de testes de estresse para provar a resiliência da API sob cenários de alta concorrência.
Para rodar a injeção massiva de milhares de pedidos, mantenha os containers rodando, abra um novo terminal e navegue até a pasta /Backend:
- Linux / macOS:
./gradlew gatlingRun
- Windows:
gradlew.bat gatlingRun
💡 Para ver os resultados de latência e P99, consulte o README do Backend.
Feito com ☕ por Matheus Cunha.