Dashboard do Instrutor
Acompanhe o progresso dos seus alunos na metodologia SRC
Total de Alunos
24
+3 este mês
Poupança Total
487, 650.00 MT
+12.5% vs mês anterior
Taxa de Conclusão
87%
+5% vs mês anterior
Média de ROI
156%
+23% vs mês anterior
Lista de Alunos
Aluno | Progresso | Poupança | Status | Última Actividade | Acções |
---|
Análise de Performance
📊 Gráfico de Poupanças por Mês
Integração com bibliotecas de gráficos
Integração com bibliotecas de gráficos
68%
Substituições
24%
Reduções
8%
Cortes
Actividade Recente
Ana Silva concluiu o módulo "Substituir"
há 2 horas
João Santos poupou 2,500.00 MT este mês
há 4 horas
Maria Costa está inactiva há 5 dias
há 6 horas
Pedro Lopes atingiu ROI de 180%
há 1 dia
Top Poupadores
1
Ana Silva
45, 890.00 MT poupados
2
João Santos
38, 720.00 MT poupados
3
Maria Costa
32, 150.00 MT poupados
4
Pedro Lopes
28, 960.00 MT poupados
Acções Rápidas
`;// Criar e abrir janela para impressão/PDF
var printWindow = window.open('', '_blank');
printWindow.document.write(htmlContent);
printWindow.document.close();
// Aguardar carregamento e abrir diálogo de impressão
printWindow.onload = function() {
setTimeout(function() {
printWindow.print();
}, 500);
};
alert('📄 Relatório PDF preparado!\n\nUma nova janela foi aberta com o relatório formatado.\nUse Ctrl+P (ou Cmd+P no Mac) para salvar como PDF.');
}function enviarLembrete() {
var alunosInactivos = alunos.filter(function(aluno) {
return aluno.status === 'inactivo' || aluno.progresso < 50;
});
if (alunosInactivos.length === 0) {
alert('Não há alunos que precisem de lembretes no momento.');
return;
}
var mensagem = 'Lembrete enviado para ' + alunosInactivos.length + ' aluno(s):\n\n';
for (var i = 0; i < alunosInactivos.length; i++) {
mensagem += '- ' + alunosInactivos[i].nome + ' (' + alunosInactivos[i].email + ')\n';
}
alert(mensagem + '\nMotivação e orientações personalizadas foram enviadas!');
}function gerarRelatorio() {
var tipoRelatorio = prompt('Que tipo de relatório deseja gerar?\n\n1 - Relatório de Performance\n2 - Análise de ROI\n3 - Relatório de Actividade\n\nDigite o número:');
switch(tipoRelatorio) {
case '1':
alert('Relatório de Performance gerado!\n\nResumo:\n- Melhor aluno: ' + alunos[0].nome + ' (95% progresso)\n- Maior ROI: ' + Math.max(...alunos.map(a => a.roi)) + '%\n- Taxa média de conclusão: 75%');
break;
case '2':
var roiMedio = alunos.reduce(function(sum, a) { return sum + a.roi; }, 0) / alunos.length;
alert('Análise de ROI gerada!\n\nROI Médio: ' + roiMedio.toFixed(1) + '%\nMelhor ROI: ' + Math.max(...alunos.map(a => a.roi)) + '%\nPior ROI: ' + Math.min(...alunos.map(a => a.roi)) + '%');
break;
case '3':
var activos = alunos.filter(a => a.status === 'activo').length;
alert('Relatório de Actividade gerado!\n\nAlunos Activos: ' + activos + '\nAlunos Concluídos: ' + alunos.filter(a => a.status === 'concluido').length + '\nAlunos Inactivos: ' + alunos.filter(a => a.status === 'inactivo').length);
break;
default:
alert('Opção inválida.');
}
}function agendarSessao() {
var tipoSessao = prompt('Que tipo de sessão deseja agendar?\n\n1 - Workshop em Grupo\n2 - Sessão de Coaching Individual\n3 - Revisão de Progresso\n\nDigite o número:');
switch(tipoSessao) {
case '1':
alert('Workshop em Grupo agendado!\n\nData sugerida: ' + new Date(Date.now() + 7*24*60*60*1000).toLocaleDateString('pt-PT') + '\nTema: "Estratégias Avançadas SRC"\nParticipantes: Todos os alunos activos');
break;
case '2':
var nomeAluno = prompt('Nome do aluno para coaching individual:');
alert('Sessão de Coaching agendada!\n\nAluno: ' + nomeAluno + '\nData sugerida: ' + new Date(Date.now() + 3*24*60*60*1000).toLocaleDateString('pt-PT') + '\nFoco: Análise personalizada de resultados');
break;
case '3':
alert('Revisão de Progresso agendada!\n\nData: ' + new Date(Date.now() + 14*24*60*60*1000).toLocaleDateString('pt-PT') + '\nParticipantes: Alunos com progresso >80%\nObjectivo: Celebrar conquistas e definir próximos passos');
break;
default:
alert('Opção inválida.');
}
}function enviarMensagem(id) {
var aluno = alunos.find(function(a) { return a.id === id; });
var mensagem = prompt('Mensagem para ' + aluno.nome + ':');
if (mensagem) {
alert('Mensagem enviada para ' + aluno.nome + '!\n\n"' + mensagem + '"');
fecharModal();
}
}function agendarSessaoIndividual(id) {
var aluno = alunos.find(function(a) { return a.id === id; });
alert('Sessão individual agendada com ' + aluno.nome + '!\n\nData sugerida: ' + new Date(Date.now() + 3*24*60*60*1000).toLocaleDateString('pt-PT') + '\nFoco: Revisar progresso atual e definir próximos objectivos');
fecharModal();
}function actualizarEstatisticas() {
var totalAlunos = alunos.length;
var poupancaTotal = alunos.reduce(function(sum, a) { return sum + a.poupanca; }, 0);
var progressoMedio = alunos.reduce(function(sum, a) { return sum + a.progresso; }, 0) / totalAlunos;
var roiMedio = alunos.reduce(function(sum, a) { return sum + a.roi; }, 0) / totalAlunos;document.getElementById('totalAlunos').textContent = totalAlunos;
document.getElementById('poupancaTotal').textContent = formatarMoeda(poupancaTotal);
document.getElementById('taxaConclusao').textContent = progressoMedio.toFixed(0) + '%';
document.getElementById('mediaROI').textContent = roiMedio.toFixed(0) + '%';
}// Fechar modal ao clicar fora dele
window.onclick = function(event) {
var modal = document.getElementById('modalAluno');
if (event.target === modal) {
fecharModal();
}
}// Inicialização
document.addEventListener('DOMContentLoaded', function() {
renderizarTabelaAlunos();
actualizarEstatisticas();
});