- Uso de
CF-Contest-Problem-Scrapperpara extraer problemas de CodeForces. - Aplicar un script (basado en un LLM) que modifique el nombre y la descripción para adaptarlo a la temática de Tech Mahindra.
- Guardar el problema transformado en la base de datos.
- Campos obligatorios:
id,nombre,descripción,dificultad (rating),link al problema original. - Campos adicionales:
tags,fecha de creación,fecha de actualización.
- Mostrar los problemas filtrados por dificultad y etiquetas.
- Página con:
- Panel izquierdo: descripción del problema.
- Panel derecho: editor de código integrado.
- Botón de Enviar para realizar la entrega.
- Integración con imagenes de Docker que puedan ejecutar el código en los lenguajes disponibles.
- Permite escribir, editar y enviar código.
- Al enviar código:
- Invocar API de Judge0 para compilar, ejecutar y comparar con output esperado.
- Mostrar errores o mensajes de validación en tiempo real.
- Evaluar calidad del código (estilo, sintaxis, seguridad, etc.).
- Si cumple con estándares, mostrar mensaje de Completado y marcar problema como resuelto.
- Si la entrega es correcta:
- Actualizar estadísticas del usuario (XP y currency).
- Registro, login y gestión de perfiles.
- Registro de progreso y problemas completados.
- Interfaz intuitiva y responsiva.
- Especial atención al editor y estadísticas.
- Respuesta rápida al cargar listados de problemas y validar envíos.
- Autenticación robusta.
- Validación/sanitización de entradas en el editor.
- Arquitectura modular para futuras funcionalidades (Tech Trivia, recompensas, etc.).
- Código y documentación clara y estructurada.
Descripción: Como usuario y trabajador de la empresa, quiero poder ingresar a la plataforma.
Criterios de Aceptación:
- Ingreso con correo y contraseña.
- Permitir uso de cuenta Google para mayor velocidad.
- Mensaje de error si son incorrectos o inválidos.
Descripción: Como usuario, quiero poder acceder a los problemas de programación para resolverlos.
Criterios de Aceptación:
- Ingresar correctamente.
- Acceder a sección “Problemas de programación”.
- Seleccionar problema a resolver.
- Obtener XP y puntos en caso de responder correctamente.
Descripción: Como usuario, quiero filtrar problemas por dificultad y etiquetas.
Criterios de Aceptación:
- Opciones de filtro visibles.
- Lista actualizada automáticamente.
- Posibilidad de quitar filtros.
Descripción: Como usuario, quiero ver la descripción completa del problema.
Criterios de Aceptación:
- Página con descripción al hacer clic.
- Mostrar dificultad, etiquetas y link original.
- Botón para regresar.
Descripción: Como usuario, quiero escribir y ejecutar mi código para comprobar si funciona.
Criterios de Aceptación:
- Editor integrado.
- Botón “Ejecutar” que envía a contenedor en VM.
- Resultados mostrados en la interfaz.
Descripción: Como usuario, quiero recibir XP y puntos al resolver problemas.
Criterios de Aceptación:
- Código válido actualiza puntos para tienda.
- Notificación de éxito.
- Actualización en perfil.
- Solo puede comprar usuario si alcanza por puntos y quedan productos disponibles.
Descripción: Como usuario, quiero ver mi avance y el de mis compañeros.
Criterios de Aceptación:
- Ver porcentaje de aceptación, problemas resueltos y promedio de equipo.
- Acceder a información de otros usuarios.
