Skip to content

Latest commit

 

History

History
206 lines (158 loc) · 6.81 KB

README.md

File metadata and controls

206 lines (158 loc) · 6.81 KB

Fastfeet

Aplicativo para gerenciamento de entregas de encomendas para transportadoras

Com o Fastfeet o administrador pode cadastrar entregadores, cadastrar e distribuir encomendas aos entregadores, gerenciar as encomendas retiradas e entregas finalizadas, verificar problemas de entregas, bem como fazer cancelamentos.

A aplicação utiliza as tecnologias NodeJS no back-end, ReactJS no front-end e React-Native no mobile, e faz parte do desafio final para certificação do curso Bootcamp da Rocketseat.

Para testar o sistema Fastfeet, é necessário a instalação do servidor backend, web e o mobile.

⚙️ Back-end

Desenvolvido com a tecnologia NodeJS, o backend é responsável por gerenciar os acessos a aplicação e disponibilizar os dados requisitados pela aplicação. Utiliza tecnologia JWT nas autenticações de usuários, banco postgree para armazenamento dos dados da entrega, dos entregadores, dos destinatários entre outros, e o banco Redis para armazenamento de dados da fila de envio de emails.

Instalando do servidor backend local

1. Recomendações para preparação do ambiente local

Este projeto foi desenvolvido e testado na versão do node 10.16.2, com o gerenciador de dependências yarn 1.22.4, e docker 19.03.8. Recomendamos a instalação dessas ferramentas nestas versões ou superiores;

2. Instalando o banco de dados com Docker

O projeto fastfeet utiliza o banco de dados Postgree para armazenamento dos dados da aplicação e o Redis para armazenamendo da fila de envio de emails. Para os procedimentos abaixo, vocễ precisa ja ter o docker instalado.

 # Instalação do Redis com o docker
 $ docker run --name fastfeetRedis -p 6379:6379 -d -t redis:alpine
# Instalação do Postgree com o docker
$ docker run --name fastfeetdb -e POSTGRES_DB=fastfeetdb -e POSTGRES_USER=userfastfeetdb -e POSTGRES_PASSWORD=passfastfeetdb  -p 5432:5432 -d postgres:11 

3. Download do projeto

Clonar a pasta do projeto em sua máquina local e instalar as dependências.

 # clonar o repositório
 $ git clone https://github.com/marciovz/fastfeet.git

 # acessar a pasta backend
 $ cd fastfeet/backend

 # instalar as dependências do projeto
 $ yarn

4. Arquivos de configuração

Criar um arquivo .env na raiz do projeto backend, com o mesmo conteúdo do arquivo .env.exemplo, e preenche as variáveis com suas respectivas informações. Você precisa fazer uma conta no site do mailtrap.io e adicionar suas credenciais nas configurações.

 //Código para criptografia jwt
 APP_SECRET= Qualquer palavra ou sequencia chave
  
 //Configuração do banco Postgree
 DB_HOST=localhost
 DB_USER=userfastfeetdb
 DB_PASS=passfastfeetdb
 DB_NAME=fastfeetdb
 
 //Configuração do banco Redis
 REDIS_HOST=127.0.0.1
 REDIS_PORT=6379
   
 //Configurações do serviço de email
 MAIL_HOST=smtp.mailtrap.io
 MAIL_PORT=2525
 MAIL_USER=seu_usuário_de_acesso_no_mailtrap
 MAIL_PASS=sua_senha_de_acesso_ao_mailtrap

5. Iniciar os bancos de dados

Verifique se o banco de dados fastfeetdb e o fastfeetRedis já estão rodando

 # Verificando bancos ativos
 $ docker ps

Caso os bancos não estejam ativos, reinicie eles com os comandos abaixo:

 # Iniciando o banco Postgree
 $ docker start fastfeetdb
 # Iniciando o banco Redis
 docker start fastfeetRedis

6. Criando e populando a Base de dados para teste

 # Rodar a migração
 $ yarn sequelize db:migrate

 # Rodar o seeds
 $ yarn sequelize db:seed:all

Iniciando o servidor backend

1. Iniciar o servidor da aplicação

Inicie os servidores da aplicação

 # Iniciando o servidor da aplicação
 yarn dev

Abrir outra janela do terminal e iniciar o servidor de fila de email:

 # Iniciando o servidor de envio de emails
 yarn queue

Pronto, o servidor backend está configurado e rodando.

💻 Web

A versão Web do projeto é direcionada para administradores da distribuidora. Nessa versão, os administradores terão acesso a gestão de entregadores, destinatários e encomendas, fazendo triagem de encomendas, atribuindo a um entregador, e analizando problemas decorridos nas entregas.

Instalando o servidor web localmente

1. Instalar das dependências do projeto Web

 # Acessar a pasta fastfeet/web
 $ cd fastfeet/web
 # Rodar o instalador das dependências
 $ yarn

Iniciando o servidor web

1. Iniciar a aplicação Web

 # Rodar o comando para estartar o servidor web
 $ yarn start

Ao iniciar o servidor, a página de login da aplicação será aberta. Adiciona as credenciais do adminstrador para acessar o sistema. Login: admin@fastfeet.com Senha: 123456

📱 Mobile

A versão mobile do projeto Fastfeet é direcionada para entregadores gerenciarem suas encomendas. Com o aplicativo mobile o entregador terá acesso a sua lista de entregas finalizadas e pendentes, ver detalhes de cada encomenda, poderá visualizar e adicionar problemas decorrentes na entrega, e finalizar a entrega adicionando uma imagem da assinatura do destinatário.

Instalando o projeto Mobile (Android)

Obs.: O app fastfeet foi desenvolvido e testado somente na plataforma ANDROID.

Acesse a pasta do projeto mobile

 # Acessar a pasta do projeto mobile 
 $ cd fastfeet/mobile

1. Instalação do React-Native

# Instalar o react-native-cli
$ npm install -g react-native-cli

# Verifique se o react-native-cli foi instado
$ react-native-cli -v

2. Configuração do emulador

Este aplicativo foi desenvolvido utilizando como emulador um celular Android conectado via usb a uma máquina com sistema Linux Mint 19. Para instalação e configuração do emulador e outros pacotes necessários, recomenda-se seguir os passos descrito no tutorial da Rocketseat, no link https://react-native.rocketseat.dev/, de acordo com as características de seu ambiente.

3. Configuração do aplicativo mobile

 # instalando as dependências do projeto
 $ yarn

Abrir o arquivo de configuração hostBackend.js localizado na pasta /src/config/hostBackend.js e altere as seguintes informações:

 {
	protocol:  'http',								// protocolo utilizado
	host:  '192.168.1.101',						// endereço ip do servidor backend (colocar o ip)
	port:  '3333',										// porta na qual está rodando o servidor backend
 }

Emulando o aplicativo mobile

Certifique-se de que o emulador esteja abaerto ou o celular esteja conectado ao pc.

1. Criando o Bundle da aplicação

 # Execute o comando
 $ react-native run-android

2. Iniciando o emulador

 # Execute o comando
 $ react-native start 

Pronto, o aplicativo estará rodando na tela do emulador. Você poderá acessar o aplicativo digitando o id de um entregador cadastrado, por exemplo o entregador de id 1.