API desenvolvida para o controle de encomendas de uma transportadora fictícia, a FastFeet. Este projeto foi o 5º Desafio desenvolvido como parte do programa Ignite da Rocketseat em 2023.
A FastFeet API fornece funcionalidades para gerenciar entregas, transportadores e destinatários. Foi construída com Node.js, utilizando o framework NestJS, escrita em TypeScript e acompanhada de regras de negócio para validação de ações.
- Create:
- Tipos de usuário: Administrador, Entregador e Destinatário.
- Registro de novos usuários.
- Read:
- Login com CPF e senha.
- Listagem de entregas de um usuário.
- Update:
- Alteração de senha de um usuário.
- Delete: Exclusão de usuários.
- Create:
- Status padrão: "Aguardando Retirada".
- Tipos de status: Aguardando Retirada, Retirada, Devolvida e Entregue.
- Read:
- Listagem de encomendas por status ou proximidade geográfica.
- Filtros por bairro e entregador.
- Update:
- Alteração de status das encomendas.
- Delete: Exclusão de encomendas.
- Criação, leitura, atualização e exclusão de destinos.
- Notificação do destinatário a cada alteração no status da encomenda.
- Envio de foto obrigatório ao marcar uma encomenda como entregue.
- Restrições de acesso mais rigorosas:
- Apenas administradores podem gerenciar usuários e destinos.
- Apenas administradores e entregadores podem gerenciar encomendas.
- Proteção contra acesso a dados de outros usuários, garantindo total privacidade.
- Validações adicionais de regras de negócio.
- Somente Administradores podem realizar operações de CRUD de Usuários e Destinos.
- Apenas Entregadores que retiraram a encomenda podem marcá-la como entregue.
- A entrega de encomendas exige o envio de uma foto.
- Um Entregador não pode visualizar encomendas de outros Entregadores.
A API foi projetada para ser consumida por interfaces web e/ou móveis. Confira o layout proposto para a aplicação no Figma:
FastFeet Layout
- Node.js (>= 20.10.0)
- NestJS
- TypeScript
- Prisma
- Zod
- JWT para autenticação
- Vitest para testes
- Node.js (>= 20.10.0)
- Docker e Docker Compose
- Clone o repositório:
git clone https://github.com/Robson16/challenge-ignite-nodejs-05-fast-feet-api.git
cd challenge-ignite-nodejs-05-fast-feet-api- Instale as dependências:
npm install- Inicie o banco de dados com Docker Compose:
docker-compose up -d- Execute as migrações do banco de dados:
npm run prisma:migrate- Inicie o servidor de desenvolvimento:
npm run start:dev- Acesse a aplicação em http://localhost:3000.
Execute os testes para garantir o funcionamento da API:
npm run testPara obter o relatório de cobertura:
npm run test:covEste projeto está licenciado sob os termos da licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Sinta-se à vontade para contribuir! Envie suas sugestões, relatar problemas ou criar pull requests.
Desenvolvido com ❤️ por Robson Henrique Rodrigues.