Files
art4hotel-hub/README.md
consultoria-as c2ae140078 Art4Hotel Hub: código + documentación extensiva
ERP a la medida (Python stdlib + SQLite + vanilla JS SPA).
Incluye server.py, index.html, utilidades y documentación:
README, MODELO_DATOS, API, INSTALACION, CONTEXTO, NEGOCIO,
WEB, ONBOARDING, VALOR_SISTEMA, CLAUDE.

Secretos y datos (art4hotel.db, secret.key, ACCESOS.html,
uploads/, backups/) excluidos vía .gitignore.

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

112 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Art4Hotel Hub
Sistema interno de gestión integral (ERP a la medida) para **Art4Hotel** — bolsas y accesorios personalizados para hoteles, restaurantes y eventos en Los Cabos, México.
Centraliza todo el ciclo del negocio: **cotización → producción → bodega → entrega → cobranza**, más un catálogo digital, generador de catálogos PDF y sincronización con el sitio web público.
---
## ✨ Características
- **Operaciones** — kanban de producción con drag & drop por etapas
- **Ventas** — dashboard de KPIs, workflow de cobranza por OC, gestión de entregas
- **Clientes** — CRM con historial, condiciones de pago, zonas
- **Propuestas** — cotizador visual; convierte propuestas aceptadas en órdenes + pedidos
- **Catálogos** — generador de catálogo PDF con la marca, con storytelling (producto base + galería de personalizaciones)
- **Productos** — catálogo unificado (fuente única de verdad)
- **Inventario** — SKUs, stock, punto de reorden
- **Archivos** — facturas, fotos, recibos con nombres inteligentes
- **Sitio web** — alimenta art4hotel.com vía script de sincronización
- **Login** — autenticación con sesiones firmadas (HMAC)
- **Respaldos** — automáticos diarios
---
## 🧱 Stack
| Capa | Tecnología |
|---|---|
| Backend | **Python 3 stdlib** (`http.server` + `sqlite3`) — cero dependencias externas |
| Base de datos | **SQLite** (WAL, foreign keys) — un solo archivo |
| Frontend | **Vanilla JS SPA** en un solo `index.html` — sin frameworks |
| Archivos | Filesystem (`uploads/`) servido por el mismo server |
| Deploy | `scp` + `systemctl` — sin Docker, sin CI/CD |
Filosofía: **minimalismo deliberado**. Todo el sistema (código + datos) pesa <1 MB. Cabe en una USB. Sin licencias, sin dependencias que mantener.
---
## 🚀 Arranque rápido
```bash
# Requiere solo Python 3 (stdlib). Sin pip install.
python3 server.py
# → http://localhost:4401
```
La primera vez, la app muestra una pantalla para **crear la cuenta de administrador**. Después, login normal.
Ver **[INSTALACION.md](./INSTALACION.md)** para el despliegue completo en servidor.
---
## 📁 Estructura del repositorio
```
art4hotel-hub/
├── server.py # Backend: HTTP server + SQLite + API REST + auth
├── index.html # Frontend: SPA completa (~9000 líneas)
├── backup.py # Script de respaldo (DB + uploads)
├── fix_dup.py # Utilidad: corrige IDs duplicados
├── README.md # Este archivo
├── INSTALACION.md # Guía de despliegue desde cero
├── MODELO_DATOS.md # Esquema de la base de datos (14 tablas)
├── API.md # Referencia de endpoints
├── CONTEXTO.md # Estado técnico: decisiones, optimizaciones, deploy
├── NEGOCIO.md # Contexto operativo: clientes, productos, flujo real
├── WEB.md # Sitio público art4hotel.com + sync
├── ONBOARDING.md # Handover técnico rápido
├── CLAUDE.md # Índice maestro + contexto para asistentes IA
└── VALOR_SISTEMA.md # Valor/costo del sistema (para presentar a terceros)
```
> **No incluidos en el repo** (por seguridad / ver `.gitignore`): `art4hotel.db` (datos del negocio), `secret.key` (clave de sesiones), `ACCESOS.html` (contraseñas), `uploads/`, `backups/`.
---
## 📚 Documentación
| Documento | Para qué |
|---|---|
| **[NEGOCIO.md](./NEGOCIO.md)** | Entender el negocio: clientes, productos, flujo real, reglas. **Léelo primero.** |
| **[CONTEXTO.md](./CONTEXTO.md)** | Estado técnico: modelo de datos, producto unificado, catálogos, decisiones UX |
| **[MODELO_DATOS.md](./MODELO_DATOS.md)** | Esquema completo de la base de datos |
| **[API.md](./API.md)** | Referencia de endpoints REST |
| **[INSTALACION.md](./INSTALACION.md)** | Desplegar desde cero |
| **[WEB.md](./WEB.md)** | Sitio público + sincronización |
| **[ONBOARDING.md](./ONBOARDING.md)** | Repaso técnico rápido |
| **[VALOR_SISTEMA.md](./VALOR_SISTEMA.md)** | Valor/costo del sistema |
---
## 🔑 Conceptos clave
- **Pedido** (`ordenes`) — línea de producción individual (1 producto × 1 personalización × cantidad)
- **Orden de Compra (OC)** (`oc`) — agrupa pedidos, lleva la factura/cobranza
- **Proyecto recurrente** (`proyectos`) — receta autorizada reutilizable (cliente + producto + trabajo + logo)
- **Propuesta** (`propuestas`) — cotización; al aceptarse genera OC + pedidos
- **Stages** del kanban: `Nuevo → En 2 Mares / En Taller Sofía → En Almacén → En Vehículo → Entregado`
### ⚠️ Principio de diseño: el producto es la fuente única de verdad
Cada atributo de producto impacta hasta 3 funciones. Antes de agregar/cambiar uno, definir su impacto en: **(1) Operación/producción · (2) Catálogo/cotizador · (3) Página web**.
---
## 🛡 Respaldos
`backup.py` corre por cron diario: snapshot de la DB (online backup, seguro con WAL) + `uploads.tar.gz`. Retiene 30 días.
---
*Sistema desarrollado para Art4Hotel · Los Cabos, BCS, México.*