Skip to content

Arena Acadêmica, Agenda, Widgets & Assistente IA

🏆 Arena Acadêmica, Agenda, Widgets & Assistente IA

Section titled “🏆 Arena Acadêmica, Agenda, Widgets & Assistente IA”

Este documento registra a especificação, arquitetura e integração dos módulos desenvolvidos para engajamento, organização da rotina e experiência do discente.


⏱️ 1. Speed Dial + Pomodoro Timer (FAB Global)

Section titled “⏱️ 1. Speed Dial + Pomodoro Timer (FAB Global)”

O Speed Dial é um menu flutuante (Floating Action Button - FAB) localizado no canto inferior direito da interface em todas as telas autenticadas da aplicação (AppLayout).

  • Ações Rápidas:
    • Registrar Memória (/memories)
    • Nova Tarefa (/hub-projetos)
    • Consultar Copiloto (/assistant)
    • Abrir Agenda (/timeline/calendario)
    • Timer Pomodoro (modal integrado)
  • Pomodoro Timer:
    • Ciclo clássico de 25 minutos de foco profundo com alerta visual e sonoro.
    • Modos de pausa curta (5 min) e pausa longa (15 min).
    • Controles de Iniciar, Pausar e Resetar com exibição circular animada.
    • Respeita o estado recolhido/expandido da barra lateral de navegação.

📅 2. Agenda Acadêmica (/timeline/calendario e /agenda)

Section titled “📅 2. Agenda Acadêmica (/timeline/calendario e /agenda)”

A Agenda Acadêmica oferece um ambiente centralizado para planejamento temporal de aulas, provas, reuniões e eventos.

📐 Contratos e Tipagem (packages/shared)

Section titled “📐 Contratos e Tipagem (packages/shared)”
  • Módulo: src/modules/calendar/
    • CalendarEventCategory: AULA, PROVA, REUNIAO, EVENTO, PESSOAL.
    • calendarEventSchema: Modelagem de eventos com data (date), horário de início e término (startTime, endTime), localização e categoria.
    • createCalendarEventSchema: Criação validada de compromissos.
  • CalendarEvent: Entidade relacional indexada por studentId e date.

🔔 Consentimento e Lembretes Nativos (NotificationPermissionCard)

Section titled “🔔 Consentimento e Lembretes Nativos (NotificationPermissionCard)”
  • Card Explicativo Pré-Permissão: Em vez de disparar a janela intrusiva do navegador imediatamente na montagem da tela, o sistema exibe um card dedicado detalhando os benefícios dos lembretes (alertas automáticos de aulas, avaliações, prazos e editais, mesmo com o navegador em segundo plano).
  • Ações: Botão “Permitir Notificações” (que aciona Notification.requestPermission()) e opção “Agora não” que persiste a decisão no armazenamento local (localStorage).

🏆 3. Arena Acadêmica (/toolkit/arena-academica e /arena)

Section titled “🏆 3. Arena Acadêmica (/toolkit/arena-academica e /arena)”

A Arena Acadêmica integra mecânicas de gamificação para incentivar a regularidade de estudos, participação em pesquisas e registro contínuo da trajetória.

📐 Contratos e Tipagem (packages/shared)

Section titled “📐 Contratos e Tipagem (packages/shared)”
  • Módulo: src/modules/gamification/
    • AchievementCategory: PESQUISA, EXTENSAO, DISCIPLINAS, FOCO, COMUNIDADE.
    • achievementSchema: Conquistas desbloqueáveis com critério, pontuação e progresso incremental.
    • weeklyChallengeSchema: Desafios sazonais de 7 dias com contagem regressiva e recompensas em pontos.
  • Achievement & StudentAchievement: Catálogo de insígnias e relação de desbloqueio por estudante.
  • WeeklyChallenge & ChallengeParticipation: Desafios rotativos e controle de participação discente.
  • GET /api/gamification/achievements: Lista de conquistas do discente com cálculo de nível e pontos.
  • GET /api/gamification/challenges: Desafio semanal ativo e metadados de adesão.
  • POST /api/gamification/challenges/:id/join: Inscrição ativa no desafio da semana.

  • Saudação com Data Integrada: Posicionada diretamente no topo do cabeçalho da página (sem formato de card, sem caixas e sem poluição visual), contendo a data corrente formatada acima e a saudação temporal com o primeiro nome do estudante ({getGreeting()}, {firstName}! 👋) alinhada com as ferramentas de personalização de layout (DashboardToolbar). Não exibe informações redundantes como curso, semestre ou universidade.

