Skip to content

Commit d0fcb85

Browse files
docs: update roadmap with detailed sprints and objectives for AiFoodApp
1 parent b9eb93d commit d0fcb85

File tree

1 file changed

+103
-93
lines changed

1 file changed

+103
-93
lines changed

roadmap.MD

Lines changed: 103 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,103 @@
1-
# Roadmap para MVP do AiFoodApp
2-
3-
## Fase 1: Fundação e Correção (Semanas 1-2)
4-
5-
### Corrigir problemas estruturais
6-
- Resolver problemas no repositório FoodItemRepository
7-
- Corrigir estrutura do serviço TextGenService
8-
- Padronizar tratamento de erros da API
9-
10-
### Aprimorar o modelo de dados
11-
- Adicionar campos nutricionais básicos ao modelo FoodItem
12-
- Incluir propriedades para categorização de alimentos
13-
- Definir relacionamentos entre entidades
14-
15-
## Fase 2: Funcionalidades Core de IA (Semanas 3-5)
16-
17-
### Implementar geração de receitas com base em alimentos disponíveis
18-
- Aprimorar o TextGenService existente para gerar melhores receitas
19-
- Criar interface para seleção de alimentos disponíveis
20-
- Implementar filtros para preferências alimentares (vegetariano, sem glúten, etc.)
21-
22-
### Desenvolver análise nutricional básica
23-
- Criar serviço de análise nutricional utilizando IA
24-
- Desenvolver endpoints para solicitar análises personalizadas
25-
- Implementar visualização clara de insights nutricionais
26-
27-
### Criar controller para funcionalidades de IA
28-
- Desenvolver endpoints para solicitação de insights nutricionais
29-
- Implementar rotas para geração de receitas personalizadas
30-
- Estabelecer padrão de resposta e tratamento de erros
31-
32-
## Fase 3: Funcionalidades Essenciais Tradicionais (Semanas 6-8)
33-
34-
### Implementar sistema de categorização de alimentos
35-
- Adicionar enums ou constantes para grupos alimentares
36-
- Criar endpoints para listar alimentos por grupo
37-
- Desenvolver interface para visualizar alimentos por categoria
38-
39-
### Desenvolver sistema básico de listas de compras
40-
- Criar modelos para lista de compras e itens
41-
- Implementar endpoints para gerenciamento de listas
42-
- Desenvolver funcionalidade para adicionar ingredientes de receitas à lista
43-
44-
### Implementar tracking de macronutrientes
45-
- Criar modelo de dados para armazenar consumo diário
46-
- Desenvolver endpoints para registrar refeições
47-
- Implementar visualização básica de macronutrientes consumidos
48-
49-
## Fase 4: Integração e Refinamento (Semanas 9-10)
50-
51-
### Integrar funcionalidades e melhorar UX
52-
- Conectar geração de receitas com listas de compras
53-
- Permitir compartilhamento de receitas geradas
54-
- Refinar feedback de usuário e interfaces
55-
56-
### Implementar testes e otimizações
57-
- Criar testes unitários para serviços principais
58-
- Otimizar chamadas às APIs externas (caching, etc.)
59-
- Identificar e resolver possíveis gargalos de performance
60-
61-
### Preparar para lançamento do MVP
62-
- Documentação básica da API
63-
- Configuração de ambiente de produção
64-
- Configuração de monitoramento básico
65-
66-
## Fase 5: Lançamento MVP e Feedback Inicial (Semanas 11-12)
67-
68-
### Lançamento MVP
69-
- Deploy da aplicação
70-
- Configuração de CI/CD básico
71-
- Preparação para coleta de feedback
72-
73-
### Coleta de feedback inicial
74-
- Implementar mecanismo básico de coleta de feedback
75-
- Preparar para o próximo ciclo de desenvolvimento
76-
77-
## Próximos Passos Pós-MVP (Futuro)
78-
79-
1. **Funcionalidades avançadas de IA**
80-
- Recomendação de substituições saudáveis
81-
- Assistente virtual de nutrição
82-
- Previsão de validade inteligente
83-
84-
2. **Expansões principais**
85-
- Sistema completo de planos alimentares
86-
- Integração com wearables
87-
- Scanner de código de barras
88-
- Compartilhamento social
89-
90-
3. **Refinamentos técnicos**
91-
- Arquitetura escalável para mais usuários
92-
- Sistema avançado de analytics
93-
- Personalização avançada baseada em ML
1+
# Roadmap de Sprints para o AiFoodApp
2+
3+
## Sprint 1: Qualidade, Estabilidade e Refinamento da Base
4+
5+
**Objetivo da Sprint:** Fortalecer a fundação do projeto, garantindo que as funcionalidades existentes sejam confiáveis e robustas antes de adicionar novos recursos. Esta sprint foca em testes e melhorias técnicas críticas.
6+
7+
### Implementar Cobertura de Testes Unitários e de Integração
8+
9+
* **Descrição:** Criar um conjunto sólido de testes automatizados para validar a lógica de negócio e os endpoints da API. Atualmente, o projeto carece de testes significativos.
10+
* **Tarefas:**
11+
* **Testes de Serviço:** Escrever testes unitários para `FoodItemService`, `RecipeService` e `AuthorizationService`, utilizando mocks para isolar a lógica de negócio.
12+
* **Testes de Controller:** Implementar testes de integração usando `MockMvc` para `FoodItemController`, `RecipeController` e `AuthenticationController` para validar as requisições, respostas HTTP e segurança dos endpoints.
13+
14+
### Refatorar o Parsing de Receitas da IA
15+
16+
* **Descrição:** Substituir o método atual de parsing de texto no `ChatService`, que é frágil, por um método mais confiável baseado em JSON.
17+
* **Tarefas:**
18+
* Atualizar o prompt enviado à Maritaca AI para exigir que a resposta da receita seja sempre em formato JSON estruturado.
19+
* Modificar o método `parseRecipeFromText` em `ChatService` para usar uma biblioteca (como Jackson) para desserializar a string JSON diretamente para o objeto `Recipe` ou um DTO correspondente.
20+
21+
### Implementar Cache para Análise Nutricional
22+
23+
* **Descrição:** Reduzir o número de chamadas repetitivas à API de IA para receitas que já foram analisadas, melhorando a performance e reduzindo custos.
24+
* **Tarefas:**
25+
* Habilitar o suporte a cache do Spring (`@EnableCaching`).
26+
* Anotar o método `analyzeNutritionalProfile` no `ChatService` com `@Cacheable` para que os resultados sejam armazenados em cache com base no ID da receita.
27+
28+
### Associar Receitas Geradas ao Usuário
29+
30+
* **Descrição:** Vincular cada receita gerada ao usuário que a solicitou. Isso é fundamental para funcionalidades futuras como o histórico de receitas.
31+
* **Tarefas:**
32+
* Adicionar um relacionamento Many-to-One da entidade `Recipe` para a entidade `User`.
33+
* Atualizar a lógica em `RecipeController` e `RecipeService` para identificar o usuário autenticado e associá-lo à nova receita ao salvá-la.
34+
35+
---
36+
37+
## Sprint 2: Aprimoramento da IA e Categorização
38+
39+
**Objetivo da Sprint:** Tornar a interação com a IA mais poderosa e útil para o usuário, e implementar funcionalidades de organização de alimentos.
40+
41+
### Adicionar Filtros Avançados na Geração de Receitas
42+
43+
* **Descrição:** Permitir que o usuário personalize a geração de receitas com base em preferências alimentares, ingredientes específicos e outras restrições.
44+
* **Tarefas:**
45+
* Modificar o endpoint `GET /api/recipes/gen` para aceitar `RequestParams`, como `dietaryPreference` (ex: "vegetariano", "vegano") e `excludeIngredients` (lista de nomes de ingredientes a serem evitados).
46+
* Aprimorar o método `generateRecipe` no `ChatService` para incorporar dinamicamente esses filtros no prompt enviado para a IA.
47+
48+
### Criar Endpoint para Listar Alimentos por Categoria
49+
50+
* **Descrição:** Expor um endpoint que permita ao cliente (frontend) buscar e exibir alimentos agrupados por sua categoria (`FoodGroup`).
51+
* **Tarefas:**
52+
* Adicionar o método `List<FoodItem> findByFoodGroup(FoodGroup foodGroup);` na interface `FoodItemRepository`.
53+
* Implementar um novo método no `FoodItemService` para chamar o repositório.
54+
* Criar um novo endpoint no `FoodItemController`, como `GET /api/foods/by-category`, que aceita a categoria como parâmetro.
55+
56+
---
57+
58+
## Sprint 3: Sistema de Listas de Compras
59+
60+
**Objetivo da Sprint:** Desenvolver a funcionalidade completa de listas de compras, um recurso essencial do aplicativo.
61+
62+
### Modelar e Implementar a Estrutura da Lista de Compras
63+
64+
* **Descrição:** Criar a base de dados e as classes de domínio para suportar as listas de compras.
65+
* **Tarefas:**
66+
* Criar as entidades JPA `ShoppingList` (com relacionamento para `User`) e `ShoppingListItem` (com relacionamento para `ShoppingList` e `FoodItem`).
67+
* Gerar as migrações do banco de dados correspondentes usando Flyway.
68+
* Implementar os `JpaRepository` para as novas entidades.
69+
70+
### Desenvolver o Serviço e os Endpoints para Gerenciamento da Lista
71+
72+
* **Descrição:** Construir a lógica de negócio e a API para que o usuário possa interagir com suas listas.
73+
* **Tarefas:**
74+
* Criar o `ShoppingListService` com métodos para: criar/buscar a lista de um usuário, adicionar/remover/atualizar itens.
75+
* Desenvolver o `ShoppingListController` com endpoints RESTful para todas as operações do serviço.
76+
77+
---
78+
79+
## Sprint 4: Integração e Experiência do Usuário (UX)
80+
81+
**Objetivo da Sprint:** Conectar as funcionalidades existentes para criar uma experiência de usuário coesa e fluida.
82+
83+
### Integrar Receitas com a Lista de Compras
84+
85+
* **Descrição:** Criar uma funcionalidade "one-click" para que o usuário possa adicionar todos os ingredientes de uma receita diretamente em sua lista de compras.
86+
* **Tarefas:**
87+
* Criar um novo endpoint, como `POST /api/recipes/{recipeId}/add-to-shopping-list`.
88+
* Implementar a lógica no `RecipeService` ou `ShoppingListService` que busca os ingredientes da receita (`RecipeIngredient`) e os adiciona na lista de compras do usuário autenticado.
89+
90+
### Desenvolver Histórico de Receitas do Usuário
91+
92+
* **Descrição:** Criar uma tela ou endpoint onde o usuário possa ver todas as receitas que ele gerou anteriormente.
93+
* **Tarefas:**
94+
* Criar um novo método no `RecipeRepository` para buscar receitas por ID de usuário (`findByUserId`).
95+
* Expor um endpoint `GET /api/recipes/my-history` no `RecipeController` que retorna a lista de receitas para o usuário logado.
96+
97+
---
98+
99+
## Próximos Passos (Pós-MVP)
100+
101+
* Desenvolver Sistema de Tracking de Macronutrientes
102+
* Funcionalidades Avançadas de IA (ex: substituições saudáveis, planejamento de refeições)
103+
* Construção da Interface de Usuário (Frontend)

0 commit comments

Comments
 (0)