Sistema para organizar conferencias científicas: envío, revisión y selección de artículos.
Este repositorio contiene el código base para el Trabajo Práctico — Parte 1 de Técnicas y Herramientas de Ingeniería de Software (Maestría en IS - UNLP, 2026).
src/
User.js # Usuario registrado en el sistema
Paper.js # Clase base para artículos
RegularPaper.js # Artículo regular (con abstract)
Poster.js # Poster (con URL de fuentes)
Review.js # Revisión de un artículo
Bid.js # Expresión de interés de un revisor
Conference.js # Conferencia con chairs y sesiones
Session.js # Sesión/track con su flujo de etapas
tests/
Paper.test.js
RegularPaper.test.js
Poster.test.js
Bid.test.js
Session.test.js
npm install
npm testPara ver cobertura:
npm test -- --coverageEl enunciado completo está en ENUNCIADO.md.
El código base cubre el modelo de dominio y las dos primeras etapas del flujo de una sesión:
- Modelo:
User,Paper,RegularPaper,Poster,Review,Bid,Conference - Session: etapa de
Receiving(submit con validación de formato) yBidding(registro y modificación de bids)
Los tests provistos verifican este comportamiento y deben mantenerse en verde.
Las secciones 4.1, 4.2 y 4.3 del enunciado:
- Asignación de revisores — algoritmo de asignación por prioridad de bids, con distribución equitativa y exclusión por conflicto de interés
- Carga de revisiones — los revisores asignados ingresan texto y puntaje
- Selección por corte fijo — aceptación de artículos en orden decreciente de score hasta un porcentaje configurado
Cada bloque debe estar cubierto por tests unitarios.
- Orientación a objetos estricta: cada clase tiene responsabilidades claras
- Sin lambdas ni funciones anónimas, salvo en la API de colecciones (
map,filter,reduce, etc.) - Cualquier decisión de diseño sobre el enunciado debe quedar registrada en el documento de decisiones
Fecha límite: 29 de mayo de 2026. Grupos de 2 o 3 personas.
Repositorio GitHub con historia de commits que refleje la contribución de cada integrante.