Os cartões modulares da grade refletem as diferentes frentes da vida universitária:

  • SmartCapture: Captura rápida de pensamentos e aprendizados com salvamento imediato nas memórias e direcionamento ao Copiloto (desbloqueado via Memória Acadêmica).
  • SemesterSummary: Semanas letivas, progresso temporal, disciplinas matriculadas e métricas semestrais (desbloqueado via Perfil Acadêmico).
  • MetricsGrid: Métricas de editais, candidaturas, vivências e carga horária semanal (desbloqueado via Vivências & Projetos).
  • Opportunities: Editais e bolsas com % de match para o perfil (desbloqueado via Scholarship Finder / Oportunidades).
  • UpcomingCommitments: Card conectado ao calendário com próximas provas e entregas (desbloqueado via Agenda).
  • CurrentGoals: Metas semestrais do perfil acadêmico com barra de progresso (desbloqueado via Roadmap & Metas).
  • DevelopingCompetencies: Radar de competências técnicas, científicas e comportamentais (desbloqueado via Mapa de Competências).
  • WellbeingWidget: Termômetro de rotina e bem-estar (desbloqueado via Arena Acadêmica).
  • AgendaCalendarWidget: Mini-calendário mensal integrado (desbloqueado via Agenda).
  • RecentMemories: Últimas reflexões e registros do diário (desbloqueado via Memória Acadêmica).
  • Experiences: Vivências práticas, iniciação científica e extensão ativas (desbloqueado via Vivências & Projetos).
  • RecentActivities: Feed de conquistas e marcos recentes (desbloqueado via Arena Acadêmica).

🔒 Bloqueio Inicial Total e Desbloqueio Progressivo de Widgets

Section titled “🔒 Bloqueio Inicial Total e Desbloqueio Progressivo de Widgets”
  • Mapeamento Central (WIDGET_TOOL_ROUTES): Define a ferramenta de origem (href e toolName) e orientação de ação para cada um dos 12 widgets.
  • Estado Inicial (Novo Cadastro): Ao se cadastrar, todos os widgets da grade iniciam bloqueados, exibindo o ícone de cadeado e orientação clara da ação necessária com link direto para a respectiva tela.
  • Mecanismo Duplo de Desbloqueio:
    1. Por Ação/Dados Reais: Se o estudante preencher o perfil acadêmico, registrar memórias, cadastrar vivências ou candidaturas, os respectivos widgets são desbloqueados automaticamente pelo sistema.
    2. Por Exploração/Navegação: A navegação até a ferramenta de origem aciona unlockWidget() persistido no toolkitStore (Zustand com LocalStorage), notificando o discente via toast comemorativo.

🤖 5. Copiloto Acadêmico — UX e Contexto Melhorados (/assistant)

Section titled “🤖 5. Copiloto Acadêmico — UX e Contexto Melhorados (/assistant)”

O assistente conversacional foi ampliado com recursos de context seeding, controle de tom, modo rail e navegação ágil no histórico:

  1. Modo Rail / Ícones Colapsado:
    • No estado retraído padrão (60px), os itens da barra lateral (botão de nova conversa, lista de chats e indicador de tokens) convertem-se automaticamente em ícones limpos e centralizados, eliminando cortes ou textos comprimidos.
    • Ao passar o mouse (hover), a sidebar abre em sobreposição rápida; ao acionar a fixação (pin), a sidebar expande permanentemente para 290px e empurra a área principal do chat (chatAreaPinned), garantindo que as mensagens e os controles superiores nunca fiquem sobrepostos.
    • Quando totalmente fechada, um botão de reabertura ágil fica acessível nos controles superiores da conversa.
  2. Context Seeding via URL (?context= e ?prompt=): Ao navegar a partir de cards do dashboard ou da Captura Inteligente, o assistente consome o parâmetro automaticamente e envia a consulta sem fricção.
  3. 6 Prompts Sugeridos na Tela Inicial:
    • “O que eu realizei neste semestre?” (Trajetória)
    • “Quais competências estou desenvolvendo?” (Competências)
    • “Em quais áreas estou mais ativo?” (Atividade)
    • “O que eu deveria priorizar agora?” (Foco)
    • “Estou pronto para iniciação científica?” (Pesquisa)
    • “Resuma minha evolução acadêmica até aqui” (Trajetória)
  4. Seletor de Modo:
    • 🪄 Explorar trajetória: Análise retrospectiva de vivências, certificações e histórico.
    • 🎓 Planejar próximo passo: Foco propositivo em editais, disciplinas futuras e TCC.
  5. Seletor de Nível / Persona:
    • Orientador: Postura estratégica, contextual e de longo prazo.
    • Analista: Foco rigoroso em métricas, evidências e dados quantitativos.
    • Mentor: Respostas práticas, diretas e acionáveis.
  6. Sidebar Deslizante com Busca Textual: Histórico de conversas com filtro instantâneo por título e alternância ágil de layout.
  7. Chips Rotativos de Perguntas: Sugestões dinâmicas de desdobramento posicionadas acima do campo de texto quando o chat está ativo.
  8. Renderização Rica de Markdown (GFM): Mensagens do Copiloto são processadas com parser GFM e estilização tipográfica modular (.geminiText), convertendo negrito (**), itálico, listas numeradas e de marcadores, links com abertura segura em nova aba (target="_blank" rel="noopener noreferrer"), blocos de código com destaque e tabelas estruturadas, eliminando a exibição de caracteres puros de formatação.

🌟 6. Sistema Unificado de Destaques: Spotlight Banners

Section titled “🌟 6. Sistema Unificado de Destaques: Spotlight Banners”

A área superior do Dashboard unificou os antigos cards empilhados (OnboardingResumeBanner e AiRecommendationCard) em um sistema integrado e padronizado: o DashboardSpotlight.

  • SpotlightBanner (apps/frontend/src/components/common/spotlight-banner/):
    • Componente base com caixa de ícone estilizada (40x40px), título em destaque acompanhado de badge semântica (amber, primary, purple, emerald), descrição concisa e cluster de ações (botão primário e secundário com integração ao Copiloto IA).
    • Suporte a paginação compacta (X de Y) e navegação ágil com setas quando múltiplos destaques estão ativos.
  • DashboardSpotlight (apps/frontend/src/components/dashboard/dashboard-spotlight/):
    • Orquestra os itens ativos da sessão do discente:
      1. Jornada Inicial (Onboarding): Retomada com recompensa de +15 Tokens de IA (alta prioridade enquanto pendente).
      2. Recomendações da IA: Oportunidades estratégicas (PIBITI/CNPq), auditoria de Lattes, planejamento de disciplinas no Roadmap Planner e divulgação de conquistas no LinkedIn Builder.
      3. Novidades & Avisos da Plataforma: Notícias sobre novas ferramentas no Toolkit e radar de editais.

Todos os módulos contam com cobertura de testes unitários e de componentes:

  • apps/frontend/tests/components/SpeedDial.spec.tsx (4 testes)
  • apps/frontend/tests/components/DashboardWidgets.spec.tsx (6 testes)
  • apps/frontend/tests/pages/Arena.spec.tsx (3 testes)
  • apps/frontend/tests/pages/Assistant.spec.tsx (7 testes)
  • apps/backend/tests/unit/calendar/calendar.service.spec.ts
  • apps/backend/tests/unit/gamification/gamification.service.spec.ts