HEYAY LABSApp de socios del Club de Industriales
Desarrollo de una app de marca blanca para iPhone y Android, una consola web para el equipo del club y una API en Node.js conectada en tiempo real con Odoo.
- Preparado para
- Club de Industriales
- Preparado por
- HEYAY LABS
- Fecha
- Octubre 2026
- Vigencia
- 30 días
01Resumen ejecutivo
HEYAY LABS desarrolla la app del club para iPhone y Android con el nombre, el logotipo y los colores del club. Cada socio, y quien él autorice, podrá reservar mesa o sala, registrar a sus invitados, consultar el menú, revisar sus consumos y facturas y comunicarse con el club. Odoo sigue siendo el sistema central del club: la app se conecta a él en tiempo real y los socios no necesitan usuarios de Odoo.
| Componente | Qué es |
|---|---|
| App del socio | App nativa para iPhone y Android, publicada en App Store y Google Play a nombre del club. Ocho módulos (sección 3). |
| Consola del club | Panel web para el equipo del club: usuarios y acciones, reglas, llegadas e invitados, anuncios, menús y bitácora. |
| API y plataforma | Servidor en Node.js (TypeScript) con base de datos propia. Valida permisos, aplica las reglas del club y registra cada movimiento. |
| Integración con Odoo | Conexión bidireccional en tiempo real: disponibilidad, consumos, facturas y tickets. |
La cuota mensual incluye infraestructura, soporte y actualizaciones; solo los mensajes SMS se cobran aparte, a costo (sección 11).
02Contexto y objetivos
El club busca darle a sus socios una app propia, elegante y sencilla. No quiere un portal de Odoo ni una app que parezca de restaurante. Esta propuesta parte de lo que el club planteó en la reunión del 29 de septiembre.
2.1Objetivos
- Autoservicio del socio: reservar mesa o sala, registrar invitados y consultar consumos sin llamar al club.
- La asistente como usuaria clave: que la asistente del socio pueda organizarle todo desde su propio usuario. Si le facilitamos la vida, siempre recomendará el club.
- Las reglas del club, aplicadas por el sistema: los límites de visitas de los familiares y la capacidad de los espacios se validan al reservar. Recepción ya no tiene que negar nada en persona.
- Seguridad a toda prueba: datos personales y consumos protegidos, con bitácora que permite un análisis forense.
- Odoo detrás: el club sigue operando en Odoo y la app refleja la información al instante.
2.2Principios de diseño
- Menos es más. Cada pantalla resuelve una cosa, con letra clara y pocos pasos, para un socio de perfil ejecutivo.
- Solo celular. La app es para iPhone y Android; la consola web es para el equipo del club.
- Menú de consulta. Sin precios ni pedidos; lo único que el socio autogestiona son las reservas.
- Protocolo. Detalles como el autollenado del código de verificación, Face ID y confirmaciones discretas.
03Alcance funcional
Ocho módulos. Esta lista es el alcance del proyecto: lo que se construye, se prueba y se entrega publicado en las tiendas.
3.1Acceso y perfil
| Funcionalidad | Detalle |
|---|---|
| Alta por invitación | El club da de alta al titular desde la consola; el usuario queda ligado a su número de acción desde el primer día. |
| Inicio de sesión | Con Apple, Google, Microsoft o correo y contraseña. Cuentas propias de la app, separadas de Odoo. |
| Verificación | Código por SMS al registrar un dispositivo nuevo y en acciones sensibles; el teclado del celular lo sugiere solo. |
| Biometría | Face ID o huella para el acceso diario. |
| Perfil | Foto, avatar o logotipo de su empresa, nombre, celular, correo y contacto de emergencia (nombre, parentesco y teléfono). |
| Sesiones | Preferencias de notificaciones, lista de dispositivos y cierre de sesión en todos ellos. |
3.2Acción, familia y roles
| Funcionalidad | Detalle |
|---|---|
| Usuarios de la acción | El titular invita a su cónyuge, a sus hijos y a su asistente; cada quien descarga la app con su propio acceso. |
| Roles | Titular, asistente, cónyuge, hijo mayor de edad e hijo menor de edad (sección 4). |
| Permisos ajustables | El titular amplía o retira permisos a cada usuario, o lo da de baja. |
| Reglas de visitas | Se aplican automáticamente al reservar (sección 5). |
3.3Reservas de restaurante y salas
| Funcionalidad | Detalle |
|---|---|
| Mesa | Día, turno, horario, número de personas y área. |
| Sala de juntas | Día, horario, duración y número de personas, con la capacidad de cada sala. |
| Disponibilidad real | Lo que reserva un socio deja de estar disponible para los demás en ese instante. |
| Capacidad | Mesas de hasta 8 sin juntar mesas; salas de hasta 17. Un grupo mayor se orienta a reservar sala. |
| A nombre del titular | La asistente reserva por el titular. |
| Ciclo completo | Confirmación, recordatorio, modificación, cancelación e historial de la acción. |
3.4Invitados
| Funcionalidad | Detalle |
|---|---|
| Registro por reserva | Datos mínimos: nombre completo, celular, correo y empresa. |
| Link de registro | El socio lo comparte por WhatsApp y el invitado captura sus propios datos en una página web segura, sin descargar la app. |
| Código QR | Cada invitado recibe un QR personal y lo presenta al llegar. |
| Recepción | Ve a los invitados esperados de la acción al registrar la llegada del socio, en la consola y en Odoo. |
| Frecuentes | Invitados guardados para la siguiente visita. |
3.5Menús
Menú del restaurante y menú de salas, organizados por tiempos, con fotografía y descripción de cada platillo. Solo de consulta: sin precios ni pedidos. El cambio de temporada, cada tres meses, se publica desde la consola, con aviso opcional a los socios.
3.6Consumos y facturas
| Funcionalidad | Detalle |
|---|---|
| Estado de cuenta | A la fecha que el socio elija: consumos facturados y por facturar. |
| Detalle | Fecha, área, concepto, importe y usuario de la acción que generó cada consumo. |
| Filtros | Por usuario y por periodo. |
| Facturas | Meses anteriores con descarga de PDF y XML. |
| Visibilidad | Solo el titular y los usuarios a quienes él se lo habilite. |
3.7PQRS
Preguntas, quejas, reclamos y sugerencias. El socio levanta un ticket con tipo, área, fecha de la visita, descripción y fotografía. El ticket se crea en Odoo para el seguimiento del equipo; el socio ve su estado (recibido, en revisión, resuelto), recibe la respuesta del club dentro de la app y una notificación cuando hay novedades.
3.8Anuncios y notificaciones
Muro de anuncios del club (eventos, avisos, menú de temporada) con notificaciones push. El club envía a todos o por segmento: titulares, familias o asistentes. La app manda recordatorios automáticos de reservas y avisos de respuesta a PQRS.
3.9Consola del club
| Área | Qué permite |
|---|---|
| Usuarios y acciones | Invitaciones, roles, permisos y bajas. |
| Reglas | Límites de visitas, capacidades y horarios de reserva. |
| Llegadas e invitados | Reservas del día e invitados esperados por acción. |
| Contenido | Anuncios, notificaciones push y menús de temporada. |
| Bitácora | Accesos y movimientos de cada usuario, con filtros y exportación. |
La operación diaria (cobranza, facturación, atención de tickets) sigue en Odoo.
04Roles y permisos
Los permisos se validan en el servidor, no solo en la pantalla: aunque alguien manipule la app, la API rechaza lo que su rol no permite. Esta es la configuración inicial; el titular y el club pueden ajustarla.
| Permiso | Titular | Asistente | Cónyuge | Hijo mayor | Hijo menor |
|---|---|---|---|---|---|
| Reservar mesa o sala | Sí | Sí, a su nombre | Sí* | Sí* | No |
| Registrar invitados | Sí | Sí | Sí | Sí | No |
| Ver consumos y facturas | Sí | Si se habilita | No | No | No |
| Levantar PQRS | Sí | Sí | Sí | Sí | No |
| Administrar usuarios de la acción | Sí | No | No | No | No |
| Consultar menú y anuncios | Sí | Sí | Sí | Sí | Sí |
* Sin el titular, dentro de su límite mensual de visitas (sección 5).
05Reglas del club
La app aplica los estatutos al momento de reservar. Como los estatutos siguen en revisión, cada límite se configura desde la consola sin tocar código.
| Regla | Valor inicial | Cómo la aplica la app |
|---|---|---|
| Visitas del cónyuge sin el titular | 1 al mes | Lleva la cuenta; al llegar al límite no permite otra reserva en el mes. Con el titular presente no cuenta. |
| Visitas de hijos mayores sin sus padres | 5 al mes | La sexta reserva del mes se bloquea con una explicación clara. |
| Hijos menores de edad | Solo acompañados | No pueden reservar. |
| Capacidad de mesa | 8 personas | Las mesas no se juntan; para un grupo mayor propone reservar sala con menú de salas. |
| Capacidad de sala | 17 personas | Valida contra la capacidad de cada sala. |
| Invitados del titular | Sin límite | Limitados solo por la capacidad del espacio; todos se registran antes de llegar. |
06Arquitectura técnica
Una app nativa multiplataforma, una API propia y una base de datos propia; Odoo queda detrás como sistema central. Los socios nunca tocan Odoo directamente: todo pasa por la API, que valida quién es, qué puede hacer y deja registro.
6.1Componentes y tecnologías
| Componente | Tecnología | Función |
|---|---|---|
| App del socio | React Native + Expo (SDK 57 o el vigente al arrancar), Expo Router | Una sola base de código que genera la app nativa de iPhone y la de Android. |
| API | Node.js + TypeScript (Hono) | Reglas de negocio, permisos por rol, integración con Odoo y bitácora. |
| Base de datos y autenticación | Supabase: PostgreSQL, Auth, Storage y Realtime | Usuarios, sesiones, permisos a nivel de fila, archivos (fotos de PQRS, facturas) y actualizaciones en tiempo real. |
| Consola del club | Next.js en Vercel | Panel web del equipo del club y página de registro de invitados. |
| Sincronizador | Node.js, colas con reintento | Recibe los webhooks de Odoo y concilia cambios periódicamente. |
| Verificación por SMS | Firebase Authentication (Google) | Envía y valida el código por SMS; la API confirma la verificación con Google y la liga al usuario de la acción. Incluye protección de Google contra envíos abusivos. |
| Notificaciones | Expo Push → APNs (Apple) y FCM (Google) | Anuncios, recordatorios y respuestas de PQRS. |
| Compilación y publicación | Expo EAS Build, Submit y Update | Genera las versiones para las tiendas y permite publicar correcciones sin esperar una nueva revisión. |
| Monitoreo | Sentry | Errores y rendimiento de app y API en tiempo real. |
6.2Por qué este camino
Revisamos las opciones vigentes a octubre de 2026 para una app de iPhone y Android que debe estar publicada en dos meses:
| Opción | Evaluación |
|---|---|
| React Native + Expo (elegida) | App nativa real en ambas plataformas desde un solo código. Es la plataforma con la que se construyen apps como las de Microsoft, Shopify y Discord. Acceso completo a Face ID, notificaciones, cámara y autollenado de SMS. Comparte lenguaje (TypeScript) con la API y la consola, y permite publicar correcciones urgentes sin pasar por revisión de tienda. |
| Dos apps nativas (Swift y Kotlin) | Máximo control, pero son dos proyectos independientes: el doble de desarrollo, pruebas y mantenimiento. No cabe en dos meses ni se justifica para este alcance. |
| Flutter | Buena opción técnica, pero usa otro lenguaje (Dart) que no se comparte con la API ni la consola, lo que encarece el mantenimiento. |
| Capacitor / Ionic | Es una página web dentro de un contenedor. Se siente menos nativa y queda corta para el nivel de experiencia que pide el club. |
| Electron | Solo sirve para aplicaciones de escritorio (Windows, macOS, Linux). No genera apps de iPhone ni de Android, por lo que no aplica. |
6.3Ambientes
| Ambiente | Para qué |
|---|---|
| Desarrollo | Trabajo diario del equipo de HEYAY LABS, con datos de prueba. |
| Pruebas | Conectado a un Odoo de pruebas. El club prueba cada sprint desde TestFlight (iPhone) y la prueba interna de Google Play (Android). |
| Producción | La app publicada, conectada al Odoo real del club. |
07Integración con Odoo
Odoo sigue siendo la fuente de verdad del club. La app tiene su propia plataforma y sus propios usuarios, y se conecta a Odoo por API en tiempo real: si algo cambia en la app, llega a Odoo en ese instante; si cambia en Odoo, la app lo refleja.
7.1Flujos de información
| Información | Dirección | Momento |
|---|---|---|
| Socios y acciones | Odoo → app | Al cambiar en Odoo |
| Disponibilidad de mesas y salas | Odoo ↔ app | En vivo, al consultar y al reservar |
| Reservas y cancelaciones | App → Odoo | Al instante |
| Invitados registrados | App → Odoo | Al instante |
| Consumos | Odoo → app | Al consultar el estado de cuenta |
| Facturas (PDF y XML) | Odoo → app | Al timbrarse |
| Tickets de PQRS con fotografía | App → Odoo | Al instante |
| Respuestas a PQRS | Odoo → app | Al responder el equipo, con notificación |
7.2Cómo se conecta
- API JSON-2 de Odoo. Odoo declaró obsoletas sus APIs anteriores (XML-RPC y JSON-RPC) a partir de la versión 19 y las retira en 2027–2028. Construimos sobre la API nueva para no heredar una migración forzada. Si el club está en una versión anterior, lo resolvemos en la primera semana con su consultor.
- Webhooks desde Odoo. Reglas automáticas en Odoo avisan a la plataforma cuando algo cambia (una respuesta a PQRS, una factura nueva).
- Conciliación periódica. Cada pocos minutos el sincronizador compara cambios recientes para que ningún evento se pierda si Odoo o la red fallan un momento.
- Credenciales de servicio. La plataforma usa una llave de API con permisos mínimos; ningún socio tiene usuario de Odoo.
7.3Coordinación con el consultor de Odoo
HEYAY LABS diseña la integración y entrega la lista de campos, modelos y reglas automáticas que se necesitan. El consultor de Odoo del club los habilita de su lado. Trabajamos juntos desde la primera semana con un documento de integración compartido.
08Seguridad y trazabilidad
La app maneja datos personales, consumos y facturas de los socios. La construimos con las prácticas de una app financiera y la sometemos a pruebas de ataque antes de publicarla.
| Área | Controles |
|---|---|
| Acceso | Biometría del dispositivo, código de verificación en dispositivos nuevos y acciones sensibles, sesiones que expiran, cierre remoto de sesión y límite de intentos. |
| Autorización | Cada consulta se valida en el servidor contra el rol y la acción del usuario; la base de datos aplica permisos a nivel de fila como segunda barrera. |
| Datos | Cifrado en tránsito (TLS) y en reposo; facturas y fotografías con enlaces temporales; secretos fuera del código. |
| Trazabilidad | Bitácora inmutable de accesos y movimientos: quién, qué, cuándo, desde qué dispositivo y dirección IP. Permite el análisis forense de cualquier incidente. |
| Abuso de códigos | Códigos solo para usuarios dados de alta por el club, solo números de México, límite de intentos y tope de envíos por usuario y dispositivo. |
| Pruebas | Revisión de código y pruebas de intrusión sobre la app y la API antes de la publicación. |
| Respaldos | Respaldos diarios automáticos de la base de datos; restauración a cualquier minuto como opción (sección 11.2). |
| Privacidad | Aviso de privacidad y consentimiento conforme a la Ley Federal de Protección de Datos Personales. La app no almacena datos de tarjetas. |
09Plan de trabajo
Dos meses, en cuatro sprints de dos semanas. Al cierre de cada sprint el club prueba funcionalidad real en su celular, no avances en papel.
| Sprint | Semanas | Entregable |
|---|---|---|
| 1 · Base y acceso | 1–2 | Sesión de arranque con el club y su consultor de Odoo. Trámite de D-U-N-S y cuentas de Apple y Google. Marca blanca, acceso y perfil, acciones y roles, consola (usuarios y reglas). Documento de integración con Odoo. |
| 2 · Reservas e invitados | 3–4 | Mesas y salas con disponibilidad en vivo, reglas de visitas y capacidad, invitados con link y QR, menús. Primera versión en TestFlight y prueba interna de Android. |
| 3 · Consumos, PQRS y anuncios | 5–6 | Estado de cuenta y facturas, PQRS conectado a Odoo, anuncios y notificaciones push, bitácora en la consola. |
| 4 · Piloto y publicación | 7–8 | Pruebas de seguridad, piloto con un grupo de socios y asistentes, ajustes, envío a revisión de Apple y Google, capacitación al equipo del club y lanzamiento. |
10Entregables y propiedad
| Entregable | Detalle |
|---|---|
| App publicada | En App Store y Google Play, bajo las cuentas de desarrollador del club. |
| Consola del club | En un dominio del club, con usuarios para su equipo. |
| Integración con Odoo | Funcionando en producción y documentada. |
| Código fuente | Repositorio con la app, la API y la consola, propiedad del club al liquidar el desarrollo. |
| Documentación | Arquitectura, integración, manual de la consola y procedimiento ante incidentes. |
| Capacitación | Sesión con el equipo del club (recepción y gerencia) para operar la consola. |
Cuentas a nombre del club. Apple exige que una app de marca blanca se publique en la cuenta de quien es dueño de la marca, así que las cuentas de Apple Developer y Google Play se abren como organización a nombre del club. HEYAY LABS cubre sus cuotas y participa como administrador técnico.
11Inversión
Todos los importes en pesos mexicanos, más IVA.
11.1Desarrollo
| Concepto | Importe |
|---|---|
| Mes 1 · sprints 1 y 2 | $95,000 |
| Mes 2 · sprints 3 y 4 | $95,000 |
| Total de desarrollo | $190,000 + IVA |
Un pago al inicio de cada mes. Incluye los ocho módulos de la app para iPhone y Android, la consola del club, la API, la integración con Odoo, las pruebas de seguridad, la publicación y la capacitación. También incluye las cuotas de Apple Developer Program ($99 USD el primer año) y Google Play Console ($25 USD, pago único), que cubre HEYAY LABS.
11.2Soporte, actualizaciones e infraestructura · desde el lanzamiento
| Concepto | Importe |
|---|---|
| Soporte, actualizaciones e infraestructura | $3,500 / mes + IVA |
Una sola cuota mensual que mantiene la app funcionando, segura y publicada. Usuarios ilimitados.
Infraestructura incluida
| Servicio | Uso |
|---|---|
| Supabase | Base de datos exclusiva del club, autenticación, archivos y respaldos diarios. |
| Vercel | Consola del club, API y página de registro de invitados. |
| Expo EAS | Compilación de versiones para las tiendas y actualizaciones de la app. |
| Monitoreo y correo | Monitoreo de errores (Sentry) y correos de la app: invitaciones y confirmaciones. |
| Notificaciones push | Envío a iPhone y Android. |
| Cuentas de tienda | Renovación anual de Apple Developer Program a partir del segundo año. |
Soporte y actualizaciones incluidos
Una app móvil necesita mantenimiento constante para seguir publicada: Apple y Google cambian sus requisitos cada año.
- Nuevas versiones de iOS y Android. Adecuar y volver a publicar la app con cada versión mayor (iOS cada septiembre; Android con el nivel de API que Google Play exige cada agosto).
- Actualización de la plataforma. Versiones nuevas de Expo, React Native y librerías, y parches de seguridad.
- Cumplimiento con las tiendas. Cambios de políticas y renovación de certificados de notificaciones.
- Correcciones de errores y monitoreo de la app, la API y la integración con Odoo.
- Soporte al equipo del club por WhatsApp y correo en horario hábil, y ajustes menores de configuración y contenido.
No incluye módulos ni funcionalidades nuevas; esos se planean y cotizan por separado. Opcional: restauración de la base de datos a cualquier minuto de los últimos 7 días (point-in-time recovery), $100 USD al mes a costo.
11.3Códigos de verificación por SMS · a costo
Comparamos los principales servicios para enviar códigos por SMS a celulares de México:
| Servicio | USD / SMS | MXN / SMS |
|---|---|---|
| Firebase Authentication (Google) (elegido) | $0.05 | ~$0.91 |
| Plivo | ~$0.11 | ~$2.04 |
| Twilio | $0.18 | ~$3.30 |
| Twilio Verify | $0.23 | ~$4.21 |
Elegimos Firebase Authentication de Google: el precio más bajo entre los servicios de primer nivel, entrega directa con los operadores de México y protección contra envíos abusivos incluida. El código llega por SMS, así que el teclado del iPhone y de Android lo sugiere solo.
El código solo se pide cuando hace falta: al registrar un dispositivo nuevo, al reinstalar la app y en acciones sensibles. El acceso diario es con Face ID o huella. Estimado mensual en pesos:
| Usuarios de la app | 1 código / usuario | 2 códigos / usuario | 3 códigos / usuario |
|---|---|---|---|
| 150 usuarios | ~$140 | ~$275 | ~$410 |
| 300 usuarios | ~$275 | ~$545 | ~$820 |
| 500 usuarios | ~$455 | ~$910 | ~$1,360 |
Usuarios: titulares más cónyuges, hijos y asistentes con acceso. Con 110 acciones esperamos entre 250 y 350 usuarios. El primer mes es más alto porque todos registran su dispositivo.
11.4Resumen mensual estimado tras el lanzamiento
| Concepto | Tipo | MXN / mes |
|---|---|---|
| Soporte, actualizaciones e infraestructura | Cuota fija | $3,500 |
| SMS de verificación (300 usuarios, 2 códigos al mes) | A costo, según uso | ~$545 |
| Total estimado | ~$4,045 + IVA |
Los SMS se facturan cada mes al costo de Google, con el detalle de envíos. El importe en dólares varía con el tipo de cambio.
12Lo que necesitamos del club
| Qué | Para cuándo |
|---|---|
| Razón social y datos para el número D-U-N-S y las cuentas de Apple y Google | Semana 1 |
| Versión de Odoo, acceso a un ambiente de pruebas y llave de API | Semana 1 |
| Tiempo de su consultor de Odoo para habilitar campos y reglas | Semanas 1–6 |
| Logotipo, colores, fotografías y textos del club | Semana 2 |
| Espacios del club: mesas, salas, capacidades y horarios | Semana 2 |
| Menús vigentes con fotografía | Semana 4 |
| Aviso de privacidad (o su validación legal) | Semana 6 |
| Grupo piloto de socios y asistentes | Semana 7 |
13Supuestos y fuera de alcance
Supuestos
- Odoo del club expone por API la disponibilidad, consumos, facturas y tickets; su consultor habilita lo que falte.
- La app se publica en español.
- Los límites de visitas y capacidades pueden cambiar desde la consola sin desarrollo adicional.
- Los tiempos dependen de recibir a tiempo los insumos de la sección 12.
Fuera de alcance
- Pedidos de alimentos y pagos en línea, por decisión del club.
- Acceso al estacionamiento y servicio de valet.
- Configuración y desarrollo dentro de Odoo, que corresponden al consultor del club.
- Infraestructura física, red y equipos del club, que forman parte de la propuesta integral.
- Versión de escritorio o tableta de la app.
Cualquier módulo adicional se planea y cotiza por separado cuando el club lo decida.
14Siguiente paso
Una sesión con el club y su consultor de Odoo para confirmar alcance, versión de Odoo y fechas, y arrancar el primer sprint.