Pantufood: mudanças entre as edições
Sem resumo de edição |
(→Layout) |
||
(75 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 2: | Linha 2: | ||
*[[Histórico de desenvolvimento]] | *[[Histórico de desenvolvimento]] | ||
==Equipe== | ==Equipe== | ||
; | ;Professores orientadores: | ||
*Estevan Brandt Braz Costa | *Estevan Brandt Braz Costa | ||
*Alcione Benacchio | *Alcione Benacchio | ||
Linha 10: | Linha 10: | ||
*Wagner dos Santos Backes | *Wagner dos Santos Backes | ||
==Objetivo== | ==Objetivo Geral== | ||
Desenvolver um | 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== | ==Público Alvo== | ||
Linha 33: | Linha 52: | ||
<table border="1" cellpadding="2"> | <table border="1" cellpadding="2"> | ||
<caption>'''Categorias'''</caption> | <caption>'''Categorias'''</caption> | ||
<tr><th>Campo Lógico</th><th>Campo Físico</th><th>Tipo</th><th>PK</th><th>FK</th><th>Restrições</th><th>Observações</th></tr> | |||
<tr><th>id</th><td>id</td><td>int(11)</td><td>PK</td><td>-</td><td>Not Null</td><td>-</td>-</tr> | |||
<tr><th>link</th><td>link</td><td>varchar(200)</td><td>-</td><td>-</td><td></td><td>-</td></tr> | |||
<tr><th>Nome</th><td>nome</td><td>tinytext</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
</table> | |||
<table border="1" cellpadding="2"> | |||
<caption>'''Comentario'''</caption> | |||
<tr><th>Campo Lógico</th><th>Campo Físico</th><th>Tipo</th><th>PK</th><th>FK</th><th>Restrições</th><th>Observações</th></tr> | <tr><th>Campo Lógico</th><th>Campo Físico</th><th>Tipo</th><th>PK</th><th>FK</th><th>Restrições</th><th>Observações</th></tr> | ||
<tr><th>id</th><td>id</td><td>int(11)</td><td>PK</td><td>-</td><td>Not Null</td><td>-</td>-</tr> | <tr><th>id</th><td>id</td><td>int(11)</td><td>PK</td><td>-</td><td>Not Null</td><td>-</td>-</tr> | ||
<tr><th> | <tr><th>Autor</th><td>autor</td><td>int(11)</td><td>-</td><td>FK</td><td></td><td>-</td></tr> | ||
<tr><th>Id resposta</th><td>responta_id</td><td>int(11)</td><td>-</td><td>FK</td><td>-</td><td>-</td></tr> | |||
<tr><th>Comentário</th><td>comentario</td><td>text</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
<tr><th>Data</th><td>data</td><td>int</td><td>-</td><td>-</td><td>-</td><td>Quando atualizar, valor é agora</td></tr> | |||
<tr><th>ID Receita</th><td>receita_id</td><td>int</td><td>-</td><td>-</td><td>-</td><td>-</td>-</tr> | |||
</table> | </table> | ||
Linha 47: | 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 60: | 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 73: | Linha 110: | ||
<tr><th>id_receita</th><td>id_receita</td><td>int(11)</td><td>PK</td><td>FK</td><td>Not Null</td><td>-</td></tr> | <tr><th>id_receita</th><td>id_receita</td><td>int(11)</td><td>PK</td><td>FK</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>ingrediente</th><td>ingrediente</td><td>tinytext</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | <tr><th>ingrediente</th><td>ingrediente</td><td>tinytext</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr> | ||
<tr><th>ingrediente_tipo</th><td>ingrediente_tipo</td><td>enum</td><td> | <tr><th>ingrediente_tag</th><td>ingrediente_tag</td><td>int(11)</td><td>-</td><td>FK</td><td>-</td><td>-</td></tr> | ||
<tr><th>ordem</th><td>ordem</td><td>int(3)</td><td>-</td><td>-</td><td>-</td><td> | <tr><th>ingrediente_tipo</th><td>ingrediente_tipo</td><td>enum</td><td>-</td><td>-</td><td>-</td><td>enum('titulo', 'ingrediente')</td></tr> | ||
<tr><th>ordem</th><td>ordem</td><td>int(3)</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
<tr><th>Quantidade</th><td>quantidade</td><td>int(11)</td><td>-</td><td>-</td><td>-</td><td>-</td></tr> | |||
Linha 95: | 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 106: | 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 138: | Linha 182: | ||
</table> | </table> | ||
== | ==Caso de Uso== | ||
[[Arquivo:FabinhoDigDinDuduzim200CarretaFuracaoWagnerUltravox8casodeuso1.png |180px]] | |||
==Lista de Requisitos== | |||
<table border="1" cellpadding="2"> | |||
<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 | |||
ingredientes e ou categorias.</td></tr> | |||
<tr><td>RF 02</td><td>O sistema deve permitir a seleção de dois ou mais ingredientes para uma | |||
busca.</td></tr> | |||
<tr><td>RF 03</td><td>O sistema deve permitir a seleção de uma ou mais categorias para uma busca.</td></tr> | |||
<tr><td>RF 04</td><td>O sistema deve permitir a troca de ingredientes enquanto o usuário não acessar a busca.</td></tr> | |||
<tr><td>RF 05</td><td>O sistema deve permitir a troca de categorias enquanto o usuário não acessar a busca.</td></tr> | |||
<tr><td>RF 06</td><td>O sistema deve permitir a volta para o formulário de pesquisa a qualquer momento.</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 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> | |||
<caption>'''-'''</caption> | |||
<table border="1" cellpadding="2"> | |||
<tr><th>Código</th><th>Requisito Funcional</th><th>Regras de Negócio</th><tr> | |||
<tr> | |||
<td>RN 1</td> | |||
<td>RF 1</td> | |||
<td>As respostas serão ordenadas pelo quanto os ingredientes da | |||
busca se parecem com os ingredientes dentro das receitas.</td></tr> | |||
<tr> | |||
<td>RN 1</td> | |||
<td>RF 2</td> | |||
<td>As receitas serão ordenadas por popularidade, e irá existir prioridade nas receitas saudáveis</td></tr> | |||
<tr> | |||
<td>RN 2</td> | |||
<td>RF 3</td> | |||
<td>Serão permitidos no mínimo um ingredientes e no máximo | |||
vinte.</td></tr> | |||
<tr> | |||
<td>RN 3</td> | |||
<td>RF 4</td> | |||
<td>Se nenhuma categoria for selecionada, será considerado que | |||
todas foram selecionadas.</td></tr> | |||
<tr> | |||
<td>RN 4</td> | |||
<td>RF 5</td> | |||
<td>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”.</td></tr> | |||
<tr> | |||
<td>RN 5</td> | |||
<td>RF 6</td> | |||
<td>Quando o usuário voltar para a tela de busca, esta não estará preenchida</td></tr> | |||
<tr> | |||
<td>RN 6</td> | |||
<td>RF 7</td> | |||
<td>Um usuário cadastrado poderá apenas editar os seus dados, | |||
porém poderá consultar o de terceiros..</td></tr> | |||
<tr> | |||
<td>RN 7</td> | |||
<td>RF 8</td> | |||
<td>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.</td></tr> | |||
<tr> | |||
<td>RN 8</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> | |||
</table> | |||
<caption>'''-'''</caption> | |||
<table border="1" cellpadding="2"> | |||
<tr><th>Código</th><th>Requisito não Funcional Tecnológico</th> | |||
<tr><td>RNFT 01</td><td>O sistema deve executar em ambiente Web.</td></tr> | |||
<tr><td>RNFT 02</td><td>O banco de dados deve ser MariaDB</td></tr> | |||
<tr><td>RNFT 03</td><td>O sistema deve ser responsivo em diferentes tamanhos de tela.</td></tr> | |||
</table> | |||
==Logotipo== | |||
==Tecnologias a serem Utilizadas== | ==Tecnologias a serem Utilizadas== | ||
[https://secure.php.net/downloads.php PHP] | |||
- Versão: 5.6 | |||
[https://mariadb.org/download/ MariaDB] | |||
- Versão: 10.2.8 | |||
HTML | |||
- Versão: 5 | |||
CSS | |||
- Versão: 3 | |||
[http://getbootstrap.com/ Bootstrap] | |||
- Versão: 4 | |||
[https://www.javascript.com/try Javascript] | |||
- Versão: 1.8.5 | |||
[https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R/eclipse-inst-linux64.tar.gz Eclipse Oxygen] | |||
- Versão: 4.7.0 | |||
[https://angularjs.org/ AngularJS] | |||
- 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