Una aplicación web educativa completa donde los alumnos pueden practicar retos de programación JavaScript con evaluación automática en tiempo real.
- ✅ Registro y login con email
- 📝 Vista de retos de programación
- 💻 Editor de código integrado (Monaco Editor)
- ⚡ Ejecución de código en tiempo real
- 🧪 Evaluación automática con tests
- 📊 Sistema de puntuación
- 🔐 Login de administrador
- ➕ Crear, editar y eliminar retos
- 🧪 Definir tests de validación
- 📋 Gestión completa de desafíos
- Frontend: React.js + Monaco Editor
- Backend: Node.js + Express
- Base de Datos: MongoDB
- Autenticación: JWT
- Ejecución de Código: VM2 (sandbox seguro)
# 1. Crear archivo .env (ver .env.example)
# 2. Asegurarse de que MongoDB esté corriendo
# 3. Instalar dependencias
npm run install-all
# 4. Poblar base de datos con retos de ejemplo
npm run seed
# 5. Iniciar la aplicación
npm run devLa aplicación estará disponible en:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
📖 Ver QUICKSTART.md para una guía paso a paso
js-playground/
├── server/
│ ├── models/ # Modelos de MongoDB
│ ├── routes/ # Rutas de la API
│ ├── middleware/ # Middleware de autenticación
│ ├── utils/ # Utilidades (sandbox, etc.)
│ └── index.js # Servidor principal
├── client/
│ ├── public/
│ └── src/
│ ├── components/ # Componentes React
│ ├── pages/ # Páginas de la aplicación
│ ├── context/ # Context API para estado global
│ └── App.js # Componente principal
└── package.json
- Registrarse con nombre y email
- Iniciar sesión
- Seleccionar un reto
- Escribir código en el editor
- Ejecutar y ver resultados
- Enviar solución para evaluación
- Iniciar sesión con credenciales de admin
- Acceder al panel de administración
- Crear nuevos retos con:
- Título y descripción
- Código inicial
- Tests de validación
- Editar o eliminar retos existentes
- Autenticación JWT
- Contraseñas hasheadas con bcrypt
- Ejecución de código en sandbox aislado (VM2)
- Validación de entrada en todas las rutas
MIT
Para Alumnos:
- ✅ Registro y login con nombre y email
- ✅ Área protegida con autenticación
- ✅ Vista de retos de programación
- ✅ Editor de código Monaco integrado
- ✅ Ejecución de código JavaScript
- ✅ Evaluación automática con tests
- ✅ Sistema de puntuación
- ✅ Detalle de tests pasados/fallidos
Para Administrador:
- ✅ Login con credenciales (atag / atag553)
- ✅ Crear, editar y eliminar retos
- ✅ Definir enunciados y tests
- ✅ Gestión completa de desafíos
Tecnologías:
- ✅ React.js + Monaco Editor
- ✅ Node.js + Express
- ✅ MongoDB
- ✅ JWT para autenticación
- ✅ VM2 para sandbox seguro
- ✅ Sistema de puntuación automática
- QUICKSTART.md - Inicio rápido en 5 minutos
- SETUP.md - Guía de instalación detallada
- TROUBLESHOOTING.md - Solución de problemas
- SOLUTIONS.md - Soluciones de ejemplo (instructores)
- EXTENDING.md - Cómo extender funcionalidades
- ARCHITECTURE.md - Arquitectura del sistema
- CHECKLIST.md - Lista de verificación
- INSTRUCCIONES.txt - Resumen ejecutivo
La aplicación viene con 8 retos de ejemplo listos para usar:
- Suma de Dos Números (Fácil - 100 pts)
- Invertir una Cadena (Fácil - 100 pts)
- Número Par o Impar (Fácil - 100 pts)
- Encontrar el Mayor (Medio - 150 pts)
- Contar Vocales (Medio - 150 pts)
- Palíndromo (Medio - 200 pts)
- FizzBuzz (Medio - 200 pts)
- Factorial (Difícil - 250 pts)
npm run install-all # Instalar todas las dependencias
npm run dev # Iniciar backend + frontend
npm run server # Solo backend
npm run client # Solo frontend
npm run seed # Poblar DB con retos de ejemplo
npm run build # Construir para producción- setup.bat - Configuración automática inicial
- start.bat - Inicio rápido de la aplicación
-
Configuración inicial:
# Opción 1: Automático (Windows) setup.bat # Opción 2: Manual npm run install-all npm run seed
-
Iniciar aplicación:
# Opción 1: Automático (Windows) start.bat # Opción 2: Manual npm run dev
-
Acceder:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
-
Login como admin:
- Usuario:
admin - Contraseña:
admin123
- Usuario:
La aplicación incluye:
- 🏠 Landing page moderna
- 📝 Formularios de registro/login
- 📊 Dashboard con estadísticas
- 💻 Editor Monaco con syntax highlighting
- ✅ Resultados detallados de tests
- 👨💻 Panel de administración completo
- ✅ Contraseñas hasheadas con bcrypt
- ✅ Autenticación JWT
- ✅ Rutas protegidas
- ✅ Validación de entrada
- ✅ Sandbox aislado para código
- ✅ Timeout de ejecución
- ✅ CORS configurado
Además de las funcionalidades solicitadas:
- 📊 Sistema de estadísticas
- 📈 Historial de entregas
- 🎨 UI moderna y responsive
- 🎭 Animaciones suaves
- 📱 Compatible con móviles
- 🔔 Feedback visual
- 📝 Documentación completa
- 🛠️ Scripts de automatización
Para agregar nuevas funcionalidades, consulta EXTENDING.md.
Si encuentras problemas:
- Revisa TROUBLESHOOTING.md
- Verifica CHECKLIST.md
- Consulta la documentación relevante
Desarrollado para UTN - Proyecto Educativo
Versión: 1.0.0
Última actualización: Octubre 2025