shiping
An interview assistant and an exam assistant that uses AI to provide solution ideas in real time during 「面试」 or 「在线考试」.
AI translation
Concursos en vivo para el aula. Sin registro, sin datos guardados.
Translation pending
EducationHTML · JavaScriptGitHub @r2damiansterOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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.