API de plataforma de delivery desenvolvida com foco em qualidade de software (QA), cobrindo testes de API, validação de fluxos críticos e estrutura para automação de testes.
Sistema back-end responsável por:
- Gestão de usuários e autenticação
- Estabelecimentos e produtos
- Fluxo completo de pedidos
- Upload de arquivos
- Endereços múltiplos
Este projeto foi estruturado para aplicar práticas de QA:
- ✔ Validação de fluxos críticos
- ✔ Criação de cenários de teste
- ✔ Testes de integração
- ✔ Preparação para automação
- ✔ Testes manuais com Postman
- Funcionais
- Integração
- Regressão
- Postman
- Jest
- Supertest
- MongoDB
- Multer
- Bunyan
- Redis
O projeto inclui uma collection do Postman para validação dos endpoints.
📁 /postman/rangos_collection.json
tests/
├── integration/
│ ├── auth.test.ts
│ ├── user.test.ts
│ ├── order.test.ts
│ └── product.test.ts
- Node.js 18+
- npm 8+
- MongoDB
- Git
- Docker
- Docker Compose
💡 Ao utilizar Docker, não é necessário instalar Node.js ou MongoDB localmente.
git clone https://github.com/Dienay/rangos-api.git
cd rangos-api
npm i
cp .env.example .envO projeto pode ser executado utilizando Docker com o script run.sh.
chmod +x run.sh./run.sh up # Inicia os containers
./run.sh build # Build dos containers
./run.sh rebuild # Build + start
./run.sh rebuild:force # Rebuild forçado
./run.sh down # Remove containers
./run.sh stop # Para containers
./run.sh restart # Reinicia containers
./run.sh logs # Logs em tempo real
./run.sh ps # Lista containersNODE_ENV=development
PORT=3000
REDIS_URL=redis://rangos-redis-server:6379
MONGO_URL=mongodb://rangos-mongo:27017/rangos
JWT_SECRET=segredo_super_secretoA aplicação segue uma arquitetura modular, separando responsabilidades para facilitar manutenção, escalabilidade e testes.
src/
├── config/ # Configurações globais (database, variáveis de ambiente)
├── controllers/ # Camada responsável por processar requisições e respostas
├── errors/ # Tratamento centralizado de erros e exceções
├── middlewares/ # Interceptadores (auth, validações, etc.)
├── models/ # Schemas e interação com o banco de dados
├── routes/ # Definição das rotas e endpoints da API
├── uploads/ # Armazenamento de arquivos enviados
└── app.ts # Inicialização da aplicação
A documentação está organizada nos seguintes arquivos:
API Reference Models Auth Guide Errors
| Código | Descrição |
|---|---|
| 400 | Requisição inválida |
| 401 | Não autorizado |
| 404 | Não encontrado |
| 413 | Payload muito grande |
| 500 | Erro interno |
- Upload de arquivos
- Integrações externas
- Concorrência de dados
- MongoDB Atlas
- PM2
- HTTPS
- Configuração de CORS
- Seguir padrão de código
- Utilizar Conventional Commits
- Manter testes atualizados
- Documentar alterações
Este projeto está licenciado sob a Licença MIT.