Um chef de cozinha IA que recebe seus ingredientes disponíveis ou favoritos, monta uma receita e te ensina a fazer!
MagicChefAI é uma aplicação moderna que combina Spring Boot + WebFlux + PostgreSQL com o poder da OpenAI (GPT-4o) para gerar receitas inteligentes com base nos ingredientes disponíveis do usuário.
"Você informa o que tem na geladeira, e a IA sugere uma receita criativa pra você!" 🍲🤖
- Spring Boot: Framework para desenvolvimento de aplicações Java robustas e escaláveis.
- Java 17: Linguagem de programação utilizada para o backend.
- Spring WebFlux: Para construir aplicações reativas e não bloqueantes.
- Spring Data JPA: Para persistência de dados com bancos de dados relacionais.
- PostgreSQL: Banco de dados relacional para armazenamento de informações.
- Flyway: Ferramenta de migração de banco de dados para gerenciar o esquema do banco de dados.
- Lombok: Biblioteca para reduzir o código boilerplate em Java.
- Dotenv-java: Para carregar variáveis de ambiente de um arquivo
.env. - Docker Compose: Para orquestração de contêineres, facilitando a configuração do ambiente de desenvolvimento.
- OpenAI API (GPT-4o) – integração para geração de receitas
src/
├── config/ # Configurações de WebClient
├── controller/ # Endpoints REST (CRUD + geração de receita)
├── enums/ # Enum para categorias dos alimentos
├── model/ # Entidade FoodItem
├── repository/ # Interface JPA/Reactive para o FoodItem
├── service/ # Lógica de negócio e integração com a OpenAIO projeto utiliza PostgreSQL com versão Dockerizada.
O Flyway é usado para criar a tabela food_item automaticamente. O script de inicialização está em:
src/main/resources/db/migration/V1__create_food_item_table.sql
Para configurar e rodar o MagicChefAI em sua máquina local, siga os passos abaixo:
Certifique-se de ter o seguinte software instalado:
- Java Development Kit (JDK) 17 ou superior
- Docker e Docker Compose
- Maven
-
Clone o repositório:
git clone https://github.com/lucasaita1/MagicChefAI.git cd MagicChefAI -
Crie um arquivo
.env:Na raiz do projeto, crie um arquivo chamado
.enve adicione as seguintes variáveis de ambiente:OPENAI_API_KEY=sua_chave_api_openai DB_URL=jdbc:postgresql://localhost:5432/magicchefdb DB_USERNAME=seu_username DB_PASSWORD=sua_senha *Substitua `sua_chave_api_openai` pela sua chave de API da OpenAI.* -
Inicie os serviços com Docker Compose:
docker-compose up -d
Isso irá iniciar o banco de dados PostgreSQL e o serviço Flyway.
-
Execute a aplicação Spring Boot:
mvn spring-boot:run
A aplicação estará disponível em
http://localhost:8080.
| Método | Rota | Descrição |
|---|---|---|
| GET | /food/listar |
Lista todos os ingredientes |
| GET | /food/listar/{id} |
Busca ingrediente por ID |
| POST | /food/criar |
Cria novo ingrediente |
| PUT | /food/atualizar/{id} |
Atualiza ingrediente |
| DELETE | /food/{id} |
Remove ingrediente |
| GET | /generate |
Gera uma receita com os ingredientes |
A IA é chamada via WebClient com o modelo gpt-4o. Ela utiliza os ingredientes cadastrados no banco de dados para criar receitas personalizadas.
Exemplo de prompt gerado:
Baseado nos itens cadastrados no banco de dados, faça uma receita gostosa. (Pode usar mais itens e dicas para compor a receita)
• Arroz (GRAO) - Quantidade: 2, Categoria: GRAO
• Tomate (FRUTA) - Quantidade: 3, Categoria: FRUTA
...
- 🔐 Autenticação de usuários com Spring Security
- 📝 Cadastro de receitas favoritas
- ⏰ Verificador de validade automática
- ☁️ Deploy em cloud (Render, Railway ou AWS)
- ✅ Testes unitários e de integração
- 📱 Interface web responsiva com React ou Thymeleaf
Lucas Prates Aita
Este projeto está sob a licença MIT – sinta-se livre para usar, estudar e contribuir!
