docs: update project documentation and types for Jan 2026 kiosk completion

This commit is contained in:
Marco Gallegos
2026-01-16 21:38:53 -06:00
parent 8fc9d3717e
commit 0f6fe9bf7b
23 changed files with 115 additions and 69 deletions

3
.eslintrc.json Normal file
View File

@@ -0,0 +1,3 @@
{
"extends": ["next/core-web-vitals"]
}

4
API.md
View File

@@ -1,7 +1,7 @@
# SalonOS API Documentation
# AnchorOS API Documentation
## Overview
SalonOS is a comprehensive salon management system built with Next.js, Supabase, and Stripe integration.
AnchorOS is a comprehensive salon management system built with Next.js, Supabase, and Stripe integration.
## Authentication
- **Client Authentication**: Magic link via Supabase Auth

8
PRD.md
View File

@@ -1,8 +1,10 @@
# PRD — SalonOS
# PRD — AnchorOS
**Codename: Adela**
## 1. Objetivo
SalonOS es un sistema operativo para salones de belleza orientado a agenda, pagos, membresías e invitados, con reglas estrictas de tiempo, seguridad y automatización.
AnchorOS es un sistema operativo para salones de belleza orientado a agenda, pagos, membresías e invitados, con reglas estrictas de tiempo, seguridad y automatización.
---
@@ -116,4 +118,4 @@ SalonOS es un sistema operativo para salones de belleza orientado a agenda, pago
## 9. Estado del Documento
Este PRD es la fuente única de verdad funcional del sistema SalonOS.
Este PRD es la fuente única de verdad funcional del sistema AnchorOS.

View File

