Git Product home page Git Product logo

fastfeet_api's Introduction

Fastfeet

Sobre a API

Essa API 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. Ela foi construída em NodeJS usando o Express.

Ferramentas/Tecnologias

Funcionalidades

Funcionalidades do administrador

Abaixo estão descritas as funcionalidades para administradores.

1. Autenticação

Na aplicação existe um usuário administrador no qual seu login é feito através de email e senha. Esse usuário é responsável por tarefas envolvendo o gerenciamento de destinatarios, encomendas e entregadores. Ao logar na aplicação, é gerado um token que deverá ser utilizado nas demais rotas que precisam de autenticação.

2. Gestão de destinatários

O administrador poderá gerenciar destinatários através do cadastro e atualização dos mesmos. Um destinatário é composto por nome do destinatário e campos de endereço: rua, número, complemento, estado, cidade e CEP. O destinatário não pode se autenticar na aplicação, portanto, não possui senha.

3. Gestão de entregadores

Permite que o administrador cadastre e gerencie entregadores na plataforma. Os campos pertencentes ao entregador são:

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

4. Gestão de encomendas

Nessa funcionalidade é feito um cadastro de encomendas para o 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 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.

A 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.

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**.

Além disso, é permitido listar as encomendas que já foram entregues por ele, com base em seu ID de cadastro;

2. Alterar status de encomendas

O entregador pode alterar o status de retirada, através de uma data de retirada(start_date) e data de entrega(end_date) para as encomendas. O entregador só pode fazer 5 retiradas por dia. Além disso, para finalizar a entrega o entregador deve enviar uma imagem com a assinatura da pessoa que recebeu a encomenda.

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. Os campos que compoem o cadastro de um problema são:

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

fastfeet_api's People

Contributors

joedsilva18 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.