Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mlg404/bootcamp-gostack-desafio-03

Backend development for a fictional shipping company, FastFeet, with Node.js
https://github.com/mlg404/bootcamp-gostack-desafio-03

Last synced: 24 days ago
JSON representation

Backend development for a fictional shipping company, FastFeet, with Node.js

Awesome Lists containing this project

README

        


Fastfeet


Desafio 2: FastFeet, o início


:warning: Etapa 2/4 do Desafio Final :warning:

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!

“Não espere para plantar, apenas tenha paciência para colher”!


GitHub top language

GitHub language count

Repository size

GitHub last commit


Repository issues


GitHub


Made by Rocketseat


Sobre o desafio   |   
Tecnologias   |   
Como usar   |   
Funcionalidades   |   
Licença

## :rocket: Sobre o desafio

A aplicação que iremos dar início ao desenvolvimento a partir de agora é um app para uma transportadora fictícia, o FastFeet.

Nesse primeiro desafio vamos criar algumas funcionalidades básicas que aprendemos ao longo das aulas até aqui. Esse projeto será desenvolvido aos poucos até o fim da sua jornada onde você terá uma aplicação completa envolvendo back-end, front-end e mobile, que será utilizada para a **certificação do bootcamp**, então, bora pro código!

## :computer: Tecnologias

Este projeto foi desenvolvido com as seguintes tecnologias:

- [Yup](https://github.com/jquense/yup)
- [redis](https://redis.io/)
- [Multer](https://github.com/expressjs/multer)
- [Node.js](https://nodejs.org/)
- [Express](https://expressjs.com/)
- [Sucrase](https://github.com/alangpierce/sucrase)
- [bcryptjs](https://github.com/dcodeIO/bcrypt.js)
- [date-fns](https://date-fns.org/)
- [Nodemon](https://nodemon.io/)
- [Sequelize](https://sequelize.org/)
- [bee-queue](https://github.com/bee-queue/bee-queue)
- [Nodemailer](https://nodemailer.com/about/)
- [Handlebars](https://handlebarsjs.com/)
- [JsonWebToken](https://jwt.io/)
- [VS Code][vc] com [EditorConfig][vceditconfig], [ESLint][vceslint] e [Prettier][vcprettier]

## :information_source: Como usar

Para clonar e usar esta aplicação, você precisará do [Git](https://git-scm.com), [Node.js v12.15.0][nodejs] ou superior + [Yarn v1.21.1][yarn] ou superior instalados no seu computador. No seu terminal:

```bash
# Clonar este repositório
$ git clone https://github.com/mlg404/bootcamp-goStack-desafio-03.git desafio-03

# Aceder a este repositório
$ cd desafio-03

# Instalar dependências
$ yarn install

# Rodar a aplicação
$ yarn dev

# Rodar a fila de emails
$ yarn queue
```

Além disso, você precisará configurar o servidor postgres e redis.

As requisições do Insomnia podem ser fácilmente importadas clicando no botão:
[![Run in Insomnia}](https://insomnia.rest/images/run.svg)](https://insomnia.rest/run/?label=FastFeet&uri=https%3A%2F%2Fraw.githubusercontent.com%2Fmlg404%2Fbootcamp-gostack-desafio-03%2Fmaster%2FInsomnia.json)

## :mag_right: Funcionalidades

Abaixo estão descritas as funcionalidades que adicionei a minha aplicação.

### **1. Autenticação dos Administradores**

Criei a permissão para que um usuário se autentique na aplicação utilizando e-mail e uma senha.

- A autenticação foi feita utilizando JWT.
- Realizei a validação dos dados de entrada.
- Administrador tem acesso a todas as rotas da aplicação.
- Pode gerenciar todos os entregadores, destinatários e entregas.

### **2. Gestão de destinatários**

Criei a permissão para que os destinatários sejam mantidos (cadastrados/atualizados) na aplicação.

- O gerenciamento de destinatários só pode ser feito por administradores autenticados na aplicação.
- Realizei a validação dos dados de entrada
- O destinatário não pode se autenticar no sistema, ou seja, não possui senha.

### **3. Gestão de entregadores**

Criei um CRUD para que os entregadores sejam mantidos na aplicação.

- O gerencimaneto de entregadores só pode ser feito por administradores autenticados na aplicação.
- Realizei a validação dos dados de entrada
- O entregador não pode se autenticar no sistema, ou seja, não possui senha.
- O entregador pode visualizar as entregas vinculadas a ele.
- O entregador pode iniciar uma entrega desde que esteja dentro do horário ( 08: as 18:00 ), e desde que não tenha atingido a cota de 5 ou entregas iniciadas no dia.
- O entregador pode finalizar uma entrega, desde que envie uma foto de sua assinatura.
- O entregador pode cadastrar um problema nas suas entregas.

### **4. Gestão de encomendas**

Criei um CRUD para que as encomendas sejam mantidas na aplicação.

- O gerencimaneto de encomendas só pode ser feito por administradores autenticados na aplicação.
- Realizei a validação dos dados de entrada.
- A retirada de encomendas só pode ser feita entre 08:00 e 18:00 horas

## :memo: Licença
Este projeto está sob a licença do MIT . Veja a [LICENÇA](https://github.com/mlg404/bootcamp-goStack-desafio-03/blob/master/LICENSE) para mais informações.

---

Feito com 💙 por Victor Eyer :wave: [Entre em contato!](https://www.linkedin.com/in/victoreyer/)

[nodejs]: https://nodejs.org/
[yarn]: https://yarnpkg.com/
[vc]: https://code.visualstudio.com/
[vceditconfig]: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
[vceslint]: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
[vcprettier]: https://prettier.io/