Skip to content

Feature Autoavaliação#38

Open
PauloV1 wants to merge 32 commits into
pauloborba:mainfrom
PauloV1:main
Open

Feature Autoavaliação#38
PauloV1 wants to merge 32 commits into
pauloborba:mainfrom
PauloV1:main

Conversation

@PauloV1
Copy link
Copy Markdown

@PauloV1 PauloV1 commented Dec 15, 2025

Pull Request - Teaching Assistant

📝 Descrição

O que foi feito:

Esta PR implementa a funcionalidade completa de autoavaliação de estudantes e detecção de discrepâncias entre avaliações do professor e autoavaliações dos alunos.

Principais funcionalidades adicionadas:

  1. Sistema de Autoavaliação: Permite que estudantes façam suas próprias avaliações de desempenho
  2. Comparação e Detecção de Discrepâncias: Compara avaliações do professor com autoavaliações, identificando divergências maiores que 25%
  3. Visualização de Discrepâncias: Interface visual destacando metas discrepantes com cores diferenciadas
  4. Persistência de Dados: Carregamento e salvamento de autoavaliações via arquivo JSON e endpoint PUT
  5. InfoButton: Componente de UI para exibir informações contextuais sobre discrepâncias

Por que foi feito:

Para fornecer aos professores uma ferramenta que auxilie na identificação de discrepâncias entre a percepção do aluno sobre seu desempenho e a avaliação real do professor, permitindo intervenções pedagógicas mais assertivas e melhor acompanhamento do aprendizado.

📌 Observações

Decisões técnicas importantes:

  • Autoavaliações são armazenadas separadamente das avaliações regulares na classe Enrollment
  • Threshold de 25% foi definido como critério para destacar discrepâncias significativas
  • Merge de avaliações e autoavaliações foi refatorado para dentro da classe Enrollment para melhor encapsulamento
  • Cenários Gherkin foram reestruturados para melhor organização e clareza dos testes

Colaboração:

  • PauloV1: Implementação backend (models, endpoints, lógica de merge), frontend base, testes unitários
  • 4POL07: Detecção de discrepâncias, highlighting visual, InfoButton, testes GUI e de serviço, configurações

Impacto:

  • 🟢 Baixo - Mudança isolada, sem efeitos colaterais
  • 🟡 Médio - Afeta algumas funcionalidades
  • 🔴 Alto - Mudanças críticas ou estruturais

Riscos identificados:

  • Nenhum risco crítico identificado. A funcionalidade é aditiva e não modifica comportamentos existentes

📦 Área afetada

Frontend (Client - React):

  • 🖥️ Componentes React
  • 🔌 Services/API
  • 📝 Types/Interfaces TypeScript
  • 🎨 Estilos e UI

Backend (Server - Express/Node.js):

  • 🔌 API Routes/Endpoints
  • 📊 Models e lógica de negócio
  • 💾 Persistência de dados

Funcionalidades:

  • 🎓 Gerenciamento de Estudantes
  • 📋 Gerenciamento de Turmas
  • 📝 Gerenciamento de Matrículas
  • 📈 Gerenciamento de Avaliações
  • 📄 Importação de dados
  • Provas
  • Flashcards
  • Autoavaliação e Detecção de Discrepâncias

Infraestrutura:

  • 🔧 Configurações (tsconfig, jest.config, cucumber.js)
  • 📦 Dependências (package.json)
  • 🚀 Scripts de build/deploy
  • 📝 Documentação (README, guias)

🔧 Tipo de mudança

  • 🐛 Correção de bug (fix)
  • ✨ Nova funcionalidade (feature)
  • ♻️ Refatoração de código
  • 📚 Atualização de documentação
  • ✅ Adição/atualização de testes
  • 🎨 Melhorias de UI/UX
  • 🔒 Correção de segurança
  • ⚡ Melhoria de performance

🧪 Testes

Testes automatizados

Por nível de teste:

  • 🔬 Testes Unitários (Jest) - Classes e funções isoladas
    • Dependências: versões antigas, stubs e drivers
    • Novos testes unitários adicionados:
      • Testes para métodos de autoavaliação da classe Enrollment
      • Testes para classe Evaluation (constructor, getters, setters, JSON)
      • Cobertura de edge cases e integridade de dados
      • Testes de independência entre avaliações e autoavaliações
  • 🔗 Testes de Integração - Interação entre componentes/serviços
    • Dependências: novas versões evoluídas por outros desenvolvedores
  • 🎯 Testes End-to-End (Cucumber) - Fluxos completos da aplicação
    • Dependências: todas as dependências envolvidas
    • Cenários Gherkin reestruturados para autoavaliação
    • Testes de visualização de discrepâncias
    • Testes de discrepâncias no servidor
  • 🌐 Testes de Sistema - Ambiente completo de produção
    • Dependências: ambiente de produção com dependências externas reais

Por área testada:

  • 🖥️ Testes de GUI (interface do usuário)
    • Testes de componentes de autoavaliação
    • Testes de highlighting de discrepâncias
    • Testes do componente InfoButton
  • 📊 Testes de Classes/Models (lógica de negócio)
    • Testes unitários da classe Enrollment com autoavaliações
    • Testes unitários da classe Evaluation
    • Testes de lógica de comparação e detecção de discrepâncias
  • 🔌 Testes de Services/API (comunicação e endpoints)
    • Testes de serviços de autoavaliação
    • Testes de endpoints PUT para autoavaliações

Cobertura:

  • Cobertura de testes mantida/aumentada
  • Casos de erro e edge cases cobertos

Arquivos de teste criados/modificados:

  • server/src/__tests__/Enrollment.selfEvaluation.test.ts (novo)
  • server/src/__tests__/Evaluation.test.ts (novo)
  • server/src/__tests__/SelfEvaluation.test.ts
  • client/src/features/selfEvaluation.feature
  • client/src/step-definitions/selfEvaluation.steps.ts

Como revisar e testar

Testes Unitários (Server):

cd server
npm install
npm test                    # Executar testes
npm run test:watch          # Modo watch
npm run test:coverage       # Com cobertura

Testes E2E (Client):

cd client
npm install
npm start                   # Terminal 1: iniciar app
npm run test:cucumber       # Terminal 2: executar testes

Testar manualmente:

  • Servidor: http://localhost:3000
  • Cliente: http://localhost:3004

📸 Screenshots/GIFs

Principais mudanças visuais:

  • Componente de autoavaliação com interface similar às avaliações regulares
  • Highlighting visual de metas discrepantes (cores diferenciadas)
  • InfoButton com informações contextuais sobre discrepâncias
  • Destaque para estudantes com discrepância > 25% na visão de comparação

✅ Checklist

  • Código segue os padrões do projeto
  • Realizei self-review do código
  • Comentei código em áreas complexas
  • Atualizei a documentação (se necessário)
  • Mudanças não geram warnings
  • Adicionei testes que provam que a correção/feature funciona
  • Testes novos e existentes passam localmente
  • Mudanças dependentes foram merged e publicadas

🔗 Issues relacionadas

PauloV1 and others added 30 commits November 15, 2025 21:12
…s and students with a discrepancy greater than 25% in the comparison view.
- Merge avaliações do estudante (selfEvaluations) com funcionalidade de média pré-final, pós-final e reprovação por falta
- Atualizar classe Enrollment para suportar ambas as features
- Atualizar server.ts para carregar self-evaluations e dados de média do arquivo
- Atualizar interfaces de Enrollment no cliente
Discrepância na autoavaliação
Adicionando configurações
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants