Skip to content

Latest commit

 

History

157 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Aplicação completa (Back-end, Fron-end e Mobile) para uma transportadora fictícia (FAstFeet). projeto final para certificação do curso bootcamp 10 da Rocketseat.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages