Gobarber
Code clone of GoBarber, app developed during the lessons of the GoStack Bootcamp by Rocketseat.
Install / Use
/learn @belapferreira/GobarberREADME
Durante as aulas do RocketSeat GoStack Bootcamp além da teoria e para melhor aprendizado é desenvolvida uma aplicação completa (Back-end, Front-end e Mobile) exemplificando como são usados os conteúdos aprendidos e para treinar e consolidar o que foi ensinado fiz o clone code do app aplicando algumas estilização diferentes da proposta do projeto original.
<p align="center"> <img src="frontend/src/assets/GoBarberWebLogin.PNG" width="30%" height="30%" max-width:100% > <img src="frontend/src/assets/GoBarberWebDashboard.PNG" width="30%" height="30%" max-width:100% > </br> <img src="mobile/src/assets/GoBarberSignIn.PNG" width="15%" height="15%" max-width:100% > <img src="mobile/src/assets/GoBarberAppointments.PNG" width="15%" height="15%" max-width:100% > <img src="mobile/src/assets/GoBarberSelectDate.PNG" width="15%" height="15%" max-width:100% > </p>Funcionalidades
Versão web:
- Autenticação na aplicação para os prestadores de serviço;
- Cadastro de prestadores de serviço;
- Mensagens em forma de toast quando ocorre problemas na autenticação ou no cadastro;
- Painel para visualização dos agendamentos com navegação por dia;
- Recebimento de notificações quando ocorre um agendamento;
- Marcação de notificação como lida;
- Tela para atualização de dados, senha e foto do prestador de serviço logado.
Versão mobile:
- Autenticação na aplicação para usuários dos serviços prestados;
- Cadastro de usuários;
- Mensagens em forma de toast quando ocorre problemas na autenticação ou no cadastro;
- Navegação entre as telas através de botões na extremidade inferior;
- Painel para visualização dos agendamentos do usuário que passaram, que ainda ocorrerão e que ainda podem ser cancelados;
- Tela para realização de novo agendamento com seleção do prestador de serviço, data e horário disponíveis e confirmação do agendamento;
- Tela para atualização de dados, senha e foto do usuário logado.
:heavy_check_mark: Configurações necessárias
- Git
- Node
- Yarn
- Docker
- Ambiente para desenvolvimento mobile configurado conforme sistema operacional utilizado
:arrow_down_small: Clonando o repositório
- Pelo terminal, acesse o diretório em que deseja ter o repositório clonado e execute o comando a seguir.
# clonando o repositório
git clone https://github.com/belapferreira/gobarber
:beginner: Iniciando o backend
- Crie os serviços de bancos de dados
postgres,mongoeredisutilizando os comandos a seguir. Os nomes e a senha são uma sugestão e podem ser alterados conforme sua preferência.
# criando serviço de banco de dados postgres
docker run --name postgressgobarber -e POSTGRES_PASSWORD=gobarber2020 -p 5432:5432 -d postgres
# criando serviço de banco de dados mongo
docker run --name mongobarber -p 27017:27017 -d -t mongo
# criando serviço de banco de dados redis
docker run --name redisbarber -p 6379:6379 -d -t redis:alpine
- Utilizando uma aba do terminal inicie os serviços de banco de dados conforme comando abaixo.
# iniciando os serviços de banco de dados
docker start postgresgobarber mongobarber redisbarber
- Abra o projeto no editor de sua preferência e renomeie o arquivo
.env.examplepara.env. - Coloque as suas credenciais no arquivo
.env. - Pelo terminal, acesse o diretório backend do repositório clonado e execute os seguintes comandos separadamente.
# instalando as dependências
yarn install
# executando as migrations
yarn sequelize db:migrate
# iniciando o servidor
yarn dev
:computer: Iniciando o frontend
Observação: é necessário que o backend tenha sido iniciado antes.
- Pelo terminal, acesse o diretório fronted do repositório clonado e execute os seguintes comandos separadamente.
# instalando as dependências
yarn install
# iniciando a aplicação
yarn start
:iphone: Iniciando o mobile
Observação: é necessário que o backend tenha sido iniciado antes.
- Inicialize o emulador ou conecte o dispositivo físico e verifique a disponibilidade em uma janela do terminal.
# verificando dispositivos disponíveis
adb devices
- Pelo terminal, acesse o diretório mobile do repositório clonado e execute os comandos abaixo separadamente.
# instalando as dependências
yarn install
- Abra uma nova janela do terminal, acesse o diretório mobile do repositório clonado e faça a instalação e inicialização da aplicação seguindo os próximos comandos. A aplicação foi desenvolvida utilizando recursos direcionados para Android e pode necessitar de ajustes para dispositivos iOS.
# instalando a aplicação no dispositivo
react-native run-android
# iniciando a aplicação
react-native start
# carregando a aplicação
digite r no terminal || cmd + r e reload || ctrl + m e reload
:wrench: Tecnologias | Ferramentas | Recursos
Esse projeto foi desenvolvido utilizando os seguintes recursos:
Geral
Backend
- Bcrypt
- Bee Queue
- Cors
- Docker
- date-fns
- DotEnv
- Express
- Express-Async-Errors
- Express-Handlebars
- Insomnia
- JWT
- Jsonwebtoken
- Mailtrap
- MongoDB
- Mongoose
- Multer
- Node.js
- node-postgres
- Nodemailer
- Nodemailer-Express-Handlebars
- nodemon
- Pg
- Pg-Hstore
- PostgreSQL
- Redis
- Sentry
- Sequelize
- Sucrase
- Youch
- Yup
Frontend
- @rocketseat/unform
- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- axios
- babel-eslint
- babel-plugin-root-import
- customize-cra
- date-fns
- date-fns-tz
- history
- immer
- polished
- prop-types
- react
- react-app-rewired
- react-dom
- react-icons
- react-perfect-scrollbar
- react-redux
- react-router-dom
- react-scripts
- react-toastify
- reactotron-react-js
- reactotron-redux
- reactotron-redux-saga
- redux
- redux-persist
- redux-saga
- [
Related Skills
bluebubbles
342.5kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
slack
342.5kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
