Skip to content

Repository files navigation

KahootSolver

Aplicación Android de laboratorio que integra el cliente oficial de kahoot.it en una WebView y añade asistencia visual para cuestionarios públicos propios autorizados.

Qué hace

  • Conserva la experiencia oficial de Kahoot: PIN, nombre, avatar y sesión del jugador.
  • Descarga exclusivamente los cuestionarios públicos propios incluidos en whitelist.txt.
  • Reconoce el bloque activo por el contenido visible y por los eventos de la partida.
  • No crea jugadores adicionales y nunca pulsa ni envía una respuesta automáticamente.
  • Funciona en modo inmersivo Android, con las barras del sistema disponibles temporalmente mediante un gesto.
  • Muestra discretamente la firma hecho por samilososami en la esquina superior derecha, respetando la zona segura del dispositivo.

Asistencia por tipo de pregunta

Selección, verdadero/falso y selección múltiple

Una bolita verde marca la posición correcta. El marcador puede aparecer durante la cuenta atrás previa, antes de que los botones terminen de cargarse, y después se recoloca usando las coordenadas reales del botón.

Respuesta escrita: Matrix Mode

La solución no se muestra por adelantado. Cada pulsación realizada dentro del campo avanza un carácter de la respuesta correcta: cinco teclas cualesquiera producen los cinco caracteres de una solución como comer. Borrar retrocede un carácter y pegar avanza el número correspondiente de posiciones. El envío sigue siendo manual.

Puzzle u orden

Los elementos reciben bolitas numeradas con su posición correcta.

Slider, porcentaje y valores numéricos

Una bolita señala el punto correcto de la escala usando su mínimo y máximo reales.

Pin answer

Cuando el cuestionario proporciona coordenadas, la bolita se coloca sobre la posición correcta de la imagen o el mapa.

Preguntas de opinión

La aplicación indica que no existe una respuesta única y no presenta una solución falsa.

Desarrollo

Requisitos: Node.js, Java 21 y Android SDK.

npm install
npx expo start

Validación local:

npx tsc --noEmit
npm run lint
npx expo export --platform android

Compilación Android:

export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export ANDROID_HOME=/tools/codex/android-sdk
export ANDROID_SDK_ROOT=/tools/codex/android-sdk
npx expo prebuild --platform android
cd android
NODE_ENV=production ./gradlew assembleRelease

La clave privada utilizada para firmar las releases no forma parte del repositorio.

Whitelist de laboratorios

La lista autorizada vive en whitelist.txt. Admite un UUID o una URL de detalles de Kahoot por línea, ignora líneas vacías y comentarios que comiencen por #, elimina duplicados y acepta como máximo 50 cuestionarios.

# UUID directo
3407ac63-b448-4ebb-9ecb-98a5537bcf92

# También sirve la URL completa
https://create.kahoot.it/details/00000000-0000-4000-8000-000000000000

La aplicación lee la versión publicada en la rama main al arrancar, por lo que un cambio pusheado en ese archivo se aplica sin recompilar el APK. Solo se cargan Kahoots que el API de Kahoot siga exponiendo como públicos; las entradas privadas, inexistentes o inválidas se descartan. Si ninguna entrada resulta válida, la aplicación no activa la asistencia.

Estructura relevante

src/
  app/                         Rutas y modo inmersivo
  components/kahoot-lab-view.tsx
  lib/quiz.ts                  Modelo seguro del cuestionario autorizado
  lib/injected-script.ts       Detección y presentación dentro de la WebView
web_solver/
  kahoot.js                    Script web histórico conservado sin modificar
whitelist.txt                  Kahoots públicos propios autorizados

Alcance

La aplicación está limitada intencionadamente a los Kahoots públicos propios enumerados en whitelist.txt. El proyecto está pensado para pruebas controladas y documentación académica; no incluye acceso a cuestionarios privados ni descubrimiento de respuestas mediante un PIN fuera de esa lista.

El archivo de web_solver/ se conserva como material histórico del repositorio anterior y no forma parte del flujo de la aplicación Android.

About

KahootSolver: aplicación Android de laboratorio con asistencia visual para cuestionarios propios.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages