Backend robusto e escalável para o sistema DevBurguer, desenvolvido com foco em alta performance, segurança e organização arquitetural.
Este projeto foi recentemente refatorado para seguir padrões de Senior Software Engineering:
- Service Layer (Camada de Serviço): Isolamento total da lógica de negócio em
src/app/services. - Validation Middleware: Validação centralizada de esquemas com
Yupvia middleware, garantindo integridade dos dados sem repetição de código. - Advanced Error Handling: Tratamento global de exceções otimizado para
Express 5, com suporte nativo a erros assíncronos. - Configuração Segura: Gestão de tokens JWT e conexões de banco de dados via variáveis de ambiente (
.env). - Code Style: Padronização rigorosa de código utilizando
Biome. - User-Specific Order History: Controle de acesso granular para pedidos - usuários regulares veem apenas seus próprios pedidos, enquanto administradores visualizam todos os pedidos do sistema.
- Core: Node.js, Express 5 (Beta/Latest)
- Banco de Dados Relacional: PostgreSQL com Sequelize ORM
- Banco de Dados NoSQL: MongoDB com Mongoose (para gestão de pedidos)
- Autenticação: JWT (JSON Web Token) e Bcrypt para hashing de senhas
- Uploads: Multer (Configuração ESM)
- Validação: Yup
- Desenvolvimento: Biome (Linting e Formatação), Jest (Testes de Integração)
-
Acesse o diretório da API:
cd dev-burguer-api -
Instale as dependências:
npm install # ou pnpm install -
Configure as variáveis de ambiente: Crie um arquivo
.envbaseado no exemplo fornecido (ou use o já configurado):MONGO_URL=mongodb://localhost:27017/devburguer JWT_SECRET=SEU_SEGREDO_AQUI PORT=3001
-
Rode as migrações (Postgres):
npm run sequelize db:migrate
-
Inicie o servidor de desenvolvimento:
npm run dev
Para rodar os testes de integração (ESM):
node --experimental-vm-modules node_modules/jest/bin/jest.jsO sistema implementa controle de acesso granular para visualização de pedidos:
- Usuários Regulares: Acessam apenas seus próprios pedidos através do endpoint
GET /orders - Administradores: Visualizam todos os pedidos do sistema, permitindo gestão completa
- Privacidade: Dados de pedidos de outros usuários são inacessíveis para usuários não-admin
- Implementação: Baseada em middleware de autenticação existente, sem necessidade de mudanças no esquema de banco de dados
Esta funcionalidade melhora a experiência do usuário e a segurança do sistema, garantindo que cada cliente tenha acesso apenas ao seu histórico de pedidos.
Desenvolvido com visão crítica e padrões de alta escalabilidade.