Skip to content

💇‍♂️💇‍♀️ GoBarber plataforma de agendamento de serviços para proprietários de barbearias ou salões de beleza. #typescript #node #react #react-native

License

Notifications You must be signed in to change notification settings

julionery/gobarber-node-react-reactnative

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

📃 Sobre:

Este repositório contém um API REST em Node.js como back-end, uma aplicação em ReactJS como front-end e um app mobile em React Native, todos utilizando TypeScript.

GoBarber é uma plataforma de agendamento de serviços para proprietários de barbearias ou salões de beleza. Nessa aplicação o usuário consegue ter acesso a todos os prostadores de serviços cadastrados através de um aplicativo mobile, com isso usuário consegue escolher um prestador para marcar seu agendamento.

Já o prestador de serviço, através de um interface Web, consegue ter acesso a todos os seus horários, podendo ver todos os que estão ocupados quanto os que estão disponíveis.

SERVER - Node.js: é uma API REST que faz todo o CRUD da aplicação, persistência de dados, tratativa de exceções e que serve dados tanto ao front-end quanto ao mobile.

WEB - ReactJS: é uma página Web no qual o prestador de serviço tem acesso a todo o seu calendário de agendamentos.

MOBILE - React Native: é um aplicativo em que o usuário tem acesso a todos os prestadores de serviço cadastrados no App, com isso ele pode fazer um agendamento que o prestador de preferência.

Web

Mobile

Funcionalidades:

  • RF - Requisitos Funcionais

  • RNF - Requisitos Não Funcionais

  • RN - Regras de Negócio

  • Cadastro de usuário;

    • RF - O usuário deve poder cadastrar o seu nome, e-mail e senha;
    • RN - O cadastro de usuário não deve permitir dois usuários com o mesmo e-mail;
    • RN - A senha do usuário deve ser criptografada;
  • Login;

    • RF - O usuário deve poder realizar o login;
    • RN - O usuário não pode acessar o sistema com um e-mail não cadastrado;
    • RN - O usuário não pode acessar o sistema com uma senha inválida;
  • Recuperação de senha;

    • RF - O usuário deve poder recuperar sua senha informando o seu e-mail;
    • RF - O usuário deve receber um e-mail com instruções de recuperação de senha;
    • RF - O usuário deve poder resetar sua senha;
    • RNF - Utilizar Ethereal para testar envios em ambiente de dev;
    • RNF - Utilizar Amazon SES para envios em produção;
    • RNF - O envio de e-mails deve acontecer em segundo plano (background job);
    • RN - O link enviado por email para resetar senha, deve expirar em 2h;
    • RN - O usuário precisa confirmar a nova senha ao resetar sua senha;
  • Atualização do perfil;

    • RF - O usuário deve poder atualizar o seu nome, email e senha;
    • RN - O usuário não pode alterar seu email para um email já utilizado;
    • RN - Para atualizar sua senha, o usuário deve informar a senha antiga;
    • RN - 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;
    • RF - O prestador deve receber uma notificação sempre que houver um novo agendamento;
    • RF - O prestador deve poder visualizar as notificações não lidas;
    • RNF - Os agendamentos do prestador no dia devem ser armazenados em cache;
    • RNF - As notificações do prestador devem ser armazenadas no MongoDB;
    • RNF - 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 prestadores de serviço cadastrados;
    • RF - O usuário deve poder listar os dias de um mês com pelo menos um horário disponível de um prestador;
    • RF - O usuário deve poder listar horários disponíveis em um dia específico de um prestador;
    • RF - O usuário deve poder realizar um novo agendamento com um prestador;
    • RNF - A listagem de prestadores deve ser armazenada em cache;
    • RN - Cada agendamento deve durar 1h exatamente;
    • RN - Os agendamentos devem estar disponíveis entre 8h às 18h (Primeiro às 8h último às 17h);
    • RN - O usuário não pode agendar em um horário já ocupado;
    • RN - O usuário não pode agendar em um horário que já passou;
    • RN - O usuário não pode agendar serviços consigo mesmo;

🚀 Tecnologias:

🔗 Como contribuir

  • Faça um fork do projeto;
  • Crie uma nova branch com as suas alterações: git checkout -b my-feature
  • Salve as alterações e crie uma mensagem de commit contando o que você fez:git commit -m "feature: My new feature"
  • Envie as suas alterações: git push origin my-feature

Caso tenha alguma dúvida confira este guia de como contribuir no GitHub

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com ❤ por Júlio Nery! 👋

About

💇‍♂️💇‍♀️ GoBarber plataforma de agendamento de serviços para proprietários de barbearias ou salões de beleza. #typescript #node #react #react-native

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published