Reto de la cueva: retos de código con leaderboard
Retos de programación en cadencia fija (diaria o semanal). El visitante escribe la solución en un editor CodeMirror, se ejecuta en un sandbox contra un set de asserts y, si pasa, entra en un leaderboard en Firestore. Identidad del participante vía GitHub.
- Sandbox de ejecución (Web Worker o iframe sandbox) + timeout + kill del proceso
- Formato de definición del reto (enunciado + casos visibles + casos ocultos)
- Adaptar CodePlayground como editor de solución
- Runner: ejecuta la solución contra los asserts y devuelve pass/fail
- Decisión: identidad del participante (Firebase Auth con provider GitHub vs OAuth + Netlify Function). Giscus no expone el usuario logueado a la página
- Leaderboard en Firestore, con reglas de seguridad
- Decisión: integridad del leaderboard (validación en servidor vs honor-system). La ejecución en cliente es falsificable
- Cadencia de publicación de retos y dónde viven los enunciados