• This repository has been archived on 17/Jul/2020
  • Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
  • License
    MIT License
  • Created over 5 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Desafio do terceiro módulo do Bootcamp GoStack 🚀👨🏻‍🚀

Fastfeet

Desafio 3: FastFeet, continuando a aplicação

⚠️ Etapa 2/4 do Desafio Final ⚠️

Esse desafio faz parte do Desafio Final, que é uma aplicação completa (Back-end, Front-end e Mobile) que é avaliada para emissão do Certificado do Bootcamp GoStack, por isso é fundamental que ele seja feito com muito empenho!

“Faça seu melhor, mas sempre com prazo de entrega”!

GitHub language count Made by Rocketseat License Stargazers

Sobre o desafio   |    Entrega   |    Licença

🚀 Sobre o desafio

Durante esse desafio vamos aprimorar a aplicação FastFeet que demos início no desafio anterior implementando funcionalidades que aprendemos durante as aulas até agora.

Funcionalidades do administrador

Abaixo estão descritas as funcionalidades que você deve adicionar em sua aplicação para administradores.

1. Gestão de entregadores

Permita que o administrador possa cadastrar entregadores para a plataforma, o entregador deve possuir os seguintes campos:

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

Crie rotas para listagem/cadastro/atualização/remoção de entregadores;

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

2. Gestão de encomendas

Apesar do entregador estar cadastrado, ele não é independente dentro da plataforma, e você deve cadastrar encomendas para os entregadores.

Nessa funcionalidade criaremos um cadastro de 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;

data de início deve ser cadastrada assim que for feita a retirada do produto pelo entregador, e as retiradas só podem ser feitas entre as 08:00 e 18:00h.

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

Os campos recipient_id e deliveryman_id devem ser cadastrados no momento que for cadastrada a encomenda.

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.

Crie rotas para listagem/cadastro/atualização/remoção de encomendas;

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

Funcionalidades do entregador

Abaixo estão descritas as funcionalidades que você deve adicionar em sua aplicação para os entregadores.

1. Visualizar encomendas

Para que o entregador possa visualizar suas encomendas, ele deverá informar apenas seu ID de cadastro (ID do entregador no banco de dados). Essa funcionalidade deve retornar as encomendas atribuidas a ele, que não estejam entregues ou canceladas;

Permita também que ele liste apenas as encomendas que já foram entregues por ele, com base em seu ID de cadastro;

Exemplo de requisição: GET https://fastfeet.com/deliveryman/1/deliveries

2. Alterar status de encomendas

Você deve permitir que o entregador tenha rotas para incluir uma data de retirada (start_date) e data de entrega (end_date) para as encomendas. O entregador só pode fazer 5 retiradas por dia.

Obs.: Para a funcionalidade de finalizar a entrega, você deverá permitir o envio de uma imagem que irá preencher o campo signature_id da tabela de encomendas.

3. Cadastrar problemas nas entregas

O entregador nem sempre conseguirá entregar as encomendas com sucesso, algumas vezes o destinatário pode estar ausente, ou o próprio entregador poderá ter algum problema com seu veículo na hora de entregar.

A tabela delivery_problems deve conter os seguintes campos:

  • delivery_id (referência da encomenda);
  • description (descrição do problema que o entregador teve);
  • created_at;
  • updated_at;

Crie uma rota para a distribuidora listar todas as entregas com algum problema;

Crie uma rota para listar todos os problemas de uma encomenda baseado no ID da encomenda.

Exemplo de requisição: GET https://fastfeet.com/delivery/2/problems

Crie uma rota para o entregador cadastrar problemas na entrega apenas informando seu ID de cadastro (ID da encomenda no banco de dados);

Exemplo de requisição: POST https://fastfeet.com/delivery/3/problems

Crie uma rota para a distribuidora cancelar uma entrega baseado no ID do problema. Esse cancelamento pode acontecer devido a gravidade do problema da entrega, por exemplo, em caso de perda da encomenda.

