“Não espere para plantar, apenas tenha paciência para colher”!
Sobre o projeto | Funcionalidades | Licença
A aplicação é um app para uma transportadora fictícia, o FastFeet.
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
Abaixo estão descritas as funcionalidades da aplicaçã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;
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.
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.
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.
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!