Implementação dos Flashcard + melhoramento da tela do flashcard(tela no browser) + comentarios no codigo:#23
Conversation
- Cenário 1: Status da turma - Cenário 2: Registrar autoavaliação - Cenário 3: Status do aluno
|
Descrição - Seção "O que foi feito:"
|
|
@GabrielLaporte02 você precisa resolver os conflitos |
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:
Riscos identificados:
📦 Área afetada
Frontend (Client - React):
Backend (Server - Express/Node.js):
Funcionalidades:
Infraestrutura:
🔧 Tipo de mudança
🧪 Testes
Testes automatizados
Por nível de teste:
Por área testada:
Cobertura:
Como revisar e testar
Testes Unitários (Server):
Testes E2E (Client):
Testar manualmente:
http://localhost:3000http://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:
npm test :
Gravação de tela de 2025-12-10 05-06-22.webm
npm run test:watch :
Gravação de tela de 2025-12-10 04-59-39.webm
npm run test:coverage:
Gravação de tela de 2025-12-10 05-01-10.webm
client:
npm test :
Gravação de tela de 2025-12-10 05-07-34.webm
npm run test:watch :
Gravação de tela de 2025-12-10 05-15-59.webm
npm run test:coverage:
Gravação de tela de 2025-12-10 05-13-56.webm
📸 Screenshots/GIFs
antes:

1:
2:

3:

Depois:
1:

2:

3:

4:


✅ Checklist
🔗 Issues relacionadas