Skip to content

Projeto desenvolvido durantes as aulas do bootcamp 2020. Usamos várias ferramentas para o seu desenvolvimento.

Notifications You must be signed in to change notification settings

mauriani/GoBarber-backend

Repository files navigation

GoBarber - Backend

GoStack

🚀 Sobre o projeto

API GoBarber, ela foi desenvolvida durante toda a jornada do GoStack 11 onde aprendemos diversos conceitos e tecnologias como AWS, DTO ( Padrão de projeto), NodeJs, Typeormetc. O projeto é para Barbeiros e Cabeleireiros, o nosso público consegue acessar a aplicação e ver os agendamentos que foram marcados, consegue se autenticar, criar cadastro etc.

Aplicações

💻Funcionalidades

Nossas funcionalidades foram divididas entre requisitos funcionais, não funcionais e regras de negócio.

  • Recuperação de senha

    • Requisitos Funcionais
    [x] O usuário deve poder recuperar sua senha informando o seu e-mail;
    [x] O usuário deve receber um e-mail com instruções de recuperação de senha;
    [x] O usuário deve poder resertar a sua senha;
    • Requisitos não funcionais
    [x] Utilizar Mailtrap para testar envios em ambiente de desenvolvimento;
    [x] Utilizar Amazon SES para envios em produção;
    [x] O envio de e-mails deve acontecer em segundo plano (background job);
  • Regras de negócio

[x] link enviado por email para resertar senha, deve expirar em 2h;
[x] O usuário precisar confirmar a nova senha para resetar a atual;
[x] Identificar o usuário
  • Atualização de perfil

    • Requisitos Funcionais
    [x] O usuário deve poder atualizar seu nome, email e senha.
    • Regras de negócio
    [x] O usuário não pode alterar seu email para um  utilizado;
    [x] Para atualizar sua senha, o usuário deve informar a antiga;
    [x] Para atualizar sua senha, o usuário precisa confirmar a nova senha.
  • Painel do prestador

    • Requisitos Funcionais
    [x] O usuário deve poder listar seus agendamentos de um dia específico;
    [x] O prestador deve receber uma notificação sempre que houver um novo agendamento;
    [x] O prestador deve poder visualizar as notificações não lidas;
    • Requisitos não funcionais
    [x] Os agendamentos do prestador no dia deve ser amarzenado em cache;
    [x] As notificações do prestador devem ser amarzenadas no MongoDB;
    [x] As notificações do prestador devem ser enviadas em tempo-real utilizando Socket.io;
    • Regras de negócio
    [x] A notificação deve ter um status de lida ou não lida, para que o prestador possa controlar.
  • Agendamento de serviços

    • Requisitos Funcionais
    [x] O usuário deve poder listar todos prestadores de serviço cadastrado;
    [x] O usuário deve poder listar os dias de um mês com pelo menos um horário disponível de um prestador;
    [x] O usuário deve poder listar horários disponiveis em um dia específicode de um prestador;
    [x] O usuário deve poder realizar um novo agendamento com o prestador;
    • Requisitos não funcionais
    [x] A listagem de prestadores deve ser amarzenada em cache;
    • Regras de negócio
    [x] Cada agendamento deve durar 1h exatamente;
    [x] Os agendamentos devem estar disponiveis entre 8h ás 18h (Primeiro ás 8h, último ás 17h);
    [x] O usuário não pode agendar em um horário  ocupado;
    [x] O usuário não pode agendar em um horário que  passou;
    [x] O usuário não pode agendar serviços consigo mesmo.

🖥️ Ferramentas

  • Docker ( Para Criação do nossos containers)

    • Criação do nosso Banco
    docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
    • Criação Banco MongoDb (Armazena as notificações do prestador)
    docker run --name mongodb -p 27017:27017 -d -t mongo
    • Criação do Redis - (Amarzena o nosso cache)
    docker run --name redis -p 6379:6379 -d -t redis:alpine
  • Insomnia ( Para realizar teste na API)

  • Typeorm

#Criacao
yarn typeorm migration:create -n CreateAppointments

#Executar/rodar
yarn typeorm migration:run

#Rollback
yarn typeorm migration:revert

#visualizar quais migrtios foram executas

yarn typeorm migration:show

✏️ Clonando Projeto

 # clonar o repositório
 $ https://github.com/mauriani/GoBarber-backend

 # acessar a pasta do projeto
 $ cd GoBarber-backend

 # instalar as dependências do projeto
 $ yarn or npm install

Start na aplicação

Para executar o nosso projeto precisamos da start no nossos bancos. Feito isso só rodar o comando abaixo.

# Start
 yarn dev:start

About

Projeto desenvolvido durantes as aulas do bootcamp 2020. Usamos várias ferramentas para o seu desenvolvimento.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published