Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/carlos-hfc/fast-feet-api
https://github.com/carlos-hfc/fast-feet-api
ddd nestjs nodejs prisma-orm rocketseat rocketseat-ignite typescript vitest zod
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/carlos-hfc/fast-feet-api
- Owner: carlos-hfc
- License: mit
- Created: 2024-05-24T20:05:32.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-06-05T14:19:56.000Z (8 months ago)
- Last Synced: 2024-11-22T23:09:53.376Z (3 months ago)
- Topics: ddd, nestjs, nodejs, prisma-orm, rocketseat, rocketseat-ignite, typescript, vitest, zod
- Language: TypeScript
- Homepage:
- Size: 251 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
![]()
![]()
# :bulb: 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.
## :page_with_curl: Pré-requisitos
1. Antes de começar, certifique-se de ter o Node.js instalado em sua máquina.
![]()
## :gear: Configuração
1. Clone o repositório para sua máquina local:
```bash
git clone https://github.com/carlos-hfc/fast-feet-api
```2. Acesse o diretório do projeto:
```bash
cd fast-feet-api
```3. Instale as dependências:
```bash
npm install
```4. Crie um arquivo `.env.local` na raiz do projeto e adicione as seguintes chaves:
```env
NODE_ENV=""
DATABASE_URL=""
JWT_SECRET=""
CLOUDFLARE_ACCOUNT_ID=""
AWS_BUCKET_NAME=""
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
```5. Rode a aplicação
```bash
npm run dev
```## :computer_mouse: Features
### Requisitos funcionais
- :ballot_box_with_check: A aplicação deve ter dois tipos de usuário, entregador e/ou admin
- :ballot_box_with_check: Deve ser possível realizar login com CPF e Senha
- :ballot_box_with_check: Deve ser possível realizar o CRUD dos entregadores
- :ballot_box_with_check: Deve ser possível realizar o CRUD das encomendas
- :ballot_box_with_check: Deve ser possível realizar o CRUD dos destinatários
- :ballot_box_with_check: Deve ser possível marcar uma encomenda como aguardando (Disponível para retirada)
- :ballot_box_with_check: Deve ser possível retirar uma encomenda
- :ballot_box_with_check: Deve ser possível marcar uma encomenda como entregue
- :ballot_box_with_check: Deve ser possível marcar uma encomenda como devolvida
- :ballot_box_with_check: Deve ser possível listar as encomendas com endereços de entrega próximo ao local do entregador
- :ballot_box_with_check: Deve ser possível alterar a senha de um usuário
- :ballot_box_with_check: Deve ser possível listar as entregas de um usuário
- :ballot_box_with_check: Deve ser possível notificar o destinatário a cada alteração no status da encomenda### Regras de negócio
- :ballot_box_with_check: Somente usuário do tipo admin pode realizar operações de CRUD nas encomendas
- :ballot_box_with_check: Somente usuário do tipo admin pode realizar operações de CRUD dos entregadores
- :ballot_box_with_check: Somente usuário do tipo admin pode realizar operações de CRUD dos destinatários
- :ballot_box_with_check: Para marcar uma encomenda como entregue é obrigatório o envio de uma foto
- :ballot_box_with_check: Somente o entregador que retirou a encomenda pode marcar ela como entregue
- :ballot_box_with_check: Somente o admin pode alterar a senha de um usuário
- :ballot_box_with_check: Não deve ser possível um entregador listar as encomendas de outro entregador## :computer: Tecnologias utilizadas
![]()
![]()
## :page_facing_up: Licença
Este projeto está licenciado sob a [Licença MIT](LICENSE).