“Não espere para plantar, apenas tenha paciência para colher”!
Objetivo | Iniciando aplicação | Licença
Aplicação Backend desenvolvida no modelo RestFul para Barbearias, o cliente através do aplicativo Mobile busca um horário disponível na agenda do prestador de serviços, no caso, o Barbeiro. O Barbeiro tem acesso a sua agenda através da interface WEB, onde ele visualiza quem ele vai atender em determinado horário - Essa aplicação executa no servidor NodeJS.
POST /users: Rota responsável por criar o usuário dentro da plataforma, utilize os seguintes parâmetros:name: Nome Completo,email: E-mail no formato[email protected],password: Senha com 6 digítos, alfanumérica,provider:trueoufalseindicando se o usuário criado é provedor de serviço ou não.Exemplo:
{
"name" : "Nome Completo",
"email" : "[email protected]",
"password" : "123456",
"provider": true
}POST /sessions: Rota responsável por criar a sessão de um usuário já cadastrado e obter o token de sessão. Utilize os seguintes parâmetros:name: Nome Completo,email: E-mail no formato[email protected],password: Senha com 6 digítos, alfanumérica.Exemplo:
{
"name" : "Nome Completo",
"email" : "[email protected]",
"password" : "123456"
}PUT /users: Rota responsável por atualizar o perfil de um usuário dentro da plataforma. Utilize os seguintes parâmetros:name: Nome Completo,email: E-mail no formato[email protected],password: Senha com 6 digítos, alfanumérica,oldPassword: Senha com 6 digítos, alfanumérica,confirmPassword: Senha com 6 digítos, alfanumérica.Exemplo:
{
"name" : "Nome Completo",
"email" : "[email protected]",
"oldPassword" : "123456",
"password" : "123456",
"confirmPassword" : "123456"
}-
POST /files: Rota responsável por realizar o envio de imagens via multpart-form. Utilize o seguinte parâmetro no multpart:file: Data do arquivo de imagem. -
GET /appointments: Rota responsável por listar todos os agendamentos para o usuário utilizando um token de sessão válido. O resultado pode ser páginado, passando o parâmetro de query string:page: Número da página, começando em 1. -
POST /appointments: Rota responsável por criar agendamentos dentro da plataforma. Utilize os seguintes parâmetros:provider_id: ID identificador do provedor de serviços,date: Data válida para marcar o agendamento.Exemplo:
{
"provider_id" : 3,
"date" : "2020-02-28T10:00:00"
}-
DELETE /appointments/:id: Rota responsável por cancelar o usuário dentro da plataforma. Utilize o parâmetro:id: ID identificador do agendamento que você deseja cancelar. -
POST /providers: Rota responsável por listar todos os provedores de serviços. -
GET /providers/:providerId/available: Rota responsável por listar toda a agenda de um determinado provedor, através do ID identificador. Utilize o parâmetro:providerId: ID identificador do provedor de serviço. -
GET /schedules: Rota responsável por listar todos os horários disponíveis por data. Utilize o parâmetro de query string:date: Data da pesquisa.Exemplo:
http://localhost/schedules?date=2019-11-01T00%3A00-03%3A00
-
GET /notifications: Rota responsável por listar todas as notificações disponíveis. -
PUT /notifications/:id: Rota responsável por marcar uma notificação como lida. Utilize o seguinte parâmetro:id: ID identificador da notificação.
Para executar a aplicação em ambiente de DESENVOLVIMENTO ou PRODUÇÃO, primeiro crie um arquivo na raiz do projeto chamado .env para fazer a configuração de todas as váriaveis de ambiente. Copie todo o conteúdo do arquivo .env_example, Dentro do novo arquivo, altere cada variável de acordo com seu ambiente. E de não esqueça de alterar a váriavel: NODE_ENV, development ou production.
Após alterar as variáveis de ambiente, execute o seguinte comando na raíz do projeto:
yarnSe você estiver utilizando o yarn.
ou
npm installSe você estiver utilizando o npm.
Agora, vamos dar um start na aplicação, execute o seguinte comando:
yarn devA aplicação principal está funcionando, agora você precisa iniciar a queue que realiza o envio de e-mails. Execute esse comando:
yarn queueEXEMPLO DA APLICAÇÃO RODANDO EM PRODUÇÃO : http://138.197.65.2
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Projeto desenvolvido by Igor Clemente 👋
