victoriardspaiva / projetoLivre-Caramelo

Projeto final do bootcamp {reprograma} backend, criando CRUD de ONG's e abrigos de animais.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deploy on Heroku Database MongoDB Node version

um gato e uma cachorro abraçados em formato de coração

Projeto final do bootcamp {reprograma} backend, criando CRUD de ONG's e abrigos de animais.

📑 Índice


Problemática 😿

Grande número de animais abandonados na região metropolitana do Recife.

Solução 🐶

Voltado para animais - gatos e cachororos - em situação de vunerabilidade na região metropolitana do Recife procurando uma lar temporário ou uma adoção responsável. Terá uma base de dados de hosts que pode ser abrigos, ONGs ou pessoas que se disponibilizam para abrigar os animais até sua possivel adoção.

O público alvo:

  1. pessoas que encontram algum animal abandonado e gostariam entregar à uma local de acolhimento. 🏡
  2. pessoas que buscam por locais que tenham pets disponiveis para adoção. 🐈

🧱 Arquitetura


├───📂src/
│   ├───📂controllers/
│   │   ├───placesController.js
│   │   └───userController.js
│   ├───📂database/
│   │   └───configMongo.js
│   ├───📂helpers/
│   │   └───auth.js
│   ├───📂middlewares/
│   │   └───auth.js
│   ├───📂models/
│   │   ├───placesSchema.js
│   │   └───userSchema.js
│   ├───📂routes/
│   │   ├───placesRouter.js
│   │   └───userRouter.js
│   ├───app.js 
│   └───index.js
├───.env
├───.env.example
├───.gitignore
├───package-lock.json
├───package.json
├───Procfile
├───README.md
└───server.js

💻 Tecnologias


As seguintes ferramentas foram usadas na construção do projeto:

📌 Orientações


📎 Pré-requisitos:

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:

  • Git;
  • Node.js;
  • Para o banco de dados usaremos um não relacional - NoSQL - MongoDB, se você quiser criar seu db na nuvem, deve criar uma conta no Mongo Atlas, a partir disso é possivel da nuvem mesmo gerencia-lo ou também é possivel atráves do aplicativo desktop MongoCompass.
  • Além disto é bom ter um editor para trabalhar com o código como VSCode.

🎲 Rodando o Back End (servidor)

# Clone este repositório
$ git clone <https://github.com/victoriardspaiva/projetoLivre-Caramelo>

# Acesse a pasta do projeto no terminal/cmd
$ cd projetoLivre-Caramelo

# Instale as dependências
$ npm install ou npm i

# Execute o servidor
$ npm start

# O servidor inciará na porta:9090 - acesse <http://localhost:9090> 

🚀 Rotas, links e métodos


A ferramenta de suporte de criação das requisição usada foi o Postman, você pode usar a de sua preferência.

Variáveis de ambientes:

é possivel criar variáveis que sejam visiveis para todo o escopo do projeto, existem alguns beneficios um dele é não deixar o valor exposto, além de poder ser reutilizado sempre que necessário.

Para criar a variavel é necessário na collection > aba Variables preencha na coluna variable da tabela o nome da variavel URL e em initial value e current value colocar o valor http://localhost:9090

Na barra de URL endpoint, vamos preencher o nome da variavel entre dois cochetes {{URL}}.

Hosts:

Voce pode acessar a rota: localmente, sem ou com variavel de ambiente, ou pode acessar também -só as rotas get- consumindo pela aplicação. Obs.: {{URL}}/home/all ou https://projeto-caramelo.herokuapp.com/home/all.

Feature Método Rota
🏚️ Página inicial/ home GET {{URL}}/
🗂️ Listar todas os hosts disponiveis GET {{URL}}/all
🗃️ Listar hosts por filtros GET {{URL}}/home/search
  • ✔️ name
  • ✔️ id
  • ✔️ animal
  • ✔️ district
  • ✔️ host

Rotas privadas:

Para ter acesso as rotas privadas é necessário primeiramente criar registro de usuário, depois realizar o login, copiar o token de autenticação. Ir na aba de Authorization no Type escolher Bearer Token e no campo token colar o código que foi copiado.

Feature Método Rota
📋 Criar um cadastro para o host POST {{URL}}/home/create
📝 Atualizar dados cadastrais do host PUT {{URL}}/home/update
🗑️ Deletar um host DELETE {{URL}}/home/delete

Usuários

Feature Método Rota
🗂️ Listar todos usuários: GET {{URL}}/user/all
📂 Listar usuário por id: GET {{URL}}/user/id?
📋 Registrar usuários: POST {{URL}}/register
✅ Login de usuário: POST {{URL}}/user/login
📝 Atualizar dados cadastrais do usuário: PUT {{URL}}/user/update
❌ Deletar um usuários: DELETE {{URL}}/user/delete

Tratamento de erro

  • Pesquisa não encontrada
  • Só para gatos e cachorros
  • Retorno vazio

Implementações futuras

  • Exibir número disponivel de vagas;
  • Perfil de usuário:
    • Quero adotar
    • Quero resgatar
    • Quero ser cuidador
  • Cadastro de animais disponiveis;
  • Notificação de eventos e campanhas de adoção;
  • Veterinários parceiros.

assets/adocao.jpg

About

Projeto final do bootcamp {reprograma} backend, criando CRUD de ONG's e abrigos de animais.


Languages

Language:JavaScript 99.8%Language:Shell 0.2%