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>
This commit is contained in:
86
README.md
Normal file
86
README.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
python3 server.py
|
||||
# → http://localhost:4403
|
||||
```
|
||||
|
||||
Primera vez: pantalla para **crear la cuenta admin** (genera `catalogo.db` y `secret.key`).
|
||||
|
||||
Ver **[INSTALACION.md](./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.*
|
||||
Reference in New Issue
Block a user