O projeto PetRide é uma API REST que permite que tutores de pets ou ONGs possam se cadastrar e realizar buscas por motoristas que oferecem ajuda no transporte solidário de animais.
A interface é um CRUD completo integrado com um banco de dados, onde é possível listar os motoristas cadastrados na base de dados; cadastrar novos motoristas; atualizar dados; visualizar horários, dias disponíveis, bairros onde o motorista se propõe a transportar, e se o motorista está ativo ou inativo no Banco de Dados.
E Como funciona?
O tutor ou a ONG deve fazer o login no sistema onde será gerado um TOKEN que viabilizará acessar as rotas do banco de dados. Caso o TOKEN não seja igual, o usuário receberá uma mensagem de erro por ausência da mesma, ou por não conferir com a que está rgistrada pelo sistema.
- Node.Js - versão 12.18.3;
- Gerenciador de pacotes Node.Js npm - versão 6.14.6;
- Dependências Node.Js:
- Express - versão 4.17.1;
- Body-parser - versão 1.19.0;
- Mongoose - versão 5.10.17;
- Dotenv-safe - versão 8.2.0;
- Jsonwebtoken - versão 8.5.1;
- Bcrypt - versão 5.0.0;
- Nodemon - versão 2.0.6;
- MongoDB;
- MongoDB Atlas;
- Git;
- Visual Studio Code;
- Postman;
- Heroku;
-
Abra o aplicativo POSTMAN;
-
Teste as rotas usando este endereço na URL do Postman: https://app-petride.herokuapp.com/
-
As rotas/endpoints só estarão disponiveis após o cadastro do tutor e registro de uma senha de acesso. Para isso deve-se usar a URL https://app-petride.herokuapp.com/tutores no Postman cadastrar o tutor, clicando em body e posteriormente em raw, para trocar a combobox text para JSON e apertar Send.
-
Após cadastro, o tutor deve fazer login através da URL https://app-petride.herokuapp.com/tutores/login e copiar o TOKEN gerado como result do Postman após o envio da requisição. Conforme imagem abaixo:
- O TOKEN é o que dará permissão para acessar os endpoints dos motoristas, para isso deve-se criar um header chamado "Authorization" e passar como valor "Bearer + TOKEN copiado". Conforme imagem abaixo:
-
Clone o projeto através do comando:
$git clone https://github.com/Audry-prog/projeto-final-backend-reprograma.git
-
Inicialize o package.json com todas as configurações do projeto através do comando:
$npm install
-
Inicialize o servidor do projeto com o comando:
$npm run dev
-
Renomeie o arquivo
.env.exemple
para.env
e crie as variáveis de ambiente. -
Para criar a variável SECRET do arquivo
.env
, gere uma chave pública RSA atravé do site https://travistidwell.com/jsencrypt/demo/
├── src
│ ├── controllers
| | ├── motoristasController.js
| | ├── tutoresController.js
│ ├── models
| | ├── motoristas.js
| | ├── tutores.js
│ ├── routes
│ | ├── index.js
| | ├── index.js
│ | ├── motoristasRoute.js
| | ├── tutoresRoute.js
| ├── app.js
├── .env.example
├── package.json
├── server.js
Método HTTP | Endpoint | Descrição |
---|---|---|
POST | /motoristas |
Cria um novo motorista |
GET | / |
Retorna todos os motoristas por bairro |
GET | /motoristas/motoristas |
Retorna todos os motoristas |
GET | /motoristas/:id |
Retorna um motorista específico por id |
GET | /motoristas/cidade |
Retorna todos os motoristas por cidade |
GET | /motoristas/bairros |
Retorna todos os motoristas ativos |
GET | /motoristas/ativos |
Retorna todos os motoristas ativos |
GET | /motoristas/cidade/ativos |
Retorna todos os motoristas ativos por cidade |
GET | /motoristas/horarios |
Retorna todos os motoristas por horário |
PUT | /motoristas/:id |
Altera informações de um motorista |
DELET | /motoristas/:id |
Remove um motorista específico |
Método HTTP | Endpoint | Descrição |
---|---|---|
POST | /tutores |
Cria um novo tutor no Banco de Dados |
POST | /tutores/login |
Autoriza o acesso ao Banco de Dados |
GET | /tutores |
Retorna todos os tutores do Banco de Dados |
DELET | /tutores/:id |
Remove o cadastro de um tutor específico |
| POST | /tutores
| Cria um novo tutor no Banco |
| GET | /motoristas/cidade
| Retorna todos os motoristas por cidade |
| GET | /motoristas/ativos
| Retorna todos os motoristas ativos |
| GET | /motoristas/cidade/ativos
| Retorna todos os motoristas ativos por cidade |
| GET | /motoristas/horarios
| Retorna todos os motoristas por horário |
| POST | /motoristas
| Cria um novo motorista |
A ideia para a PetRide é que no futuro o tutor possa solicitar viagem ao motorista cadastrado e a API tenha suas rotas integradas com geolocalização, e possa fazer o pagamento da taxa solidária da viagem ao motorista.
Outra implementação que se pretende no futuro é desenvolver as interfaces Front-end de comunicação com o código.
Caso queira contribuir com meu projeto, será totalmente bem-vindo!!!