4 portales, 3 sedes, control WiFi, membresías, reservas y notificaciones. Pasa el cursor sobre cada nodo para ver qué hace y cómo se conecta con el resto del sistema.
Mapa de arquitectura
Capa 1 — Servicios cloud (nube)
▱
Supabase
Base de datos, autenticación y API del sistema completo
MVP
Supabase — el cerebro de Qspaces
PostgreSQL con toda la información: usuarios, membresías, reservas, sesiones WiFi, tokens, organizaciones, logs. Autenticación con 4 roles (super admin, admin sede, staff, cliente). Row Level Security para aislar datos por sede. Edge Functions para lógica de negocio compleja.
⚡
API Qspaces
Valida acceso WiFi, controla horas, gestiona tokens de visitantes
MVP
API de validación WiFi
Endpoint HTTPS que cada MikroTik consulta. Recibe credenciales → consulta Supabase → verifica membresía activa y horas → responde autorizar/denegar. También valida códigos de visitantes y reporta qué usuarios desconectar cuando se agotan sus horas.
▲
Vercel (Frontend)
Aloja los 4 portales: super admin, admin sede, usuario y portal cautivo
MVP
Vercel — las 4 interfaces de Qspaces
Un solo proyecto Next.js con 4 portales: (1) super admin para nosotros como desarrolladores, (2) admin/staff de sede para el equipo IMPAQTO, (3) portal del miembro para coworkers y oficinas, (4) splash page del portal cautivo WiFi. CDN global, carga rápida desde Ecuador.
Capa 2 — Los 4 portales de Qspaces
🛠
Portal Super Admin
Nosotros: control total, logs, sedes, monitoreo de MikroTiks
Fase 3
Super Admin — control absoluto
Ve todas las sedes, crea sedes nuevas, gestiona tipos de membresía, ve logs de errores, monitorea el estado de cada MikroTik, métricas globales, exporta datos de todo el sistema. Solo nosotros como desarrolladores tenemos este acceso.
Dashboard de sede, alta/baja de usuarios, asignar membresías con horas custom, renovar credenciales, generar tokens de visitantes, aprobar reservas de eventos, calendario de salas, filtros y exportación CSV. Admin sede vs staff con permisos diferentes.
Dashboard personal: horas restantes (cowork + salas separadas), credencial virtual, calendario para reservar salas desde su cuenta, historial de sesiones WiFi. Si es admin de oficina: gestiona miembros de su oficina, ve consumo del grupo. Puede filtrar salas por sede y tipo.
🔒
Portal Cautivo WiFi
Splash page: login o código de visitante. HTML puro, ultra-ligero
MVP
Splash page del WiFi
Lo que ve cualquiera al conectarse al WiFi. HTML puro sin frameworks (para compatibilidad con Mac CNA). Login con email/contraseña o campo de código de visitante. Reconexión automática por MAC address. Página de "sin internet" cuando no hay conexión.
Capa 3 — Funcionalidades integradas
📅
Sistema de reservas (calendario propio)
Calendario visual dentro de Qspaces. Filtra por sede, tipo de sala. Aprobación de eventos. Horas de sala se descuentan automáticamente
Fase 2
Calendario propio de Qspaces
NO depende de Google Calendar. Layout de horarios intuitivo (pain point de MyDeskWorks). El usuario ve qué horarios están ocupados pero NO quién reservó. Reserva directa de salas de reuniones, solicitud con aprobación para salón de eventos. Integración OPCIONAL con Google Calendar/Outlook para sincronizar confirmaciones.
Triggers: membresía por expirar (3 días, 1 día), reserva confirmada/rechazada, horas bajas, bienvenida con credencial. Canales: WhatsApp Business API + Resend (email). Personalizado por tipo de membresía. Templates con marca IMPAQTO/Qspaces.
📅
Google Calendar (opcional)
Sincronización complementaria de reservas confirmadas al calendario personal
Fase 3
Integración opcional
Las reservas confirmadas en Qspaces pueden sincronizarse al Google Calendar o Outlook del usuario SI éste lo desea. No es el sistema principal de reservas, solo un complemento.
Capa 4 — MikroTik por sede (hardware en cada ubicación)
📡
MikroTik CCR — La Carolina
Router principal en Quito (Ed. IQON). Fortinet como firewall delante. Ejecuta HotSpot + scripts HTTP hacia la API en la nube
MVP — Sede piloto
MikroTik La Carolina (Quito)
Ya instalado en el rack. Fortinet delante como firewall. Switch Cisco distribuye a los APs. El HotSpot redirige usuarios al portal cautivo. Scripts HTTP POST validan cada conexión con la API Qspaces en la nube. Script scheduler consulta cada X minutos qué usuarios desconectar (horas agotadas, membresía expirada).
📡
MikroTik — Cumbayá
Router en LaPlaza IMPAQTO. 100% independiente de La Carolina. Habla directo con la nube
Fase 2
MikroTik Cumbayá
Opera de forma autónoma. Si se cae la luz en Quito, Cumbayá sigue funcionando. Misma lógica: HotSpot → portal cautivo → HTTP POST a la API → validación → acceso. Cada MikroTik apunta al mismo endpoint en la nube pero no se comunican entre sí.
📡
MikroTik — Cuenca
Router en Av. 12 de Abril. Independiente de las otras sedes
Fase 2
MikroTik Cuenca
Misma arquitectura: HotSpot local, scripts HTTP salientes a la nube. Nunca recibe conexiones entrantes (seguridad). Si se cae cualquier otra sede, Cuenca no se ve afectada.
Capa 5 — Access Points WiFi (lo que los usuarios ven)
📶
APs Grandstream WiFi 6
La Carolina — Access Points distribuidos por todo el coworking. Conectados al MikroTik vía Switch Cisco
MVP
Access Points La Carolina
APs Grandstream WiFi 6 distribuidos por pisos y áreas del coworking. Los dispositivos de los usuarios (laptops, celulares) se conectan a estos APs. Los APs están conectados al MikroTik a través del Switch Cisco. El MikroTik es quien decide si el dispositivo puede navegar o no.
📶
APs WiFi — Cumbayá
Access Points de la sede, conectados a su propio MikroTik
Fase 2
Access Points Cumbayá
Infraestructura WiFi propia de la sede. Conectados al MikroTik local. Los dispositivos se conectan aquí y el MikroTik intercepta para redirigir al portal cautivo de Qspaces.
📶
APs WiFi — Cuenca
Access Points de la sede, independientes
Fase 2
Access Points Cuenca
Infraestructura WiFi propia e independiente. Cada sede tiene su cadena completa: APs → MikroTik → Nube. No dependen unas de otras.
Capa 6 — Usuarios finales
👤
Miembros con membresía
Coworkers (básica/premium/full), oficinas privadas, puestos fijos. Login con email y contraseña en el portal cautivo
MVP
Flujo del miembro
Conecta su laptop/celular al WiFi → AP recibe la señal → MikroTik intercepta y redirige al portal cautivo → ingresa email y contraseña → API valida membresía activa + horas disponibles → acceso concedido → timer empieza a descontar horas de coworking → cuando se agotan las horas, MikroTik corta el acceso automáticamente.
🔮
Visitantes / Day Pass
Acceso temporal con código generado por el staff (ej: VISIT-7X3K). Sin crear usuario ni membresía
MVP
Flujo del visitante
El staff genera un código desde el panel admin con duración definida (ej: 8 horas). El visitante conecta al WiFi → portal cautivo → ingresa el código → API valida que el código es válido y no expiró → acceso temporal concedido → al expirar el tiempo, corte automático. No se crea usuario ni membresía.
👥
Oficinas (admin + miembros)
Admin de oficina gestiona sus miembros. Los miembros tienen acceso pero facultades diferentes al admin
Fase 2
Jerarquía de oficinas
El admin de oficina (quien paga) puede: agregar/quitar miembros, ver consumo del grupo, gestionar accesos. Los miembros de la oficina pueden conectarse al WiFi y reservar salas, pero NO pueden modificar la membresía del grupo ni gestionar otros miembros. Roles diferentes dentro de la misma organización.
Acceso administrativo
💼
Staff IMPAQTO (3 por sede)
Admin sede: control total de su sede. Staff: acciones operativas limitadas. Acceden al Portal Admin Sede
MVP
Roles del staff
Admin sede: alta/baja usuarios, gestionar membresías, aprobar eventos, ver todo. Staff: acciones limitadas (no puede dar de baja membresías). Ambos acceden al Portal 2 (Admin Sede) con diferentes permisos. 3 personas por sede con diferentes niveles.
💻
Desarrollador / Super Admin
Nosotros: acceso a absolutamente todo. Portal Super Admin con logs, monitoreo, gestión global
Fase 3
Super Admin
Control absoluto del sistema: todas las sedes, crear sedes nuevas, tipos de membresía, staff de cada sede, logs de errores, estado de MikroTiks, métricas globales, exportar datos. Solo nosotros como desarrolladores/dueños de la plataforma tenemos este nivel.
Flujo completo: desde que el usuario conecta hasta que se le corta el acceso