jose-renato-m / GoBarber-backend

This repo is part of an app called GoBarber, which is an app for barbershop's schedule services. In this repo it'll be saved the backend of this app.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Recuperação de senha

RF (Requisitos Funcionais)

  • O usuário deve poder recuperar sua senha informando o seu e-mail;
  • O usuário deve receber um e-mail com instruções de recuperação de senha;
  • O usuário deve poder resetar sua senha;

RNF (Requisitos Não Funcionais)

  • Utilizar Mailtrap para testar envios em ambiente de dev;
  • Utilizar Amazon SES para envios em produção;
  • O envio de e-mails deve acontecer em segundo plano (background job);

RN (Regras de Negócios)

  • O link enviado por e-mail para resetar senha, deve expirar em 2h;
  • O usuário precisa confirmar a nova senha ao resetar sua senha;

Atualização do perfil

RF

  • O usuário deve poder atualizar seu nome, e-mail e senha;

RN

  • O usuário não pode alterar seu e-mail para um e-mail já utilizado;
  • Para atualizar sua senha, o usuário deve informar a senha antiga;
  • Para atualizar sua senha, o usuário precisa confirmar a nova senha;

Painel do prestador

RF

  • O usuário deve poder listar seus agendamentos de um dia específico;
  • O prestador deve receber uma notificação sempre que houver um novo agendamento;
  • O prestador deve poder visualizar as notificações não lidas;

RNF

  • Os agendamentos do prestador no dia devem ser armazenados em cash;
  • As notificações do prestador devem ser armazenadas no MongoDB;
  • As notificações do prestador devem ser enviadas em tempo-real utilizando Socket.io;

RN

  • A notificação deve ter um status de lida ou não-lida para que o prestador possa controlar;

Agendamento de serviços

RF

  • O usuário deve poder listar todos os prestadores de serviço cadastrados;
  • O usuário deve poder listar os dias de um mês com pelo menos um horário disponível de um prestador;
  • O usuário deve poder listar horários disponíveis em um dia específico de um prestador;
  • O usuário deve poder realizar um novo agendamento com um prestador;

RNF

  • A listagem de prestadores deve ser armazenada em cache;

RN

  • Os agendamentos devem estar disponíveis entre 8h às 18h (Primeiro às 8h, último às 17h);
  • O usuário não pode agendar em um horário que já passou;
  • O usuário não pode agendar serviços consigo mesmo;
  • Cada agendamento deve durar 1h exatamente;
  • O usuário não pode agendar em um horário já ocupado;

About

This repo is part of an app called GoBarber, which is an app for barbershop's schedule services. In this repo it'll be saved the backend of this app.


Languages

Language:TypeScript 92.2%Language:JavaScript 7.0%Language:Handlebars 0.6%Language:Shell 0.2%