Appearance
Setembro
Dia 30
Atividades
- 🐛 Correção de discursivas: Correção do ícone quebrado ao entrar na correção de questões discursivas e do fluxo desalinhado ao corrigir com IA
Relatórios
- 🐛 Quantidade de estudantes: Contagem corrigida na página de Turmas do professor e na frequência do relatório de turmas - alunos transferidos passam a ser incluídos
Usuários
- 🐛 Filtros de escola e turma: Selecionar uma escola nos filtros da tela de Usuários volta a responder após navegar de volta pelo navegador, destravando o filtro de turma
Desenvolvimento
- 🔧 Makefile: Correção dos comandos de interação com o Postgres (porta do banco) e dos jobs de sincronia Analytics (hot reload/inotify)
- 📝 Guia rápido de configuração do ClickHouse adicionado ao README
- 🔧 CI/CD: Workflows migradas para os runners da Blacksmith, com hardware mais rápido e cache compartilhado
Outros
- 🎨 Campos de data: Digitação manual aceita apenas números, com formatação automática dd/mm/aaaa hh:mm e placeholders indicando o formato esperado
Dia 29
Relatórios
- ⚡ Relatório Socioeconômico: Consultas otimizadas reduziram o carregamento dos relatórios comparativos de ~1,8s para ~300ms
Usuários
- 🐛 Filtro de turmas: A lista de turmas agora é preenchida corretamente ao filtrar por escola na tela de Usuários
Desenvolvimento
- 🔧 OpenTelemetry desativado fora de produção, evitando coleta de telemetria em ambientes de desenvolvimento e QA
Dia 28
Atividades
- 🐛 Busca de atividades: Campo de pesquisa das Provas Aplicadas limitado a 100 caracteres, evitando erro 500 ao colar textos enormes
Desenvolvimento
- 🔒 Login do EduQ App: O bloqueio de acesso definido pelo município agora vale em toda requisição - usuários bloqueados são desconectados do app imediatamente, sem depender de identificação controlada pelo cliente
- 🔒 Envio de respostas: Salvamento de respostas e redações passou a exigir comprovação de origem legítima (CSRF), impedindo que sites maliciosos enviem respostas em nome do aluno
- 🔒 Autoria no mural: Posts, comentários e provas agendadas pelo app sempre têm como autor o usuário logado - não é mais possível se passar por outra pessoa
Outros
- ⚡ Biblioteca: Edição de coleções cerca de 3x mais rápida (de ~6s para ~2s)
Dia 25
Salas Virtuais
- 🐛 Botão "Adicionar" do card de Professores da aba Pessoas não aparece mais cortado
- 🐛 Página Pessoas: Correção do problema de abertura de modal na página de pessoas da turma
Atividades
- 🆕 PDFs de atividades diagramáveis: Geração dos PDFs EduQ, SAEB, SARESP e AvaliaMT migrada para Chrome headless - o arquivo final fica idêntico ao que aparece no navegador, com layouts e fontes repaginados
- 🐛 Agendamento por tipo de atividade: A listagem de turmas respeita o tipo da atividade - atividades de Educação Infantil só listam turmas dessa etapa, e provas comuns/redação não listam turmas de Educação Infantil
- 🐛 Modais durante a prova: Modal não fica mais preso após usar o botão voltar do navegador, e a página de resultado exibe traço nas questões sem resposta em vez de quebrar
- 🎨 Placeholders nos campos de data do agendamento em massa de atividades
Usuários
- 🎨 Fotos de perfil: Imagens não quadradas mantêm o formato circular em todas as telas, sem deformações
Desenvolvimento
- 🔒 API do app: Endpoints de escolas, turmas e salas virtuais da API v3 filtram pelo vínculo do usuário - cada perfil vê apenas os próprios recursos, sem expor a rede escolar inteira
- 🔧 Migrations: Migrations antigas consolidadas em um único arquivo, simplificando o histórico do banco
Outros
- 🐛 Chat da Biblioteca: Assistente DuduQ volta a responder no chat da Biblioteca, sem o erro "conversa não disponível"
- 🐛 Formulários de escola, empresa e município: Botões Voltar e Cancelar passam a respeitar a página de origem do usuário, também após salvar
Dia 24
Atividades
- 🆕 Visualização de questões: Detalhes da questão agora abrem em modal moderna com cards de alternativas e metadados (nível, habilidades, disciplina), skeleton durante o carregamento e tooltips corrigidos
Outros
- 🎨 Filtros das tabelas: Drawer de filtros substituído por painel lateral ancorado à direita, com badge de filtros ativos e ações Limpar/Aplicar
Dia 23
Relatórios
- ✨ Relatório de Turma: O relatório individual (e o resumo gerado pela IA) agora é gerado diretamente do banco de dados analítico ClickHouse, sem depender do cache do relatório — as informações ficam sempre atualizadas.
Dia 18
Atividades
- 🐛 Gabaritos SAEB com duas disciplinas: Cada lado do gabarito agora exibe o nome da própria disciplina, na tela e no PDF - antes os dois lados apareciam com o nome da primeira matéria
- 🐛 Revisão de correção de redações: O lápis "Revisar correção" só aparece depois da correção e abre as notas e o feedback já preenchidos, sem mais permitir editar o texto do aluno
- 🐛 Correções em atividades: Atividades direcionadas a alunos específicos agora aparecem na dashboard do aluno (na lista e nos contadores); clicar na aba já aberta da sala virtual não trava mais o carregamento; e o botão "Editar Questão" só aparece para quem tem permissão de editar
- 🐛 Questões com IA: O fluxo recomeça do zero ao reentrar ou voltar da etapa de revisão - questões antigas não ficam mais "presas" e a contagem respeita a quantidade pedida (10 pedidas, 10 entregues); a tela vazia após apagar todas as questões agora oferece um recomeço limpo; e ao salvar, as questões com falha permanecem na tela com o motivo do erro para nova tentativa
Desenvolvimento
- 🔧 Regras e guias internos de desenvolvimento assistido por IA atualizados e expandidos
Dia 17
Salas Virtuais
- 🎨 Tela Pessoas modernizada: Listagens de professores e alunos no padrão de tabelas da plataforma, com contadores de registros e botões "Adicionar" no lugar dos ícones
Atividades
- 🐛 Créditos de IA: Município sem saldo recebe aviso imediato ao gerar questões com IA (antes, ficava num carregamento infinito); se a geração falha depois da cobrança, os créditos voltam automaticamente para o município; e o preço passou a ser proporcional à quantidade de questões geradas
Desenvolvimento
- 🔧 Makefile do ambiente de desenvolvimento compatível com macOS
Outros
- 🔒 Preferências de cookies: Novo fluxo completo de consentimento - cada pessoa escolhe quais categorias autoriza (essenciais, funcionais, analíticos e marketing), pode consultar e alterar a decisão depois pelo botão de preferências, o histórico fica registrado (LGPD) e integrações como Google Analytics, PostHog e Sentry só iniciam conforme o consentimento. No celular, as preferências abrem como um painel arrastável
Dia 16
Relatórios
- 🐛 Resumo com IA nos relatórios: Gestores de Escola e Supervisores de Município voltaram a conseguir gerar resumos e conversar com o assistente de IA nos relatórios de Turmas, Escolas e Município
Usuários
- ✨ Perfil do aluno renovado: Gráfico de desempenho em linhas por disciplina (nota em cada ponto, nome da atividade ao passar o mouse), histórico completo de atividades com escola, turma, nota e situação, e histórico de transferências entre turmas - o histórico permanece fiel mesmo se a escola ou a turma forem renomeadas ou descartadas depois
- 🐛 Convite de professores por planilha: Mensagem "Professores convidados!" volta a aparecer como modal, sem quebrar o layout da listagem, e é possível reabrir a tela de convites sem recarregar a página
Desenvolvimento
- 🔧 Professores não podem mais ser vinculados duas vezes à mesma disciplina, com restrição no banco de dados e limpeza dos vínculos duplicados existentes
Outros
- 🐛 Modais: Correção de erro de JavaScript que podia quebrar o fechamento de modais ao navegar entre telas
- 🐛 Biblioteca: Remover todas as permissões de série de uma mídia não trava mais a tela de configurações
Dia 15
Salas Virtuais
- 🐛 Salas virtuais no app mobile: Correção do sumiço de turmas e salas virtuais quando o professor alternava entre Educação Infantil e Ensino Regular na web - o app agora exibe sempre todas as turmas do professor, de ambos os segmentos.
- 🎨 Fórum: Painel de Interações simplificado - removidas as opções de ordenação que não funcionavam como esperado, o ranking agora mostra a quantidade de interações ao lado de cada usuário e os tópicos fixados mantêm prioridade em qualquer ordenação
Atividades
- 🐛 Questões com IA: Modal de reformulação agora mostra as informações reais da questão - dificuldade correta, disciplina e o objetivo (tema central) - em vez de valores fixos que valiam para qualquer questão
Desenvolvimento
- 🔧 Porta interna do Postgres no Docker agora pode ser igual à porta externa no ambiente dev
- 📝 Guia interno de profiling de performance em desenvolvimento com rack-mini-profiler
Dia 14
Relatórios
- ✨ Relatório comparativo de escolas: Relatório comparativo de escolas gerado a partir do banco de dados clickhouse, removendo a necessidade de cachear as informações do relatório, sendo constantemente atualizado.
- 🏗️ Relatório pedagógico analytics reescrito com Active Record no lugar de queries SQL cruas, deixando o código mais simples e manutenível
Usuários
- 🆕 Chaves de primeiro acesso por e-mail: Quem convida aluno agora recebe por e-mail a chave de acesso (no convite individual) ou a planilha só com os alunos criados (na importação em lote), sem precisar baixar manualmente. Convites são bloqueados se o responsável não tiver e-mail
- 🐛 Inserção de professores: Professor recém-convidado agora aparece na listagem da escola (ordenado pelo vínculo mais recente), e o botão cancelar do modal de vínculo com turma não prende mais o usuário entre dois modais
Desenvolvimento
- ⚡ Missão Performance de Testes: Instalação de ferramentas de profiling (StackProf) e correções globais - diagnóstico apontou que 75% do tempo dos testes ia para conexões de banco e BCrypt, com custo de hash ajustado no ambiente de teste
- ⚡ Missão Performance de Testes: Otimização das suítes mais lentas - specs de policies com queda de até 70% no tempo (ex.:
ScheduledExams::ModelPolicyde 3,4s para 1s) e 44% menos chamadas de factories - 🏗️ Observabilidade: Nova telemetria da aplicação com logs estruturados em stdout e exportação de traces via OpenTelemetry para diagnóstico de infra
- 🏗️ Novas variações de modal para mobile nos formatos "bottom sheet" e "tela cheia", com melhor acessibilidade
- 🔧 Listagem de Google IDs simplificada com remoção da coluna Professor, que nunca era preenchida
- 🧪 Testes automatizados para o relatório de turma
- 🔧 Rake task de manutenção que remove registros duplicados de professor-disciplina
Outros
- 🎨 Biblioteca: Listagem de tags no padrão da plataforma, com filtros identificados e opção de limpá-los
- 🐛 Não é mais possível criar gêneros com nomes duplicados na biblioteca, com migração dos registros existentes
- 🎨 Select box: Componente agora suporta opções agrupadas e subtextos, e a criação de turmas virtuais permite associar múltiplos professores de uma vez
- 🐛 Análise com IA: Modal de correção com layout ajustado para aproveitar a largura disponível e correção na identificação do usuário na cobrança de créditos
- 🎨 Modais de configuração: Padronização das telas de configuração da empresa com melhor navegação por teclado e suporte a mobile
- 🎨 Dashboard de gestão: Gráficos do supervisor padronizados com o visual do professor, com paginação e barras adaptáveis
Dia 11
Desenvolvimento
- 🔧 Painel admin (Avo): Novas páginas de auditoria e um console de análise de sessões de acesso do ambiente de produção
Dia 10
Atividades
- 🐛 PDF do Saresp: Questões agora aparecem depois da capa e a numeração de páginas e questões continua de onde a seção anterior parou
Usuários
- ✨ Migração de alunos entre turmas: Novo aluno transferido não perde o histórico nem leva respostas duplicadas - as respostas das atividades que a nova turma também vai aplicar são levadas junto, e atividades já feitas na nova turma têm prioridade para a resposta mais recente
Outros
- 🐛 Dashboard: Correção de gráficos que desapareciam na tela Gráficos do professor ao navegar entre páginas
- 🎨 Logo do DuduQ com tamanho e alinhamento corretos na tela de login e no menu lateral, incluindo o ícone da aba do navegador
Dia 9
Atividades
- 🐛 Questões diagramáveis: Professor agora escreve com a mesma liberdade das questões normais (antes o texto era cortado num limite menor) e as alternativas sempre aparecem na ordem correta ao editar
- 🐛 Criação de atividades com banco de questões: Correção de três bugs na etapa de revisão que faziam questões sumirem ao voltar para a última etapa e a criação falhar sem aviso
Relatórios
- 🐛 Chat com IA no relatório pedagógico: Correção do chat no relatório analytics, que quebrou após refatorações e a migração para o ClickHouse
Usuários
- 🆕 Novo filtro de ano escolar na tela de turmas da API mobile
Desenvolvimento
- 🔒 Proteção de dados em logs: Instalação do logstop, que impede que dados sensíveis (senhas, tokens) apareçam nos logs
- 🔒 Anonimização de IPs: Endereços IP passam a ser mascarados nos registros, preservando geolocalização sem permitir identificação individual (LGPD)
Outros
- ✨ Filtros das tabelas: Alterações feitas na bandeja de filtros não são mais perdidas ao fechar (Esc, X ou clique fora) e os itens já selecionados aparecem no topo dos menus
- 🎨 Telas de escola, redação e atividade agendada: Informações reorganizadas no padrão visual atual - atividade agendada agora mostra turma e escola, com layout responsivo para nomes extensos
- 🐛 Título colapsado: Correção do item de sidebar que permanecia "aberto" invisível ao trocar de tela na atividade agendada
- 🎨 Ajustes de tipografia da plataforma
Dia 8
Salas Virtuais
- 🐛 Tópicos de atividade: Correção do carregamento infinito na Sala Virtual após excluir um tópico, e o tópico recém-criado durante o agendamento agora permanece selecionado automaticamente
Usuários
- 🐛 Transações dos admins: Correção do erro 500 na consulta do histórico de transações quando existia transação sem custo calculado - agora exibe um traço até o valor ficar disponível
Desenvolvimento
- 🏗️ Refatoração das controllers de criação e edição de atividades em PDF - código duplicado unificado em módulos, sem mudança de comportamento
- 🏗️ Componentes de modal refatorados com header e footer próprios, suporte a ícones/avatares e layouts mais flexíveis
Outros
- 🐛 Menus de opções: Correção de popovers (menu do usuário na sidebar e similares) que paravam de funcionar depois de navegar entre telas
- 🐛 Dashboard: Correção de erro ao sair da tela com gráficos para outra página
- 🎨 Formulários multi-etapas: Loading no botão de envio, animação de erro nos campos mais perceptível e correção na edição de coleções da biblioteca
Dia 4
Atividades
- 🎨 Criação de Atividade: Adicionado ícone de erro no stepper da criação de atividade com banco de questões e tratamento visual dos steps com erro.
- ✨ Validação da Etapa 2: Limpeza automática do estado de erro no stepper assim que os campos obrigatórios (nome da atividade e disciplina) forem preenchidos.
- ✨ Dashboards do aluno e do professor: Listagem de atividades com scroll infinito - as próximas atividades carregam automaticamente ao rolar, sem paginação e sem recarregar a página
Desenvolvimento
- 🔧 Atualização de 6 gems de desenvolvimento, incluindo Brakeman e SimpleCov
Outros
- 🎨 Formulários e modais: Melhorias gerais de usabilidade - opções padrão mais úteis (ex.: prova presencial), textos e placeholders instrutivos, botões que ficavam cortados e validação com bordas vermelhas e mensagens em português
Dia 3
Relatórios
- 🐛 Exportação de relatórios comparativos: Correção de travamento na exportação para PDF - os gráficos agora são preservados no arquivo gerado e cliques repetidos no botão exportar não iniciam múltiplas exportações simultâneas
- 🐛 Chat com IA no relatório pedagógico: Correção na geração de dados para o contexto do chat com assistente virtual dentro do relatório pedagógico, que não estavam sendo gerados corretamente, resultando na ausência de informações no resumo do relatório.
Pedidos
- 📊 Métricas da Plataforma (EduQ Brasil): Levantamento solicitado pelo cliente com a quantidade de questões do repositório Brasil Cultural, municípios ativos, escolas ativas em municípios ativos, alunos ativos, usuários ativos, atividades agendadas no ano corrente e questionários socioeconômicos respondidos
- 📊 EduQ Corrige: Levantamento da quantidade de correções realizadas no ano corrente
- 📊 Biblioteca: Levantamento do acervo total de mídias, detalhado por tipo (livros, áudios, vídeos, apresentações e jogos)
Desenvolvimento
- 🏗️ Formulários: Padronização da propriedade
form(no singular) em todos os componentes visuais de formulário, eliminando a ambiguidade entreform/formsque facilitava erros
Dia 2
Atividades
- 🎨 Melhorias no layout e na paginação da página de Atividades em Lote
- 🏗️ Banco de Questões: Refatoração dos filtros do passo 3 de criação de atividades - de quebra, corrigiu bugs de cards duplicados na rolagem infinita e da tela de review renderizada duas vezes
Desenvolvimento
- 🐛 Ícones: Correção de ícones SVG com gradientes renderizando com cores erradas quando o mesmo ícone aparece várias vezes na mesma página
- 🔧 Atualização de 22 dependências JavaScript de produção, incluindo correções de segurança no editor de texto Tiptap
- 🔧 Atualização das GitHub Actions utilizadas no CI/CD
Dia 1
Atividades
- 🎨 Atividades em Lote: Melhorias visuais e de usabilidade - tabelas com o novo componente padrão, filtros dinâmicos por escola e turma, nomes das atividades agora são links clicáveis, formulário de edição em lote mostra exatamente quais agendamentos estão sendo editados e há aviso em destaque ao agendar um lote sem atividades
- 🐛 Redação: Correção do desalinhamento no modal de finalização da atividade de redação e centralização da tela de resposta finalizada
Relatórios
- 🐛 Questionário Socioeconômico: Correções de navegação e filtros - indicadores de alunos respondentes alinhados, botão de filtros permanece disponível mesmo quando a pesquisa não retorna resultados e é possível limpar a pesquisa sem perder o contexto da escola selecionada
Certificados
- 🐛 Correções no fluxo de geração de certificados
Usuários
- 🐛 Correções na tela de login - cursor de clique no botão "Entrar" e layout da mensagem de cookies no mobile
Outros
- 🎨 Redesign do popover de ações das tabelas, agora padronizado em todas as listagens da plataforma