Skip to content

Projeto back-end desenvolvido em node.js no evento Alura Challenge Back-End 6

Notifications You must be signed in to change notification settings

tech-ton/adopet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Projeto back-end desenvolvido em node.js no evento Alura Challenge Back-End 6

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published