Exemplo de requisição: DELETE https://fastfeet.com/problem/1/cancel-delivery

Quando uma encomenda for cancelada, o entregador deve receber um e-mail informando-o sobre o cancelamento.

📅 Entrega

Esse desafio não precisa ser entregue e não receberá correção. Além disso, o código fonte não está disponível por fazer parte do desafio final, que será corrigido para certificação do bootcamp. Após concluir o desafio, adicionar esse código ao seu Github é uma boa forma de demonstrar seus conhecimentos para oportunidades futuras.

📝 Licença

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


Feito com by Rocketseat 👋 Entre na nossa comunidade!

More Repositories

1

bootcamp-gostack-desafios

Repositório contendo todos os desafios dos módulos do Bootcamp Gostack
1,170
star
2

nlw-03-omnistack

Projeto construído durante o Next Level Week #03
TypeScript
869
star
3

nlw-06-reactjs

Projeto desenvolvido na missão ReactJS no NLW #06
TypeScript
679
star
4

nlw-setup-ignite

Aplicação desenvolvida durante o NLW Setup - Ignite
TypeScript
489
star
5

nlw-12-spacetime-ignite

Aplicação de recordação de memórias desenvolvida no NLW 12
TypeScript
450
star
6

nlw-06-discover

O Rocket.Q é uma aplicação de interação através de perguntas, sendo possível criar uma sala para internautas anônimos fazerem perguntas e o criador da sala em posse de uma senha gerenciar essas perguntas e marcar como lidas.
EJS
398
star
7

nlw-06-flutter

Dart
384
star
8

nlw-ai-mastery

TypeScript
372
star
9

nlw-06-nodejs

TypeScript
371
star
10

nlw-06-origin

Projeto desenvolvido na missão Origin no NLW #06
HTML
341
star
11

nlw-expert-react

Automatic convert audio notes to text with React
TypeScript
326
star
12

semana-omnistack-10

Código da aplicação desenvolvida durante a Semana OmniStack 10.0 🚀
JavaScript
292
star
13

maratona-discover-01

Projeto construído durante a MaratonaDiscover #01
JavaScript
282
star
14

nlw-01-omnistack

Projeto construído durante o Next Level Week #01
TypeScript
282
star
15

semana-omnistack-9

Código da aplicação desenvolvida durante a Semana OmniStack 9.0
JavaScript
263
star
16

ignite-lab-nodejs

Microsserviço de notificações desenvolvido no Ignite Lab 04 de Node.js
TypeScript
259
star
17

explorer-lab-01

HTML
245
star
18

semana-omnistack-8

Código do projeto produzido durante a Semana OmniStack 8.0
JavaScript
232
star
19

semana-omnistack-11

Código produzido durante a Semana OmniStack 11.0
JavaScript
212
star
20

nlw-expert-nodejs

Real-time voting system built with Node.js
TypeScript
204
star
21

bootcamp-gostack-desafio-02

Desafio do segundo módulo do Bootcamp GoStack 🚀👨🏻‍🚀
204
star
22

bootcamp-gostack-desafio-01

Desafio do primeiro módulo do Bootcamp GoStack 🚀👨🏻‍🚀
JavaScript
194
star
23

ignite-nodejs-rentx

Aplicação de aluguéis de carros desenvolvida no Ignite Node.js
TypeScript
192
star
24

nlw-04-reactjs

Projeto construído durante o Next Level Week #04, na trilha de ReactJS
TypeScript
180
star
25

nlw-02-omnistack

Projeto construído durante o Next Level Week #02
TypeScript
179
star
26

nlw-06-react-native

Projeto desenvolvido na missão React Native no NLW #06
TypeScript
159
star
27

bootcamp-gostack-apps

Aplicações produzidas dentro do bootcamp GoStack 🚀
TypeScript
158
star
28

