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.
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.
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;
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
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
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
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
# Rodar a migração
$ yarn sequelize db:migrate
# Rodar o seeds
$ yarn sequelize db:seed:all
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.
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.
# Acessar a pasta fastfeet/web
$ cd fastfeet/web
# Rodar o instalador das dependências
$ yarn
# 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
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.
Acesse a pasta do projeto mobile
# Acessar a pasta do projeto mobile
$ cd fastfeet/mobile
# Instalar o react-native-cli
$ npm install -g react-native-cli
# Verifique se o react-native-cli foi instado
$ react-native-cli -v
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.
# 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
}
Certifique-se de que o emulador esteja abaerto ou o celular esteja conectado ao pc.
# Execute o comando
$ react-native run-android
# 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.