LockIn — Manual de Usuario

App de estudio gamificada: subís material, respondés quizzes generados por IA, ganás minutos y desbloqueás tus apps de distracción.

Estado del producto · 11 jun 2026

1 Cómo funciona el loop principal

LockIn convierte el estudio en la "moneda" para usar las apps que te distraen.

Subís material→ La IA arma un quiz→ Respondés→ Ganás minutos→ Desbloqueás apps
  • Subís un apunte (PDF, foto o texto) y elegís la materia.
  • La IA (DeepSeek) lee el material y arma un banco de preguntas una sola vez.
  • Cada vez que jugás se cortan 10 o 15 preguntas al azar de ese banco — sin volver a llamar a la IA, así que es instantáneo.
  • Respondés. Si superás el 60% ganás minutos (más en dificultad alta).
  • Los minutos se gastan en desbloquear apps bloqueadas (Instagram, TikTok, etc.).

2 Qué esperar — lo que YA anda

🏠 Inicio (Dashboard)

  • Tarjeta de minutos: número grande de minutos disponibles (se quitaron los contadores "ganados/usados hoy" para limpiar la vista).
  • Próximo Hito: tocás la tarjeta y definís tu objetivo real con fecha límite (ej: "Aprobar el final de Anatomía"). Muestra barra de progreso y días restantes. Se guarda en el dispositivo por ahora.
  • Racha: aparece apenas completás tu primer quiz del día.
  • Tus apps: galería de apps bloqueadas con su logo oficial y estado.
  • Tu material y sección Premium (solo visible en Free).
  • Botón flotante "Ganar tiempo": te lleva directo a empezar un quiz.

📚 Material y Quizzes

  • Subida de texto (todos); PDF e imágenes gateado a Plus.
  • Pantalla de carga premium con asistente animado y tips que rotan (la espera de 10-15s se siente corta).
  • Quiz interactivo con feedback inmediato, sonidos y vibración.
  • Resultados con trofeo, anillo de score, minutos ganados y récord personal.

🔒 Bloqueo de apps

  • Elegís qué apps bloquear desde una lista con logos oficiales.
  • Cada app tiene un costo en minutos por desbloqueo.
  • Al desbloquear corre un temporizador en vivo.

📱 Experiencia nativa Android

  • Botón atrás del teléfono: en pantallas internas vuelve atrás; en el inicio usa doble tap para salir (te avisa con un toast) para no cerrar la app sin querer.
  • Animaciones, fuentes y sonidos empaquetados localmente — cero latencia de red.
  • Barra de estado y safe-areas (notch) respetadas.

💎 Sistema de planes (estructura lista)

  • Tres tiers: Free (20 textos/mes), Plus (50 subidas, sin ads, IA avanzada), Premium (todo + explicaciones IA + roadmap de estudio).
  • Página de precios completa y gamificada.
  • Límites de cuota mensual validados en el servidor.

3 Lo que está a medias / requiere acción

Importante: hay funciones construidas pero no activas porque les falta backend o un paso manual. Nada de esto rompe la app — todo degrada limpio.
FunciónEstadoQué falta
Cobros / suscripciónEl botón dice "Próximamente". UI lista, sin lógica de pago.Integrar pasarela (Stripe / Google Play Billing).
Tier del usuarioHardcodeado a 'free' para todos.Conectar profiles.tier real. Hoy nadie es Plus/Premium salvo edición manual en la DB.
Roadmap de estudio IAGenerador + pantalla 100% construidos, gateados a Premium.Como todos son "free", no se puede generar sin marcar un usuario premium a mano.
HitoFunciona, guardado en el dispositivo.Mover a la base de datos para sincronizar entre dispositivos.
Explicaciones IASe muestran difuminadas con candado para Free/Plus.El texto todavía viaja al cliente (se puede inspeccionar). Falta ocultarlo del lado del servidor.
Quizzes desde fotoAnda, pero usa el flujo viejo (n8n).Migrar al patrón de banco de preguntas como PDF/texto.
Liga / competenciaPlaceholder honesto con badge "PRÓXIMAMENTE".Backend competitivo.

Pasos manuales pendientes antes de producción real

  1. Correr las migraciones SQL en Supabase en orden: 004-question-bank, 005-profile-tier, 006-roadmaps.
  2. Cargar las 5 animaciones premium que faltan: tier-up, vault-lock, perfect-score, ai-scan, level-up. Hoy esos slots muestran un placeholder en vez de crashear; apenas se dropean los .lottie en public/assets/lotties/ funcionan solos.
  3. Borrar la ruta de debug /sandbox/lotties (era para QA visual de animaciones).

4 Roadmap de mejoras a futuro

Prioridad alta — para monetizar de verdad

  1. Integrar cobros (Google Play Billing es lo natural para Android) y conectar profiles.tier. Sin esto, Plus/Premium son decorativos.
  2. Endurecer las explicaciones IA: que el texto premium no viaje al cliente para usuarios Free/Plus.
  3. Mover el Hito a la base de datos para que no se pierda al cambiar de teléfono.

Prioridad media — pulido de experiencia

  1. Migrar el flujo de fotos al banco de preguntas (ahorra llamadas a la IA).
  2. Cargar las 5 animaciones premium y verificarlas en /sandbox/lotties antes de borrar esa ruta.
  3. Liga / competencia: el feature más pedido visualmente, hoy placeholder.
  4. Reconciliar modales con el botón atrás: si hay un modal abierto, que el back lo cierre antes de navegar.

Prioridad baja — optimización

  1. Migrar Server Actions a un backend dedicado si se quiere un APK 100% offline (hoy carga desde Vercel: requiere internet pero mantiene todo el server-side).
  2. Limpiar código muerto: el export LottieDayNight sin uso, getAppLogo viejo.
  3. Caché offline más robusta más allá de la pantalla de "Sin conexión".

5 Arquitectura en una línea

  • Frontend: Next.js 14 (App Router) + Framer Motion + tokens de diseño inline.
  • Backend: Supabase (auth, DB, storage) + Server Actions de Next.
  • IA: DeepSeek V4 — flash para Free, pro para Plus/Premium.
  • Móvil: Capacitor en Server URL mode → el WebView carga lockin-pi-kohl.vercel.app, así que todo el server-side sigue vivo.
  • Deploy: push a Vercel → la app del teléfono toma el cambio en el próximo refresh.

6 Cómo se actualiza la app

Tipo de cambioQué hacer
UI, lógica, textos, animaciones JSgit push → Vercel redeploya → el teléfono lo ve al refrescar. No hace falta recompilar.
Plugins nativos / config de Capacitornpx cap sync android + recompilar en Android Studio.
Nueva versión para la Play StoreAndroid Studio → Build → Generate Signed Bundle (AAB).