@@ -1,15 +1,16 @@
# 🥂 SalonOS
# 🥂 AnchorOS
**Exclusive Studio Management & CRM Engine**
Repositorio principal del sistema SalonOS.
**Codename: Adela**
Repositorio principal del sistema AnchorOS.
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?
## 1. ¿Qué es AnchorOS?
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.
AnchorOS 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:
@@ -92,7 +93,7 @@ El PRD es la fuente de verdad funcional. El README es la guía de ejecución.
## 6. Estructura del Proyecto
```
/salonos
/anchoros
├── app/ # Next.js App Router
│ ├── (anchor23)/ # anchor23.mx - Frontend institucional
│ │ ├── page.tsx # Landing page
@@ -173,7 +174,7 @@ NEXT_PUBLIC_KIOSK_API_KEY=
```
git clone <repo-url>
cd salonos
cd anchoros
```
2. Instalar dependencias
@@ -409,7 +410,7 @@ https://kiosk.anchor23.mx/{location-id}
## 14. Filosofía Operativa
SalonOS no busca volumen.
AnchorOS no busca volumen.
Busca **control, eficiencia y blindaje**.
@@ -417,4 +418,18 @@ Este repositorio implementa esa filosofía a nivel de sistema.
---
## 15. Codename: Adela
AnchorOS se conoce internamente como **Adela**, un acrónimo que representa los pilares fundamentales del sistema:
- **A**ttention - Atención personalizada y detallada a cada cliente
- **D**igital Engagement - Compromiso digital con la marca y servicios
- **E**ngagement Logistics - Logística de interacción eficiente
- **L**ogistics Analytics - Análisis de datos para optimización operativa
- **A**nalytics - Inteligencia de datos para decisiones estratégicas
Adela simboliza la transformación digital de los salones de belleza de alta gama, combinando lujo, tecnología y eficiencia operativa.
---
**Proyecto:** soul23

View File

@@ -1,6 +1,6 @@
# TASKS.md — Plan de Ejecución por Fases
Este documento define las tareas ejecutables del proyecto **SalonOS**, alineadas estrictamente con el PRD. Ninguna tarea puede introducir lógica no documentada.
Este documento define las tareas ejecutables del proyecto **AnchorOS**, alineadas estrictamente con el PRD. Ninguna tarea puede introducir lógica no documentada.
---

View File

@@ -1,6 +1,6 @@
# Admin Enrollment System
Sistema de administración de usuarios y kiosks para SalonOS.
Sistema de administración de usuarios y kiosks para AnchorOS.
## Descripción

View File

@@ -30,7 +30,7 @@ export default function FranchisesPage() {
const benefits = [
'Modelo de negocio exclusivo y probado',
'Una sucursal por ciudad: saturación controlada',
'Sistema operativo completo (SalonOS)',
'Sistema operativo completo (AnchorOS)',
'Capacitación en estándares de lujo',
'Membresía de clientes como fuente recurrente',
'Soporte continuo y actualizaciones'

View File

@@ -234,7 +234,7 @@ export default function KioskPage({ params }: { params: { locationId: string } }
</Card>
<footer className="mt-8 text-center text-sm text-muted-foreground">
<p>SalonOS Kiosk v1.0</p>
<p>AnchorOS Kiosk v1.0</p>
<p className="mt-1">Necesitas ayuda? Contacta al personal del salón</p>
</footer>
</div>

View File

@@ -183,7 +183,7 @@ Grid de servicios con:
2. **Beneficios**
- Modelo de negocio exclusivo
- Una sucursal por ciudad
- Sistema operativo completo (SalonOS)
- Sistema operativo completo (AnchorOS)
- Capacitación en estándares de lujo
- Membresía como fuente recurrente
- Soporte continuo

View File

@@ -1,4 +1,4 @@
# Guía de Onboarding para Clientes — SalonOS
# Guía de Onboarding para Clientes — AnchorOS
Bienvenido a Anchor23. Esta guía te ayudará a familiarizarte con nuestros sistemas de reserva y servicios.

View File

@@ -2,7 +2,7 @@
## Arquitectura de Dominios
El proyecto SalonOS está diseñado para funcionar con múltiples subdominios, cada uno con una función específica:
El proyecto AnchorOS está diseñado para funcionar con múltiples subdominios, cada uno con una función específica:
| Subdominio | Función | Estado | URL de ejemplo |
|-------------|----------|---------|----------------|
@@ -267,8 +267,8 @@ El kiosko usa API keys de 64 caracteres para autenticación:
```bash
# Clonar repositorio
git clone <repo-url> /var/www/salonos
cd /var/www/salonos
git clone <repo-url> /var/www/anchoros
cd /var/www/anchoros
# Instalar dependencias
npm install
@@ -282,7 +282,7 @@ npm run build
npm start
# Configurar PM2 para proceso en segundo plano
pm2 start npm --name "salonos" -- start
pm2 start npm --name "anchoros" -- start
pm2 save
pm2 startup
```

View File

@@ -2,7 +2,7 @@
## Resumen
El sistema de enrollment permite a los administradores agregar nuevos usuarios (staff, artists, managers) y kiosks al sistema SalonOS mediante una interfaz web segura.
El sistema de enrollment permite a los administradores agregar nuevos usuarios (staff, artists, managers) y kiosks al sistema AnchorOS mediante una interfaz web segura.
---

View File

@@ -77,13 +77,13 @@ https://tu-dominio.com/kiosk/{location-id}
Ejemplo:
```
https://salonos.example.com/kiosk/550e8400-e29b-41d4-a716-446655440000
https://kiosk.anchor23.mx/550e8400-e29b-41d4-a716-446655440000
```
## Estructura de Archivos
```
salonOS/
AnchorOS/
├── supabase/
│ └── migrations/
│ └── 20260116000000_add_kiosk_system.sql

View File

@@ -1,4 +1,4 @@
# Sistema de Kiosko - SalonOS
# Sistema de Kiosko - AnchorOS
## Resumen

View File

@@ -1,6 +1,6 @@
# Procedimientos Operativos — SalonOS
# Procedimientos Operativos — AnchorOS
Guía interna para operaciones diarias del salón usando el sistema SalonOS.
Guía interna para operaciones diarias del salón usando el sistema AnchorOS.
## Apertura Diaria

View File

@@ -2,7 +2,7 @@
## Resumen Ejecutivo
Se ha completado el **Sistema de Kiosko** y la **Actualización de Recursos** del sistema SalonOS. Estos cambios representan una expansión significativa de las capacidades del sistema, mejorando la operativa del salón y la experiencia del cliente.
Se ha completado el **Sistema de Kiosko** y la **Actualización de Recursos** del sistema AnchorOS. Estos cambios representan una expansión significativa de las capacidades del sistema, mejorando la operativa del salón y la experiencia del cliente.
---
@@ -330,7 +330,7 @@ README.md
## Conclusión
El sistema de kiosko y la actualización de recursos representan un avance significativo en las capacidades operativas de SalonOS. Estas mejoras preparan el sistema para una implementación en producción, optimizando tanto la experiencia del cliente como la eficiencia operativa del salón.
El sistema de kiosko y la actualización de recursos representan un avance significativo en las capacidades operativas de AnchorOS. Estas mejoras preparan el sistema para una implementación en producción, optimizando tanto la experiencia del cliente como la eficiencia operativa del salón.
El proyecto está en un estado sólido (90% completado de Fase 1), con una infraestructura robusta y segura lista para el desarrollo de las fases restantes.

