Pular para o conteúdo principal

Desenvolvimento

Stack

  • Next.js (App Router)
  • React 19 + TypeScript
  • Tailwind CSS
  • Jest + Testing Library
  • ApexCharts
  • socket.io-client (presença)

Organização em camadas (MVC no front)

Este repo adota uma separação pragmática:

  • src/models/: tipos, DTOs, serviços (chamadas à API), utilitários de dados
  • src/controllers/: hooks e orquestração de estado (conecta View ↔ Model)
  • src/views/: componentes e layouts (camada de apresentação)
  • src/app/: rotas/páginas do Next + route.ts (APIs /api/*)

Mais detalhes: ARCHITECTURE.md e docs/ARCHITECTURE.md.

Mocks

Existem dois tipos principais de mock:

  • Mocks server-side em dev nas rotas /api/* quando a URL do legado não está configurada.
    • Ex.: GET /api/terminais/locais devolve mocks se TERMINAIS_LISTAR_URL não existir e NODE_ENV=development.
  • Mocks no client habilitados por env em alguns hooks.
    • Ex.: NEXT_PUBLIC_USE_DASHBOARD_MOCK="true", NEXT_PUBLIC_USE_TERMINAIS_MOCK="true".

Rotas /api/* (proxies)

O app implementa proxies server-side para:

  • autenticação (/api/auth/login)
  • integrações legado PHP (terminais, gestão de taxas, etc.)

Motivos:

  • evita CORS no browser
  • permite configurar URLs em runtime no servidor/contêiner
  • ajuda a propagar cookies/sessão quando necessário

Padrões de import

O projeto usa alias @/ (ver tsconfig.json) apontando para src/.

Logs em desenvolvimento

Alguns módulos possuem logs guardados por NODE_ENV !== "production". Em produção, evite logar payloads sensíveis.