feat: sitio comercial FSPM con micro CRM interno

Sitio público orientado a venta consultiva e implementación de las
recomendaciones de la auditoría de marca y mercado:

- Inicio con tres rutas (industria, riesgo, cumplimiento) y clasificador
  de riesgo en el héroe, contra el hallazgo de que el visitante tenía que
  inferir qué solución le correspondía.
- Cinco páginas por segmento prioritario y catálogo comparable por clase
  de fuego, capacidad y agente.
- Los claims sin evidencia por modelo quedan aislados y se presentan como
  compromiso de documentación, nunca como característica del producto.
- SEO técnico completo: metadatos por página, sitemap derivado de los
  datos, JSON-LD, iconos y tarjeta social generadas.

Micro CRM:

- Captura por formulario embebido y por widget de WhatsApp que registra
  antes de abrir la conversación.
- Atribución de primer toque que sobrevive a la navegación.
- Deduplicación de contacto; un mismo contacto acumula oportunidades.
- Motor de asignación por reglas con reparto por turno de respaldo.
- Panel con dos roles de alcance distinto, tablero analítico, bitácora,
  pedidos y reglas. No enlazado desde el sitio público y con noindex.

Empaquetado en Docker multietapa con la base de demostración horneada en
la imagen y el volumen de datos separado, para que los leads capturados
sobrevivan a los redespliegues.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
Uriel Jareth
2026-08-28 00:07:20 -06:00
co-authored by Claude Opus 5
parent 122e06a4bb
commit 01b817d098
649 changed files with 26690 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
# Lo que nunca debe entrar al contexto de construcción.
# Cada línea aquí es menos peso, menos invalidación de caché y menos riesgo de
# hornear un secreto o la base de datos de alguien dentro de la imagen.
# --- dependencias y salidas: se reconstruyen dentro de la imagen ---
node_modules
.next
out
build
dist
*.tsbuildinfo
next-env.d.ts
# --- control de versiones ---
.git
.gitignore
.gitattributes
.github
# --- base de datos: JAMÁS dentro de la imagen ---
# La base vive en el volumen /app/data. Copiar la local metería datos de
# desarrollo en producción y, peor, los volvería el punto de partida.
data
*.db
*.db-journal
*.sqlite
*.sqlite3
# --- entorno: los secretos se pasan al contenedor, no se hornean ---
.env
.env.*
!.env.example
# --- documentación y notas de trabajo ---
# No hacen falta dentro de la imagen; DESPLIEGUE.md se lee en el repositorio.
docs
*.md
# --- editor y sistema operativo ---
.vscode
.idea
.claude
*.swp
*.swo
.DS_Store
Thumbs.db
desktop.ini
# --- el propio empaquetado ---
Dockerfile
.dockerignore
docker-compose.yml
docker-compose.*.yml
# nota: docker-entrypoint.sh NO va aquí. El Dockerfile lo necesita en el
# contexto para copiarlo al contenedor.