App: schools¶
Gerencia escolas, painel do admin com analytics e gerenciamento de alunos.
Model: School¶
class School(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
description = models.TextField(blank=True)
owner = models.OneToOneField(User, related_name='school')
is_active = models.BooleanField(default=True)
Dashboard (SchoolDashboardView)¶
KPIs exibidos no dashboard: - Tempo economizado (hero card) com filtro de periodo via AJAX - Total de cursos, agentes treinados, alunos e mensagens do mes - Grafico de tokens por modelo - Ranking de modelos por custo - Ranking de alunos top 10 (tokens, custo, mensagens) - Cards de custo (USD): total, medio por aluno, medio por mensagem - Cursos recentes - Conquistas recentes (gamificação dos alunos atrelada à escola)
Os dados dinamicos (por periodo) sao carregados via SchoolAnalyticsAPIView.
SchoolAnalyticsAPIView¶
Endpoint JSON que retorna analytics da escola filtrados por periodo.
Periodos suportados: today, this_week, this_month, custom (com start_date e end_date).
Dados retornados: - time_saved_hours -- tempo economizado em horas - total_messages, total_tokens - cost_total_usd, cost_avg_per_student, cost_avg_per_message - cost_by_model -- custo e tokens por modelo - cost_daily -- custo e tokens por dia - top_students -- ranking dos 10 alunos com mais tokens
Detalhe do Aluno (StudentDetailView)¶
Exibe analytics de um aluno especifico: - KPIs: tempo economizado, mensagens, tokens, custo - Gamificação: Nível de Ofensiva atual (com cor dinâmica indicando progresso) - Ranking de modelos usados - Matriculas ativas (cursos) - Conquistas Desbloqueadas: Relação de todos os troféus alcançados gerados pelo engine de gamificação. - Creditos por agente com percentual de uso - Formulario para ajuste individual de creditos por agente
Os dados dinamicos sao carregados via StudentAnalyticsAPIView.
StudentAnalyticsAPIView¶
Endpoint JSON com analytics de uso de um aluno por periodo.
Periodos: this_month, last_month, last_3_months.
Dados retornados: time_saved_hours, total_messages, total_tokens, cost_total_usd, tokens_by_model.
UpdateStudentCreditsView¶
Permite que o admin da escola ajuste o limite de creditos de um aluno para um agente especifico. Recebe new_limit via POST e atualiza StudentMessageCredit.messages_limit.
Views Principais¶
| View | Descricao |
|---|---|
SchoolDashboardView | Dashboard com KPIs e analytics |
SchoolAnalyticsAPIView | API JSON de analytics da escola |
SchoolUpdateView | Editar dados da escola |
StudentListView | Lista de alunos com busca e agrupamento |
StudentAddView | Vincular aluno por email (cria conta se necessario) |
StudentDetailView | Detalhe do aluno com analytics e creditos por agente |
StudentAnalyticsAPIView | API JSON de analytics do aluno |
StudentRemoveView | Desvincular aluno de um curso |
StudentToggleView | Ativar/desativar todos os enrollments de um aluno |
UpdateStudentCreditsView | Ajustar creditos por agente de um aluno |
ChatMonitorListView | Lista as interações e sessões de chat de todos os alunos, permitindo busca e triagem |
ChatMonitorDetailView | Visualização detalhada de uma sessão específica que o aluno teve com o agente |
ChatMonitorSessionAPIView | API JSON que devolve o transcript de mensagens para a tela de monitoramento de chat |