Sobre o projeto | Guia de instalação e execução | Licença | Versão Web | Versão Mobile | Backend
Aplicativo feito para um salão de beleza fictício.
Aplicativo disponível nas versões:
os dois utilizando o mesmo backend.
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.
- ReactJS
- Typescript
- React router dom
- Axios
- Redux
- Redux Persist
- React Redux
- Redux Saga
- Immer
- Date fns
- Unform
- React-toastify
- React perfect scrollbar
- Styled Components
- Yup
- Polished
- React icons
- ESLint-Airbnb, Prettier e EditorConfig
- Reactotron (Saga, Redux)
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.
- Typescript
- React native
- React navigation 5
- React native Datetimepicker
- React native async storage
- React Native Gesture Handler
- Axios
- Redux
- Redux Persist
- React Redux
- Redux Saga
- Immer
- Date fns
- React native linear gradient
- React native vector icons
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.
- Express
- NodeJs
- Redis
- Mongoose
- Sequelize
- Bee-queue
- Yup
- Cors
- Youch
- Multer
- Dotenv
- Bcryptjs
- Date fns
- Nodemailer
- Jsonwebtoken
- Express Handlebars
- Express-async-errors
- Nodemailer-express-handlebars
Para rodar a versão mobile e web tenha sempre o banco de dados e o servidor rodando.
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
-
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
eyarn queue
.
-
Para abrir a versão web execute
cd frontend
eyarn
para instalar as dependências. -
Para iniciar rode
yarn start
.
Acesse aqui a documentação da Rocketseat para montar seu ambiente Mobile.
- Para abrir a versão mobile execute
cd mobile
eyarn
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
ouyarn 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
eadb 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
ouyarn ios
dependendo do sistema que estiver usando para instalar o app. - Rode
yarn start
para iniciar o aplicativo
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.