mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 19:24:32 +00:00
## 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
252 lines
6.6 KiB
Markdown
252 lines
6.6 KiB
Markdown
# 🥂 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
|
|
```
|
|
|
|
2. Instalar dependencias
|
|
|
|
```
|
|
npm install
|
|
```
|
|
|
|
3. Configurar variables de entorno
|
|
|
|
* Crear `.env.local`.
|
|
|
|
4. 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
|