Skip to content

antonylemos/gobarber-api

Repository files navigation

GoBarber

🔖 Sumário

🏷️ Sobre

O GoBarber é uma aplicação feita para o gerenciamento de serviços entre barbeiros e clientes. Nele é possível se registrar e marcar um horário/serviço com seu barbeiro e/ou se tornar um prestador desses serviços.

Esta é uma das aplicações que compõem todo o sistema GoBarber.

Para explorar as outras, acesse os links a seguir:

🚀 Tecnologias utilizadas

As principais tecnologias utilizadas para a construção dessa API foram:

📦 Como baixar e executar?

Antes de baixar e executar o projeto, é necessário ter o Node.js já instalado e, em seguida, instalar as seguintes ferramentas:

⬇️ Baixando o projeto

Abra o terminal do seu sistema operacional e execute os seguintes comandos:

  # Clonar o repositório
  git clone https://github.com/antonylemos/gobarber-api.git

  # Entrar no diretório
  cd gobarber-api

  # Instalar as dependências
  yarn install

🌎 Preparando o ambiente

Utilizando o Docker, iremos baixar as imagens dos bancos de dados necessários para a execução da API:

  # Baixar o PostgreSQL
  docker run --name gostack_postgres -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres

  # Baixar o MongoDB
  docker run --name mongodb -p 27017:27017 -d -t mongo

  # Baixar o Redis
  docker run --name redis -p 6379:6379 -d -t redis:alpine

Para saber se os bancos de dados estão em execução, rode o seguinte comando:

  docker ps

Caso não estejam, execute o seguinte comando:

  docker start gostack_postgres mongodb redis

Observação: caso queira interromper a execução, substitua start por stop.

🎲 Bancos de dados e tabelas

Para ajudar na visualização dos dados que estão sendo salvos nos bancos de dados, você poderá utilizar as seguintes ferramentas:

Com essas ferramentas, também é possível criar os databases que serão utilizados na aplicação. Certifique-se de criar os seguintes databases antes de executar a aplicação:

  • gostack_gobarber (PostgreSQL)
  • gobarber (MongoDB)

Para mais informações, verifique o arquivo ormconfig.json.

🌐 Variáveis de ambiente

Na raíz do projeto você encontrará o arquivo .env.example. A partir dele, crie um outro arquivo chamado .env utilizando a mesma estutura.

🏃 Executando a API

Com os bancos de dados em execução e estando no diretório da API, execute os seguintes comandos:

  # Criar as tabelas no PostgreSQL
  yarn typeorm migration:run

  # Executar o servidor
  yarn dev:server

📌 Rotas da API

Para testar as rotas, você poderá utilizar o Insomnia. O workspace completo dessa API está disponível para uso, basta clicar no botão abaixo:

Run in Insomnia

Caso deseje utilizar outra forma para realizar as requisições, as rotas disponíveis são:

⚠️ Atenção! O token necessário para realizar grande parte das requisições é gerado a partir da rota POST /sessions e deve ser enviado via Bearer nas referidas rotas. No Insomnia, após realizar a autenticação, o token é automaticamente compartilhado com as demais rotas.

User

  • POST /users: A rota deve receber os campos name, email e password no corpo da requisição para que se possa cadastrar um novo usuário.

  • GET /profile: A rota deve receber o token do usuário usuário autenticado e retorna as informações desse usuário.

  • PATCH /users/avatar: A rota deve receber o token do usuário autenticado e um arquivo de imagem para que se possa atualizar o avatar do usuário.

  • PUT /profile: A rota deve receber o token do usuário autenticado e pode receber os campos name, email, old_password, password e password_confirmation no corpo da requisição para que se possa atualizar os dados do usuário em questão.

    Sessions
  • POST /sessions: A rota deve receber os campos email e password no corpo da requisição para que se possa autenticar o usuário usuário.

    Password
  • POST /password/forgot: A rota deve receber o campo email no corpo da requisição. Isso fará com que um email seja enviado para que seja feita a recuperação da senha.

  • POST /password/reset: A rota deve receber os campos password, password_confirmation e token no corpo da requisição para que se possa alterar a senha do usuário.

Appointments

  • POST /appointments: A rota deve receber o token do usuário autenticado e os campos provider_id e date no corpo da requisição para que se possa cadastrar um novo agendamento.

  • POST /appointments/me: A rota deve receber o token do usuário usuário autenticado e retorna os agendamentos que foram marcados com ele.

    Providers
  • GET /providers: A rota deve receber o token do usuário usuário autenticado e retorna os provedores cadastrados no sistema.

  • POST /providers/:provider_id/month-availability: A rota deve receber o token do usuário usuário autenticado, o campo provider_id como parâmetro da rota e os campos month e year como query da requisição e retorna os dias disponíveis no mês informado.

  • POST /providers/:provider_id/day-availability: A rota deve receber o token do usuário usuário autenticado, o campo provider_id como parâmetro da rota e os campos day, month e year como query da requisição e retorna os horários disponíveis no dia informado.


Desenvolvido com 💜 por Antony Lemos 🧑🏽‍🚀

About

💇 api rest para agendamento de serviços de barbeirxs feita com node.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •