O MagicFridgeAI é uma aplicação Spring Boot desenvolvida para ajudar no gerenciamento de itens de uma geladeira e na redução do desperdício de alimentos. A aplicação utiliza a API do Google Gemini para sugerir receitas baseadas nos ingredientes disponíveis no sistema.
- Java 17: Linguagem principal do projeto.
- Spring Boot: Framework para desenvolvimento da aplicação.
- Spring Data JPA: Para persistência de dados.
- Spring WebFlux: Utilizado para chamadas reativas à API do Gemini via
WebClient. - H2 Database: Banco de dados em memória para desenvolvimento e testes.
- Flyway: Gerenciamento de migrações do banco de dados.
- Lombok: Redução de código boilerplate (getters, setters, construtores).
- Google Gemini API: Inteligência Artificial para geração de receitas.
O projeto segue uma estrutura organizada em camadas:
- Controller: Define os endpoints da API (
FoodItemControllereRecipeController). - Service: Contém a lógica de negócio (
FoodItemServiceeGeminiService). - Repository: Interface para comunicação com o banco de dados (
FoodItemRepository). - Model: Definição da entidade
FoodItem. - Config: Configurações de infraestrutura, como o
WebClientConfig. - Migration: Scripts SQL para criação e evolução das tabelas (
V1__create_food_item_table.sql).
- JDK 17 ou superior.
- Maven.
- Uma chave de API (API Key) do Google Gemini.
A aplicação espera uma variável de ambiente (ou no seu arquivo de configuração) para a chave da API:
API_KEY=sua_chave_aqui