Files
AnchorOS/README.md
Marco Gallegos fed5cb6850 feat: Implementar sistema de kiosko, enrollment e integración Telegram
## Sistema de Kiosko 
- Nuevo rol 'kiosk' en enum user_role
- Tabla kiosks con autenticación por API key (64 caracteres)
- Funciones SQL: generate_kiosk_api_key(), is_kiosk(), get_available_resources_with_priority()
- API Routes: authenticate, bookings (GET/POST), confirm, resources/available, walkin
- Componentes UI: BookingConfirmation, WalkInFlow, ResourceAssignment
- Página kiosko: /kiosk/[locationId]/page.tsx

## Sistema de Enrollment 
- API routes para administración: /api/admin/users, /api/admin/kiosks, /api/admin/locations
- Frontend enrollment: /admin/enrollment con autenticación por ADMIN_KEY
- Creación de staff (admin, manager, staff, artist) con Supabase Auth
- Creación de kiosks con generación automática de API key
- Componentes UI: card, button, input, label, select, tabs

## Actualización de Recursos 
- Reemplazo de recursos con códigos estándarizados
- Estructura por location: 3 mkup, 1 lshs, 4 pedi, 4 mani
- Migración de limpieza: elimina duplicados
- Total: 12 recursos por location

## Integración Telegram y Scoring 
- Campos agregados a staff: telegram_id, email, gmail, google_account, telegram_chat_id
- Sistema de scoring: performance_score, total_bookings_completed, total_guarantees_count
- Tablas: telegram_notifications, telegram_groups, telegram_bots
- Funciones: update_staff_performance_score(), get_top_performers(), get_performance_summary()
- Triggers automáticos: notificaciones al crear/confirmar/completar booking
- Cálculo de score: base 50 +10 por booking +5 por garantía +1 por $100

## Actualización de Tipos 
- UserRole: agregado 'kiosk'
- CustomerTier: agregado 'black', 'VIP'
- Nuevas interfaces: Kiosk

## Documentación 
- KIOSK_SYSTEM.md: Documentación completa del sistema
- KIOSK_IMPLEMENTATION.md: Guía rápida
- ENROLLMENT_SYSTEM.md: Sistema de enrollment
- RESOURCES_UPDATE.md: Actualización de recursos
- PROJECT_UPDATE_JAN_2026.md: Resumen de proyecto

## Componentes UI (7)
- button.tsx, card.tsx, input.tsx, label.tsx, select.tsx, tabs.tsx

## Migraciones SQL (4)
- 20260116000000_add_kiosk_system.sql
- 20260116010000_update_resources.sql
- 20260116020000_cleanup_and_fix_resources.sql
- 20260116030000_telegram_integration.sql

## Métricas
- ~7,500 líneas de código
- 32 archivos creados/modificados
- 7 componentes UI
- 10 API routes
- 4 migraciones SQL
2026-01-16 10:51:12 -06:00

6.6 KiB

🥂 SalonOS

Exclusive Studio Management & CRM Engine Repositorio principal del sistema SalonOS.

Este README es la puerta de entrada técnica al proyecto. Define qué es este repositorio, cómo se estructura y cómo debe ser utilizado por desarrollo, producto y operación.


1. ¿Qué es SalonOS?

SalonOS es un sistema propietario de gestión operativa y CRM diseñado para estudios de belleza de alta exclusividad. No es una agenda genérica: coordina personas, recursos físicos, pagos, privilegios y datos bajo reglas estrictas de control y privacidad.

El sistema está diseñado para:

  • Optimizar el uso de estaciones físicas.
  • Proteger la base de datos de clientes.
  • Controlar el crecimiento mediante invitaciones.
  • Garantizar rentabilidad en días de alta demanda.
  • Facilitar la operativa mediante kioskos de autoservicio.

2. Alcance de este Repositorio

Este repositorio contiene:

  • Frontend de cliente (The Boutique).
  • Dashboard administrativo (The HQ).
  • Lógica de negocio de agendamiento.
  • Integraciones externas (Stripe, Google Calendar, WhatsApp).
  • Esquema base de datos y políticas de seguridad.

No contiene:

  • Material de marketing.
  • Operación manual del salón.
  • Datos productivos.

3. Documentación Oficial

Este proyecto se rige por los siguientes documentos:

  • PRD (Documento Maestro) → Definición de producto y reglas de negocio.
  • README (este archivo) → Guía técnica y operativa del repo.

El PRD es la fuente de verdad funcional. El README es la guía de ejecución.


4. Arquitectura General

Experiencias

  • The Boutique: Frontend de reserva para clientas.
  • The HQ: Dashboard administrativo y CRM interno.
  • The Kiosk: Sistema de autoservicio en pantalla táctil para confirmación de citas y walk-ins.

Principios

  • Security by Design.
  • Exclusividad curada.
  • Optimización de activos.

