2.3 KiB
2.3 KiB
EduManager - Regras Globais e Escopo
🚀 Escopo do Projeto
EduManager é um Sistema de Gestão Escolar completo, focado em alta performance, usabilidade premium e automação de processos administrativos e acadêmicos.
🛠️ Stack Tecnológica
- Frontend/Backend: Remix (React)
- Banco de Dados: PostgreSQL (100% Local/Self-Hosted)
- Storage Architecture: 100% Self-Hosted (MinIO) - Decoupled from Supabase Cloud.
- Image Serving: All images are served via a backend proxy route (
/storage/:bucket/:key) to ensure cross-origin compatibility and security. - Synchronization: High-performance local API for bank reconciliation (Asaas).
- Orquestração: Portainer (Docker)
- Production Entry Point: All production deployments MUST use
server.selfhosted.jsrenamed/copied asserver.jsin the Docker containers to ensure full local feature availability.
⚠️ Regras de Negócio Críticas (MANDATÓRIO)
[!IMPORTANT] Migração de Dados (Legado 'schoodat'): Ao realizar a migração completa dos dados do sistema legado 'schoodat' para o nosso banco de dados local Postgres, é terminantemente proibido alterar, resetar ou re-hashear as senhas existentes. As credenciais devem ser mantidas exatamente como estão para garantir que o acesso dos usuários não seja interrompido.
📜 Padrões de Desenvolvimento
- Design System: Estética Premium, Dark Mode por padrão (ou glassmorphism), micro-animações e ausência de placeholders.
- Segurança: Todas as rotas sensíveis devem validar o token JWT local (via secrets do ambiente). Proibido usar Supabase SDK para lógica de autenticação ou sincronização no frontend.
- Resiliência: Tratamento rigoroso de erros em chamadas de API de terceiros (Asaas, Evolution API).
- Upload de Arquivos: Proibido o uso de Base64 para envio de novos arquivos ao servidor. Use obrigatoriamente
FormDatae envie o objetoFile/Blobpara as rotas de API que integram com o MinIO. - Build Stability: Dockerfiles MUST include
ENV NODE_OPTIONS="--max-old-space-size=4096"beforenpm run buildto prevent Vite/Rolldown crashes during ARM64 cross-compilation. - Express Compatibility: Avoid using raw
/*wildcards in Express 5 routes; use Regex paths (/^\/route\/(.+)$/) for compatibility withpath-to-regexpv8.