consultoria-as 38e9e4b91c Catalogo de Servicios (builder): codigo + documentacion extensiva
Builder multi-proveedor de servicios (tour / A&B / transportacion).
Python stdlib + SQLite + vanilla JS SPA. Hereda filosofia del Hub.

Secretos y datos (catalogo.db, secret.key, uploads/) excluidos via .gitignore.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 21:00:50 -07:00

Catálogo de Servicios (builder)

Builder de catálogo multi-proveedor de servicios (tours, A&B/banquetes, transportación) para Los Cabos, México.

Hereda la filosofía del Art4Hotel Hub, pero aplicada a servicios (no productos físicos): capturar en una sola base de datos la oferta de varios touroperadores/proveedores, con fotos y todos los atributos, para luego generar propuestas y una página web de catálogo online.

Proyecto independiente. No toca el Hub.


Qué hace

  • Proveedores — alta de touroperadores / proveedores (contacto, comisión default)
  • Servicios — la fuente única de verdad: identidad, operación, precios neto/público, condiciones, publicación
  • Atributos flexibles por tipo — extras específicos en JSON (no rompen el esquema)
  • Disponibilidad — 4 modos (salidas / rango / siempre / por evento) con editor adaptativo
  • Fotos y menú — galería por servicio + galería de menú separada por prefijo
  • Dos vistas — Builder (con margen/precio neto) y Vista cliente (catálogo limpio, oculta lo interno)
  • Login — usuario/contraseña (PBKDF2) + sesión firmada (HMAC)

🧱 Stack

Capa Tecnología
Backend Python 3 stdlib (http.server + sqlite3) — cero dependencias
Base de datos SQLite (WAL, foreign keys)
Frontend Vanilla JS SPA en un solo index.html
Archivos Filesystem (uploads/servicio_{id}/)
Deploy scp + systemctl

Mismo patrón que el Hub: CRUD genérico vía dict TABLES en server.py (un handler para todas las tablas).


🚀 Arranque rápido

python3 server.py
# → http://localhost:4403

Primera vez: pantalla para crear la cuenta admin (genera catalogo.db y secret.key).

Ver INSTALACION.md para el despliegue en servidor.


📁 Estructura

catalogo-borrador/
├── server.py        # Backend: HTTP + SQLite + API + auth
├── index.html       # Frontend: SPA (builder + vista cliente)
├── README.md        # Este archivo
├── MODELO_DATOS.md  # Esquema de la base de datos
├── API.md           # Referencia de endpoints
├── INSTALACION.md   # Despliegue desde cero
└── CLAUDE.md        # Contexto técnico detallado (para asistentes IA)

No incluidos (ver .gitignore): catalogo.db, secret.key, uploads/.


🔑 Principio de diseño: el servicio = fuente única de verdad

Cada atributo de un servicio impacta hasta 3 funciones. Antes de agregar/cambiar uno, define su impacto en:

  1. Operación — disponibilidad, horarios, capacidad, precio neto
  2. Propuesta / cotizador — lo que ve el cliente, precio público, términos
  3. Página web — catálogo online

Neto vs público: precio_neto = lo que cobra el proveedor · precio_publico = lo que paga el cliente. El margen vive en medio y nunca se muestra al cliente (la Vista cliente lo oculta).


🗺 Fases

  1. Builder — proveedores + servicios con fotos y todos los campos (actual)
  2. Propuestas/catálogos — selección de servicios → documento → PDF (reusar patrón del Hub)
  3. Web pública — catálogo online optimizado (sync desde la DB)

Parte del ecosistema Art4Hotel · Los Cabos, BCS, México.

Description
Builder de catalogo multi-proveedor de servicios (tours/A&B/transportacion) - Python stdlib + SQLite + vanilla JS
Readme 62 KiB
Languages
HTML 66.3%
Python 33.7%