Giter VIP home page Giter VIP logo

adopet's Introduction

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

adopet's People

Contributors

tech-ton avatar

Stargazers

Daniela Poletto avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.