Logotipo Hedhog

Receba novidades do Hedhog no seu e-mail

Novos lançamentos, receitas e breaking changes — sem spam.

Submódulo LMS

dashboard-reports

Métricas do dashboard de admin do LMS, relatórios agregados por período de tempo e um cursor de eventos/stream SSE em tempo real para polling de atividade ao vivo.

Caminho de origem: libraries/lms/src/dashboard, libraries/lms/src/reports, libraries/lms/src/realtime

Arquivo do módulo: dashboard.module.ts, reports.module.ts, lms-realtime.module.ts

Introdução

O endpoint do Dashboard de admin (`GET /lms/dashboard`) e o endpoint de Reports (`GET /lms/reports`) são ambos visões únicas, fortemente agregadas e somente leitura, em vez de coleções de recursos CRUD granulares. O dashboard retorna KPIs do estado atual (alunos/cursos/turmas ativos, certificados emitidos, taxas de conclusão/aprovação, cada um com variações mês a mês), quatro gráficos (crescimento de alunos, engajamento semanal, principais cursos por acesso, distribuição por categoria), um calendário de ±14/+30 dias de sessões de turma e feeds de matrículas recentes/próximas turmas — tudo o que um admin precisa no primeiro login sem navegação adicional. O Reports recebe um parâmetro de query `period` (7d, 30d, 6m ou 12m) e retorna as métricas equivalentes comparadas com o período anterior de mesma duração: tendência de matrículas, rankings por curso e por categoria, um detalhamento de status dos alunos, um radar de qualidade de seis eixos (engajamento, conclusão, satisfação, recomendação, retenção, desempenho) e séries de atividade/evolução de notas semanais. Ambos leem o header `Accept-Language` para localizar os rótulos (normalizado para `pt-BR` ou `en-US`), em vez de receber um parâmetro de query `locale`.

Realtime é uma preocupação separada e muito menor: um ring buffer em memória (últimos 500 eventos) que respalda um endpoint de polling por cursor (`GET /realtime/cursor`, para que um cliente possa verificar de forma barata "algo mudou desde a última vez que olhei") e um verdadeiro canal de push (`GET /realtime/activity/stream`, Server-Sent Events) que filtra o barramento especificamente para eventos `lesson_view`, com um ping de heartbeat de 25 segundos para manter a conexão viva através de proxies. De forma incomum para esta base de código, nenhum dos endpoints de realtime carrega um decorator explícito `@Role()`/`@NoRole()` no código-fonte; o endpoint de cursor, ainda assim, é semeado com roles (`admin`, `admin-lms`, `lms-enterprise-admin`, `lms-instructor`, `lms-student`) no sistema de permissões, enquanto o endpoint de stream SSE não tem nenhuma entrada de permissão de rota.

Uma funcionalidade de "Video Resolution Profiles" (presets de codificação FFmpeg) residia anteriormente nesta área, mas seu controller, serviço, ferramentas MCP e UI de admin foram totalmente removidos em um commit posterior que substituiu a conversão de vídeo por perfil de resolução fixa por streaming HLS adaptativo (agora parte dos submódulos Courses e Platforma). Ela é intencionalmente omitida desta documentação, já que o código de apoio não existe mais — quaisquer referências a `/lms/video-resolution-profiles` em outros lugares (docs antigas, permissões de rota/MCP obsoletas semeadas por migration) estão órfãs.

Endpoints HTTP

4 endpoints

Dashboard de admin agregado: KPIs, gráficos, eventos de calendário, matrículas mais recentes e próximas turmas. Localizado via Accept-Language.

Dashboard de relatórios do período vs. o período anterior equivalente: KPIs, rankings, radar de qualidade, atividade semanal.

Query
period? ('7d' | '30d' | '6m' | '12m', default 12m)

Posição atual do cursor do log de eventos, para fazer polling se novos eventos de tempo real existem.

Stream SSE de eventos de domínio lesson_view conforme são publicados, com um heartbeat de 25s.

Ferramentas MCP

Ferramentas nomeadas que podem ser chamadas por modelos de IA através do Model Context Protocol (MCP).

  • lms.dashboard.get

    Retorna os dados do dashboard de admin do LMS: KPIs, gráficos, eventos de calendário, matrículas mais recentes e próximas turmas

  • lms.reports.get

    Retorna os dados de relatório do LMS incluindo KPIs, matrículas mensais, ranking de cursos, distribuição de status de alunos, radar de qualidade e atividade semanal