Skip to content

carvalhoviniciusluiz/fastfeet

Repository files navigation

Fastfeet

“Não espere para plantar, apenas tenha paciência para colher”!

Challenge 03 Made by Vinicius Carvalho License Stargazers

Sobre o projeto   |    Funcionalidades   |    Licença

Run in Insomnia

🚀 Sobre o projeto

A aplicação é um app para uma transportadora fictícia, o FastFeet.

As ferramentas que você irá encontrar

Aplicação criada do zero usando Express, conta com as seguintes ferramentas:

  • Sucrase + Nodemon;
  • ESLint + Prettier + EditorConfig;
  • Sequelize (PostgreSQL);
  • Jest

OBS O banco pode ser levantado via docker:

docker run --name database -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres

➿ Funcionalidades

Abaixo estão descritas as funcionalidades da aplicação.

1. Autenticação

  • O usuário deve se autenticar na aplicação utilizando e-mail e uma senha.

A criação do usuário administrador utiliza a funcionalidade de seeds do sequelize, essa funcionalidade é usada para criar registros na base de dados de forma automatizada e o código fonte pode ser visualizado clicando aqui.

Para executar rode no terminal:

yarn sequelize db:seed:all

Todos os logins são realizados a partir do usuário inserido via seed.

  • A autenticação é feita via JWT.
  • Todos os daos de entrada são validados;

2. Gestão de destinatários

Você pode cadastrar destinatários (cadastrados/atualizados) na plataforma, o destinatários possui os seguintes campos:

  • id (id do destinatário)
  • name (nome do destinatário);
  • street (rua do destinatário)
  • street_number (número do destinatário)
  • complement (opcional)
  • neighborhood (bairro do destinatário)
  • state (estado do destinatário)
  • city (cidade do destinatário)
  • zip_code (CEP do destinatário)
  • created_at;
  • updated_at;

A tabela no banco de dados para armazenamento do destinatário se chama recipient.

O cadastro de destinatários só é feito por administradores autenticados na aplicação.

O destinatário não é autenticado no sistema, ou seja, não possui senha.

Obs.: Use a sessão Run in Insomnia para acessar as rotas.

3. Gestão de entregadores

O administrador pode cadastrar entregadores (listados/cadastrados/atualizados/removidos) para a plataforma, o entregador possui os seguintes campos:

  • id (id do entregador)
  • name (nome do entregador);
  • avatar_id (foto do entregador);
  • email (email do entregador)
  • canceled_at (entregador removido)
  • created_at;
  • updated_at;

A tabela no banco de dados para armazenamento do destinatário se chama couriers.

O cadastro de entregadores só é feito por administradores autenticados na aplicação.

Obs.: Use a sessão Run in Insomnia para acessar as rotas.

4. Gestão de encomendas

Cadastro de encomenda para os entregadores com listagem/cadastro/atualização/remoção de encomendas.

Funcionalidade criada para cadastrar encomendas por entregador, a encomenda possui os campos:

  • id (id da entrega)
  • recipient_id (referência ao destinatário);
  • deliveryman_id (referência ao entregador);
  • signature_id (referência à uma assinatura do destinatário, que será uma imagem);
  • product (nome do produto a ser entregue);
  • canceled_at (data de cancelamento, se cancelada);
  • start_date (data de retirada do produto);
  • end_date (data final da entrega);
  • created_at;
  • updated_at;

A data de início é cadastrada assim que é feita a retirada do produto pelo entregador, e as retiradas são feitas entre 08:00 e 18:00h.

A data de término da entrega é cadastrada quando o entregador finalizar a entrega:

Quando a encomenda é cadastrada para um entregador, o entregador recebe um e-mail com detalhes da encomenda, com nome do produto e uma mensagem informando-o que o produto já está disponível para a retirada.

Obs.: Essa funcionalidade é para administradores autenticados na aplicação.

Obs.: Use a sessão Run in Insomnia para acessar as rotas.

📝 Licença

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


Feito com ♥ by Vinícius para a Rocketseat 👋 NOSSA COMUNIDADE!

About

App para uma transportadora fictícia, o FastFeet.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published