Pantufood: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
 
(84 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
=Pantufood=
=Pantufood=
 
*[[Histórico de desenvolvimento]]
==Equipe==
==Equipe==
;Professor orientador:  
;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 uma solução em ambiente WEB que auxilie os usuários a encontrar e cadastrar receitas, porém sua principal funcionalidade é que as receitas serão encontradas a partir dos ingredientes que forem colocados na busca.


==Detalhes==
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.


O software Pantufood tem como sua principal função a busca de receitas a partir de ingredientes que possui no momento, e assim foi a implementação do projeto do aplicativo de Android do PantuFood, porém a base de dados era apenas consultada e agora em ambiente WEB pretendemos preencher o vazio do cadastro de informações e de controle de usuários, algo que não existia no aplicativo.
==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.


==Público Alvo==
==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==
==Principais Funcionalidades==
*Consulta de receitas a partir de ingredientes.
*Consulta de receitas a partir de ingredientes.
*Cadastro, edição, e solicitação de exclusão de receitas.
*Cadastro, edição, e solicitação de exclusão de receitas.
*Cadastro, edição, consulta e desativação de usuário.
*Cadastro, edição, consulta e desativação de usuário.
*Log in a partir da conta criada, ou do google, ou do facebook.
*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==
<table border="1" cellpadding="2">
<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>id</th><td>id</td><td>int(11)</td><td>PK</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>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 border="1" cellpadding="2">
<caption>'''Preparo'''</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>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>Instricão Tipo</th><td>instrucao_tipo</td><td>enum('titulo', 'instrucao')</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>
 
</table>
 
<table border="1" cellpadding="2">
<caption>'''Receitas'''</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>nome</th><td>nome</td><td>tinytext</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr>
<tr><th>tempo</th><td>tempo</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>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>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 border="1" cellpadding="2">
<caption>'''Ingredientes'''</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>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_tag</th><td>ingrediente_tag</td><td>int(11)</td><td>-</td><td>FK</td><td>-</td><td>-</td></tr>
<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>
 
 
</table>
 
<table border="1" cellpadding="2">
<caption>'''Ingredientes_tags'''</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>ingrediente_id</th><td>ingrediente_id</td><td>int(11)</td><td>PK</td><td>FK</td><td>Not Null</td><td>-</td></tr>
<tr><th>tag_id</th><td>tag_id</td><td>int(11)</td><td>PK</td><td>-</td><td>Not Null</td><td>-</td></tr>
 
</table>
 
<table border="1" cellpadding="2">
<caption>'''Tags'''</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>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>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 border="1" cellpadding="2">
<caption>'''User'''</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>name</th><td>name</td><td>varchar(100)</td><td>-</td><td>-</td><td>não pode conter números</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>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>status</th><td>status</td><td>enum('ATIVO', 'INATIVO')</td><td>-</td><td>-</td><td>-</td><td>ATIVO</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 border="1" cellpadding="2">
<caption>'''profile_users'''</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>user_id</th><td>user_id</td><td>int(11)</td><td>PK</td><td>FK</td><td>Not Null</td><td>-</td></tr>
<tr><th>profile_id</th><td>profile_id</td><td>int(11)</td><td>PK</td><td>FK</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>deleted</th><td>deleted</td><td>int(1)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr>
 
</table>
 
<table border="1" cellpadding="2">
<caption>'''Profiles'''</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>name</th><td>name</td><td>varchar(60)</td><td>-</td><td>-</td><td>não pode conter números</td><td>-</td></tr>
<tr><th>description</th><td>description</td><td>text</td><td>-</td><td>-</td><td>-</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>modified</th><td>modified</td><td>date</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr>
<tr><th>deleted</th><td>deleted</td><td>int(1)</td><td>-</td><td>-</td><td>Not Null</td><td>-</td></tr>
 
</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==


*PHP
[http://wiki.foz.ifpr.edu.br/wiki/index.php/Layout_telas Layout de Telas]
*MariaDB
*HTML5
*CSS3
*BOOTSTRAP
*JavaScript


==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

-


Categorias
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
linklinkvarchar(200)---
Nomenometinytext----
--
Comentario
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
Autorautorint(11)-FK-
Id respostaresponta_idint(11)-FK--
Comentáriocomentariotext----
Datadataint---Quando atualizar, valor é agora
ID Receitareceita_idint----
-
Preparo
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
id_receitaid_receitatinytextPKFKNot Null-
instrucaoinstrucaotinytext--Not Null-
Instricão Tipoinstrucao_tipoenum('titulo', 'instrucao')----
Receitas
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
nomenometinytext--Not Null-
tempotempoint(3)--Not Null-
porcoesporcoesint(3)--Not Null-
favoritosfavoritosint(11)--Not Null-
id_categoriaid_categoriasint(11)-FKNot Null-
quantidade_ingredientesquantidade_ingredientesint(3)--Not Null-
Autorautorint(11)-FK--
Visitadovisitadotimestamp--Not NullCURRENT_TIMESTAMP


Ingredientes
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
id_receitaid_receitaint(11)PKFKNot Null-
ingredienteingredientetinytext--Not Null-
ingrediente_tagingrediente_tagint(11)-FK--
ingrediente_tipoingrediente_tipoenum---enum('titulo', 'ingrediente')
ordemordemint(3)----
Quantidadequantidadeint(11)----
Ingredientes_tags
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ingrediente_idingrediente_idint(11)PKFKNot Null-
tag_idtag_idint(11)PK-Not Null-
Tags
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
nomenomevarchar(64)--Not Null, não pode ter número-
opcionalopcionaltinyint(1)--Not Null-
Autoropcionalint(11)---Default 3
Statusestatustinyint(1)---Default 1
User
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
namenamevarchar(100)--não pode conter números-
loginloginvarchar(60)--Not Null, login único-
senhasenhavarchar(32)--Not Null-
Tipo Usuarioprofileint(1)----
emailemailvarchar(100)--Not Null, email único-
statusstatusenum('ATIVO', 'INATIVO')---ATIVO
createdcreateddate--Not Null-
Imagemimagevarchar(100)----
Descriçãodescriptiontext----
profile_users
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
user_iduser_idint(11)PKFKNot Null-
profile_idprofile_idint(11)PKFKNot Null-
createdcreateddate--Not Null-
deleteddeletedint(1)--Not Null-
Profiles
Campo LógicoCampo FísicoTipoPKFKRestriçõesObservações
ididint(11)PK-Not Null-
namenamevarchar(60)--não pode conter números-
descriptiondescriptiontext----
createdcreateddate--Not Null-
modifiedmodifieddate--Not Null-
deleteddeletedint(1)--Not Null-

Caso de Uso

Lista de Requisitos

CódigoRequisito Funcional
RF 01O sistema deve permitir a busca por receitas culinárias a partir de ingredientes e ou categorias.
RF 02O sistema deve permitir a seleção de dois ou mais ingredientes para uma busca.
RF 03O sistema deve permitir a seleção de uma ou mais categorias para uma busca.
RF 04O sistema deve permitir a troca de ingredientes enquanto o usuário não acessar a busca.
RF 05O sistema deve permitir a troca de categorias enquanto o usuário não acessar a busca.
RF 06O sistema deve permitir a volta para o formulário de pesquisa a qualquer momento.
RF 07O sistema deve permitir realizar cadastro, desativação, consulta e edição de usuário.
RF 08O sistema deve permitir realizar cadastro, solicitação da exclusão, consulta e edição das receitas.
RF 09O sistema deve permitir o cadastro de Tags.
RF 10O sistema deve permitir a edição da maneira que as receitas são consultadas.
RF 11O sistema deve permitir o cadastro, edição, consulta e exclusão de comentários.

-

CódigoRequisito FuncionalRegras 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ódigoRequisito não Funcional Tecnológico
RNFT 01O sistema deve executar em ambiente Web.
RNFT 02O banco de dados deve ser MariaDB
RNFT 03O 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

EAP

Layout

Layout de Telas

Referências