Academic Toolkit & Scholarship Finder
🧰 Academic Toolkit & Scholarship Finder
Section titled “🧰 Academic Toolkit & Scholarship Finder”O Academic Toolkit é o ecossistema central de ferramentas e aceleradores de formação do Academic Companion. Ele foi projetado para agregar soluções especializadas que resolvem dores burocráticas e acadêmicas de estudantes e pesquisadores, desde a descoberta de editais e bolsas até a documentação de produção científica.
🏗️ Arquitetura e Componentes do Toolkit (/toolkit)
Section titled “🏗️ Arquitetura e Componentes do Toolkit (/toolkit)”A interface do Toolkit é implementada em React 19 utilizando CSS Modules (.module.css) e tokens de cores padronizados em src/styles/global.css:
AiRecommendation(components/toolkit/ai-recommendation/):- Sugestão contextual gerada com base nos dados reais do estudante (
StudentProfile: curso, semestre e interesses declarados). - Recomenda ferramentas específicas com base nos desafios atuais da formação (ex: transição para Iniciação Científica ou preparação para o mercado de trabalho).
- Sugestão contextual gerada com base nos dados reais do estudante (
QuickAccess(components/toolkit/quick-access/):- Barra superior com atalhos de ferramentas fixadas (
pinned: true) para agilidade no dia a dia.
- Barra superior com atalhos de ferramentas fixadas (
ToolkitCatalog(components/toolkit/catalog/):- Catálogo com pesquisa textual (título, tagline e descrição) e seletor de categorias com códigos de cores.
- Categorias suportadas:
- 💼 Currículo e Carreira (Resume Builder, Lattes Assistant, LinkedIn Builder, Portfólio)
- 🔬 Pesquisa e Produção Científica (Publication Assistant, Research Finder, Event Discovery)
- 📅 Planejamento Acadêmico (Roadmap Planner, Hub de Disciplinas)
- 🎯 Oportunidades (Scholarship Finder)
- 📄 Documentação (Acervo de Evidências & Certificados)
- 🧠 Inteligência Acadêmica (Arena Acadêmica, Laboratório de Ideias)
ToolCard(components/toolkit/card/) & Navegação Direta:- Zero Tela Intermediária: Quando uma ferramenta está ativa (
status: AVAILABLE), clicar no botão “Abrir” ou na rota interna leva o usuário imediatamente para a ferramenta (/toolkit/scholarship-finder,/toolkit/lattes,/toolkit/linkedin, etc.), sem passos intermediários. - Ferramentas ainda em desenvolvimento ou propostas de ideação (
COMING_SOON) exibem aviso amigável com bloqueio de acesso e botão de registro de interesse comunitário (“Tenho Interesse”), permitindo que discentes votem e apoiem novas ideias conceituais.
- Zero Tela Intermediária: Quando uma ferramenta está ativa (
- Governança & Imutabilidade Técnica (Admin):
- Ferramentas consolidadas do sistema possuem
sluge rota interna imutáveis no painel administrativo para resguardar a estabilidade da aplicação. - Ferramentas de ideação são cadastradas de forma puramente conceitual (sem rotas) para validar a demanda e interesse antes do desenvolvimento de código.
- Ferramentas consolidadas do sistema possuem
🎓 Ferramenta Scholarship Finder (/toolkit/scholarship-finder)
Section titled “🎓 Ferramenta Scholarship Finder (/toolkit/scholarship-finder)”O Scholarship Finder é a ferramenta inteligente de descoberta e curadoria de bolsas e editais:
ScholarshipHeader: Título oficial, botão de retorno rápido ao Toolkit e sincronização dinâmica de recomendações.SearchProfileCard: Dados do estudante (curso, semestre, áreas de interesse) obtidos dinamicamente deuseStudentProfile().ScholarshipStats: 4 métricas agregadas de oportunidades encontradas, altamente compatíveis, inscrições ativas e aprovações.- Três Modos de Navegação por Abas:
- ⭐ Recomendados: Exibe oportunidades com índice de compatibilidade superior ou igual a 80%.
- 🌐 Explorar Todos: Barra lateral com acordeom de filtros combinados (Curso, Estado, Instituição, Tipo, Valor, Modalidade, Nível Acadêmico, Prazo), campo de busca rápida e ordenação (“Melhor Match”, “Mais Recentes”, “Prazo mais próximo”, “Maior Valor”, “Ordem Alfabética”).
- 📋 Minhas Inscrições: Quadro Kanban com 3 colunas interativas (“Preparando Documentação”, “Em Análise”, “Aprovado”), sincronizado em tempo real com o botão “Me inscrevi / Inscrito” dos cards.
- Resumo Inteligente com IA (
AiSummaryModal): Permite analisar os editais em segundos com síntese executiva, benefícios, critérios de elegibilidade e recomendações para aumentar a nota na avaliação.
🔍 Ferramenta Event Discovery (/toolkit/event-discovery)
Section titled “🔍 Ferramenta Event Discovery (/toolkit/event-discovery)”O Event Discovery é o radar inteligente do Academic Companion focado em eventos científicos, simpósios, conferências, competições acadêmicas e hackathons:
1. Componentes da Interface (pages/toolkit/event-discovery/)
Section titled “1. Componentes da Interface (pages/toolkit/event-discovery/)”EventHeader: Título oficial, botão para recomputar recomendações com IA e link direto de retorno ao catálogo do Toolkit.EventStats: 4 métricas em tempo real:- Eventos encontrados: Total de eventos mapeados e vigentes.
- Altamente relevantes: Eventos com taxa de compatibilidade $\ge 80%$.
- Salvos no calendário: Total de eventos salvos na agenda do estudante.
- Networking previsto: Estimativa de conexões qualificadas no mês.
EventFilters: Campo de busca textual por títulos, temas e instituições, com multi-select de categorias:- 🏆 Competições (
competition) - 🔬 Eventos Científicos (
scientific) - 💻 Hackathons & Maratonas (
hackathon) - 🎨 Esportivos & Culturais (
cultural)
- 🏆 Competições (
EventFeed&EventCard:- Badge de categoria com ícone temático e código de cores padronizado.
- Score de afinidade algorítmica (
matchScore) com badges tonais (Verde, Âmbar, Neutro). - Descrição, instituição, modalidade (Presencial/Remoto) e tags de temas.
- Box de Insight da IA destacando aderência e oportunidades de publicação.
- Botão de alternância Salvar no Calendário / Salvo na Agenda sincronizado em tempo real.
- Botão para acessar edital ou detalhes oficiais da inscrição.
EventCalendarWidget: Mini-calendário do mês atual com indicadores circulares coloridos por categoria nas datas dos eventos e lista de compromissos imediatos.AIInsightCard: Card de recomendação personalizada gerado com base no perfil do estudante com resumo de afinidade e destaque principal.
2. Endpoints e Contratos Backend (apps/backend)
Section titled “2. Endpoints e Contratos Backend (apps/backend)”GET /api/opportunities/events: Retorna a listagem completa de eventos (AcademicEventDTO[]), estatísticas agregadas (EventStatItemDTO[]), agenda do mês (CalendarMarkDTO[]) e insight executivo da IA (AIInsightDTO). Suporta busca textual (query) e filtro de categorias (categories).PATCH /api/opportunities/events/:id/toggle-save: Alterna o salvamento do evento no calendário pessoal do estudante autenticado (persistido emStudentOpportunity.isFavorite).
🎯 Central de Oportunidades & Bolsas (/opportunities)
Section titled “🎯 Central de Oportunidades & Bolsas (/opportunities)”A Central de Oportunidades reúne editais públicos e internos capturados pelo coletor do backend, com interface dividida em duas abas:
1. Vitrine de Editais
Section titled “1. Vitrine de Editais”SearchProfileCard: Exibe a identidade acadêmica do estudante usada no cálculo algorítmico de afinidade (Match Score).ScholarshipStats: Métricas agregadas de editais abertos, remuneração média de bolsas e afinidade.ScholarshipFilters: Filtragem por texto livre, categoria (IC, Monitoria, Extensão, Estágio, Intercâmbio, Hackathon), nível acadêmico e modalidade.OpportunityCard: Card rico exibindo valor em destaque, benefícios em badges verdes suaves, requisitos mínimos, contagem regressiva de encerramento de inscrições e botão de candidatura rápida.
2. Quadro Kanban de Candidaturas
Section titled “2. Quadro Kanban de Candidaturas”Permite ao estudante gerenciar todas as suas submissões em 4 etapas lineares:
- 📝 Em Preparação (
DRAFT): Documentos sendo reunidos ou carta de motivação em rascunho. - 📨 Inscrição Enviada (
SUBMITTED): Formulário submetido à comissão avaliadora. - ⏳ Em Avaliação (
REVIEW): Aguardando resultado preliminar ou recursos. - 🎉 Aprovado (
ACCEPTED): Bolsa ou vaga conquistada, alimentando automaticamente a entidadeExperience.
💼 LinkedIn Impact Builder (/toolkit/linkedin)
Section titled “💼 LinkedIn Impact Builder (/toolkit/linkedin)”O LinkedIn Impact Builder auxilia o estudante e pesquisador a transformar suas conquistas acadêmicas, artigos aceitos, aprovações de bolsas e entregas técnicas em publicações profissionais de alto alcance na rede, com integração nativa com a API oficial do LinkedIn e suporte a publicação direta no feed.
🔌 Integração com a API do LinkedIn (OAuth 2.0 & UGC Posts API)
Section titled “🔌 Integração com a API do LinkedIn (OAuth 2.0 & UGC Posts API)”A plataforma implementa um fluxo completo e seguro de integração com o ecossistema do LinkedIn:
- Fluxo OAuth 2.0:
GET /api/integrations/linkedin/auth-url: Gera a URL de autorização oficial (https://www.linkedin.com/oauth/v2/authorization) com os escoposopenid,profile,emailew_member_social.- Redirecionamento e Callback: O discente autentica no LinkedIn e retorna para a rota
/toolkit/linkedin/callback, onde o backend (POST /api/integrations/linkedin/callback) troca oauthorization_codepelo Access Token (e Refresh Token de longa duração), buscando o perfil do usuário e salvando a conta vinculada. - Fallback Dev Automático: Em ambiente de desenvolvimento local, sem chaves de produção configuradas, o sistema oferece um fluxo emulado seguro (
mock_dev_linkedin_auth_code) para testes de ponta a ponta.
- Vinculação Manual Flexível: Estudantes que não desejam conceder permissões de escrita podem simplesmente vincular a URL de seu perfil público (
https://linkedin.com/in/...), permitindo copiar o conteúdo gerado e abrir o compartilhamento do navegador em 1 clique. - Persistência no Banco de Dados (
IntegrationAccount):- Modelo relacional no PostgreSQL com
userId,provider = LINKEDIN,providerAccountId,accessToken,expiresAt,displayName,avatarUrleprofileUrl.
- Modelo relacional no PostgreSQL com
- Publicação Direta no Feed (
POST /api/integrations/linkedin/share):- Utiliza a API oficial de UGC Posts (
https://api.linkedin.com/v2/ugcPosts) com visibilidade pública (w_member_social), permitindo postar imediatamente a partir do Academic Companion sem sair do app.
- Utiliza a API oficial de UGC Posts (
🎨 Funcionalidades & Arquitetura da Interface (100% CSS Modules)
Section titled “🎨 Funcionalidades & Arquitetura da Interface (100% CSS Modules)”-
Gerador de Publicações Contextualizado (
PostGenerator.tsx):- Origem dos Dados Dinâmica: Permite selecionar dados reais do discente:
- 🎓 Vivências Práticas: Puxa projetos, estágios, monitorias e ICs cadastradas (
useExperiences()). - 📖 Diário & Memórias: Puxa anotações e reflexões diárias recentes (
useMemories()). - ✍️ Tema Livre / Manual: Campo de texto livre para qualquer tema de destaque.
- 🎓 Vivências Práticas: Puxa projetos, estágios, monitorias e ICs cadastradas (
- Seleção de Tom de Voz Aprofundada:
- 🔬 Técnico & Engenharia: Foco em arquitetura, testes, complexidade computacional, banco de dados e stack.
- 🚀 Storytelling & Superação: Foco na jornada, desafios contornados, perseverança e gratidão ao time/orientador.
- 💼 Executivo & Negócios: Foco em ROI acadêmico, impacto prático, métricas de resultado e liderança.
- Preview Fiel no Feed do LinkedIn: Simula perfeitamente o card do feed com avatar, headline institucional, texto formatado com hashtags estratégicas, placeholder de anexo e barra de interações (Gostei, Comentar, Compartilhar, Enviar).
- Publicação Híbrida Inteligente: Se o usuário estiver autenticado via OAuth com permissão
w_member_social, o botão publica diretamente via API; caso contrário, copia o texto formatado para a área de transferência e abre o LinkedIn para postagem com um clique.
- Origem dos Dados Dinâmica: Permite selecionar dados reais do discente:
-
Otimizador de Perfil (Headline & ATS Syncer) (
ProfileOptimizer.tsx):- Headlines Categorizadas: Títulos focados em Inovação & Pesquisa, Prontidão para o Mercado ou Liderança Técnica.
- Pitch / Seção “Sobre” com IA: Gera automaticamente a biografia profissional do LinkedIn integrando curso, semestre, universidade e vivências práticas cadastradas.
- Skill Syncer (Otimização para ATS): Traduz termos do vocabulário acadêmico para as palavras-chave mais buscadas por algoritmos de triagem de currículos e recrutadores (ex: Iniciação Científica → Pesquisa Aplicada & Metodologia Ágil).
-
Radar de Conteúdo (
ContentRadar.tsx):- 4 Métricas em Tempo Real: Conquistas Mapeadas, Ideias Prontas, Posts Publicados e Índice de Presença.
- Detecção de Oportunidades de Postagem: Algoritmo que examina as experiências ativas e concluídas do estudante e sugere tópicos prontas com botão “Usar esta ideia”.
- Histórico Expansível: Lista de publicações realizadas e salvas pelo estudante.
🎖️ Lattes Assistant & Radar de Indicações (/toolkit/lattes)
Section titled “🎖️ Lattes Assistant & Radar de Indicações (/toolkit/lattes)”O Lattes Assistant resolve o gargalo histórico do preenchimento e manutenção do Currículo Lattes oficial (CNPq), auditando lacunas e preparando dados antes da submissão.
Funcionalidades & Arquitetura
Section titled “Funcionalidades & Arquitetura”-
Radar de Indicações Lattes (
RadarTab):- Header com monitoramento em tempo real de indicações pendentes e efeito visual de pulso.
- Cards de estatísticas agregadas (Pendentes, Preparadas, Confirmadas, Ignoradas).
- SuggestionCard:
- Pontuação percentual de confiança (
ConfidenceBadge) por algoritmo de proximidade. - Contexto explicativo gerado por IA identificando a aderência da vivência à seção do Lattes.
- Tags das origens detectadas (Memória Acadêmica, Competências, Carteira de Evidências, etc.).
- Grid com campos detectados (Período, Instituição, Categoria sugerida, Status).
- Detalhes expansíveis com lista de campos presentes, campos ausentes a complementar e prévia de texto formatado para copiar e colar na Plataforma Lattes.
- Fluxo de status: transição entre Pendente, Preparada, Confirmada e Ignorada.
- Pontuação percentual de confiança (
- Itens Arquivados: Modal dedicado para consulta e restauração de indicações arquivadas de volta ao feed principal.
-
Preparação do Currículo (
PreparationTab):- Agrupamento visual das seções oficiais da Plataforma Lattes:
- Atuação Profissional (Estágios, Empregos)
- Pesquisa e Desenvolvimento (Iniciação Científica, Laboratórios)
- Prêmios e Títulos (Competições, Hackathons)
- Ensino & Monitoria (Monitorias voluntárias ou remuneradas)
- Extensão Universitária (Projetos com a comunidade e escolas)
- Formação Complementar (Cursos livres, certificados e eventos)
- Contadores de registros reais e barras de progresso percentual por seção.
- Badges de alerta informando quantas indicações pendentes aguardam no Radar para cada seção.
- Agrupamento visual das seções oficiais da Plataforma Lattes:
🧭 Layout Global: AppHeader & AppSidebar
Section titled “🧭 Layout Global: AppHeader & AppSidebar”A navegação da plataforma foi construída em arquitetura de painel responsivo, garantindo ergonomia para longas sessões de estudo:
1. AppHeader (src/components/layout/app-header/)
Section titled “1. AppHeader (src/components/layout/app-header/)”- Trigger Retrátil & Breadcrumb Dinâmico: Expansão/colapso da barra lateral e migalhas de pão atualizadas em tempo real a partir da rota ativa.
- Barra de Pesquisa Unificada: Campo de busca rápida (“Buscar na sua jornada…”) com atalho para catálogo e ferramentas.
- Botão de Notificações: Acesso instantâneo com badge contador de alertas não lidos, direcionando para
/notificacoes. - Saldo de Tokens Acadêmicos: Indicador pill estilizado em OKLCH exibindo os tokens disponíveis para uso no copiloto e ferramentas.
- Menu do Usuário: Avatar com iniciais, dados cadastrais e menu suspenso para Perfil, Notificações, Carteira e Logout seguro.
2. AppSidebar (src/components/layout/app-sidebar/)
Section titled “2. AppSidebar (src/components/layout/app-sidebar/)”- Cabeçalho de Identidade: Logotipo oficial em destaque e seletor com o curso de graduação do estudante (
StudentProfile). - Minha Jornada: Rotas nucleares da vida acadêmica (Painel Geral, Linha do Tempo, Hub de Projetos, Memória, Competências, Toolkit, Oportunidades e Assistente).
- Ferramentas Fixadas: Atalhos rápidos com ícone de pin para os utilitários mais usados no dia a dia (Resume Builder, Lattes Assistant, LinkedIn Impact Builder).
- Conta e Avisos: Acesso direto à Central de Notificações e Configurações.
- Rodapé Ergonômico: Alternador inline de tema (Claro / Escuro / Sistema) e menu rápido da conta.
🔔 Central de Notificações (/notificacoes)
Section titled “🔔 Central de Notificações (/notificacoes)”A Central de Notificações consolida eventos temporais, acadêmicos e do sistema em uma interface organizada:
- Abas de Filtro: Visualização por Todas (com contador total), Não Lidas (badge em destaque) e Lidas.
- Ações em Lote: Seleção múltipla via checkboxes com ações de marcar como lido ou exclusão coletiva.
- Tipologia Visual Semântica (Tokens OKLCH):
- 🚨 Incidentes & Prazos Críticos:
--destructive(AlertTriangle) - 💬 Menções & Comentários:
--chart-1(AtSign) e--chart-2(MessageSquare) - ⏳ Tarefas & Vencimentos:
--chart-3(Clock) - 🔄 Revisões & Atualizações:
--chart-5(GitPullRequest) - ⭐ Sistema & Recompensas:
--primary(Star)
- 🚨 Incidentes & Prazos Críticos:
- Redirecionamento Contextual: Cada notificação contém vínculo direto para o módulo correspondente (ex: edital salvo, indicação no Lattes ou sprint de estudos).
⚙️ Painel de Configurações da Conta (/settings)
Section titled “⚙️ Painel de Configurações da Conta (/settings)”Central unificada de preferências estruturada em 5 abas modulares:
- 👤 Perfil (
ProfileForm): Informações cadastrais institucionais (curso, campus, matrícula, semestre e objetivos acadêmicos). - 🛡️ Segurança (
SecurityForm): Alteração de senha criptografada via Argon2 e configurações de autenticação em duas etapas. - 🔔 Notificações (
NotificationsForm): Configuração granular por canal (E-mail, Push e In-app) para tarefas, menções, atualizações de projetos e segurança, além da frequência do resumo por e-mail (Tempo real, Diário, Semanal ou Desativado). - 👁️ Privacidade (
PrivacyForm): Controle de visibilidade do perfil (Público, Equipe ou Privado), exibição de e-mail e status de mentoria, exportação de dados em JSON (LGPD) e exclusão de conta. - 🎨 Aparência (
AppearanceForm): Seleção de tema visual (Claro, Escuro ou Sincronizado com o Sistema Operacional).
📊 Card Semestre Atual (SemesterSummary)
Section titled “📊 Card Semestre Atual (SemesterSummary)”Localizado no topo do Painel Geral (/), o card do Semestre Atual apresenta o panorama instantâneo do ciclo letivo do estudante:
- Identificação do Semestre: Ano e semestre civil sincronizados com o período curricular do discente (ex:
2026.1 · 5º Período), com badge de status Em andamento dotada de indicador verde pulsante. - Barra de Progresso Temporal: Cálculo automático das semanas decorridas vs. semanas totais do semestre letivo (ex:
Semana 10 de 16 · 6 semanas restantese percentual62%). - Métricas Nucleares da Trajetória:
- 📚 Disciplinas em Andamento: Carga de disciplinas ativas vinculadas à formação do discente.
- 🏆 Registros no Semestre: Consolidação em tempo real do total de vivências práticas e anotações do diário acadêmico cadastradas.
- 🔥 Sequência de Registros (Streak): Acompanhamento de dias consecutivos de registros acadêmicos ativos para estimular a consistência diária.
- Estilização Exclusiva: Construído 100% em CSS Modules com gradiente sutil e tokens de cores semânticas OKLCH (
--chart-1,--chart-2,--chart-3,--success,--primary).
🎛️ Personalização de Layout com Persistência em Banco de Dados
Section titled “🎛️ Personalização de Layout com Persistência em Banco de Dados”O Painel Geral (/) conta com um motor completo de personalização declarativa de interface, permitindo que cada estudante configure a disposição de blocos conforme sua rotina de estudos e prioridades:
1. Modelo de Persistência no PostgreSQL (DashboardLayout)
Section titled “1. Modelo de Persistência no PostgreSQL (DashboardLayout)”- Tabela Relacional:
dashboard_layouts, com chave estrangeirauserIdvinculada ausers(id)com políticaON DELETE CASCADE. - Payload Estruturado: Campo
layout(JSON) que armazena a lista de widgets com suas configurações:id: identificador do cartão (ex:greeting-banner,semester-summary,metrics-grid,opportunities,recent-memories,experiences).visible: booleano indicando se o widget está ativo no painel.colSpan: largura responsiva em grade de 12 colunas (ex: 12 para 100% de largura, 6 para 50%).order: índice ordinal de posicionamento na grade.
2. Endpoints RESTful no Backend (/api/dashboard/layout)
Section titled “2. Endpoints RESTful no Backend (/api/dashboard/layout)”GET /api/dashboard/layout: Recupera a disposição de widgets salva para o usuário autenticado (ou retorna a ordenação padrão se ainda não personalizado).PUT /api/dashboard/layout: Atualiza e persiste o novo layout viaupsertno Prisma com validação estrita via schema Zod (updateDashboardLayoutSchema).POST /api/dashboard/layout/reset: Remove a customização do usuário, restaurando a disposição inicial original do sistema.
3. Recursos da Interface Reativa
Section titled “3. Recursos da Interface Reativa”- Cabeçalho Unificado e Saudação Oficial (
headerSection):- Integra na mesma linha a saudação do discente (“Olá, [Nome]”) e o subtítulo institucional (“Este é o seu centro de comando. Acompanhe e construa sua trajetória acadêmica.”) ao lado da barra de ferramentas do dashboard (
DashboardToolbar), idêntico à arquitetura de referência.
- Integra na mesma linha a saudação do discente (“Olá, [Nome]”) e o subtítulo institucional (“Este é o seu centro de comando. Acompanhe e construa sua trajetória acadêmica.”) ao lado da barra de ferramentas do dashboard (
- Barra de Ferramentas (
DashboardToolbar):- Botão Personalizar Layout / Concluir Edição: Agora estilizado com borda sólida nítida (
border: 1px solid var(--border)), fundo elevado e sombra semântica, integrando-se harmonicamente sem parecer solto na tela. Ao concluir a edição, fecha automaticamente qualquer painel flutuante ativo. - Botão Widgets: Exibe contador de widgets ocultos e abre a gaveta lateral.
- Botão Restaurar Padrão: Volta imediatamente à configuração padrão da plataforma.
- Botão Personalizar Layout / Concluir Edição: Agora estilizado com borda sólida nítida (
- Cartões Editáveis (
DashboardWidgetCard):- Redimensionamento Interativo Fluido em Tempo Real:
- Borda Direita: Alça vertical com atualização imediata a cada frame (
onLiveResize), variando de 3 a 12 colunas (25% a 100%). - Borda Inferior: Alça horizontal para ajuste suave de altura em pixels.
- Canto Inferior Direito: Alça diagonal para redimensionamento bivariado simultâneo.
- Zero Lag: Desativação automática de transições CSS (
transition: none !important) durante o arrasto.
- Borda Direita: Alça vertical com atualização imediata a cada frame (
- Detecção de Limites com Contorno Vermelho e Alerta Toast:
- Ao atingir o limite mínimo (3 colunas / 140px) ou máximo (12 colunas / 800px), o contorno do cartão pulsa em vermelho (
var(--destructive)via.widgetCardWrapperLimitReached). - Exibe badge flutuante de dimensões em vermelho com ícone de alerta e emite notificação toast via Sonner com ID persistente antispam.
- Ao atingir o limite mínimo (3 colunas / 140px) ou máximo (12 colunas / 800px), o contorno do cartão pulsa em vermelho (
- Omissão Inteligente e Responsividade de Conteúdo:
- Quando o cartão é redimensionado para tamanhos menores (
colSpan <= 6oucolSpan <= 4), elementos secundários (parágrafos longos, descrições detalhadas e métricas terciárias) são omitidos automaticamente para preservar a legibilidade.
- Quando o cartão é redimensionado para tamanhos menores (
- Janela Flutuante Arrastável de Configuração (
WidgetConfigModal):- Painel elevado sem backdrop escuro bloqueante, permitindo continuar editando outros cartões.
- Arrastável livremente pela barra superior (
GripHorizontal) para qualquer quadrante da tela com restrição de viewport. - Sincronização em tempo real ao alternar entre cartões e fechamento automático ao concluir a edição.
- Redimensionamento Interativo Fluido em Tempo Real:
- Estilização Exclusiva: Construído 100% em CSS Modules e tokens OKLCH, sem qualquer dependência de Tailwind CSS.
🏠 Landing Page Reestruturada (/welcome) & Radar Universitário Aberto
Section titled “🏠 Landing Page Reestruturada (/welcome) & Radar Universitário Aberto”A Landing Page da plataforma foi completamente reestruturada para oferecer uma experiência imersiva e de alto valor imediato para novos visitantes e estudantes:
1. Cena Interativa Planetária em SVG (PlanetScene)
Section titled “1. Cena Interativa Planetária em SVG (PlanetScene)”- Implementada puramente com SVG vetorial e animações CSS nativas (
@keyframes), garantindo altíssima performance, zero dependências pesadas de WebGL e peso inferior a 15KB. - Simula o Academic World: uma esfera central com atmosfera brilhante e 3 órbitas elípticas contendo eixos da trajetória acadêmica (Graduação, Pesquisa & IC, Projetos & Inovação, Estágios & Carreira, Competências e Diário de Memória).
- Interação por hover revela badges explicativos em tempo real.
2. Hub de Ferramentas Públicas & Seletor de Modo (PublicScholarshipPreview)
Section titled “2. Hub de Ferramentas Públicas & Seletor de Modo (PublicScholarshipPreview)”- Integrado em um chassi estilizado de laptop, simulando a interface real da plataforma.
- Seletor de Ferramentas Públicas: Permite alternar instantaneamente entre duas ferramentas sem necessidade de login ou cadastro:
- 🎓 Scholarship Finder (Bolsas & IC): Radar de editais, bolsas de pesquisa (PIBIC, FAPERGS), monitorias remuneradas e estágios com cálculo de afinidade (Match Score).
- 📅 Event Discovery (Congressos & Hackathons): Radar de conferências científicas, chamadas de trabalhos (Call for Papers), simpósios acadêmicos e maratonas de tecnologia, com tags informativas (“Call for Papers”, “Hackathon & Maratona”, “Premiação em dinheiro”, “Certificado de 40h”).
- Zero Dados Falsos: Conectado diretamente ao backend via endpoint público
GET /api/opportunities/publiccom o hookusePublicOpportunities(type: 'scholarships' | 'events'). - Filtros em tempo real por Tipo de Evento / Curso, Instituição, Localidade, Formato (Presencial, Híbrido, Remoto) e Ordenação (Match, Prazos de Submissão, Alfabética).
- Auth Gate Dinâmico: Ações que demandam persistência de dados (como “Me inscrevi”, “Salvar no Calendário”, “Resumo IA” ou visualizações repetidas de editais) acionam um modal explicativo que convida o usuário a criar sua conta gratuita sem barreiras.
3. Rodapé Interativo com Modais de Prévia (LandingFooter)
Section titled “3. Rodapé Interativo com Modais de Prévia (LandingFooter)”- Links para páginas internas ou rotas protegidas abrem cards modais de prévia rica:
- LinkedIn Impact Builder: Prévia da ferramenta de geração contextual de posts técnicos e hashtags automáticas com IA Gemini.
- Lattes Assistant: Prévia da conversão inteligente de certificados e declarações no padrão CNPq.
- Diretório de Fontes Acadêmicas: Exibição das mais de 15 fontes de fomento monitoradas (UFSM, CNPq, FAPERGS, CAPES, Governo RS, etc.).
- Central de Ajuda & Suporte: Guia rápido de dúvidas frequentes, canais de suporte e links para a Wiki.
- Navegação fluida com scroll suave para as âncoras
#bolsas,#recursose#como-funciona.
4. Acessibilidade Visual e Alto Contraste no Tema Claro
Section titled “4. Acessibilidade Visual e Alto Contraste no Tema Claro”- Aplicação de caixas de vidro fosco com fundo translúcido elevado (
background: rgba(255, 255, 255, 0.94); backdrop-filter: blur(20px); border: 1px solid rgba(226, 232, 240, 0.95)) em todos os cabeçalhos de seção (sectionHeadingBox,headerCard,stepCard), garantindo 100% de legibilidade dos textos sobre as ilustrações de fundo.
5. Endpoints Públicos de Apoio
Section titled “5. Endpoints Públicos de Apoio”GET /api/opportunities/public: Listagem paginada e filtrada de oportunidades abertas com suporte aos parâmetrostype(scholarships|events),category,course,institution,city,modalityesort.GET /api/opportunities/public-radar: Listagem direta para simulação rápida por curso e semestre.
⚡ Aprimoramentos Recentes de Produtividade e Experiência Discente
Section titled “⚡ Aprimoramentos Recentes de Produtividade e Experiência Discente”1. Quadro Kanban Drag & Drop em “Minhas Inscrições” (ScholarshipFinder)
Section titled “1. Quadro Kanban Drag & Drop em “Minhas Inscrições” (ScholarshipFinder)”- Visualização de candidaturas em três etapas de funil: “Preparando Documentação”, “Em Análise” e “Aprovado”.
- Movimentação bidirecional de cartões através de HTML5 Drag & Drop nativo, permitindo que o estudante arraste candidaturas entre as colunas sem bibliotecas externas pesadas.
- Persistência instantânea via
useUpdateApplicationStatus()com sincronização otimista de estado.
2. Pomodoro Timer Flutuante & Arrastável (SpeedDial)
Section titled “2. Pomodoro Timer Flutuante & Arrastável (SpeedDial)”- Widget flutuante projetado com contêiner arrastável (
draggablepor mouse com cursorgrabegrabbing), permitindo reposicionamento livre pela viewport. - Modo colapsável em botão estético com formato de tomate e folhas estilizadas, exibindo cronômetro tabular e status em tempo real.
- Emissão de alerta sonoro suave gerado via Web Audio API (
OscillatorNodeeGainNode) ao término dos 25 minutos de ciclo de foco, sem dependência de arquivos de áudio externos.
3. Matriz Anual de Atividade (ContributionGrid)
Section titled “3. Matriz Anual de Atividade (ContributionGrid)”- Algoritmo de mapeamento cronológico de 53 semanas contínuas (371 dias) cobrindo o ciclo anual da trajetória do discente.
- Agregação ponderada em tempo real de memórias do diário (
useMemories()) e vivências práticas (useExperiences()), computando níveis de intensidade de 0 a 4 com cores graduais do tema e tooltips informativos por data.
4. Captura Inteligente com Ações Múltiplas (SmartCapture)
Section titled “4. Captura Inteligente com Ações Múltiplas (SmartCapture)”- Entrada textual multifuncional integrada no grid de widgets personalizáveis do Dashboard.
- Rotação dinâmica de sugestões de escrita e dois botões de ação contextuais:
- “Salvar em Memória”: Registra instantaneamente uma nova memória na Linha do Tempo e Diário Acadêmico via
useCreateMemory(). - “Perguntar ao Copiloto”: Redireciona a reflexão ou dúvida diretamente para a sessão ativa do Copiloto IA via
navigate('/assistant?prompt=...').
- “Salvar em Memória”: Registra instantaneamente uma nova memória na Linha do Tempo e Diário Acadêmico via