Pantufood
Equipe
- Professores orientadores
- Estevan Brandt Braz Costa
- Alcione Benacchio
- Alunos
- Eduardo Marques Cardozo
- Fabio Augusto Nakamura de Jesus
- Wagner dos Santos Backes
Objetivo Geral
Desenvolver um sítio eletrônico que auxilie a busca de receitas baseadas em ingredientes e categorias, prática que pode trazer uma melhoria de vida dependendo dos ingredientes que o usuário escolher, além de incitar as práticas culinárias de um jeito simplificado e atrativo.
Objetivo Especifico
Maior interação entre usuários permitindo favoritar e comentar receitas de outros, além de conseguir um maior controle de receitas favoritas.
Ter uma base de receitas auto sustentável, onde o utilizador do produto em desenvolvimento possa cadastrar (com aprovação do moderador do website), alterar, excluir e consultar receitas de sua própria autoria.
O administrador pode gerenciar receitas (exclusão, adição e alteração), usuários,categorias e tags.
Problema
- Sítios eletrônicos similares que vendem seu produto prometendo cumprir tais funcionalidades, mas não as cumprem adequadamante.
- Jovens adultos que moram sozinhos optam por Fast-food's por falta de tempo ou conhecimento culinário.
- Os sites de receitas convencionais exigem que o usuário já tenha uma noção do que preparar e do que comprar.
Proposta
- Criar um ambiente WEB capaz de buscar receitas a partir de ingredientes.
- Aumentar o interesse culinário de pessoas que moram sozinhas.
- Facilitar o preparo de comidas sem precisar de conhecimento prévio do que comprar ou fazer.
- Incitar o consumo de alimentos saudáveis, colocando estes em prioridade quando o usuário for buscar receitas.
Principais Funcionalidades
- Consulta de receitas a partir de ingredientes.
- Cadastro, edição, e solicitação de exclusão de receitas.
- Cadastro, edição, consulta e desativação de usuário.
- Login a partir da conta criada.
- Comentar as receitas, filtrando comentários maldosos.
Público Alvo
Primário
- Jovens adultos e adultos que possuem dificuldades culinárias.
- Pessoas que moram sozinha.
Secundário
Trata-se de um público adjacente muito grande, pois devido a praticidade do aplicativo, qualquer pessoa com algum interesse culinário pode ser considerado público alvo.
Dicionário de Dados
-
Categorias
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
link | link | varchar(200) | - | - | | - |
Nome | nome | tinytext | - | - | - | - |
--
Comentario
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
Autor | autor | int(11) | - | FK | | - |
Id resposta | responta_id | int(11) | - | FK | - | - |
Comentário | comentario | text | - | - | - | - |
Data | data | int | - | - | - | Quando atualizar, valor é agora |
ID Receita | receita_id | int | - | - | - | - |
-
Preparo
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
id_receita | id_receita | tinytext | PK | FK | Not Null | - |
instrucao | instrucao | tinytext | - | - | Not Null | - |
Instricão Tipo | instrucao_tipo | enum('titulo', 'instrucao') | - | - | - | - |
Receitas
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
nome | nome | tinytext | - | - | Not Null | - |
tempo | tempo | int(3) | - | - | Not Null | - |
porcoes | porcoes | int(3) | - | - | Not Null | - |
favoritos | favoritos | int(11) | - | - | Not Null | - |
id_categoria | id_categorias | int(11) | - | FK | Not Null | - |
quantidade_ingredientes | quantidade_ingredientes | int(3) | - | - | Not Null | - |
Autor | autor | int(11) | - | FK | - | - |
Visitado | visitado | timestamp | - | - | Not Null | CURRENT_TIMESTAMP |
Ingredientes
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
id_receita | id_receita | int(11) | PK | FK | Not Null | - |
ingrediente | ingrediente | tinytext | - | - | Not Null | - |
ingrediente_tag | ingrediente_tag | int(11) | - | FK | - | - |
ingrediente_tipo | ingrediente_tipo | enum | - | - | - | enum('titulo', 'ingrediente') |
ordem | ordem | int(3) | - | - | - | - |
Quantidade | quantidade | int(11) | - | - | - | - |
Ingredientes_tags
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
ingrediente_id | ingrediente_id | int(11) | PK | FK | Not Null | - |
tag_id | tag_id | int(11) | PK | - | Not Null | - |
Tags
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
nome | nome | varchar(64) | - | - | Not Null, não pode ter número | - |
opcional | opcional | tinyint(1) | - | - | Not Null | - |
Autor | opcional | int(11) | - | - | - | Default 3 |
Status | estatus | tinyint(1) | - | - | - | Default 1 |
User
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
name | name | varchar(100) | - | - | não pode conter números | - |
login | login | varchar(60) | - | - | Not Null, login único | - |
senha | senha | varchar(32) | - | - | Not Null | - |
email | email | varchar(100) | - | - | Not Null, email único | - |
profile_img | profile_img | varchar(30) | - | - | Tamanho de arquivo máximo 5mb | - |
status | status | enum | - | - | - | - |
created | created | date | - | - | Not Null | - |
profile_users
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
user_id | user_id | int(11) | PK | FK | Not Null | - |
profile_id | profile_id | int(11) | PK | FK | Not Null | - |
created | created | date | - | - | Not Null | - |
deleted | deleted | int(1) | - | - | Not Null | - |
Profiles
Campo Lógico | Campo Físico | Tipo | PK | FK | Restrições | Observações |
id | id | int(11) | PK | - | Not Null | - |
name | name | varchar(60) | - | - | não pode conter números | - |
description | description | text | - | - | - | - |
created | created | date | - | - | Not Null | - |
modified | modified | date | - | - | Not Null | - |
deleted | deleted | int(1) | - | - | Not Null | - |
Caso de Uso
Lista de Requisitos
Código | Requisito Funcional |
---|
RF 01 | O sistema deve permitir a busca por receitas culinárias a partir de
ingredientes e ou categorias. |
RF 02 | O sistema deve permitir a seleção de dois ou mais ingredientes para uma
busca. |
RF 03 | O sistema deve permitir a seleção de uma ou mais categorias para uma busca. |
RF 04 | O sistema deve permitir a troca de ingredientes enquanto o usuário não acessar a busca. |
RF 05 | O sistema deve permitir a troca de categorias enquanto o usuário não acessar a busca. |
RF 06 | O sistema deve permitir a volta para o formulário de pesquisa a qualquer momento. |
RF 07 | O sistema deve permitir realizar cadastro, desativação, consulta e edição de usuário. |
RF 08 | O sistema deve permitir realizar cadastro, solicitação da exclusão, consulta e edição das receitas. |
RF 09 | O sistema deve permitir a edição da maneira que as receitas são consultadas. |
-
Código | Requisito Funcional | Regras de Negócio |
---|
RN 1 |
RF 1 |
As respostas serão ordenadas pelo quanto os ingredientes da
busca se parecem com os ingredientes dentro das receitas. |
RN 1 |
RF 2 |
As receitas serão ordenadas por popularidade, e irá existir prioridade nas receitas saudáveis |
RN 2 |
RF 3 |
Serão permitidos no mínimo um ingredientes e no máximo
vinte. |
RN 3 |
RF 4 |
Se nenhuma categoria for selecionada, será considerado que
todas foram selecionadas. |
RN 4 |
RF 5 |
Os tipos de categorias considerados serão: “Carnes”, “bolos
tortas doces”, “aves”, “peixes e frutos do mar”, “saladas
molhos e acompanhamentos”, “sopas”, “massas”, “doces e
sobremesas”, “lanches”, “alimentação saudável”. |
RN 5 |
RF 6 |
Quando o usuário voltar para a tela de busca, todos os
ingredientes e categorias anteriormente escritos estarão
preenchidos automaticamente. |
RN 6 |
RF 7 |
Um usuário cadastrado poderá apenas editar os seus dados,
porém poderá consultar o de terceiros.. |
RN 7 |
RF 8 |
O usuário poderá cadastrar, editar, e consultar suas receitas, porém
exclusão não irá deletar a receita da base de dados, apenas desativá-la. |
RN 8 |
RF 9 |
O usuário poderá fazer a busca por mais favoritadas |
-
Código | Requisito não Funcional Tecnológico |
---|
RNFT 01 | O sistema deve executar em ambiente Web. |
RNFT 02 | O banco de dados deve ser MariaDB |
RNFT 03 | O sistema deve ser responsivo em diferentes tamanhos de tela. |
Logotipo
Tecnologias a serem Utilizadas
PHP
- Versão: 5.6
MariaDB
- Versão: 10.2.8
HTML
- Versão: 5
CSS
- Versão: 3
Bootstrap
- Versão: 4
Javascript
- Versão: 1.8.5
Eclipse Oxygen
- Versão: 4.7.0
AngularJS
- Versão: 1.6.0
Referências