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:
111
README.md
Normal file
111
README.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# 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.*
|
||||
Reference in New Issue
Block a user