Skip to content

carlos-hfc/fast-feet-api

Repository files navigation

💡 Sobre

A Fast Feet é uma aplicação para controle de encomendas de uma transportadora desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.

📃 Pré-requisitos

  1. Antes de começar, certifique-se de ter o Node.js instalado em sua máquina. Node.js

⚙️ Configuração

  1. Clone o repositório para sua máquina local:
git clone https://github.com/carlos-hfc/fast-feet-api
  1. Acesse o diretório do projeto:
cd fast-feet-api
  1. Instale as dependências:
npm install
  1. Crie um arquivo .env.local na raiz do projeto e adicione as seguintes chaves:
NODE_ENV=""
DATABASE_URL=""
JWT_SECRET=""
CLOUDFLARE_ACCOUNT_ID=""
AWS_BUCKET_NAME=""
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
  1. Rode a aplicação
npm run dev

🖱️ Features

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

💻 Tecnologias utilizadas

Node.js TypeScript

📄 Licença

Este projeto está licenciado sob a Licença MIT.