Sistema completo para gestão de pedidos e fluxo de alimentação, desenvolvido com foco em performance e escalabilidade.
- Java 25 (Utilizando as últimas funcionalidades da linguagem)
- Spring Boot 3.3.4
- Spring Security com autenticação JWT
- Flyway para migrações de banco de dados
- PostgreSQL
- Maven para gerenciamento de dependências
- React 18 com TypeScript
- Vite para build e desenvolvimento
- Tailwind CSS para estilização
- Axios para consumo de API
- Docker & Docker Compose para orquestração de containers
- Nginx para servir o frontend em produção
Antes de começar, você precisará ter instalado em sua máquina:
A forma mais simples e recomendada de rodar o projeto completo é via Docker Compose.
-
Clone o repositório:
git clone https://github.com/seu-usuario/FoodFlow.git cd FoodFlow -
Suba os containers:
docker compose up --build
-
Acesse as aplicações:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
- Swagger UI: http://localhost:8080/swagger-ui/index.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
- Banco de Dados (Postgres):
localhost:5433
/foodflow: Código fonte do backend (Spring Boot)./frontend: Código fonte do frontend (React + Vite).docker-compose.yml: Configuração da orquestração dos serviços.
O sistema utiliza JWT. Para registrar um novo usuário ou fazer login, utilize os endpoints:
POST /auth/registerPOST /auth/login
Os tokens devem ser enviados no cabeçalho das requisições protegidas como:
Authorization: Bearer <seu_token>
Se desejar rodar os serviços separadamente para desenvolvimento:
- Navegue até
/foodflow. - Configure o banco de dados no
application.properties. - Execute:
./mvnw spring-boot:run
- Navegue até
/frontend. - Instale as dependências:
npm install - Inicie o servidor dev:
npm run dev(Acessível em http://localhost:5173)