View File

@@ -1,4 +1,4 @@
# Actualización de Recursos - SalonOS
# Actualización de Recursos - AnchorOS
## Cambios Realizados

View File

@@ -1,10 +1,10 @@
# Guía de Entrenamiento para Staff — SalonOS
# Guía de Entrenamiento para Staff — AnchorOS
Esta guía está diseñada para capacitar al personal del salón en el uso del sistema SalonOS.
Esta guía está diseñada para capacitar al personal del salón en el uso del sistema AnchorOS.
## Introducción al Sistema
SalonOS es una plataforma integral de gestión que incluye:
AnchorOS es una plataforma integral de gestión que incluye:
- Sistema de reservas (The Boutique)
- Dashboard administrativo (Aperture)
- Sistema de kiosko para autoservicio

View File

@@ -1,6 +1,6 @@
# Guía de Troubleshooting — SalonOS
# Guía de Troubleshooting — AnchorOS
Esta guía ayuda a resolver problemas comunes durante el setup y desarrollo de SalonOS.
Esta guía ayuda a resolver problemas comunes durante el setup y desarrollo de AnchorOS.
## Configuración de Entorno

View File

@@ -1,4 +1,4 @@
// Types based on SalonOS database schema
// Types based on AnchorOS (Adela) database schema
/** User roles in the system */
export type UserRole = 'admin' | 'manager' | 'staff' | 'artist' | 'customer' | 'kiosk'

82
package-lock.json generated
View File

@@ -1,11 +1,11 @@
{
"name": "salonos",
"name": "anchoros",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "salonos",
"name": "anchoros",
"version": "0.1.0",
"dependencies": {
"@hookform/resolvers": "^3.3.3",
@@ -20,7 +20,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^3.0.6",
"date-fns-tz": "^2.0.0",
"date-fns-tz": "^3.2.0",
"framer-motion": "^10.16.16",
"lucide-react": "^0.303.0",
"next": "14.0.4",
@@ -1720,14 +1720,14 @@
"version": "15.7.15",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
"integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
"dev": true,
"devOptional": true,
"license": "MIT"
},
"node_modules/@types/react": {
"version": "18.3.27",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
"dev": true,
"devOptional": true,
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
@@ -1738,7 +1738,7 @@
"version": "18.3.7",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
"dev": true,
"devOptional": true,
"license": "MIT",
"peerDependencies": {
"@types/react": "^18.0.0"
@@ -2250,6 +2250,19 @@
"node": ">= 8"
}
},
"node_modules/anymatch/node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -2884,7 +2897,7 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"dev": true,
"devOptional": true,
"license": "MIT"
},
"node_modules/damerau-levenshtein": {
@@ -2959,12 +2972,12 @@
}
},
"node_modules/date-fns-tz": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.1.tgz",
"integrity": "sha512-fJCG3Pwx8HUoLhkepdsP7Z5RsucUi+ZBOxyM5d0ZZ6c4SdYustq0VMmOu6Wf7bli+yS/Jwp91TOCqn9jMcVrUA==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.2.0.tgz",
"integrity": "sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==",
"license": "MIT",
"peerDependencies": {
"date-fns": "2.x"
"date-fns": "^3.0.0 || ^4.0.0"
}
},
"node_modules/debug": {
@@ -5084,6 +5097,19 @@
"node": ">=8.6"
}
},
"node_modules/micromatch/node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -5536,13 +5562,13 @@
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -5947,6 +5973,19 @@
"node": ">=8.10.0"
}
},
"node_modules/readdirp/node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -6695,19 +6734,6 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

View File

@@ -1,5 +1,5 @@
{
"name": "salonos",
"name": "anchoros",
"version": "0.1.0",
"private": true,
"scripts": {
@@ -29,7 +29,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^3.0.6",
"date-fns-tz": "^2.0.0",
"date-fns-tz": "^3.2.0",
"framer-motion": "^10.16.16",
"lucide-react": "^0.303.0",
"next": "14.0.4",

View File

@@ -2,7 +2,7 @@
# https://supabase.com/docs/guides/local-development/cli/config
# A string used to distinguish different Supabase projects on the same host. Defaults to the
# working directory name when running `supabase init`.
project_id = "salonOS"
project_id = "anchoros"
[api]
enabled = true