# PROPOSTA TCC FINAL AUCKLAND
## 🎮 JOGO Cookin'Fresh
### 💡 Ideia
- Jogo de cozinha saudável
[Video demonstrativo de um jogo exemplar](https://youtu.be/l_zcj5W9bro)
### 🎯 Objetivos
- Incentivar e ensinar a preparação de pratos mais saudáveis
## 🤯 O problema
As crianças e adolescentes de hoje tem muita dificuldade em manter uma alimentação saudável. Uma das possíveis causas desse problema é a falta de educação nutricional: muitas crianças e adolescentes não recebem educação adequada sobre nutrição e alimentação saudável, o que pode contribuir para escolhas alimentares inadequadas. Como, por exemplo:
- Consumo excessivo de açúcar: muitos alimentos e bebidas destinados a crianças e adolescentes contêm quantidades excessivas de açúcar, o que pode contribuir para a obesidade, cáries dentárias e outros problemas de saúde.
- Alimentação desequilibrada: muitas crianças e adolescentes não comem uma dieta equilibrada, com muitas calorias vazias provenientes de alimentos processados e com baixo teor de nutrientes.
- Dieta pobre em vegetais e frutas: muitas crianças e adolescentes não consomem a quantidade adequada de vegetais e frutas, o que pode contribuir para a falta de nutrientes essenciais e aumentar o risco de doenças crônicas.
- Fast food e comida industrializada: o consumo excessivo de fast food e alimentos industrializados pode levar a um aumento do consumo de calorias, sódio e gorduras saturadas, o que pode contribuir para a obesidade e outros problemas de saúde.
## 🤔 Proposta de Solução
Visto tal problema, foi desenvolvida uma solução baseada em uma aplicação interativa e gamificada, que demonstre para o nosso usuário que uma alimentação saudável é constituída desde a escolha do ingrediente até a produção da receita, e com isso, ele possa analisar melhor os produtos que for consumir. No jogo, o usuário poderá fazer atividades como:
- Descobrir diferentes receitas
- Simular a preparação de diferentes pratos
## 👥 Definição de Usuários
### Jogador
Este usuário é a pessoa que irá interagir com a aplicação gamificada.
## 🔌 Tecnologias
### 💻 Front-End
- Aplicação feita com as linguagens Javascript, HTML, CSS e a biblioteca React
### 💻 Back-End
- API feita com a linguagem Java e o framework Spring Boot
### 💾 Banco de Dados
- PostgreSQL
## ⚙️ Funcionalidades
### 📱Compativel com touch e dispositivos móveis
- O app será compatível com touch e compatível com diferentes resoluções, para que consiga ser usado em diferentes dispositivos
### 🔒 Autenticação de Jogador
- O usuário poderá criar uma nova conta Cookin' Fresh
- Para entrar no jogo o usuário poderá optar por entrar com sua conta Cookin' Fresh ou poderá também jogar como convidado
- A autenticação deverá ser feita com o Basic Auth.
- Serão necessários e-mail e senha cadastrados para a autenticação.
- Apenas um cadastro por e-mail
### 👴 Experiência
- Ganha experiência decorrente da conclusão de receitas
### 🍅 Ingredientes
- O mesmo ingrediente pode participar de várias receitas
### 📝 Receitas
- Cada receita contém uma lista de ingredientes e quantidades
- Além de ingredientes cada receita tem um link que leva ao passo a passo completo da receita
### 🍳 Cozinhar pratos
- Escolher receita para cozinhar
- Todas as receitas do jogo ficam listadas no livro de receitas, onde o usuario pode ver as receitas de forma paginada e selecionar a que deseja
- Apenas as receitas disponíveis ficarão desbloqueadas para o jogador
- O jogador poderá escolher apenas uma receita por vez, desde que possua, no momento da escolha, o nível mínimo necessário
- Para escolher as receitas o usuário também poderá filtrar entre um prato doce ou salgado
- Além do filtro de doce e salgado se o usuário quiser uma receita específica ele pode pesquisar o nome da receita na área de busca
- Ao cozinhar qualquer prato, o jogador deverá seguir uma sequência de passos pré-definidos para completar a receita.
- Cada passo da receita requer que o jogador realize ações de jogabilidade para interagir com os ingredientes. Ex: cortar, picar, refogar, ligar fogão, misturar, etc.
- Ao final da preparação, o jogo deve mostrar as instruções da receita original e a opção de compartilhar a receita para que o jogador ou outra pessoa possa executá-la em casa.
### ♟️ Método de preparação
Ao cozinhar qualquer prato, o usuário deverá realizar ações de jogabilidade com os ingredientes por meio de ações do mouse, simulando uma preparação real. Exemplos:
- Segurar utensílio
- O usuário deve utilizar segurar os utensílios por meio do click ou touch e arrastá-lo para realizar ações com o mouse ou dedo.
- Fatiar ingrediente
- O usuário deve utilizar uma faca e arrastá-la com o mouse ou touch na direção indicada para cortar uma fatia do ingrediente.
- Picar ingrediente
- O usuário deve utilizar uma faca e usá-la com o mouse ou touch na direção indicada para cortar o ingrediente em picados.
- Refogar ingredientes
- O usuário deve clicar nos ingredientes para adiciona-los à frigideira, acender o fogo e arrastar a colher de pau nas posições indicadas para refogar com sucesso.
- Fritar carne / panqueca / ovo
- O usuário deve clicar nos ingredientes para adiciona-los à frigideira, acender o fogo e mover a panela no momento indicado para girar o ingrediente.
- Cozinhar na panela
- O usuário deve clicar nos ingredientes para adiciona-los à panela e manuesear a colher de pau com o mouse ou touch para mexer o cozimento em movimentos circulares.
- Misturar ingredientes
- O usuário deve clicar nos ingredientes para adiciona-los à tigela e manusear o fuê com o mouse ou touch em movimentos aleatórios para misturar com sucesso.
- Levar ao forno
- O usuário deve abrir a porta do forno com um clique depois segurar a forma por meio do click ou touch e arrastá-la para o forno, após largar a forma no forno é preciso fechar a porta e esperar o cronometro terminar.
### ⭐ Pontuação do prato
- Dependendo do desempenho do jogador, ele poderá receber de 1 a 3 estrelas.
- As ações podem ter um requisito para ser seguido e caso não sejam atendidos podem acarretar perda de pontos na receita.
## 🧾 Exemplo de Receita
**Molho de Tomate**
- 5 tomates cortados
- 1 cebola picada
- 2 dentes de alho picados
- 5 fios de azeite
- 5 pitadas de manjericão
- 5 pitadas de sal
### 👣 Sequencia de passos
- Cortar Tomates
- Realizar ação de cortar o tomate para cada um dos 5 tomates com a ação de "Arrastar o clique do mouse do ponto "A" ao ponto "B" sem sair da área definida"
- Picar Cebola
- Picar as cebolas com a ação de cliques rápidos
- Picar Dentes de Alho
- Picar os dentes de alhos com a ação de cliques rápidos
- Refogar ingredientes
- Clicar no azeite para untar a panela.
- Ligar o fogo
- Clicar nos ingredientes para adicioná-los à panela.
- Para que a barra de progresso avançe o usuário deverá manter a frigideira em cima do fogo
- Cozimento
- Para iniciar o processo de cozinhar o usuário deverá clicar nos ingredientes para adicioná-los à panela
- Após adicionar os ingredientes à panela, o usuário deverá usar a colher para misturar, realizando a ação de "Mexer o mouse em círculo em um objeto" para completar a barra de progresso
- Se o jogador parar de mexer a colher antes de a barra de progresso terminar, a barra ficará imóvel só voltando a subir uma vez que o usuário continuar a mexer o molho com a colher
- Receita finalizada
- Aparece o feedback para o usuário mostrando quantas estrelas ele conquistou
## 📁 Backlog
### 📱 Progressive Web Application
- Adicionar PWA no aplicativo
### 🔗 Compartilhar em redes sociais
- Possibilidade de enviar receita nas redes sociais como Facebook, Instagram, Whatsapp, etc.
### 🌐 Login social
- Entrar com contas pessoais do Google, Facebook, Github, entre outras.
### 😃 Amigos
- Leaderboard com todos os jogadores ou amigos por ordem de pontuação
- Não pode adicionar uma pessoa que já possui amizade
- Deve ser possível abrir o perfil do amigo
- Enviar presentes para os amigos
### ❓ Missões
- Tarefas que o usuário cumprirá e receberá recompensas como créditos e experiência.
- Missões diárias
- Missões que se renovarão todo dia.
### 💰 Economia
- O jogador começa o jogo com créditos suficientes para poder comprar ingredientes básicos para o preparo da primeira receita.
- Ao concluir qualquer receita, ganhará créditos referentes a recompensa daquela receita em específico.
### 🛒 Mercado
- Pode comprar novos ingredientes, desde que possua o valor necessário para a compra.
- Ao comprar um novo item, o valor deverá ser descontado da economia do usuário e o item adicionado ao inventário.
### 🎒 Inventário
- Guardar os ingredientes comprados no mercado
### 🏆 Leaderboard por Receita
- Listagem dos melhores amigos nessa receita