Git Product home page Git Product logo

fastfeet's Introduction

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: [email protected] 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.

fastfeet's People

Contributors

marciovz avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.