Code Monkey home page Code Monkey logo

gobarber-api's Introduction

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 🧑🏽‍🚀

gobarber-api's People

Contributors

antonylemos avatar dependabot[bot] 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.