Skip to content

rafaelsampa/FlavourIt

Repository files navigation

FlavourIt logo
FlavourIt

Figma BadgePython BadgeDjango Badge

Crie pratos incríveis com os ingredientes que você já tem em casa.

Funcionalidades

  • Ache receitas que usam ingredientes e utensílios que você já tem e que podem ser feitas no tempo que você tem disponível
  • Escolha entre pesquisar com apenas ingredientes e utensílios selecionados ou permita receitas com outros ingredientes e utensílios também
  • Pesquise receitas pelo nome
  • Favorite receitas para acessá-las depois
  • Visualize os nutirentes de cada receita
  • Exporte a receita como PDF

Como usar

Por enquanto, você pode acessar o nosso protótipo.

Impacto

Esse projeto visa contribuir para os seguintes Objetivos de Desenvolvimento Sustetável (ODS):

  • Meta 3.4 - Até 2030, reduzir em um terço a mortalidade prematura por doenças não transmissíveis via prevenção e tratamento, e promover a saúde mental e o bem-estar.
  • Meta 4.7 - Até 2030, garantir que todos os alunos adquiram conhecimentos e habilidades necessárias para promover o desenvolvimento sustentável, inclusive, entre outros, por meio da educação para o desenvolvimento sustentável e estilos de vida sustentáveis, direitos humanos, igualdade de gênero, promoção de uma cultura de paz e não violência, cidadania global e valorização da diversidade cultural e da contribuição da cultura para o desenvolvimento sustentável.
  • Meta 12.3 - Até 2030, reduzir pela metade o desperdício de alimentos per capita mundial, nos níveis de varejo e do consumidor, e reduzir as perdas de alimentos ao longo das cadeias de produção e abastecimento, incluindo as perdas pós-colheita.

Entrega 1

Imagem do Storyboard
Imagens do Sprint 1 e do Backlog do Jira, na data de 04/09/2024
Sketch do produto







Histórias de usuário

1# Busca por nome​

Descrição:

Como usuário, eu gostaria de poder pesquisar as receitas disponíveis por nome para acessar intruções de uma receita que já sei que quero usar mas não lembro como fazer.​

Critérios de Aceitação:​
  • Apenas receitas que contêm o termo pesquisado em seu título aparecem na lista de resultados.​
  • A pesquisa deve ser case-insensitive.​
  • Se não houver receitas compatíveis, aparece um aviso em vez de receitas.​

2# Busca por ingredientes​​

Descrição:

Como usuário, eu gostaria de visualizar receitas que contenham os ingredientes especificados por mim para utilizar ingredientes que eu já tenho em casa.​

Critérios de Aceitação:​
  • Apenas receitas que contêm ingredientes selecionados aparecem na lista de resultados.​
  • O usuário pode selecionar quantos ingredientes quiser, sem restrição de quantidade.​​
  • Caso nenhum ingrediente seja selecionado, a filtragem por ingredientes não será considerada ao mostrar os resultados da pesquisa.​

3# Filtragem por Utensílios​​

Descrição:

Como usuário, eu gostaria de visualizar receitas que contenham os utensílios especificados por mim para que eu possa encontrar receitas que se adaptem ao que tenho disponível.​

Critérios de Aceitação:​
  • Receitas que utilizam utensílios selecionados aparecem na lista de resultados.
  • Receitas contendo outros utensílios aparecem após as receitas acima.​
  • O usuário pode selecionar quantos utensílios quiser, sem restrição de quantidade.​
  • Caso nenhum utensílio seja selecionado, a filtragem por utensílios não será considerada ao mostrar os resultados da pesquisa.​​

4# Filtragem por Tempo​

Descrição:

Como usuário, eu gostaria de visualizar apenas as receitas que podem ser concluídas dentro de um período de tempo específico para evitar escolher uma receita que demore mais tempo do que eu tenho.​

Critérios de Aceitação:​
  • Apenas receitas com tempo de preparo igual ou menor ao tempo inserido aparecem na lista de resultados.​
  • A opção de ordenação por tempo deve estar disponível e funcionar corretamente tanto na ordem crescente como decrescente.​
  • Caso um período de tempo não seja especificado, a filtragem por tempo de preparo não será considerada ao mostrar os resultados da pesquisa.​​

5# Busca Exclusiva​​

Descrição:

Como usuário, eu gostaria de escolher esconder receitas que contenham os ingredientes e/ou utensílios não selecionados para ver apenas recitas que eu posso fazer sem precisar ir ao mercado ou pedir algo emprestado.​

Critérios de Aceitação:​
  • Nenhuma receita que contém ingredientes e/ou utensílios não selecionados aparece na lista de resultados quando as respectivas opções estão ativadas.​
  • Se não houver receitas compatíveis, aparece um aviso em vez de receitas.​

6# Porções​​

Descrição:

Como usuário, eu gostaria de visualizar a quantidade de porções médias que eu posso fazer com a quantidade de ingredientes que eu registrei para que eu possa planejar melhor a quantidade de comida que vou preparar.​

Critérios de Aceitação:​
  • A quantidade de porções possíveis baseado na quantidade de ingredientes visível na lista de resultados e no card da receita selecionada.​​
  • O próprio algoritmo deve calcular automaticamente de acordo com os ingredientes da receita e na quantidade registrada pelo usuário.​​
  • Caso a quantidade registrada pelo usuário seja insuficiente para uma receita, a quantidade consta como 0.​

7# Favoritos​

Descrição:

Como usuário, eu gostaria de guardar minhas receitas favoritas para acessá-las mais rápido.​

Critérios de Aceitação:​
  • Receitas marcadas como favoritas estão visíveis na lista de receitas favoritas.​​
  • O usuário pode marcar quantas receitas quiser como favoritas, sem restrição de quantidade.​
  • As receitas aparecem listadas na seção de favoritas.​

8# Informações Nutricionais​​

Descrição:

Como usuário, eu gostaria de saber sobre as informações nutricionais de cada receita para fazer escolhas alimentares mais informadas.​​

Critérios de Aceitação:​
  • Informações corretas estão disponíveis no card nutricional da receita.​​
  • As informações serão equivalentes a uma porção da receita.​​

9# Perfil​​

Descrição:

Como usuário, eu gostaria de ter um perfil pessoal para visualizar valores diários personalizados baseados nos meus dados para adequar minha alimentação às minhas necessidades objetivos de saúde indivíduais.​

Critérios de Aceitação:​
  • Valores diários no card nutricional da receita estão de acordo com as informações do usuário.​
  • O próprio algoritmo deve calcular automaticamente de acordo com as informações do usuário e da receitas.​
  • O usuário deve ser capaz de alterar suas informações sempre que desejar.​

10# Exportação​​

Descrição:

Como usuário, eu gostaria de compartilhar uma receita para além do site, para que eu possa mostrar minhas descobertas para amigos ou vizualizar-lás fora da plataforma.

Critérios de Aceitação:​
  • O usuário poderá escolher compartilhar a receita por meio de PDF ou link para a receita no próprio site.​
  • O botão "Export" cria uma versão em PDF da receita que pode ser baixada pelo usuário.​
Screencast do protótipo
Conclusão da sprint

Quadro sprint

Backlog

Entrega 2

Diagramas de Atividade do Sistema

História 1

Histórias 2 e 3

Modelo Conceitual
Modelo Lógico
Modelo Físico
CREATE TABLE Cliente (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Nome TEXT NOT NULL,
    Altura REAL,
    Peso REAL,
    Atividade TEXT
)

CREATE TABLE Favoritado (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Id_Receita INT,
    Id_Cliente INT,
    FOREIGN KEY (Id_Receita) REFERENCES Receita(Id),
    FOREIGN KEY (Id_Cliente) REFERENCES Cliente(Id)
)

CREATE TABLE Ingrediente (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Id_Receita INT,
    Id_Val_Nutri INT,
    Quantidade REAL,
    Unidade TEXT,
    FOREIGN KEY (Id_Receita) REFERENCES Receita(Id),
    FOREIGN KEY (Id_Val_Nutri) REFERENCES Valores_Nutricionais(Id)
)

CREATE TABLE Valores_Nutricionais (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Nome TEXT NOT NULL,
    Gordura REAL,
    Carboidrato REAL,
    Proteina REAL,
    Porção REAL,
    Unidade TEXT
)

CREATE TABLE Receita_Utensilio (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Id_Receita INT,
    Id_Utensilio INT,
    FOREIGN KEY (Id_Receita) REFERENCES Receita(Id),
    FOREIGN KEY (Id_Utensilio) REFERENCES Utensilio(Id)
)

CREATE TABLE Utensilio (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Nome TEXT NOT NULL
)

CREATE TABLE Receita (
    Id INT PRIMARY KEY AUTOINCREMENT,
    Nome TEXT NOT NULL,
    Tempo TEXT NOT NULL,
    Instruções TEXT NOT NULL
)
Issue/Bug Tracker Atual
Relatório de Programação em Par

Dividimos o grupo em duplas, e cada dupla ficou com uma tarefa diferente, como Front-end, Back-end, implementação de testes, entre outras. As duplas e suas respectivas tarefas foram escolhidas aleatoriamente. Algumas duplas conseguiram implementar a Programação em Pares e outras não, devido a complicações como: horários que não coincidem, ou uma tarefa muito simples. Outras duplas ainda trabalharam através de chamadas on-line. Já as duplas que conseguiram implementar perceberam que ajudou bastante, principalmente para desenvolver a lógica do programa, para acertar questões que não ficaram claras e escrever o código muito mais rápido e evitando pequenos erros que uma pessoa só demoraria para perceber. Continuaremos a aplicar a Programação em Pares ao decorrer do projeto, trocando as duplas para deixar mais dinâmico e percebendo como cada uma delas trabalha melhor e para otimização do desenvolvimento do FlavourIt.

Créditos

Contribuidores


Gabriel Martins

Gabriela R. B. Lemos

Maria Luiza Lima

Matheus Veríssimo
Miguel Reis

Rafael Sampaio

Roberto Regis

Victor Hugo José Sales da Silva

Vinícius Martins

Imagens e Ícones

Este projeto inclui recursos gráficos das seguintes fontes:

Protótipo:

Produto Final:

  • Ilustração de um telefone é uma versão editada de uma imagem disponível via Wikimedia Commons
  • Ícones por Tabler
  • Insenção de Responsabilidade

    O conteúdo desta publicação não foi aprovado pelas Nações Unidas e não reflete as opiniões das Nações Unidas, de seus funcionários ou dos Estados-Membros.

    About

    No description, website, or topics provided.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published