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>
69 lines
3.5 KiB
Markdown
69 lines
3.5 KiB
Markdown
# Art4Hotel — Sitio web público (art4hotel.com)
|
|
|
|
Landing pública que se alimenta del Hub. Captura leads y presenta productos.
|
|
Última actualización: 2026-05-31
|
|
|
|
## Infraestructura
|
|
- **Repo**: `github.com/Claudeandrefg/art4hotel` (rama `main`)
|
|
- **Hosting**: GitHub Pages → `art4hotel.com` (apex) + `www.art4hotel.com`
|
|
- **SSL**: Let's Encrypt automático (GitHub Pages). DNS gestionado en **Wix**.
|
|
- Apex: 4 A records a GitHub Pages `185.199.108-111.153`
|
|
- `www` CNAME → `claudeandrefg.github.io`
|
|
- ⚠️ Wix NO deja cambiar nameservers (bloqueados a wixdns) → no se pudo migrar a Cloudflare sin transferir el dominio
|
|
- **Carpeta local**: `C:\Users\claud\Documents\Claude\Art 4 Hotel\Pagina Web\art4hotel\`
|
|
|
|
## Estructura del sitio
|
|
- `index.html` — landing (hero, trust strip, grid productos, proceso, wizard de cotización)
|
|
- `gracias.html` — página post-envío del formulario
|
|
- `productos.json` — datos de productos (generado por el sync)
|
|
- `Recursos/catalogo/` — fotos comprimidas (generadas por el sync)
|
|
- `Recursos/` — logos SVG, favicons, imágenes de marca
|
|
- `sync_catalogo.py` — script de sincronización Hub → sitio
|
|
|
|
## Formulario de leads
|
|
- Wizard de 4 pasos (negocio → productos → detalles → contacto)
|
|
- Enviado vía **FormSubmit** a `ventas@art4hotel.com` (sin API key, ya activado)
|
|
- Campos con `name=` legibles → llegan estructurados al correo
|
|
- `_next` redirige a `gracias.html`
|
|
|
|
## Catálogo dinámico Hub → Web
|
|
Flujo:
|
|
```
|
|
HUB sync_catalogo.py SITIO (GitHub Pages)
|
|
producto 🌐 mostrar_en_web descarga + comprime fotos grid de productos base
|
|
ejemplo 🌐 web_ejemplo (7MB → ~80KB, Pillow) ↓ click
|
|
+ web_etiqueta (zona) genera productos.json modal storytelling
|
|
git commit + push "Así se ve personalizado"
|
|
```
|
|
|
|
### Correr el sync
|
|
```
|
|
cd "C:\Users\claud\Documents\Claude\Art 4 Hotel\Pagina Web\art4hotel"
|
|
python sync_catalogo.py # descarga + JSON + commit + push (publica)
|
|
python sync_catalogo.py --no-push # solo local (para revisar antes)
|
|
```
|
|
Requiere estar en la red del Hub (192.168.50.46). Usa Pillow para comprimir.
|
|
|
|
### Qué publica
|
|
- Productos con `mostrar_en_web=1` Y con foto
|
|
- Por producto: nombre, descripcion_web, categoria, personalizaciones (tipos_trabajo), foto base, y **ejemplos** (pedidos con `web_ejemplo=1`)
|
|
- Ejemplos: foto + técnica + **web_etiqueta** (zona pública, NUNCA el cliente real → privacidad)
|
|
|
|
## Diseño / storytelling
|
|
- Grid de productos base; cards con foto + badge de ejemplos
|
|
- Click → modal: foto base + descripción + personalizaciones + galería "Así se ve personalizado" (ejemplos grandes, `object-fit:contain` para no recortar)
|
|
- Branding A4H (Outfit + Playfair + olive/sand/cream), responsive
|
|
|
|
## Workflow de desarrollo del sitio (preview local)
|
|
1. Servidor local: `python -m http.server 8899` en la carpeta del repo → `http://localhost:8899`
|
|
2. Editar `index.html` local → refrescar localhost (cambio instantáneo)
|
|
3. Cuando esté listo: `git add . && git commit && git push` → GitHub Pages publica en ~1 min
|
|
4. Nota: la extensión Claude-in-Chrome NO puede navegar a localhost ni art4hotel.com (dominios restringidos); el preview lo ve el usuario en su navegador.
|
|
|
|
## Pendientes web
|
|
- Filtros por uso (boda/empresa/tienda/hotel) — requiere atributo "uso" en producto
|
|
- Secciones por tipo de producto
|
|
- Foto base del modal recorta en cuadrado (hacer sin recorte)
|
|
- Analytics (Cloudflare Web Analytics o GA)
|
|
- Más productos curados + etiquetas de zona en ejemplos
|