尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗R2 Quiz es una versión light y personal de Kahoot orientada a aulas, reuniones y actividades con logística simple. La interfaz busca ser elegante, legible y rápida, con foco en una experiencia de trivia en vivo que no dependa de un backend grande.
preguntas.json — banco de preguntas.host.html — pantalla del anfitrión.player.html — pantalla del jugador.estilos.css — identidad visual, responsive y refinamiento del UI.api/ably-key.js — endpoint de lectura de entorno para acceder a la API key de Ably.ABLY_API_KEY.Si el host cancela la sala, arranca una ronda nueva o cierra la pestaña, la partida termina para todos:
host-<código> y publica un único mensaje sala-cerrada.sala-cerrada o la salida del host de la presencia (Ably la emite al cerrar la pestaña).La referencia visual del usuario sugiere un leaderboard con una estructura de ranking y un cierre con podio al final. La idea es usar una composición clara, con barras de clasificación, badges de posición, avatar emoji y una estética digital premium.
ABLY_API_KEY en Vercel./host.html y /player.html como rutas de acceso..claude/settings.json: al final de cada turno de Claude Code se ejecuta ~/.claude/hooks/auto-commit.js, que hace git add -A, commitea con un mensaje chore: auto-commit — <archivos> y hace git push al remoto de GitHub..env está en .gitignore y ABLY_API_KEY vive solo en Vercel.El host no lee preguntas.json directamente: primero carga el catálogo concursos.json, y cada entrada del catálogo apunta a su propio archivo de preguntas. Para publicar un cuestionario nuevo:
Crear el archivo de preguntas (por ejemplo preguntas-mi-tema.json) en la raíz del repo, con esta forma:
{
"titulo": "Nombre del cuestionario",
"preguntas": [
{
"pregunta": "¿Texto de la pregunta?",
"opciones": ["Opción A", "Opción B", "Opción C", "Opción D"],
"correcta": 0,
"tiempo": 15,
"explicacion": "Texto que se muestra al revelar la respuesta correcta."
}
]
}
correcta: índice de la opción correcta en el arreglo opciones, empieza en 0.opciones: no hay límite fijo de cantidad; lo habitual son 4.tiempo: segundos para responder. Si se omite, el host usa 15 por defecto.explicacion: opcional. Si falta o va vacía, el host genera un texto de respaldo automático con la opción correcta.Registrar el cuestionario en concursos.json, agregando un objeto al arreglo concursos:
{
"id": "mi-tema",
"titulo": "Nombre visible en el catálogo",
"categoriaId": "pruebas",
"descripcion": "Descripción corta que ve el host antes de abrir la sala.",
"recomendado": "Cuándo conviene usar este cuestionario (opcional).",
"archivo": "preguntas-mi-tema.json"
}
id: identificador único del concurso dentro del catálogo.categoriaId: debe coincidir con un id de concursos.categorias. Si no coincide con ninguno, el concurso aparece igual, agrupado bajo "Sin categoría".archivo: ruta relativa al JSON de preguntas creado en el paso 1.recomendado: opcional; si se omite, esa línea no se muestra en la ficha del concurso.(Opcional) Declarar una categoría nueva agregando un objeto a concursos.categorias:
{ "id": "mi-categoria", "nombre": "Nombre del filtro", "descripcion": "Texto de apoyo del grupo." }
Verificar en host.html: recargar la pantalla de catálogo (login de host) y confirmar que la tarjeta nueva aparece, abre su ficha con el conteo correcto de preguntas y permite presentar la sala.
No hace falta tocar host.html, player.html ni estilos.css para sumar un cuestionario: todo pasa por los dos archivos JSON de arriba.