Skip to content

Implementação dos Flashcard + melhoramento da tela do flashcard(tela no browser) + comentarios no codigo:#23

Open
GabrielLaporte02 wants to merge 5 commits intopauloborba:mainfrom
GabrielLaporte02:feature/cenarios-autoavaliacao
Open

Implementação dos Flashcard + melhoramento da tela do flashcard(tela no browser) + comentarios no codigo:#23
GabrielLaporte02 wants to merge 5 commits intopauloborba:mainfrom
GabrielLaporte02:feature/cenarios-autoavaliacao

Conversation

@GabrielLaporte02
Copy link

@GabrielLaporte02 GabrielLaporte02 commented Dec 7, 2025

Pull Request - Teaching Assistant

📝 Descrição-------------------------------------------------------------------------------------------------

Descrição Completa das Mudanças - Flashcards
📝 O que foi feito:
Implementação da funcionalidade de Flashcards:
Foi criado um novo sistema completo de flashcards que permite aos usuários criar, visualizar e deletar cards de estudo. A funcionalidade foi integrada como uma nova aba no menu principal da aplicação, oferecendo uma ferramenta complementar para os alunos estudarem de forma interativa.

Backend - Estrutura REST:
No servidor, foram adicionados 3 novos endpoints na API. O primeiro é um GET em /api/flashcards que retorna todos os flashcards armazenados. O segundo é um POST em /api/flashcards que permite criar novos cards com pergunta (front) e resposta (back), validando se ambos os campos foram preenchidos. O terceiro é um DELETE em /api/flashcards/:id que remove um card específico por ID. Também foi criado um modelo chamado FlashcardSet que gerencia a coleção de flashcards em memória, com métodos para adicionar, deletar e recuperar todos os cards.

Frontend - Componentes React:
Foram desenvolvidos 3 novos componentes React para gerenciar a interface. O FlashcardForm é um formulário que permite o usuário inserir a pergunta e a resposta de um novo flashcard, com validação de campos vazios. O FlashcardList exibe todos os flashcards criados em uma lista organizada, mostrando tanto o front quanto o back de cada card. O FlashcardService é um serviço que faz a comunicação com a API, encapsulando as chamadas HTTP para GET, POST e DELETE dos flashcards.

Integração no App:
A funcionalidade foi integrada no componente principal App.tsx através de uma nova aba no menu de navegação. Foi adicionado um estado para gerenciar os flashcards, funções para carregar, adicionar e deletar cards, e uma seção completa na interface com o formulário e a lista de cards. A aba de flashcards aparece ao lado das outras abas existentes (Estudantes, Turmas, Matrículas e Avaliações).

🎨 Melhorias na Interface (CSS):
Estilização da Seção de Flashcards:
Foi adicionada uma seção dedicada .flashcards-section com estilos específicos para a visualização dos flashcards. O header da seção (.section-header) possui um design moderno com gradientes e animação de entrada, exibindo um título em destaque com cor roxa (#667eea) e uma descrição abaixo.

Animações e Efeitos Visuais:
Os flashcards utilizam a animação slideInDown para aparecerem com um efeito suave quando a página carrega, durando 0.5 segundos. A seção também implementa a animação fadeIn (já existente no projeto) para transições suaves entre abas. Estes efeitos melhoram a experiência do usuário ao navegar pela aplicação.


O que foi feito:

  • Implementação completa da funcionalidade de Flashcards com criação, listagem e exclusão de cards

  • Backend: 3 novos endpoints REST (GET /api/flashcards, POST /api/flashcards, DELETE /api/flashcards/:id) + modelo FlashcardSet para gerenciamento em memória

  • Frontend: 3 novos componentes React (FlashcardForm, FlashcardList, FlashcardService) + integração em nova aba no App

  • Adicionados estilos CSS específicos para a seção de flashcards com animações (slideInDown, fadeIn) e responsividade mobile

Por que foi feito:

  • Adicionar ferramenta de estudo complementar baseada em flashcards para os alunos

  • Expandir funcionalidades do sistema além de avaliações e turmas

📌 Observações

Impacto:

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

Riscos identificados:

  • Nenhum identificado. Feature é totalmente independente e não afeta funcionalidades 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
  • Colocar aqui o nome da sua feature

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

  • manualmente

Testes automatizados

Por nível de teste:

  • 🔬 Testes Unitários (Jest) - Classes e funções isoladas
    • Dependências: versões antigas, stubs e drivers
  • 🔗 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
  • 🌐 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 Classes/Models (lógica de negócio)
  • 🔌 Testes de Services/API (comunicação e endpoints)

Cobertura:

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

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 do testes

Aqui estão os 9 testes unitários testando a classe FlashcardSet isoladamente :

Gravacao.de.tela.de.2025-12-10.04-44-39.webm

Aqui estão os 12 testes de integração testando a API REST completa (GET, POST, DELETE) :

Gravacao.de.tela.de.2025-12-10.04-42-08.webm

server:

client:

📸 Screenshots/GIFs

antes:
1:
Captura de tela de 2025-12-07 14-15-50

2:
Captura de tela de 2025-12-07 14-16-19

3:
Captura de tela de 2025-12-07 14-16-41

Depois:

1:
Captura de tela de 2025-12-07 18-17-29

2:
Captura de tela de 2025-12-07 18-18-37

3:
Captura de tela de 2025-12-07 18-19-34

4:
Captura de tela de 2025-12-07 18-20-14
Captura de tela de 2025-12-07 18-20-43

✅ 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

  • Closes #
  • Relacionado a #

@GabrielLaporte02
Copy link
Author

Descrição - Seção "O que foi feito:"

  • Criação de 3 novos endpoints REST no backend (GET, POST, DELETE) para gerenciar flashcards via API em http://localhost:3005/api/flashcards

  • Implementação do modelo FlashcardSet.ts no servidor com métodos para adicionar, deletar e recuperar flashcards em memória

  • Desenvolvimento de 3 novos componentes React: FlashcardForm (formulário de criação), FlashcardList (listagem de cards) e FlashcardService (serviço de comunicação com API)

  • Integração de nova aba "Flashcards" no menu de navegação principal com formulário funcional e lista de cards

  • Adição de estilos CSS específicos para a seção de flashcards com animações (slideInDown, fadeIn), responsividade mobile e consistência visual com o projeto

  • Validação de campos vazios no formulário e tratamento de erros nas requisições HTTP

@pauloborba
Copy link
Owner

@GabrielLaporte02 você precisa resolver os conflitos

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