Skip to content

💻 O servidor de um aplicativo de barbeirxs feito com Typescript, NodeJS, Express, typeORM, postgres, redis e mongodb

License

Notifications You must be signed in to change notification settings

whateverwillian/go-barber-server

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

GoBarber Server

Backend do aplicativo Go Barber feito com nodeJS e TypeScript

Reportar um Bug · Pedir uma Feature

📌 Referência

🚀 Sobre o projeto

Esse é o servidor do aplicativo Go Barber. A idéia do aplicativo é auxiliar na vida dos barbeiros facilitando a parte de gerenciar os serviços. O aplicativo mantém uma agenda e nela usuários podem marcar seus cortes de cabelo, mantendo uma lista dos próximos usuários à serem atendidos e uma disponibilidade automática.

Tecnologias utilizadas

Nesse aplicativo foram utilizadas as seguintes tecnologias

🌈 Getting started

Para utilizar o projeto localmente basta seguir os seguintes passos.

Pré-requisitos

Precisamos das seguintes ferramentas.

  • npm
  • Docker

Instalação

  1. Clone o repositório
git clone https://github.com/whateverwillian/go-barber-server
  1. instale as dependências do projeto
npm install
  1. Crie os bancos de dados com Docker
  • postgres
docker run -d --name postgres -e POSTGRESQL_PASSWORD=senha -e POSTGRESQL_USERNAME=postgres -e POSTGRESQL_DATABASE=postgres -p 5432:5432 bitnami/postgresql:latest
  • mongoDB
docker run -d --name mongodb -e MONGODB_USERNAME=mongo -e MONGODB_PASSWORD=senha -e MONGODB_DATABASE=mongo -p 27017:17017 bitnami/mongodb:latest
  • Redis
docker run -d --name redis -e REDIS_PASSWORD=senha -p 6379:6379 bitnami/redis:latest

No caso do redis precisamos colocar as variáveis no arquivo .env na raíz do projeto

REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASS=senha
  1. Configure a conexão com os bancos no arquivo ormconfig.json
[
  {
    "name": "default",
    "type": "postgres",
    "host": "localhost",
    "port": 5432,
    "username": "postgres",
    "password": "senha",
    "database": "postgres",
    "entities": [
      "./src/modules/**/infra/typeorm/entities/*.ts"
    ],
    "migrations": [
      "./src/shared/infra/typeorm/migrations/*.ts"
    ],
    "cli": {
      "migrationsDir": "./src/shared/infra/typeorm/migrations"
    }
  },
  {
    "name": "mongo",
    "type": "mongodb",
    "host": "localhost",
    "port": 27017,
    "database": "mongo",
    "username": "mongo",
    "password": "senha",
    "useUnifiedTopology": true,
    "entities": [
      "./src/modules/**/infra/typeorm/schemas/*.ts"
    ]
  }
]

🔥 Rotas da aplicação

  • Users
POST users - criar um usuário
PATCH users/avatar - atualizar o avatar
  • Profile
GET profiles - mostra seu perfil
PUT profiles/update - atualiza informações do perfil
  • Password
POST passwords/forgot - Esqueci minha senha
POST passwords/reset - Insere uma nova senha
  • Sessions
POST sessions - Faz login
  • Providers
GET providers - Lista os provedores de serviço
GET providers/:provider_id/day-availability - Pega a disponibilidade do provider pra um dia
GET providers/:provider_id/month-availability - Pega a disponibilidade do provider para o mês
  • Appointments
POST appointments - Cria um agendamento
GET appointments/me - Caso você seja um provedor, pega seus serviços agendados

🐛 Como contribuir?

Contribuir é o que faz a comunidade open source um lugar tão incrível para aprender, inspirar e criar. Qualquer contribuição é apreciada.

  1. Dê um fork no projeto
  2. Crie uma nova Branch (git checkout -b feature/nova-feature)
  3. Dê um commit nas mudanças (git commit -m 'Adicionei uma feature')
  4. Dê um push pra Branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

📕 Licença

Distribuído sob licença MIT.

😍 Contatos

Willian tavares - https://www.linkedin.com/in/whateverwill - [email protected]

Project Link: https://github.com/whateverwillian/go-barber-server

About

💻 O servidor de um aplicativo de barbeirxs feito com Typescript, NodeJS, Express, typeORM, postgres, redis e mongodb

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published