Inventário do Repositório -- Lean nas Emergências
Introdução ao documento
Este documento consolida o inventário técnico do repositório com base em evidências do código e das configurações. Serve como ponto de partida para entender a composição, integrações e operação do sistema.
Versionamento
- Versão do documento: 1.0.0
- Última atualização: 2026-03-10
- Responsável: Equipe HSL / Weef Interativa
Referencial teórico
- Docs as Code
- Arc42 - Documenting Software Architecture
- WordPress Theme Development
- BuddyPress Developer Docs
Mapa de descoberta técnica
flowchart LR
SRC[Código/configs] --> EP[Entrypoints]
SRC --> MOD[Pastas e módulos]
SRC --> INT[Integrações]
SRC --> ENV[Env vars]
EP --> OPS[Comandos run/test/build]
Propósito do repo
Plataforma WordPress customizada para gestão do programa Lean nas Emergências do Hospital Sírio-Libanês (HSL). O sistema permite:
-
Cadastro e gestão de hospitais (via grupos BuddyPress)
-
Cadastro de usuários com sistema de indicação
-
Coleta e visualização de KPIs (indicadores de performance hospitalar)
-
Integração com plataforma EAD (Canvas LMS)
-
Fórum de discussão (via BBPress)
-
Biblioteca virtual
-
Evidência:
theme/style.css:1-6(Theme Name: Lean nas Emergências 5.2) -
Evidência:
Readme.md:1(descrição do projeto)
Entrypoints
1. WordPress Core
- Arquivo:
index.php(WordPress padrão, não versionado) - Descrição: Entrypoint principal do WordPress
- Evidência: Estrutura padrão WordPress
2. Tema customizado
- Arquivo:
theme/functions.php - Descrição: Carrega toda a lógica do tema via
theme/functions/wp/setup.php - Evidência:
theme/functions.php:5
3. Must-Use Plugin (Email Logger)
- Arquivo:
mu-plugins/email-logger.php - Descrição: Plugin obrigatório para rastreamento de emails
- Evidência:
mu-plugins/email-logger.php:1-40
4. Docker Compose
- Arquivo:
docker-compose.yml - Descrição: Orquestração de containers (WordPress + MySQL)
- Evidência:
docker-compose.yml:1-47
Principais pastas e responsabilidade
| Pasta | Responsabilidade | Evidência |
|---|---|---|
theme/ | Tema WordPress customizado (Lean nas Emergências 5.2) | theme/style.css:1 |
theme/functions/ | Lógica de negócio modular, carregada automaticamente | theme/functions/wp/setup.php:1 |
theme/functions/wp/ | Configuração core do WordPress (menus, admin, AJAX, login) | theme/functions/wp/setup.php |
theme/functions/helpers/ | 35+ arquivos utilitários (posts, hospitais, BP, AJAX, navegação) | theme/functions/helpers/ |
theme/functions/hooks/ | 10+ arquivos de hooks WP/BP (ACLs, perfil, fórum, eventos) | theme/functions/hooks/ |
theme/functions/kpis/ | Sistema de KPIs: permissões, formulários, relatórios, DB connection | theme/functions/kpis/forms.php:1 |
theme/functions/ead/ | Integração Canvas LMS: criação de usuário, matrícula | theme/functions/ead/ead.php:1 |
theme/functions/registration/ | Módulo de cadastro customizado com validação/sanitização | theme/functions/registration/index.php:1 |
theme/functions/indication/ | Sistema de indicação/convite de usuários a grupos | theme/functions/indication/index.php |
theme/functions/importer/ | Importadores CSV (NEDOCS, KPI diário, mensal, ciclo) | theme/functions/importer/ |
theme/functions/fixes/ | Correções de compatibilidade (BBPress, BP SEO, ACF, admin) | theme/functions/fixes/ |
theme/functions/loop/ | Gerenciamento de queries e loops WP | theme/functions/loop/ |
theme/functions/shortcodes/ | Shortcodes customizados (br, search, year, breadcrumbs, gallery) | theme/functions/shortcodes/ |
theme/functions/enqueue/ | Enqueue de CSS e JS | theme/functions/enqueue/ |
theme/functions/plugins/ | Configurações específicas de plugins (ACF, BP, Gravity, Yoast) | theme/functions/plugins/ |
theme/functions/options/ | Páginas de opções do tema (geral, analytics) | theme/functions/options/ |
theme/modules/ | 52+ módulos de template reutilizáveis (header, footer, cards, filtros) | theme/modules/ |
theme/templates/ | 23+ page templates WordPress (home, login, hospitais, EAD, KPIs) | theme/templates/ |
theme/assets/ | Assets frontend (CSS/JS). Build system (Gulp) obsoleto — arquivos dist/ editados diretamente. Não executar build. | theme/assets/dist/ |
theme/bbpress/ | Templates customizados do BBPress (fóruns) | theme/bbpress/ |
theme/buddypress/ | Templates customizados do BuddyPress (grupos, perfis) | theme/buddypress/ |
mu-plugins/ | Must-use plugins (Email Logger) | mu-plugins/email-logger.php:1 |
mu-plugins/email-logger/ | Plugin de rastreio de e-mails com contexto de negócio | mu-plugins/email-logger.php:5 |
mysql-init/ | Scripts de inicialização do MySQL (criação do banco KPI) | mysql-init/init.sql:1 |
wp-content/ | Conteúdo WordPress (plugins, uploads, traduções, backups) | wp-content/ |
Integrações externas identificadas
| Integração | Tipo | Evidência |
|---|---|---|
| Canvas LMS | REST API (Bearer token) — criação de usuários e matrícula em cursos EAD | theme/functions/ead/ead.php:5-8 (ACF options: canvas-api-url, canvas-token) |
| Google Maps API | SDK JavaScript — mapas de hospitais | ACF option google_maps_api_key |
| Amazon S3/CloudFront | Plugin WP — storage e CDN de mídia | wp-content/plugins/amazon-s3-and-cloudfront/ |
| Easy WP SMTP | Plugin WP — envio de e-mails transacionais | wp-content/plugins/easy-wp-smtp/ |
| reCAPTCHA | Plugin WP — proteção de formulários | wp-content/plugins/login-recaptcha/ |
| Google Analytics | Plugin WP — métricas de uso | wp-content/plugins/google-analytics-dashboard/ |
| Gravity Forms | Plugin WP — formulários dinâmicos | theme/functions/plugins/gravity.php |
| The Events Calendar | Plugin WP — gestão de eventos | theme/tribe-events/ |
| Yoast SEO | Plugin WP — otimização de SEO | theme/functions/plugins/yoast.php |
| MySQL KPI DB | Banco separado — indicadores de performance | wp-config.php:82-85, mysql-init/init.sql:1 |
Jobs / cron / queues / workers
- Não foram identificados cron jobs explícitos no código do tema ou configuração Docker.
- WordPress WP-Cron padrão está ativo (não desabilitado no wp-config.php).
- Possível uso de wp-cron para agendamento de eventos (The Events Calendar) e notificações (BuddyPress).
- Evidência:
wp-config.php— semDISABLE_WP_CRON.
Storage / caches
- MySQL WordPress — Banco principal para posts, users, meta, BP groups.
- Evidência:
docker-compose.yml:22-30
- Evidência:
- MySQL KPI — Banco separado para indicadores.
- Evidência:
wp-config.php:82-85
- Evidência:
- W3 Total Cache — Plugin de cache instalado.
- Evidência:
wp-content/w3tc-config/
- Evidência:
- Amazon S3 — Storage externo para mídia (quando configurado).
- Evidência:
wp-content/plugins/amazon-s3-and-cloudfront/
- Evidência:
- EWWW Image Optimizer — Otimização de imagens.
- Evidência:
wp-content/ewww/
- Evidência:
Lista de variáveis de ambiente
| Variável | Arquivo | Linha |
|---|---|---|
WORDPRESS_DB_HOST | docker-compose.yml | 14 |
WORDPRESS_DB_USER | docker-compose.yml | 15 |
WORDPRESS_DB_PASSWORD | docker-compose.yml | 16 |
WORDPRESS_DB_NAME | docker-compose.yml | 17 |
MYSQL_DATABASE | docker-compose.yml | 25 |
MYSQL_USER | docker-compose.yml | 26 |
MYSQL_PASSWORD | docker-compose.yml | 27 |
MYSQL_ROOT_PASSWORD | docker-compose.yml | 28 |
DB_KPI_HOST | wp-config.php | 82 |
DB_KPI_USER | wp-config.php | 83 |
DB_KPI_PASS | wp-config.php | 84 |
DB_KPI_DB_NAME | wp-config.php | 85 |
DB_KPI_ENVIRONMENT | theme/functions/kpis/forms.php | 173 |
WORDPRESS_DEBUG | wp-config.php | 89 |
AUTH_KEY | wp-config.php | ~50 |
SECURE_AUTH_KEY | wp-config.php | ~51 |
LOGGED_IN_KEY | wp-config.php | ~52 |
NONCE_KEY | wp-config.php | ~53 |
Comandos para rodar, testar e buildar
| Ação | Comando |
|---|---|
| Subir ambiente | docker-compose up -d |
| Parar ambiente | docker-compose down |
| Logs WordPress | docker logs -f wp_app |
| Logs MySQL | docker logs -f wp_db |
| Shell WordPress | docker exec -it wp_app bash |
| Shell MySQL | docker exec -it wp_db mysql -u root -proot |
NÃO EXECUTAR — build system obsoleto, assets editados diretamente em dist/. Executar gulp quebrará o projeto. | |
| Fix permissões | docker exec -it wp_app chown www-data:www-data /var/www/html/.htaccess |
- Testes automatizados: Não identificados no repositório.
- Evidência: ausência de
phpunit.xml,tests/, ou scripts de teste emcomposer.jsonepackage.json.
Pendências
- Testes automatizados não implementados (sem PHPUnit, sem testes de integração).
- Backup
.wpressnão versionado — distribuição manual. - Rotação de credenciais do Canvas LMS não documentada.
- Schema completo do banco KPI não disponível (apenas
CREATE DATABASEnoinit.sql— tabelas precisam de dump). - ACF field groups exportados em JSON/PHP não encontrados no repositório (gerenciados via UI).
- Documentação de ACF Options (canvas-api-url, google_maps_api_key, etc.) ausente.