react-na-pratica

TypeScript
157
star
29

ignite-lab-00-aulas

TypeScript
152
star
30

nlw-unite-nodejs

Back-end em Node.js desenvolvido durante o NLW Unite da Rocketseat
TypeScript
144
star
31

pizzashop-api

This app provides a REST API to pizza.shop front-end
TypeScript
143
star
32

nlw-esports-ignite

Projeto construído durante o Next Level Week eSports, na trilha Ignite.
TypeScript
143
star
33

nlw-02-discovery

Projeto construído durante o Next Level Week #02
CSS
130
star
34

ignite-lab-rockethelp

Aplicação desenvolvida no evento Ignite Lab 03 - React Native
TypeScript
130
star
35

ignite-reactjs-auth-backend

TypeScript
126
star
36

nlw-03-discovery

Projeto construído durante o Next Level Week #03
JavaScript
124
star
37

nlw-01-discovery

Projeto construído durante o Next Level Week #01
JavaScript
119
star
38

nlw-04-nodejs

Projeto construído durante o Next Level Week #04, na trilha de Node.js
TypeScript
119
star
39

bootcamp-launchbase-desafios-01

Desafios do primeiro módulo do Bootcamp Launchbase 🚀👨🏻‍🚀
117
star
40

nlw-expert-react-native

A food delivery mobile app
TypeScript
116
star
41

pizzashop-web

This app provides a web UI to Pizza Shop app
TypeScript
107
star
42

nlw-copa-ignite

Projeto desenvolvido durante a Next Level Week Copa, na trilha Ignite.
TypeScript
100
star
43

maratona-discover-02

Projeto construído durante a MaratonaDiscover #02
EJS
98
star
44

course-saas-next-rbac

TypeScript
92
star
45

nlw-unite-react

Aplicação front-end em React desenvolvida durante o NLW Unite da Rocketseat
TypeScript
91
star
46

nlw-heat-node

TypeScript
88
star
47

ignite-lab-design-system

Projeto desenvolvido durante o Ignite Lab 03
TypeScript
88
star
48

nlw-05-reactjs

Aplicação web com ReactJS produzida durante o Next Level Week #05
TypeScript
87
star
49

nlw-04-elixir

Projeto construído durante o Next Level Week #04, na trilha de Elixir
Elixir
82
star
50

05-nest-clean

Módulo de NestJS da trilha de Node.js do Ignite.
TypeScript
80
star
51

ignite-nodejs-03-api-solid-nodejs

03-api-solid
TypeScript
80
star
52

nlw-06-elixir

Projeto Wabanex
Elixir
78
star
53

bootcamp-gostack-modulos

Repositório contendo todos os códigos feitos nas aulas do Bootcamp GoStack
TypeScript
71
star
54

masterclass-react

Código produzido na masterclass de React ⚛️
TypeScript
68
star
55

nlw-return-impulse

TypeScript
68
star
56

bootcamp-launchbase-desafios-02

Desafios do segundo módulo do Bootcamp Launchbase 🚀👨🏻‍🚀
HTML
68
star
57

nlw-journey-nodejs

Back-end da aplicação desenvolvida durante o NLW Journey da Rocketseat.
TypeScript
68
star
58

06-ignite-call

TypeScript
67
star
59

live-transaction-pagarme

JavaScript
67
star
60

ignite-template-reactjs-conceitos-do-react

TypeScript
64
star
61

gostack-template-conceitos-nodejs

Template para iniciar o desafio de Node.js do nível de "Conceitos importantes"
JavaScript
64
star
62

ignite-reactjs-04-pizzashop-web

TypeScript
63
star
63

05-design-system

Design System do Ignite
TypeScript
63
star
64

gostack-template-conceitos-reactjs

Template para iniciar o desafio de ReactJS do nível de "Conceitos importantes"
JavaScript
61
star
65

nlw-journey-react

TypeScript
61
star
66

