Skip to content

🐄 Serviço de software que entrega ao público vegano um método prático de consultar quais produtos/marcas são ou não veganos e o porquê.

License

Notifications You must be signed in to change notification settings

ricarthlima/rails-evegano

Repository files navigation

Home Time Entregas Banco de Dados ID Visual Socorro Referências e Links
Develop

É vegano?

Build Status Maintainability Test Coverage Inline docs

O É vegano? está disponível em https://evegano.herokuapp.com/
O Screencast do É vegano? está disponível em https://youtu.be/MjP3aQoCT28

logo

1. Objetivo

Esse repositório é destinado ao desenvolvimento de um SaaS (Software as a Service) para (num primeiro momento) os projetos das disciplinas de Engenharia de Software e Banco de Dados, do curso de Sistemas de Informação do Centro de Informática da Universidade Federal de Pernambuco.

A aplicação será um serviço de software que entrega ao público vegano um método prático de consultar quais produtos/marcas são ou não veganos e o porquê. Como adicional, pretendemos informar produtos/promoções perto do usuário.

2. Motivação

No Brasil, 14% da população tem uma alimentação vegetariana, segundo a Sociedade Vegetariana Brasileira. O mercado consumidor de alimentação plant-based (low or no meat) cresce no mundo todo.

A rigidez pela busca de produtos ou marcas livres de exploração e crueldade com os animais é uma realidade. Assim, o app "É vegano?" entra num mercado crescente com o objetivo de facilitar a vida de quem precisa sempre verificar informações confiáveis sobre a composição do produto e condutas das marcas. Além disso, temos como ambição ajudar o mundo a trilhar o caminho para um futuro mais ético, onde nenhum animal precise sofrer para nos alimentar, divertir, vestir ou quaisquer outros motivos.

3. Equipe One!

Para ler mais sobre a "Equipe One!" nesse projeto, visite: Time

Guilherme
Guilherme Prado
Analista de Testes
gps2@cin.ufpe.br
Monalisa
Monalisa Sousa
Analista de Requisitos
mmss@cin.ufpe.br
Ricarth
Ricarth Lima
Gerente de Projeto/Scrum Master
rrsl@cin.ufpe.br
Warley
Warley Souza
Product Owner
wss@cin.ufpe.br

Nós acreditamos que em uma equipe todos são desenvolvedores.

4. Do software e suas tecnologias

As principais tecnologias que pretendemos usar são:

OCR (Reconhecimento ótico de caracteres)

Caso o produto não esteja cadastrado no Banco de Dados, o usuário receberá a possibilidade de cadastrá-lo. Para isso ele poderá usar OCR para enviar para o sistema os componentes, e daí descobrir como se classifica o produto. Essa informação também servirá para alimentar o código de barras.

Outras tecnologias

Na futura implementação da sugestão de ofertas perto do cliente, usaremos também Crowndsensing e Geolocalização.

Nota: A leitura de código de barras perdeu impacto na entrega de valor, ao menos para o MVP, portanto foi retirada. Um maior foco será dado na leitura de OCR para que o sistema possa reconhecer códigos de barras.

5. Banco de Dados

As entregas relacionadas à cadeira IF976 - Banco de Dados serão feitas pelo Google Drive que pode ser acessado através desse link.
Status: Por conta do spin-off que demos no projeto, as etapas a seguir que estão tachadas foram refeitas.

Segue as etapas a serem seguidas:

  • Definição do minimundo
  • Modelagem lógica (Entidade-Relacionamento)
  • Modelagem conceitual (Modelo Relacional)
  • Modelagem física (SQL)
  • Povoamento

(Todas etapas passarão por testes de lógica, redundância e eficiência quando for cabido, e poderão sofrer alterações)

5.1 Descrição informal das entidades e dos relacionamentos

Obs.: Por conta do spin-off que demos no projeto, as seguintes informação ainda serão validadas.

Cada usuário possui um login, que é sua identificação única, e uma senha de acesso. Também possui um email, um nome (composto de primeiro nome e sobrenome), uma foto, um telefone, um cep e um país. Usuários também possuem a informação sobre como ele se vê entre as opções: "vegetariano", que compram produtos alimentícios livres de componentes de origem animal, "lactovegetariano" que são como os vegetarianos porém eles consomem leite e derivados, o "ovolactovegetariano" que são como os lactovegetarianos mas consomem também ovo e derivados, e finalmente os "veganos" que são tão restritivos quanto os vegetarianos, mas também aplicam essa filosofia para produtos não-alimentícios, e levam em consideração a reputação e práticas das marcas que produzem o produto, e outros.

  • Usuários consultam produtos. Essa consulta guarda a data que foi realizada;
  • Usuários podem avaliar produto. Essa avaliação guarda a quantidade de estrelas dadas (INT 0-5), o comentário deixado e a data de realização;
  • Usuários podem avalair marcas da mesma forma.

Produtos possuem um código identificador único, um código de barras, um nome, uma imagem descritiva, uma descrição, e uma classificação ternária (sim, não, talvez) sobre se é vegano.

  • Todo produto possui também uma (e no máximo uma) marca.
  • Todo produto possui um ou mais componentes.
  • Todo produto possui um histórico de preços (esse que só existem por pertencerem a um produto) que registra o preço, a data do registro desse preço e as coordenadas geográficas de onde esse preço foi registrado.

Marcas possuem um código identificador único, nome, lista de nomes alternativos, uma breve descrição, e sua classificação sobre se ela é vegana ou não, diferente do dos produtos, ela é binária.

  • Uma marca pode conter outra marca, e isso determina a classificação como vegana.

Componentes possuem um código identificador único, código europeu, código INS, nome, lista de nomes alternativos, uma categoria, uma descrição e uma classificação binária sobre se é vegano ou não.

6. Next Steps

6.1 Desenvolvimento:

  • Histórias do usuários iniciais
  • Protótipo Low-Fi iniciais
  • Início do desenvolvimento
  • Criação dos testes
  • Protótipo Hi-Fi
  • Aprofundamento na validação com os usuários, via protótipo e MVP.

6.2 Ideias:

  • Funcionar offline;
  • Sugestão de receitas veganas;
  • Sugestão de bons hábitos veganos;
  • Feed de notícias sobre marcas;
  • Maior interação entre os usuários;