Projeto da disciplina de Topicos Avancados em Linguagens de Programacao para desenvolvimento de um sistema web com frontend em React + TypeScript e backend em Node.js + TypeScript.
O sistema permite cadastrar provas objetivas, responder provas, corrigir respostas automaticamente e apoiar a aplicacao com geracao de gabaritos, correcao em lote por CSV e geracao de multiplas versoes em PDF.
- Node.js 18+ recomendado.
- npm 9+ recomendado.
- Navegador web atualizado.
Observacao: o projeto nao declara a chave engines nos package.json, entao as versoes acima sao uma recomendacao pratica para executar o stack atual sem incompatibilidades comuns.
.
|-- sistema/
| |-- backend/
| |-- frontend/
|-- README.md
sistema/frontend: interface web em React com Vite e TypeScript.sistema/backend: API em Express com TypeScript e persistencia simples em arquivos JSON.
- Cadastro, listagem, edicao e exclusao de provas.
- Resposta de provas pela interface.
- Correcao automatica com calculo de pontuacao.
- Visualizacao detalhada do resultado de cada submissao.
- Exportacao de gabarito em CSV.
- Correcao em lote por upload de CSV.
- Geracao de multiplas versoes da mesma prova em PDF, com embaralhamento de questoes e alternativas.
- Registro das versoes geradas para consulta posterior.
- Testes de aceitacao com Cucumber no backend.
- React
- TypeScript
- Vite
- Node.js
- Express
- TypeScript
- Multer
- PDFKit
- Cucumber
express:^4.18.2cors:^2.8.5multer:^1.4.5-lts.1pdfkit:^0.13.0typescript:^5.0.0ts-node:^10.9.1@cucumber/cucumber:^10.8.0supertest:^7.2.2
react:^18.2.0react-dom:^18.2.0vite:^4.0.0typescript:^5.0.0@vitejs/plugin-react:^4.0.0
git clone <url-do-repositorio>
cd tapl-experimento-1cd sistema/backend
npm installEm outro terminal, ou apos concluir a instalacao do backend:
cd sistema/frontend
npm installO backend e o frontend devem ser executados em terminais separados.
Na pasta sistema/backend:
npm run devServidor:
http://localhost:3000
Na pasta sistema/frontend:
npm run devURL local esperada:
http://localhost:5173
Na pasta sistema/backend:
npm run test:acceptanceA pasta sistema/exemplos_testes contem arquivos de apoio para validacao manual:
- exemplo de prova em Markdown
- exemplos de gabarito em CSV
- exemplos de respostas em CSV para correcao em lote
Esses arquivos podem ser usados pela pessoa revisora para cadastrar uma prova e testar as rotas de gabarito, correcao em lote e validacao da interface.
- Iniciar o backend.
- Iniciar o frontend.
- Criar uma prova com titulo, questoes e alternativas.
- Responder a prova pela interface.
- Visualizar a correcao automatica.
- Opcionalmente gerar gabarito CSV, corrigir em lote por CSV ou gerar versoes em PDF.
- O backend utiliza arquivos JSON para persistencia simples dos dados.
- Durante o uso da aplicacao podem ser gerados arquivos auxiliares, como PDFs e registros de provas geradas.
- Para revisao do codigo, os arquivos mais importantes estao em
sistema/frontend/src,sistema/backend/srcesistema/backend/tests.