Skip to content

Esse projeto consiste em uma api para uma agência de viagens de ônibus, mostrando todo o processo para efetuar a compra de uma passagem, desde a criação do usuário até a escolha de um destino para viajar. A aplicação faz integração com a api maps do google, onde calcula a duração da viagem, distancia, data/horário de chegada, entre outras infos.

Notifications You must be signed in to change notification settings

bastosmatheus/api-agency-travel

Repository files navigation

api-agency-travel 🚌

Descrição 📜

Esse projeto consiste em uma api para uma agência de viagens de ônibus, mostrando todo o processo para efetuar a compra de uma passagem, desde a criação do usuário até a escolha de um destino para viajar. A aplicação faz integração com a api maps do google, onde calcula a duração da viagem, distancia, data/horário de chegada, entre outras informações. As viagens podem ser visualizadas mesmo sem o cadastro, agora para comprar uma passagem, é necesário o login no sistema. A criação, edição ou exclusão das viagens e/ou rodoviárias é feita apenas por usuários administradores (validado através do token jwt). O projeto foi feito utilizando arquitetura limpa e também foram criados testes unitários com o vitest.

Tecnologias 🖥️

Este projeto está utilizando as seguintes tecnologias:

Endpoints 📌

A seguir estão as rotas da aplicação (a maioria só pode ser acessada com a validação do token jwt, além das rotas privadas, que apenas administradores podem acessar):

Usuário

  • GET /users: lista todos os usuários.
  • GET /users/:id: lista um usuário buscando pelo id.
  • GET /users/email?email=: lista um usuário buscando pelo email (query string).
  • GET /users/cpf?cpf=: lista um usuário buscando pelo cpf (query string).
  • GET /users/telephone?telephone=: lista um usuário buscando pelo telephone (query string).
  • POST /users: cria um novo usuário.
  • POST /users/login: faz o login.
  • PATCH /users/:id/name: atualiza o nome do usuário.
  • PATCH /users/:id/telephone: atualiza o telefone do usuário.
  • PATCH /users/:id/password: atualiza a senha do usuário.
  • DELETE /users/:id: deleta um usuário.

Rodoviária

  • GET /bus-stations: lista todas as rodoviárias.
  • GET /bus-stations/city?city=: lista as rodoviárias da cidade informada (query string).
  • GET /bus-stations/name?name=: lista uma rodoviária buscando pelo nome.
  • GET /bus-stations/:id=: lista uma rodoviária buscando pelo id.
  • POST /bus-stations: registra uma nova rodoviária.
  • DELETE /bus-stations: deleta uma rodoviária.

Viagem

  • GET /travels: lista todas as viagens.
  • GET /travels/origin?city=: lista as viagens com origem na cidade informada (query string).
  • GET /travels/destination?city=: lista as viagens com destino na cidade informada (query string).
  • GET /travels/date?date=&city=: lista as viagens com origem na cidade informada em determinada data (query string).
  • GET /travels/:id: lista uma viagem buscando pelo id.
  • POST /travels: cria uma nova viagem.
  • DELETE /travels/:id: deleta uma viagem.

Passageiro

  • GET /passengers: lista todos os passageiros.
  • GET /passengers/:id: lista um passageiro buscando pelo id.
  • POST /passengers: cria um novo passageiro.
  • DELETE /passengers/:id: deleta um passageiro.

Como rodar esse projeto? 💿

Pre-requisitos

Clonagem

# clone o repositório
$ git clone https://github.com/bastosmatheus/api-restaurant.git

Configuração do arquivo .env

# arquivo .env
DATABASE_URL=postgresql://username:password@localhost:5432/yourdatabase?schema=public
API_KEY=YOUR_API_GOOGLE_KEY
SECRET_KEY=YOUR_SECRET_KEY_JWT

Projeto

# depois de clonado, procure a pasta do projeto
$ cd api-agency-travel

# instale todas as dependências
$ npm install

# execute o projeto
$ npm run dev

About

Esse projeto consiste em uma api para uma agência de viagens de ônibus, mostrando todo o processo para efetuar a compra de uma passagem, desde a criação do usuário até a escolha de um destino para viajar. A aplicação faz integração com a api maps do google, onde calcula a duração da viagem, distancia, data/horário de chegada, entre outras infos.

Topics

Resources

Stars

Watchers

Forks