Skip to content

Latest commit

 

History

History
83 lines (62 loc) · 3.81 KB

readme.md

File metadata and controls

83 lines (62 loc) · 3.81 KB

diagrama adopet

Sobre

Após alguns testes com protótipos feitos pelo time de UX/UI de uma empresa, foi requisitada a primeira versão da Adopet, uma plataforma para conectar pessoas que desejam adotar animais de estimação e abrigos. A plataforma deve permitir ao usuário criar um perfil, visualizar os pets na fila de adoção. Por sua vez, os abrigos/ONGs podem criar um perfil para os pets e concretizar a adoção.

Visão Geral Back-end

Schema

O schema Adopet é usado para armazenar informações sobre pets e seus tutores, bem como as mensagens enviadas para os tutores de quem tenha interesse em adotar um determinado pet. O schema é composto por três tabelas: Pets, Tutores, Abrigos e Adocoes.

Tabela: Pets

A tabela Pets armazena informações sobre os pets registrados no sistema. Cada registro na tabela representa um pet e inclui os seguintes campos:

  • id: um identificador exclusivo para o pet (tipo: inteiro)
  • nome: o nome do pet (tipo: texto)
  • idade: a idade do pet (tipo: texto)
  • descricao: a descrição do pet (tipo: texto)
  • adotado: referencia se o pet foi adotado ou não (tipo: bool)
  • endereco: aonde o pet mora atualmente (tipo: texto)
  • foto: foto do pet (tipo: texto)
  • id_abrigo: o identificador do tutor do pet (tipo: inteiro)

Tabela: Tutores

A tabela Tutores armazena informações sobre os tutores registrados no sistema. Cada registro na tabela representa um tutor e inclui os seguintes campos:

  • id: um identificador exclusivo para o tutor (tipo: inteiro)
  • nome: o nome do tutor (tipo: texto)
  • email: o endereço de e-mail do tutor (tipo: texto)
  • senha: a senha do tutor (tipo: texto)
  • cidade: a cidade do tutor (tipo: texto)
  • telefone: o telefone do tutor (tipo: texto)
  • sobre: descrição do tutor (tipo: texto)
  • foto: foto do tutor (tipo: texto)

Tabela: Abrigo

A tabela Abrigo armazena informações sobre o abrigo onde o pet está. Cada registro na tabela inclui os seguintes campos:

  • id: um identificador exclusivo para o abrigo (tipo: inteiro)
  • nome: o nome da ong (tipo: texto)
  • id_tutor: id do responsavel pelo abrigo (tipo: inteiro)

Tabela: Adocoes

A tabela Adocoes armazena informações sobre o pet que foi adotado por um tutor. Cada registro na tabela inclui os seguintes campos:

  • id: um identificador exclusivo para a adoção (tipo: inteiro)
  • data: a data em que o pet foi adotado (tipo: data)
  • id_tutor: id de quem adotou o pet (tipo: inteiro)
  • id_pet: id do pet que o tutor adotou (tipo: inteiro)

Diagrama Relacional

diagrama adopet

Regras de negócio

  • Ao realizar uma adoção, o campo “adotado” é modificado para true, identificando assim que a adoção foi concretizada
  • Se o animal for adotado, não aparecer no filtro de busca
  • Somente a entidade Abrigo pode cancelar a adoção

Como funciona a API

  • A criação e listagem de Tutores e Abrigos é livre
  • A entidade tutor é usada para login na aplicação
  • Se um tutor for cadastrado em um abrigo, ele passa a ter privilegios de autorização personalizadas
  • Cada pet só é cadastrado se houver um abrigo
  • Somente o tutor dono do abrigo pode apagar a adoção do pet cadastrado em seu abrigo
  • Só quem está logado tem acesso a rota de adoções
  • É necessario usar o token de sessão para acessar as adoções ou apagar o registro de um Pet
  • O token de login expira em 2 minutos

Como baixar o projeto

  • git clone https://github.com/etn-43/adopet.git
  • cd adopet
  • coloque as variáves de ambiente e renomeie "exemplo.env" para ".env"
  • npm install
  • npx sequelize-cli db:seed:all (você precisa ter um database com o nome de adopet na sua máquina)

Funcionalidades Futuras

  • Integrar com o front-end
  • Realizar testes TDD

Desenvolvido por: Elivelton Firmino