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>
This commit is contained in:
consultoria-as
2026-06-09 00:10:07 -07:00
commit c2ae140078
16 changed files with 12675 additions and 0 deletions

138
VALOR_SISTEMA.html Normal file
View File

@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Art4Hotel — Valor del Sistema</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
:root{--olive:#5C6B4F;--olive-dark:#3D4A33;--brown:#6B4F3C;--sand:#D4C5A9;--sand-light:#E8DFC8;--sand-pale:#F5F0E5;--cream:#FAF7F0;--charcoal:#2C2C2C;--gray:#8A8075}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Outfit',sans-serif;color:var(--charcoal);background:var(--sand-pale);line-height:1.6;font-size:15px;padding:30px 16px}
.page{max-width:860px;margin:0 auto;background:#fff;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.08);overflow:hidden}
.cover{background:linear-gradient(135deg,var(--olive-dark),var(--olive));color:#fff;padding:54px 50px;position:relative;overflow:hidden}
.cover::after{content:'';position:absolute;top:-30%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(212,197,169,.18),transparent 65%);border-radius:50%}
.cover .logo{font-family:'Playfair Display',serif;position:relative;z-index:1}
.cover .logo .a{font-family:'Outfit';font-weight:600;font-size:34px;letter-spacing:2px}
.cover .logo .four{font-style:italic;font-size:38px;color:var(--sand)}
.cover h1{font-family:'Playfair Display',serif;font-style:italic;font-size:36px;font-weight:400;margin-top:24px;position:relative;z-index:1;line-height:1.15}
.cover .sub{font-size:13px;color:var(--sand-light);margin-top:12px;position:relative;z-index:1}
.body{padding:40px 50px}
h2{font-family:'Playfair Display',serif;font-style:italic;font-size:26px;color:var(--olive-dark);font-weight:400;margin:38px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--sand)}
h2:first-child{margin-top:0}
h3{font-size:16px;color:var(--olive-dark);margin:22px 0 8px;font-weight:600}
p{margin:10px 0}
ul,ol{margin:10px 0 10px 22px}
li{margin:5px 0}
strong{color:var(--olive-dark)}
.diagram{background:var(--charcoal);color:#e8e8e8;font-family:'DM Sans',monospace;font-size:11px;line-height:1.5;padding:20px;border-radius:10px;overflow-x:auto;white-space:pre;margin:16px 0}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px}
th{background:var(--olive);color:#fff;text-align:left;padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
td{padding:9px 12px;border-bottom:1px solid var(--sand-light)}
tr:nth-child(even) td{background:var(--cream)}
.callout{background:var(--sand-pale);border-left:4px solid var(--olive);border-radius:0 8px 8px 0;padding:14px 18px;margin:16px 0;font-size:14px}
.callout.big{background:linear-gradient(135deg,var(--cream),var(--sand-light));border-color:var(--brown)}
.callout .big-num{font-family:'Playfair Display',serif;font-style:italic;font-size:24px;color:var(--olive-dark);display:block;margin-top:4px}
.foot{text-align:center;color:var(--gray);font-size:11px;padding:24px;border-top:1px solid var(--sand-light)}
.print-tip{max-width:860px;margin:0 auto 16px;background:#fff3cd;color:#856404;padding:10px 16px;border-radius:8px;font-size:13px;text-align:center}
@media print{body{background:#fff;padding:0}.page{box-shadow:none;border-radius:0;max-width:none}.print-tip{display:none}}
</style>
</head>
<body>
<div class="print-tip">💡 Para guardar como PDF: Ctrl+P → Destino "Guardar como PDF". (Este aviso no aparece en el PDF)</div>
<div class="page">
<div class="cover">
<div class="logo"><span class="a">art</span> <span class="four">4</span> <span class="a">hotel</span></div>
<h1>Estructura, Hosting y Valor del Sistema</h1>
<div class="sub">Documento para explicar el sistema a socios, inversionistas o proveedores · 2026</div>
</div>
<div class="body">
<h2>1 · Qué es</h2>
<p>Un <strong>ERP a la medida</strong> (sistema de gestión integral) para Art4Hotel. Centraliza en una sola plataforma todo el ciclo del negocio: cotización → producción → bodega → entrega → cobranza, más un catálogo digital y un sitio web público que captura clientes.</p>
<p>Hecho específicamente para el flujo de bolsas/accesorios personalizados — no es un software genérico adaptado, sino uno que "entiende" qué es una bolsa con bordado para un hotel.</p>
<h2>2 · Arquitectura técnica</h2>
<div class="diagram">USUARIOS (Clod, Sandra, Andre, Tess)
Navegador / Celular — acceso privado por VPN
▼ Internet privado (Tailscale VPN)
SERVIDOR (1 máquina pequeña)
┌────────────┐ ┌──────────────┐ ┌──────────────────┐
│ App Python │→ │ Base SQLite │ │ Archivos/fotos │
│ (servidor) │ │ (1 archivo) │ │ (facturas, fotos)│
└────────────┘ └──────────────┘ └──────────────────┘
│ respaldo automático diario (30 días)
▼ sincronización (script)
SITIO WEB PÚBLICO — art4hotel.com (gratis, GitHub)
Catálogo + formulario de cotización → llega al correo</div>
<p><strong>Claves:</strong> stack minimalista (Python + SQLite + JavaScript), <strong>cero dependencias, cero licencias</strong>. Todo el código pesa &lt;1 MB. Privado por VPN; la web pública es una capa separada de solo lectura. Respaldos diarios automáticos.</p>
<h2>3 · Dónde vive — hosting y costo</h2>
<h3>Opción A — Servidor propio (lo de hoy) ✅ inversión única</h3>
<table>
<tr><th>Equipo</th><th>Costo (MXN)</th><th>Notas</th></tr>
<tr><td>Mini PC (Intel N100, 16GB, SSD 500GB)</td><td>$3,500 $5,000</td><td>Recomendado, silencioso</td></tr>
<tr><td>Raspberry Pi 5 (8GB) + kit</td><td>~$3,000</td><td>Alternativa económica</td></tr>
<tr><td>Reusar una PC vieja</td><td>$0</td><td>Funciona perfecto</td></tr>
<tr><td>No-break / UPS</td><td>$800 $1,500</td><td>Protege ante apagones</td></tr>
<tr><td><strong>Total inversión única</strong></td><td><strong>~$4,000 $6,500</strong></td><td>+ ~$50/mes luz</td></tr>
</table>
<h3>Opción B — Nube (VPS rentado) · renta mensual</h3>
<table>
<tr><th>Proveedor</th><th>Plan</th><th>Costo/mes (MXN)</th></tr>
<tr><td>Hetzner</td><td>2 CPU / 4GB</td><td>~$90</td></tr>
<tr><td>DigitalOcean</td><td>Básico</td><td>~$110</td></tr>
<tr><td>Vultr / Linode</td><td>Similar</td><td>$100 $150</td></tr>
</table>
<p>Sitio web público art4hotel.com: <strong>gratis</strong> (GitHub Pages, SSL incluido). Solo el dominio ~$200/año.</p>
<div class="callout">Hoy operamos con <strong>servidor propio (~$5,000 una vez)</strong>. Migrar a nube costaría ~$100150/mes. La web es gratis.</div>
<h2>4 · Qué incluye el sistema</h2>
<div class="diagram">ART4HOTEL HUB
├── 🛠 OPERACIONES — kanban de producción
├── 💼 VENTAS — Dashboard (KPIs, comparativos) · Por OC · Por Entregas
├── 👥 CLIENTES — CRM con historial y condiciones
├── 📝 PROPUESTAS — cotizador → convierte a Orden + Pedidos
├── 📚 CATÁLOGOS — generador PDF con marca + storytelling
├── 📦 PRODUCTOS — catálogo unificado (fuente única)
├── 📁 ARCHIVOS — facturas/fotos con nombres inteligentes
├── 🌐 SITIO WEB — landing + catálogo + captura de leads
└── ❓ MANUAL integrado · 🛡 Respaldos automáticos</div>
<p><strong>Funciones que normalmente cuestan extra en software comercial:</strong> generador de catálogo PDF con tu marca, dashboard de analítica con comparativos, sitio web con captura de leads, conversión automática cotización→producción, curaduría de qué se publica (protegiendo tu cartera de clientes).</p>
<h2>5 · Cuánto costaría hacerlo desde cero</h2>
<table>
<tr><th>Fase</th><th>Tiempo</th></tr>
<tr><td>Levantamiento y diseño</td><td>1 2 semanas</td></tr>
<tr><td>Backend + base de datos + API</td><td>2 3 semanas</td></tr>
<tr><td>Frontend (la app, ~9,000 líneas)</td><td>6 10 semanas</td></tr>
<tr><td>Catálogo PDF + sitio web + sync</td><td>3 4 semanas</td></tr>
<tr><td>Pruebas, despliegue, manual</td><td>1 2 semanas</td></tr>
<tr><td><strong>Total (~400600 horas)</strong></td><td><strong>~3.5 5 meses</strong></td></tr>
</table>
<table>
<tr><th>Perfil</th><th>Tarifa</th><th>Costo del proyecto</th></tr>
<tr><td>Freelancer mid (México)</td><td>$350550 MXN/hr</td><td>$150,000 $330,000 MXN</td></tr>
<tr><td>Freelancer senior (México)</td><td>$6001,000 MXN/hr</td><td>$250,000 $500,000 MXN</td></tr>
<tr><td>Agencia de software (México)</td><td>proyecto fijo</td><td>$250,000 $600,000 MXN</td></tr>
<tr><td>Internacional (USD)</td><td>$3070 USD/hr</td><td>$12,000 $35,000 USD</td></tr>
</table>
<div class="callout big">Rango realista para construirlo profesionalmente desde cero:
<span class="big-num">~$180,000 a $450,000 MXN (≈ $11,000 $27,000 USD) · 3.5 5 meses</span>
</div>
<p><strong>Mantenimiento</strong> si lo hiciera un tercero: $5,000 $15,000 MXN/mes, o ~1520% del costo al año.</p>
<p><strong>Vs. software de renta (SaaS):</strong> uno comparable costaría $3,000 $12,000 MXN/mes y aun así no se adaptaría al flujo de personalización (talleres externos, bodega con/sin orden, catálogo con storytelling).</p>
<h2>6 · Conclusión de valor</h2>
<ul>
<li><strong>Lo que tienes:</strong> un sistema a la medida valuado en <strong>$180k450k MXN</strong> de desarrollo, operando con <strong>~$5,000 de equipo</strong> y <strong>$0 de licencias</strong>.</li>
<li><strong>Sin costo recurrente de software</strong> (vs $36k144k/año de un SaaS).</li>
<li><strong>Datos en tu poder</strong>, adaptado exactamente a cómo trabaja Art4Hotel.</li>
<li><strong>Escalable:</strong> para más usuarios/volumen, migrar a Postgres y nube es trabajo de días, no meses.</li>
</ul>
</div>
<div class="foot">Documento generado 2026 · Las cifras de mercado son estimaciones y varían por proveedor y región.</div>
</div>
</body>
</html>