
Estado actual · Rol usuario · Septiembre 2026
Que Plan es una app de descubrimiento ciudadano para Zacatlán, Chignahuapan y Tetela. Hasta ahora se ha construido el rol usuario completo: inicio, exploración, búsqueda, guardados, perfil gamificado y perfiles de negocio. La interfaz es mobile-first con estética moderna y microinteracciones (reacciones, carruseles, bottom sheets).
6
rutas de usuario
3
ciudades activas
9
perfiles de negocio
2
integraciones reales
Estas son las pantallas que el usuario final puede visitar hoy.
/Pantalla principal con selector de ciudad, plan del día en carrusel, ruta del día, eventos filtrables y sección Cerca de ti.
Lógica: Cambio de ciudad, filtros de eventos, selección múltiple de ciudades en Cerca de ti y carrusel con autoplay/swipe.
/explorarFeed vertical estilo TikTok con tarjetas de lugares, experiencias, restaurantes, hoteles y eventos. Incluye detalle en bottom sheet y acciones de like/guardar.
Lógica: Filtros por categoría, scroll snap, detalle emergente y navegación a perfiles de negocio. Nota: los likes/guardados en el feed son estado local del componente; no persisten en Supabase.
/buscarBuscador general con filtros por tipo y sugerencias populares. Busca sobre ciudades, negocios, experiencias y eventos.
Lógica: Búsqueda client-side con normalización de acentos, filtros por tipo y navegación a resultados.
/guardadosColección personal de planes y eventos guardados y me gusta. Requiere sesión para persistir en backend.
Lógica: CRUD real en Supabase (tabla saved_places). Si no hay sesión, muestra estado de invitado.
/perfilPerfil gamificado tipo videojuego: nivel, XP, logros, misiones, bitácora de rutas y control de sesión.
Lógica: Progreso en localStorage, estadísticas derivadas de rutas completadas, guardados y me gusta. Auth real.
/negocio/$idPágina pública de cada negocio: portada en carrusel, identidad, descripción, horario, ofertas, servicios y contacto.
Lógica: Loader de TanStack Router con notFound() si el id no existe. Galería con autoplay, swipe y lightbox.
Clasificación por área funcional.
Autenticación
Lógica realRegistro, login, logout y Google OAuth con Supabase Auth. El hook useAuth expone usuario y estado de carga.
Guardados / Me gusta
Lógica realSe guardan en la tabla saved_places de Supabase con user_id, place_id y action. Funciona solo con sesión activa.
Progreso y logros
Parcial / localLa lógica de XP, nivel y logros existe, pero se almacena en localStorage. No se sincroniza con backend si el usuario cambia de dispositivo.
Datos de contenido
Mock / estáticoCiudades, eventos, experiencias, restaurantes, hoteles y perfiles de negocio son datos estáticos en el código. No hay CMS ni base de datos de contenido.
Búsqueda
Parcial / localLa búsqueda funciona sobre el índice local. No hay backend de búsqueda ni geolocalización real del usuario.
Rutas / navegación
Lógica realNavegación completa con TanStack Router: rutas protegidas por sesión en Guardados, loader en /negocio/$id y notFound().