Portal Interno JP Contábil
Plataforma interna em Flask que orquestra autenticação, tarefas, reuniões, treinamentos, agenda, empresas/departamentos, anúncios, diretoria, procedimentos e finanças (notas de débito e cadastros) para a operação da JP.
- Arquitetura MVC: templates Jinja (app/templates), estáticos em app/static, lógica em app/controllers/routes.py, forms WTForms, modelos em app/models/tables.py e cache central em app/extensions/cache.py.
- Banco MySQL via mysql+pymysql com fallback automático para SQLite; cache de calendário, middleware de logs/performance e autocriação de colunas/tabelas legadas durante o bootstrap.
- Domínio rico: usuários/sessões, empresas, departamentos, consultorias, reuniões, agenda geral, cursos, tarefas, notificações, links de acesso, anúncios, diretoria, procedimentos operacionais, notas de débito, cadastros e trilha de auditoria.
- Funcionalidades principais: login/registro, CRUD completo, reuniões recorrentes com Google Calendar/Meet, cursos, tarefas colaborativas com anexos/seguidores/notificações, compartilhamento seguro, anúncios, diretoria, procedimentos, notas de débito, busca por CNPJ, envio de e-mail/push e proteções CSRF/WTForms.
- Integrações e serviços: Google OAuth/Calendar/Gmail, cache de calendário, lógica de salas e recorrência, notificações push, SSE/broadcast em memória, consulta de CNPJ, cursos/agenda, jobs leves em background.
- Segurança e observabilidade: CSRF, cookies HttpOnly/SameSite, segredo do .env, sanitização de HTML, CSP/HSTS/COOP/CORP/X-Frame/NoSniff, rate limiting configurável, limites de upload (5 GB), headers HTTPS; endpoints de health e middleware de performance com rastreamento por ID.