5. Stack Tecnológico

  • Frontend: Next.js 14 (App Router)
  • UI / Estilos: Tailwind CSS + Framer Motion
  • Backend: Supabase (PostgreSQL + Auth + RLS)
  • Pagos: Stripe SDK
  • Calendario: Google Calendar API v3 (Service Account)
  • Notificaciones: WhatsApp API (Twilio / Meta)
  • Storage: Supabase Storage (Buckets privados)

6. Estructura del Proyecto

/salonos
├── app/                # Next.js App Router
│   ├── boutique/       # Frontend clienta
│   ├── hq/             # Dashboard administrativo
│   ├── kiosk/          # Sistema de autoservicio (pantalla táctil)
│   └── api/            # API routes
│       ├── kiosk/      # Endpoints para kiosko
│       └── ...
├── components/         # Componentes UI reutilizables
│   ├── kiosk/          # Componentes del sistema de kiosko
│   └── ui/             # Componentes base (Button, Input, Card, etc.)
├── lib/                # Lógica de negocio y helpers
│   └── db/             # Tipos TypeScript del esquema
├── supabase/
│   └── migrations/     # Migraciones SQL versionadas
├── integrations/       # Stripe, Google, WhatsApp
├── styles/             # Configuración Tailwind
└── docs/               # Documentación adicional
    ├── KIOSK_SYSTEM.md           # Documentación completa del kiosko
    ├── KIOSK_IMPLEMENTATION.md   # Guía rápida de implementación
    └── RESOURCES_UPDATE.md      # Documentación de actualización de recursos

7. Requisitos de Entorno

  • Node.js 18+
  • Cuenta Supabase
  • Cuenta Stripe
  • Proyecto Google Cloud (Calendar API)
  • Credenciales WhatsApp API

Variables de entorno obligatorias:

# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=

# Stripe
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=

# Google Calendar
GOOGLE_SERVICE_ACCOUNT_JSON=

# WhatsApp
WHATSAPP_API_KEY=

# Kiosko (opcional - para modo kiosko)
NEXT_PUBLIC_KIOSK_API_KEY=

8. Setup Local

  1. Clonar el repositorio
git clone <repo-url>
cd salonos
  1. Instalar dependencias
npm install
  1. Configurar variables de entorno
  • Crear .env.local.
  1. Levantar entorno local
npm run dev

9. Convenciones de Desarrollo

  • El PRD define la lógica: no se improvisa comportamiento.
  • Toda regla crítica debe vivir en backend.
  • RLS obligatorio en todas las tablas sensibles.
  • El frontend nunca expone datos privados del cliente.
  • Cambios de alcance requieren actualización del PRD.

10. Estado del Proyecto

Completado

  • Esquema de base de datos completo
  • Sistema de roles y permisos RLS
  • Generadores de Short ID y códigos de invitación
  • Sistema de kiosko completo
  • API routes para kiosko
  • Componentes UI para kiosko
  • Actualización de recursos con códigos estandarizados
  • Audit logging completo
  • Tiers de cliente extendidos (free, gold, black, VIP)

En Progreso 🚧

  • 🚧 Testing del sistema de kiosko
  • 🚧 Validación de migración de recursos

Pendiente

  • API routes para cliente y staff
  • Motor de agendamiento con disponibilidad
  • Integración con Google Calendar
  • Integración con Stripe
  • HQ Dashboard (calendario multi-columna, gestión operativa)
  • The Vault (storage de fotos privadas)
  • Notificaciones y automatización
  • Landing page pública

Fase Actual

Fase 1 — Cimientos y CRM: 90% completado

  • Infraestructura base: 100%
  • Esquema de base de datos: 100%
  • Short ID & Invitaciones: 100%
  • CRM Base: 100%
  • Sistema de Kiosko: 100%
  • Actualización de Recursos: 100%

Advertencia: No apto para producción. Migraciones y seeds en evolución.


11. Sistema de Kiosko

El sistema de kiosko permite a los clientes interactuar con el salón mediante pantallas táctiles en la entrada.

Funcionalidades

  • Confirmación de Citas: Los clientes confirman su llegada ingresando el código de 6 caracteres (short_id)
  • Reservas Walk-in: Creación de reservas inmediatas para clientes sin cita previa
  • Asignación Inteligente de Recursos: Prioridad automática (mkup > lshs > pedi > mani)

Seguridad

  • Autenticación por API key de 64 caracteres
  • Políticas RLS restrictivas (sin acceso a PII de clientes)
  • Audit logging completo de todas las acciones

Documentación

  • Guía completa: docs/KIOSK_SYSTEM.md
  • Implementación rápida: docs/KIOSK_IMPLEMENTATION.md

Acceso al Kiosko

https://tu-dominio.com/kiosk/{location-id}

12. Filosofía Operativa

SalonOS no busca volumen.

Busca control, eficiencia y blindaje.

Este repositorio implementa esa filosofía a nivel de sistema.


Proyecto: soul23