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>
5.0 KiB
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
# 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 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 | Entender el negocio: clientes, productos, flujo real, reglas. Léelo primero. |
| CONTEXTO.md | Estado técnico: modelo de datos, producto unificado, catálogos, decisiones UX |
| MODELO_DATOS.md | Esquema completo de la base de datos |
| API.md | Referencia de endpoints REST |
| INSTALACION.md | Desplegar desde cero |
| WEB.md | Sitio público + sincronización |
| ONBOARDING.md | Repaso técnico rápido |
| 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.