github blob

GITHUB BLOG

Fast Feet Api Desafio Rocketseat

bruno-valerohá 3 mesesmain

FastFeet API - Desafio Rocketseat

Nesse desafio desenvolveremos uma API para controle de encomendas de uma transportadora fictícia, a FastFeet.

Confira o enunciado do desafio no Notion

Requisitos Funcionais

  • A aplicação deve ter dois tipos de usuário, entregador e/ou admin
  • Deve ser possível realizar login com CPF e Senha
  • Deve ser possível realizar o CRUD dos entregadores
  • Deve ser possível realizar o CRUD das encomendas
  • Deve ser possível realizar o CRUD dos destinatários
  • Deve ser possível marcar uma encomenda como aguardando (Disponível para retirada)
  • Deve ser possível retirar uma encomenda
  • Deve ser possível marcar uma encomenda como entregue
  • Deve ser possível marcar uma encomenda como devolvida
  • Deve ser possível listar as encomendas com endereços de entrega próximo ao local do entregador
  • Deve ser possível alterar a senha de um usuário
  • Deve ser possível listar as entregas de um usuário
  • Deve ser possível notificar o destinatário a cada alteração no status da encomenda

Regras de Negócio

  • Somente usuário do tipo admin pode realizar operações de CRUD nas encomendas
  • Somente usuário do tipo admin pode realizar operações de CRUD dos entregadores
  • Somente usuário do tipo admin pode realizar operações de CRUD dos destinatários
  • Para marcar uma encomenda como entregue é obrigatório o envio de uma foto
  • Somente o entregador que retirou a encomenda pode marcar ela como entregue
  • Somente o admin pode alterar a senha de um usuário
  • Não deve ser possível um entregador listar as encomendas de outro entregador

Requisitos Não Funcionais

  • os dados devem ser persistidos num banco de dados postgreSql
  • as fotos comprovando a entrega devem ser armazenadas no cloudfare R2
  • Devem se realizados testes unitários para todas as funcionalidades
  • Devem se realizados testes end-to-end para todas as rotas http
  • Deve ser implementado o CI (Continuous Integration) através das Github Actions