Sistema de gamificación por fases
Cómo vamos a premiar a los corredores por participar en la comunidad — y en qué orden lo construiremos.
El sistema se construye en fases: primero el motor invisible, luego lo visible poco a poco. Las fases no se solapan — una acaba, empieza la siguiente.
Los tiempos son conservadores a propósito: mejor terminar antes de lo previsto que llegar tarde.
Paso a paso
Haslap no tiene un equipo de desarrolladores dedicado. El mantenimiento, el soporte y el desarrollo de nuevas funcionalidades recae en una sola persona que compagina todo al mismo tiempo.
Por eso el sistema se construye en fases cortas e independientes: cada fase entrega algo concreto y funciona sola, sin depender de que las siguientes estén listas. Antes de pasar a la siguiente, se verifica que lo entregado funciona bien en producción con usuarios reales.
Este ritmo no es lentitud — es la única forma de construir algo sólido sin romper lo que ya funciona.
La idea en 3 frases
Los corredores ganan puntos por asistir a eventos, traer amigos y mantener una constancia semanal. Esos puntos les permiten subir de nivel y canjear recompensas (descuentos, productos, experiencias).
El sistema se construye de menor a mayor: primero el motor invisible, luego lo visible poco a poco.
Los dos tipos de puntos
Hay dos saldos distintos para cada corredor. Ambos suben al mismo tiempo con las mismas acciones, pero sirven para cosas distintas.
El "dinero" del sistema. Se gana participando y se gasta canjeando recompensas. Nunca puede quedar en negativo.
La experiencia acumulada. Solo sube, nunca baja. Determina el nivel del corredor.
Cómo se ganan puntos
| Acción | Puntos |
|---|---|
| Inscribirse a un evento | +50 |
| Asistir a un evento (escanear QR en la puerta) | +100 |
| Una entrada que compraste para un amigo se usa | +150 |
| Mantener la racha semanal activa | +75 |
| Desbloquear un logro (badge) | +200 |
Los 5 niveles
Los niveles se calculan con la XP total acumulada. No bajan nunca.
Los 7 badges
Desbloquear cada logro da +200 puntos automáticamente.
| Logro | Cómo se consigue |
|---|---|
| 🥇 Primer evento | Asistir al primer evento |
| 🏃 Club lover | Unirse a 3 clubs o más |
| 📊 Top 10 | Estar entre los 10 primeros del ranking mensual de HasPoints dentro de cualquiera de tus clubs. El ranking se reinicia cada mes, así que cualquier miembro puede conseguirlo si ese mes participa más que los demás. |
| 🗺️ 5 ciudades | Asistir a eventos en 5 provincias distintas |
| 👥 Social | Seguir a 10 personas o más |
| ⭐ Legend | Alcanzar el nivel máximo |
| 🌅 Madrugador | Asistir a un evento que empieza antes de las 8:00 |
Las 9 fases de construcción
Las primeras fases son completamente invisibles para el usuario. Cuando llegue el momento de mostrarlo, los corredores activos ya tendrán semanas o meses de puntos acumulados — no arrancan de cero.
Se crea el sistema contable que registra cada punto ganado o gastado. Como un libro de cuentas bancario: cada acción genera una línea con el motivo, la cantidad y la fecha. El historial es permanente e inalterable.
Se conectan los dos primeros disparadores que ya existen en la app:
- Inscripción a un evento → +50 puntos
- Asistencia (QR escaneado) → +100 puntos
Protección: si el mismo evento se procesa dos veces por error, los puntos no se duplican.
En el panel de administración se ven los puntos por corredor. Si tras un evento real los asistentes tienen los puntos correctos, la fase funciona.
El servidor habilita que la app consulte el saldo de HasPoints. En el perfil del corredor aparece un bloque con los puntos disponibles y el total de eventos asistidos. El nivel y la barra de progreso llegan en la Fase 2.
El servidor calcula el nivel (Rookie → Legend), cuánta XP le falta para el siguiente y el porcentaje de progreso. En la app: nombre del nivel + icono, barra de progreso, XP total y contador de racha (informativo — los puntos de racha llegan en la Fase 5).
Hay que diseñar los iconos o ilustraciones de los 5 niveles.
Catálogo de 7 logros con lógica de detección en tiempo real, en el momento exacto de la acción:
- Al asistir: "Primer evento", "5 ciudades", "Madrugador", "Top 10"
- Al unirse a un club: "Club lover"
- Al seguir a alguien: "Social"
- Al ganar puntos: "Legend"
Al desbloquear: se guarda con fecha y se añaden +200 puntos. Un logro ya conseguido no vuelve a dar puntos.
Cuadrícula con los 7 logros: los desbloqueados en color (nombre + fecha), los bloqueados en gris (con pista de qué falta).
Hay que diseñar los iconos o ilustraciones de los 7 logros.
⚠️ Requisito de infraestructura: el tiempo real requiere un VPS semiprofesional de OVH como mínimo. Sin ese nivel de servidor, las notificaciones de badge no podrán ser en tiempo real.
Cuando alguien asiste a un evento, el sistema mira hacia atrás:
- Asistió en los últimos 7 días → racha sube y se dan +75 puntos
- No asistió en los últimos 7 días → racha se reinicia a 1
Protección: aunque vayas a varios eventos la misma semana, los 75 puntos solo se dan una vez (lunes a domingo). No hay procesos automáticos nocturnos — todo se calcula en el momento de la asistencia.
Al comprar varias entradas, puedes enviar las extras por email a tus invitados. Cuando el invitado asiste y le escanean la entrada, el comprador recibe +150 puntos. El invitado no necesita cuenta en Haslap.
- Sistema para enviar entrada de invitado por email con QR, nombre del evento, fecha y lugar
- Lógica que recuerda quién compró originalmente cada entrada
- Protección: una entrada de invitado solo puede premiar una vez, aunque el QR se reenvíe
- En la app: botón "Enviar a invitado" en "mis entradas"
Esta fase tiene dos partes que se construyen en orden.
Cada club tiene su propia clasificación mensual. Solo cuentan los puntos ganados en el mes en curso — no el total histórico de siempre. Esto es clave: significa que alguien que lleva poco tiempo en Haslap puede competir con los veteranos si ese mes participa más que ellos.
¿Cómo funciona en la práctica? Si estás en un club de corredores de tu ciudad, al entrar en la pantalla del club ves una tabla con todos los miembros ordenados por puntos de ese mes. Cada vez que asistes a un evento, tu posición sube. El 1.º de enero el marcador vuelve a cero para todos y empieza una competición nueva.
Tu posición siempre aparece resaltada en la tabla, aunque estés en el puesto 47 y no en el top 10 — así sabes exactamente cuánto te falta para subir.
Tres tipos de recompensas canjeables con HasPoints:
- Descuentos en eventos Haslap — se aplican directamente al comprar la entrada
- Recompensas de partners externos — cafés, tiendas deportivas, negocios locales (requiere la Fase 8)
- Productos físicos de Haslap — camisetas, medallas, accesorios (via PrestaShop)
Al canjear: se descuentan los HasPoints y se genera un código único tipo HSL-4821 sin fecha de caducidad. El saldo nunca puede quedar en negativo.
El portal es una aplicación web independiente donde los negocios colaboradores — cafeterías, tiendas deportivas, fisioterapeutas, cualquier local que ofrezca recompensas — gestionan su participación en el programa.
- Ver sus recompensas activas y el stock disponible
- Validar un código introduciendo la referencia
HSL-4821para saber si es real y si no ha sido ya usado - Marcar el código como validado (por ejemplo, al entregar el café)
- Consultar el historial completo de canjes del local
El portal es un producto distinto: tiene sus propios usuarios (los dueños de los locales), su propio sistema de acceso y su propia interfaz, completamente separada de la app de corredores. La complejidad es suficiente para justificar construirlo por separado, una vez que la tienda de recompensas está funcionando y hay partners reales con quien probarlo.
El portal de partners supone un nuevo tipo de tráfico: los locales lo consultarán durante el servicio, en horas punta, con necesidad de respuesta inmediata. Sumado al crecimiento acumulado del sistema de puntos, la validación de códigos en tiempo real y el ranking de clubs, se necesita un servidor con mayor capacidad.
Cronograma orientativo
Los tiempos incluyen margen para imprevistos, revisiones y pruebas.
| Periodo | Fase | Lo que pasa |
|---|---|---|
| Mes 1 | Fase 0 | Motor de puntos invisible. Los corredores acumulan sin saberlo. |
| Mes 2 | Fase 1 | Los HasPoints aparecen en el perfil. Primer contacto del usuario. |
| Mes 2 – 3 | Fase 2 | El nivel y la barra de progreso. El perfil queda completo. |
| Mes 3 | Fase 3 | Motor de logros activo en silencio. Se acumulan badges sin verlos. |
| Mes 3 – 4 | Fase 4 ⚠️ VPS Semi-Pro | Pantalla de badges en la app. Tiempo real requiere VPS Semi-Pro mínimo — sin él, el badge aparece al reabrir la app. |
| Mes 4 | Fase 5 | Racha semanal activa con puntos. |
| Mes 4 – 5 | Fase 6 | Entradas de invitado. Motor de crecimiento. |
| A partir de Mes 6 | Fase 7 | Ranking de clubs + tienda de recompensas (productos físicos vía PrestaShop, pedido automático). Según disponibilidad de partners. |
| Tras Fase 7 | Fase 8 ⚠️ VPS Semi-Pro | Portal para partners — cafeterías, tiendas deportivas y locales gestionan y validan sus recompensas. |
5 decisiones de negocio pendientes
No son decisiones técnicas. Deben estar claras antes de construir.
Hay que decidir la tasa de cambio antes de diseñar la tienda. Si es demasiado fácil conseguir puntos, los descuentos pierden valor. Si es demasiado difícil, nadie llega a canjear nada.
Cuando en la Fase 1 los corredores vean sus puntos por primera vez, algunos ya tendrán cientos. ¿Comunicarlo como un regalo o partir de cero? La primera opción genera mejor sensación.
Las recompensas de negocios externos requieren acuerdos comerciales reales. Es trabajo de ventas, no de tecnología, y lleva tiempo. Hay que empezar mucho antes de que la tienda esté lista.
El sistema sale a oscuras y se va revelando poco a poco. Sin comunicación, muchos usuarios ni se enterarán. Hay que planear notificaciones push, redes, email y anuncios dentro de la app.
¿Los HasPoints tienen fecha de caducidad si no se usan? ¿Qué ocurre si hay que corregir un error? El sistema técnico lo permite, pero la política es una decisión de negocio que hay que tener escrita antes de lanzar.