nlw-expert-c-sharp

An auction system API
C#
60
star
67

bootcamp-launchbase-desafios-04

Desafios do quarto módulo do Bootcamp Launchbase 🚀👨🏻‍🚀
HTML
60
star
68

nlw-05-react-native

Aplicação mobile com React Native produzida durante o Next Level Week #05
TypeScript
60
star
69

ignite-nodejs-04-clean-domain

Projeto 04 desenvolvido na trilha de Node.js do Ignite
TypeScript
58
star
70

02-ignite-timer

Projeto desenvolvido no módulo: Criando SPAs com ReactJS
TypeScript
56
star
71

nlw-expert-html-css-js

A quiz to test your knowledge
JavaScript
54
star
72

live-storybook

Código da Live de Documentação do Frontend com Storybook
JavaScript
54
star
73

nlw-05-flutter

Aplicação mobile com Flutter produzida durante o Next Level Week #05
Dart
53
star
74

nlw-return-origin

HTML
52
star
75

bootcamp-launchbase-desafios-03

Desafios do terceiro módulo do Bootcamp Launchbase 🚀👨🏻‍🚀
HTML
52
star
76

bootcamp-gostack-desafio-09

Desafio do nono módulo do Bootcamp GoStack 🚀👨🏻‍🚀
50
star
77

bootcamp-gostack-desafio-04

Desafio do quarto módulo do Bootcamp GoStack 🚀👨🏻‍🚀
JavaScript
50
star
78

nlw-expert-java

Java
49
star
79

bootcamp-gostack-desafio-07

Desafio do sétimo módulo do Bootcamp GoStack 🚀👨🏻‍🚀
JavaScript
49
star
80

nlw12-spacetime-explorer

Aplicação de recordação de memórias desenvolvida no NLW 12
HTML
48
star
81

ignite-template-conceitos-do-nodejs

[Ignite] Desafio 01 - Trilha Node.js
JavaScript
47
star
82

bootcamp-gostack-desafio-06

Desafio do sexto módulo do Bootcamp GoStack 🚀👨🏻‍🚀
JavaScript
47
star
83

semana-tech-01-go-react-server

Go
47
star
84

nlw-journey-java

Back-end da aplicação desenvolvida durante o NLW Journey da Rocketseat.
Java
47
star
85

nlw-expert-python

A barcode generator
Python
44
star
86

ignite-lab-02

Plataforma de eventos desenvolvida no Ignite Lab 02
TypeScript
44
star
87

testable-apps-nodejs

Aplicação utilizada como base para demonstrar como podemos utilizar de patterns conhecidos na programação para facilitar a escrita de testes automatizados.
JavaScript
44
star
88

ignite-template-reactjs-criando-um-hook-de-carrinho-de-compras

TypeScript
42
star
89

ignite-reactjs-next-auth-jwt

TypeScript
41
star
90

nlw-05-nodejs

Backend com Node.js produzido durante o Next Level Week #05
TypeScript
41
star
91

ignite-reactjs-dashboard-chakra

TypeScript
40
star
92

bootcamp-launchbase-desafios-05

Desafios do quinto módulo do Bootcamp Launchbase 🚀👨🏻‍🚀
HTML
40
star
93

ignite-lab-after-nest-kafka

notifications-service
TypeScript
39
star
94

nlw-journey-go

Back-end da aplicação desenvolvida durante o NLW Journey da Rocketseat.
Go
39
star
95

node-na-pratica

Projeto construído durante o evento Node.js na prática da Rocketseat.
TypeScript
37
star
96

nlw-unite-java

Back-end em Java desenvolvido durante o NLW Unite da Rocketseat
Java
37
star
97

ignite-template-componentizando-a-aplicacao

TypeScript
36
star
98

domain-events

domain-events
TypeScript
36
star
99

nlw-heat-web

TypeScript
36
star
100

live-layout-responsivo

HTML
35
star