Arquitetura · JavaScript por Subpasta¶
javascript/ foi reorganizado de uma lista plana de ~32 arquivos para subpastas por domínio, cada uma refletindo uma responsabilidade clara do sistema.
Estrutura de pastas¶
javascript/
├── core/ → bootstrap, config e infraestrutura transversal
│ ├── app.js · init.js · events.js · ui.js · data.js · database.js
│ ├── api.js · content-loader.js · cloud-connection.js · demo-api.js
│ ├── crypto.js · aws-config.js · claude-key.js · gemini-key.js
│ ├── emailjs-config.js · mongodb-config.js · saas.js
├── admin/ → módulos do painel administrativo (compliance/gestão)
│ ├── adminauth.js · changeauth.js · iso.js · audit.js · backup.js
│ ├── training.js · risktreatment.js · tech_controls.js
│ ├── payments.js · api-users.js · nuvem.js · tecnologia.js
│ ├── admob.js · monetization.js · saas-admin.js
├── security/ → engine de segurança e simulação de ataques
│ ├── security_engine.js · attacks.js · network.js · tcpip.js
│ ├── datasecurity.js · sender.js
├── pentest/ → módulo de Testes de Intrusão (este documento)
│ └── pentest.js
├── marketing/ → LinkedIn Ads B2B e conformidade de cookies
│ ├── marketing.js · palestras.js · cookies.js
├── ui/ → componentes de interface reutilizáveis
│ ├── ui.js · dropdown-menu.js · topbar-menu.js
│ ├── tutorial.js · signature_pad.js
├── modules/ → módulos de produto diversos
│ ├── products.js · corporate.js · roleai.js · pendencias.js · secbot.js
├── models/ → camada de modelos de dados (entidades e catálogo)
│ ├── index.js · base/entity.js · catalog/catalog.js
│ ├── products/ (dev, webdesign, licensing, consulting, support, cloud, portal)
│ ├── saas/saas-plans.js · services/ (security, business)
├── ai/ → data science / GenAI
│ └── datascience.js
├── erp/ → produtos e serviços ERP
│ └── erp-products.js
├── etl/ → pipeline de dados
│ └── etl-pipeline.js
└── courses/ → curso de programação
└── programming-course.js
Racional da divisão¶
| Subpasta | Critério de inclusão |
|---|---|
core/ |
Qualquer módulo carregado no bootstrap (app.js) ou usado transversalmente por outros módulos (config, criptografia, banco) |
admin/ |
Módulo que só é acessível dentro do painel administrativo autenticado |
security/ |
Lógica de detecção/simulação de ameaças e proteção de dados |
pentest/ |
Isolado por ser um módulo grande e autocontido (1500+ linhas) com dados estáticos extensos |
marketing/ |
Tudo relacionado a aquisição/growth — hoje 100% LinkedIn Ads B2B |
ui/ |
Componentes sem lógica de negócio, puramente de interface |
modules/ |
Módulos de produto que não se encaixam nas categorias acima |
models/ |
Camada de dados/entidades, sem lógica de renderização |
ai/, erp/, etl/, courses/ |
Domínios verticais isolados o suficiente para merecer pasta própria |
Regra de ouro: um módulo novo entra na subpasta mais específica que existir; só cria uma subpasta nova se representar um domínio de negócio genuinamente distinto — critério parte do Definition of Done.
Ordem de carregamento¶
index.html carrega os scripts na ordem: core/ (bootstrap e config) → security/ → admin/ → módulos de produto (modules/, marketing/, pentest/, erp/, etl/, ai/, courses/) → ui/ (por último, pois depende de todos os outros para o TabManager já ter os módulos disponíveis).