Skip to content

Repository files navigation

🍔 DevBurguer API

Backend robusto e escalável para o sistema DevBurguer, desenvolvido com foco em alta performance, segurança e organização arquitetural.

🚀 Destaques da Arquitetura

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 Yup via 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.

🛠️ Tecnologias Utilizadas

  • 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)

📋 Como Rodar o Projeto

  1. Acesse o diretório da API:

    cd dev-burguer-api
  2. Instale as dependências:

    npm install
    # ou
    pnpm install
  3. Configure as variáveis de ambiente: Crie um arquivo .env baseado no exemplo fornecido (ou use o já configurado):

    MONGO_URL=mongodb://localhost:27017/devburguer
    JWT_SECRET=SEU_SEGREDO_AQUI
    PORT=3001
  4. Rode as migrações (Postgres):

    npm run sequelize db:migrate
  5. Inicie o servidor de desenvolvimento:

    npm run dev

🧪 Testes

Para rodar os testes de integração (ESM):

node --experimental-vm-modules node_modules/jest/bin/jest.js

🔐 Funcionalidades de Segurança

User-Specific Order History

O 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages