Pantufood: mudanças entre as edições
(→Layout) |
|||
(20 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 83: | Linha 83: | ||
<tr><th>id_receita</th><td>id_receita</td><td>tinytext</td><td>PK</td><td>FK</td><td>Not Null</td><td>-</td>-</tr> | <tr><th>id_receita</th><td>id_receita</td><td>tinytext</td><td>PK</td><td>FK</td><td>Not Null</td><td>-</td>-</tr> | ||
<tr><th>instrucao</th><td>instrucao</td><td>tinytext</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>instrucao</th><td>instrucao</td><td>tinytext</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th> | <tr><th>Instricão Tipo</th><td>instrucao_tipo</td><td>enum('titulo', 'instrucao')</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | ||
</table> | </table> | ||
Linha 96: | Linha 96: | ||
<tr><th>porcoes</th><td>porcoes</td><td>int(3)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>porcoes</th><td>porcoes</td><td>int(3)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>favoritos</th><td>favoritos</td><td>int(11)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>favoritos</th><td>favoritos</td><td>int(11)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>id_categoria</th><td>id_categorias</td><td>int(11)</td><td> | <tr><th>id_categoria</th><td>id_categorias</td><td>int(11)</td><td>-</td><td>FK</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>quantidade_ingredientes</th><td>quantidade_ingredientes</td><td>int(3)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>quantidade_ingredientes</th><td>quantidade_ingredientes</td><td>int(3)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>Autor</th><td>autor</td><td>int(11)</td><td>-</td><td>FK</td><td>-</td><td>-</td></tr> | |||
<tr><th>Visitado</th><td>visitado</td><td>timestamp</td><td>-</td><td>-</td><td>Not Null</td><td>CURRENT_TIMESTAMP</td></tr> | |||
</table> | </table> | ||
Linha 133: | Linha 134: | ||
<tr><th>nome</th><td>nome</td><td>varchar(64)</td><td>-</td><td>-</td><td>Not Null, não pode ter número</td><td>-</td></tr> | <tr><th>nome</th><td>nome</td><td>varchar(64)</td><td>-</td><td>-</td><td>Not Null, não pode ter número</td><td>-</td></tr> | ||
<tr><th>opcional</th><td>opcional</td><td>tinyint(1)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>opcional</th><td>opcional</td><td>tinyint(1)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>Autor</th><td>opcional</td><td>int(11)</td><td>-</td><td>-</td><td>-</td><td>Default 3</td></tr> | |||
<tr><th>Status</th><td>estatus</td><td>tinyint(1)</td><td>-</td><td>-</td><td>-</td><td>Default 1</td></tr> | |||
</table> | </table> | ||
Linha 144: | Linha 147: | ||
<tr><th>login</th><td>login</td><td>varchar(60)</td><td>-</td><td>-</td><td>Not Null, login único</td><td>-</td></tr> | <tr><th>login</th><td>login</td><td>varchar(60)</td><td>-</td><td>-</td><td>Not Null, login único</td><td>-</td></tr> | ||
<tr><th>senha</th><td>senha</td><td>varchar(32)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>senha</th><td>senha</td><td>varchar(32)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>Tipo Usuario</th><td>profile</td><td>int(1)</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
<tr><th>email</th><td>email</td><td>varchar(100)</td><td>-</td><td>-</td><td>Not Null, email único</td><td>-</td></tr> | <tr><th>email</th><td>email</td><td>varchar(100)</td><td>-</td><td>-</td><td>Not Null, email único</td><td>-</td></tr> | ||
<tr><th>status</th><td>status</td><td>enum('ATIVO', 'INATIVO')</td><td>-</td><td>-</td><td>-</td><td>ATIVO</td></tr> | |||
<tr><th>status</th><td>status</td><td>enum</td><td>-</td><td>-</td><td>-</td><td> | |||
<tr><th>created</th><td>created</td><td>date</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>created</th><td>created</td><td>date</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>Imagem</th><td>image</td><td>varchar(100)</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
<tr><th>Descrição</th><td>description</td><td>text</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
</table> | </table> | ||
Linha 181: | Linha 187: | ||
==Lista de Requisitos== | ==Lista de Requisitos== | ||
<table border="1" cellpadding="2"> | <table border="1" cellpadding="2"> | ||
<tr><th>Código</th><th>Requisito Funcional</th> | <tr><th>Código</th><th>Requisito Funcional</th></tr> | ||
<tr><td>RF 01</td><td>O sistema deve permitir a busca por receitas culinárias a partir de | <tr><td>RF 01</td><td>O sistema deve permitir a busca por receitas culinárias a partir de | ||
Linha 193: | Linha 199: | ||
<tr><td>RF 07</td><td>O sistema deve permitir realizar cadastro, desativação, consulta e edição de usuário.</td></tr> | <tr><td>RF 07</td><td>O sistema deve permitir realizar cadastro, desativação, consulta e edição de usuário.</td></tr> | ||
<tr><td>RF 08</td><td>O sistema deve permitir realizar cadastro, solicitação da exclusão, consulta e edição das receitas.</td></tr> | <tr><td>RF 08</td><td>O sistema deve permitir realizar cadastro, solicitação da exclusão, consulta e edição das receitas.</td></tr> | ||
<tr><td>RF 09</td><td | <tr><td>RF 09</td><td>O sistema deve permitir o cadastro de Tags.</td></tr> | ||
<tr><td>RF 10</td><td>O sistema deve permitir a edição da maneira que as receitas são consultadas.</td></tr> | |||
<tr><td>RF 11</td><td>O sistema deve permitir o cadastro, edição, consulta e exclusão de comentários.</td></tr> | |||
</table> | </table> | ||
<caption>'''-'''</caption> | <caption>'''-'''</caption> | ||
<table border="1" cellpadding="2"> | <table border="1" cellpadding="2"> | ||
<tr><th>Código</th><th>Requisito Funcional</th><th>Regras de Negócio</th> | <tr><th>Código</th><th>Requisito Funcional</th><th>Regras de Negócio</th><tr> | ||
<tr> | <tr> | ||
Linha 228: | Linha 237: | ||
<td>RN 5</td> | <td>RN 5</td> | ||
<td>RF 6</td> | <td>RF 6</td> | ||
<td | <td>Quando o usuário voltar para a tela de busca, esta não estará preenchida</td></tr> | ||
<tr> | <tr> | ||
<td>RN 6</td> | <td>RN 6</td> | ||
Linha 244: | Linha 251: | ||
<td>RN 8</td> | <td>RN 8</td> | ||
<td>RF 9</td> | <td>RF 9</td> | ||
<td>O cadastro de tags será feito dentro do cadastro de ingredientes( para o admin )</td></tr> | |||
<tr> | |||
<td>RN 9</td> | |||
<td>RF 10</td> | |||
<td>O usuário poderá fazer a busca por mais favoritadas</td></tr> | |||
<tr> | |||
<td>RN 10</td> | |||
<td>RF 11</td> | |||
<td>O usuário poderá fazer a busca por mais favoritadas</td></tr> | <td>O usuário poderá fazer a busca por mais favoritadas</td></tr> | ||
Linha 282: | Linha 297: | ||
[https://angularjs.org/ AngularJS] | [https://angularjs.org/ AngularJS] | ||
- Versão: 1.6.0 | - Versão: 1.6.0 | ||
==EAP== | |||
[https://docs.google.com/spreadsheets/d/1HuHjeIxs5tPDiDwaqd54nl03Vp-celP0hRYmhzGGZtk/edit?usp=sharing EAP] | |||
==Layout== | |||
[http://wiki.foz.ifpr.edu.br/wiki/index.php/Layout_telas Layout de Telas] | |||
==Referências== | ==Referências== |
Edição atual tal como às 13h06min de 27 de novembro de 2017
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
-
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 | - | - | - | - |
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 | - | - | - | - |
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') | - | - | - | - |
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 |
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) | - | - | - | - |
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 | - |
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 |
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 | - |
Tipo Usuario | profile | int(1) | - | - | - | - |
varchar(100) | - | - | Not Null, email único | - | ||
status | status | enum('ATIVO', 'INATIVO') | - | - | - | ATIVO |
created | created | date | - | - | Not Null | - |
Imagem | image | varchar(100) | - | - | - | - |
Descrição | description | text | - | - | - | - |
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 | - |
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 o cadastro de Tags. |
RF 10 | O sistema deve permitir a edição da maneira que as receitas são consultadas. |
RF 11 | O sistema deve permitir o cadastro, edição, consulta e exclusão de comentários. |
-
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, esta não estará preenchida |
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 cadastro de tags será feito dentro do cadastro de ingredientes( para o admin ) |
RN 9 | RF 10 | O usuário poderá fazer a busca por mais favoritadas |
RN 10 | RF 11 | 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
EAP
Layout
Referências