/gobarber

Aplicação completa de uma barbearia fictícia.

Primary LanguageTypeScriptMIT LicenseMIT

GoBarber

Sobre o projeto | Guia de instalação e execução | Licença | Versão Web | Versão Mobile | Backend

🚀 Sobre o projeto

Aplicativo feito para um salão de beleza fictício.

Aplicativo disponível nas versões:

  • Web
  • Mobile

os dois utilizando o mesmo backend.

💻 Versão web

Este aplicativo foi construido utilizando React e Typescript

Nessa aplicação é possivel que o prestador de serviço se cadastre com senha e foto e faça login no sistema para vizualizar suas marcações para os proximos dias, com notificações dinâmicas, além de receber um email automático sempre que tem marcações ou cancelamentos.

Layout

📘 Tecnologias

📱 Versão Mobile

Este aplicativo foi construido utilizando React Native e Typescript

No aplicativo é possivel criar uma conta e realizar login como consumidor, na primeira página vocÊ visualiza seus agendamentos futuros e passados, podendo cancelar os proximos, desde que com tenha no mínimo uma hora de antecedência.

A pagina de marcação lista todos os cabeleireiros registrados e ao selecionar um desses mostra seus horarios disponiveis de acordo com a data selecionada. Também é possivel atualizar seu cadastro e senha do seu perfil.

Layout

📘 Tecnologias

💾 Backend

O backend foi criado utilzando nodeJS e Express, em formato RESTFUL com estrutura MVC.

Esse backend é responsável por disponibilizar as rotas para usuários e provedores e contem as regras de negócio em seus controladores, como checagem de horários, intervalo de horários permitidos, cancelamentos e envio de emails automático usando templates predefinidos.

Outro papel importante do backend é a interação com o banco de dados, que nesse caso utiliza um banco SQL, NoSQL e o Redis. O Redis é um armazenamento de estrutura de dados de chave-valor, que é utlizado para lidar com a fila para envio de emails junto com o bee-queue, que foi criada pra lidar com diversos requerimentos de envio de email e que não sobrecarrega o servidor principal, possibilitanto que o backend responda mais rapidamente os dados importantes enquanto a fila roda em outro processo de fundo.

💻 Tecnologias

📚 Guia de instalação e execução

Pré-requisitos

Como executar

Para rodar a versão mobile e web tenha sempre o banco de dados e o servidor rodando.

Banco de dados

Rode estes comandos para instalar os 3 banco de dados do backend pelo docker.

  • docker run --name redisbarber -p 6379:6379 -d -t redis:alpine

  • docker run --name database -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres

  • docker run --name mongobarber -p 27017:27017 -d -t mongo

  • O login da database será: 'postgres' e a senha: 'docker'

  • Inicie o banco de dados docker start redisbarber database mongobarber

Backend

  • Clone o repositório,

  • Execute cd backend yarn para instalar as dependências do servidor.

  • Execute yarn sequelize db:migrate para criar as tabelas

  • Para rodar o servidor, abra dois terminais na pasta e rode yarn dev e yarn queue.

Versão web

  • Para abrir a versão web execute cd frontend e yarn para instalar as dependências.

  • Para iniciar rode yarn start.

Versão mobile

Acesse aqui a documentação da Rocketseat para montar seu ambiente Mobile.

💡 Como executar

  • Para abrir a versão mobile execute cd mobile e yarn para instalar as dependências.
  • Preencha seu ip de acordo com o da sua maquina no arquivo mobile/services/api.js
  • Usando um emulador rode yarn android ou yarn ios dependendo do sistema que estiver usando para instalar o app.
  • Para iniciar o aplicativo rode yarn start
  • Rode adb reverse tcp:8081 tcp:8081 e adb reverse tcp:1337 tcp:1337 para o emulador acesar o servidor

Com um dispositivo físico

Tenha certeza que está com o modo desenvolvedor ativado e e a opção debugar USB ativada.

  • Conecte seu celular pelo cabo USB.
  • Verifique se está tudo certo rodando adb devices e seu dispositivo aparecer como device.
  • Rode yarn android ou yarn ios dependendo do sistema que estiver usando para instalar o app.
  • Rode yarn start para iniciar o aplicativo

📃 Licença

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