Aplicação para agendar e gerenciar serviços de cabeleleiros/barbeiros
- Node
- Express
- React
- React Native
- Expo
- JWT
- TypeORM
- Styled-Components
- Jest
- TypeScript
- Yarn Workspaces
- Unform
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:
Git, Node.js, Yarn. Além disto é bom ter um editor para trabalhar com o código como VSCode
$ git clone https://github.com/harlancleiton/go-barber
$ cd go-barber
$ yarn install
Este repositório utiliza a estrutura de monorepo, mantido através do Yarn Workspaces
# Projeto backend:
$ cd server
# Projetos que consumirão nossa API:
$ cd clients
# Sendo esses:
$ cd mobile
$ cd web
# Recursos compartilhados entre os projetos:
$ cd shared
- Dentro de cada projeto existe um arquivo chamado
.env.example
copie o conteúdo dele em um novo arquivo chamado.env
; noserver
é necessário informar ao TypeORM nosso banco de dados, para isso crie um arquivoormconfig.json
, use o arquivoormconfig.example.json
como guia. - Para executar os testes deve ser criado um arquivo
.env.test
com o mesmo conteúdo (mas com as configurações do ambiente de execução de testes)
# Server
cd server
yarn dev
# Mobile
cd clients/mobile
yarn dev
# Web
cd clients/web
yarn dev
Existem duas formas de executarmos os testes: de forma individual, ou seja, dentro de cada projeto, ou do monorepo.
# Monorepo, na raiz do repositório:
$ yarn test
# Cada projeto de forma isolada:
# Entre na pasta do projeto especifico, exemplo server
$ cd server
$ yarn test
- Criar conta
- Fazer logon
- Recuperar senha
- Painel do prestador de serviços
- Detalhes do agendamento
- Atualização de perfil
- Central de notificações
- Criar conta
- Fazer logon
- Recuperar senha
- Agendamento de serviços
- Paginação de agendamentos
- Detalhes do agendamento
- Atualização de perfil
- Registro de usuários
- Autenticação do usuário
- Recuperar senha
- Disparo de eventos
- Queues
- Envio de emails
- Paginação de prestadores
- Criação de agendamentos
- Envio de notificações (real-time)
- Paginação de notificações
- Paginação de agendamentos (cliente)
- Paginação de agendamentos (prestador)
- Cache