Skip to content

sandro-dev/fastfeet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fastfeet App 🚚

Trata-se de uma aplicação para gerenciamento de encomendas/delivery para uma distribuidora ficitícia, a FastFeet.

O gerenciamento é todo feito pela interface web, enquanto os entregadores utilizam uma aplicação mobile para visualizar as encomendas pedentes, as já finalizadas, informar um problema e confirmar uma entrega.


“A sabedoria é a coisa principal; adquire pois a sabedoria, emprega tudo o que possuis na aquisição de entendimento.” (Provérbios 4:7)”

Indíce

📖 Sobre

A aplicação faz parte do Desafio Final do Bootcamp da Rocketseat. Esse código corresponde ao desafio completo, incluindo o backend, frontend e app mobile do Fastfeet.

🔨 Funcionalidades

  • Autenticação utilizando JSON Web Token (JWT);
  • Validação dos dados de entrada;
  • Gestão de destinatários;
  • Gestão de entregadores;
  • Gestão de encomendas;
  • Gerenciamento dos problemas de entrega;
  • O entregador pode informar um problema pelo app mobile;
  • Controle do horário para retirada das encomendas;
  • Após a entrega, o entregador tira uma foto da assinatura do destinaráriopara comprovar a entrega

⚙️ Tecnologias

Esse projeto foi desenvolvido com as seguintes tecnologias:

🔧 Instalação

Faça um clone desse repositório utilizando o comando git clone ou faça download.

  git clone https://github.com/sandro-dev/fastfeet.git

Pré-requisitos

💻 Backend

  • A partir da raiz do projeto, entre na pasta backend:
  cd backend
  • Execute o comando yarn para instalar as dependências:
    yarn
  • Execute o comando cp .env.example .env e preencha o arquivo .env com suas variáveis de ambiente, para que tudo funcione perfeitamente;

Agora vamos instalar duas imagens de bancos de dados:

  • Primeiro vamos instalar o Postgres, para armazenar nossas tabelas. Execute o seguinte comando no terminal:
  docker run --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres
  • Posteriormente, vamos instalar o Redis, o banco que vai gerenciar o envio de e-mails com filas com alta performance. Execute o comando:
  docker run --name redis -p 6379:6379 -d -t redis:alpine

Vamos configurar o banco de dados da aplicação:

  • Crie um novo banco de dados postgres com o nome que colocou em DB_HOST

  • Rode o comando abaixo para executar as migrations, e criar as tabelas no banco de dados;

  yarn sequelize db:migrate

Agora, vamos popular a tabela users com o usuário administrador:

  yarn sequelize db:seed:all

Ainda na pasta backend, vamos colocar o servidor para rodar.

  yarn dev

Em outro prompt/terminal, execute o seguinte comando e deixe rodando para gerenciar a fila de emails

  yarn queue

💻 Frontend

  • A partir da raiz do projeto, entre na pasta frontend:

    cd frontend
  • Execute o comando yarn para instalar todas as dependências;

  yarn
  • Execute o seguinte comando para executar a aplicação;
  yarn start
  • Aguarde o browser abrir com o url da aplicação;

Pronto, agora é só explorar o web app ;) Lembrando que o servidor reflete as ações do usuário administrador.

📱 Mobile

OBS.: O aplicativo mobile só foi testado para android

  • A partir da raiz do projeto, entre na pasta mobile :
    cd mobile
  • Execute o comando yarn para instalar todas as dependências;
    yarn

Utilizando um software como o Genymotion, crie um dispositivo emulador para rodar o aplicativo ou se preferir, conecte um smartphone android em seu computador através do cabo USB, e certifique-se de que está hablitado nas opções de desenvolvedor de seu aparelho a depuração por USB;

  • Execute o comando abaixo para instalar o aplicativo em um smartphone ou emulador
  react-native run-android

Pronto, agora é só explorar o app ;) Vale salientar que o aplicativo reflete as ações do entregador/deliveryman

  • Fata efetuar o login, utilize um ID númerico de um deliveryman cadastrado

📷 Screenshots

mobile

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com ♥ by Sandro Santos | Me add no LinkedIn