Skip to content

lucasaita1/MagicChefAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MagicChefAI Logo

🧙‍♂️ MagicChefAI

Um chef de cozinha IA que recebe seus ingredientes disponíveis ou favoritos, monta uma receita e te ensina a fazer!

Descrição do projeto

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ê!" 🍲🤖

⚙️ Tecnologias Utilizadas

  • 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

📐 Estrutura do Projeto

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 OpenAI

💾 Banco de Dados

O projeto utiliza PostgreSQL com versão Dockerizada.

🔁 Flyway Migration

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

📦 Como Rodar Localmente

Para configurar e rodar o MagicChefAI em sua máquina local, siga os passos abaixo:

Pré-requisitos

Certifique-se de ter o seguinte software instalado:

  • Java Development Kit (JDK) 17 ou superior
  • Docker e Docker Compose
  • Maven

Configuração

  1. Clone o repositório:

    git clone https://github.com/lucasaita1/MagicChefAI.git
    cd MagicChefAI
  2. Crie um arquivo .env:

    Na raiz do projeto, crie um arquivo chamado .env e 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.*
    
    
  3. Inicie os serviços com Docker Compose:

    docker-compose up -d

    Isso irá iniciar o banco de dados PostgreSQL e o serviço Flyway.

  4. Execute a aplicação Spring Boot:

    mvn spring-boot:run

    A aplicação estará disponível em http://localhost:8080.

🚀 Endpoints Disponíveis

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

🧠 Integração com a OpenAI

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
...

📌 Funcionalidades Futuras (Backlog)

  • 🔐 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

👨‍💻 Autor

Lucas Prates Aita


📝 Licença

Este projeto está sob a licença MIT – sinta-se livre para usar, estudar e contribuir!


About

(EN-USA) - An AI chef that takes your available or favorite ingredients, creates a recipe, and teaches you how to make it! (PT-BR) - Um chefe de cozinha IA que recebe seus ingredientes disponíveis ou favoritos, monta uma receita e te ensina a fazer!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages