Files
balam/_archivado/diagrama-necesidades.html
T
JohannVelazquez 633d05e330 Reorganiza repo como fuente de la verdad + propuesta v1.0 con emisión de facturas
- Estructura nueva: README maestro, bitacora/ (REGISTRO, PENDIENTES, plantillas),
  propuesta/, fuentes/; material superado a _archivado/
- Propuesta v1.0: MVP BIND-first con emisión asistida MXN/USD (dry-run +
  confirmación, timbra PAC de BIND), 112-136 h / $67,200-$81,600 + IVA,
  stack .NET 10 + EF Core + Angular 21 + PostgreSQL 17 sobre Azure
- Bitácora: historial de correos + 2 llamadas (incl. revisión 4-jun) y pendientes
- Prototipo y diagrama actualizados a v1.0; precios de Azure verificados
- Archivo ajeno (proyecto EOS) retirado del repo

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 10:57:27 -06:00

294 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Balam — Qué se necesita para construir la plataforma</title>
<style>
:root{
--bg:#0f172a; --panel:#1e293b; --panel2:#334155;
--ok:#10b981; --warn:#f59e0b; --bad:#ef4444; --info:#3b82f6;
--text:#e2e8f0; --muted:#94a3b8; --accent:#a78bfa;
--border:#475569;
}
*{box-sizing:border-box}
body{
margin:0; padding:32px;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%);
color:var(--text); min-height:100vh;
}
h1{font-size:28px; margin:0 0 4px}
.subtitle{color:var(--muted); margin-bottom:32px; font-size:14px}
.legend{
display:flex; gap:16px; flex-wrap:wrap; margin-bottom:24px;
padding:12px 16px; background:rgba(0,0,0,.25); border-radius:8px;
font-size:13px;
}
.legend-item{display:flex; align-items:center; gap:6px}
.dot{width:12px; height:12px; border-radius:50%}
.dot.ok{background:var(--ok)} .dot.warn{background:var(--warn)}
.dot.bad{background:var(--bad)} .dot.info{background:var(--info)}
.dot.accent{background:var(--accent)}
.grid{
display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px;
margin-bottom:24px;
}
.row{
display:grid; grid-template-columns:1fr 2fr 1fr; gap:24px;
align-items:stretch; margin-bottom:24px;
}
.col{display:flex; flex-direction:column; gap:16px}
.card{
background:var(--panel); border:1px solid var(--border);
border-radius:12px; padding:16px;
box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.card h3{margin:0 0 8px; font-size:14px; display:flex; align-items:center; gap:8px}
.card .badge{
font-size:10px; padding:2px 8px; border-radius:10px;
background:var(--panel2); color:var(--muted); font-weight:600;
text-transform:uppercase; letter-spacing:.5px;
}
.badge.ok{background:rgba(16,185,129,.2); color:#6ee7b7}
.badge.warn{background:rgba(245,158,11,.2); color:#fcd34d}
.badge.bad{background:rgba(239,68,68,.2); color:#fca5a5}
.badge.info{background:rgba(59,130,246,.2); color:#93c5fd}
.badge.accent{background:rgba(167,139,250,.2); color:#c4b5fd}
.card ul{margin:6px 0 0; padding-left:18px; font-size:12px; color:var(--muted)}
.card li{margin:3px 0; line-height:1.4}
.section-title{
font-size:11px; font-weight:700; text-transform:uppercase;
letter-spacing:1.5px; color:var(--muted); margin:32px 0 12px;
padding-bottom:8px; border-bottom:1px solid var(--border);
}
.core-card{
background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 100%);
border:2px solid var(--accent);
text-align:center; padding:24px;
}
.core-card h2{margin:0 0 8px; font-size:18px}
.core-card p{margin:0; font-size:13px; color:#ddd6fe}
.arrow{
display:flex; align-items:center; justify-content:center;
font-size:24px; color:var(--accent);
}
.checklist{
background:rgba(0,0,0,.3); border-left:4px solid var(--warn);
padding:16px 20px; border-radius:8px; margin-top:16px;
}
.checklist h3{margin:0 0 12px; font-size:14px; color:var(--warn)}
.checklist ol{margin:0; padding-left:20px; font-size:13px; line-height:1.7}
.checklist li strong{color:#fcd34d}
.footer-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px}
.footer-card{background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:16px}
.footer-card h4{margin:0 0 8px; font-size:13px}
.footer-card p, .footer-card ul{font-size:12px; color:var(--muted); margin:0; line-height:1.5}
.footer-card ul{padding-left:18px}
.pill{
display:inline-block; padding:2px 8px; border-radius:6px;
background:var(--panel2); font-size:11px; margin-right:4px;
}
@media (max-width:900px){
.grid,.row{grid-template-columns:1fr}
.arrow{transform:rotate(90deg)}
}
</style>
</head>
<body>
<h1>Balam · Plataforma de Automatización Financiera</h1>
<div class="subtitle">¿Qué se necesita para construirla? — vista de un solo vistazo</div>
<div class="legend">
<div class="legend-item"><span class="dot ok"></span> Ya existe / disponible</div>
<div class="legend-item"><span class="dot warn"></span> Por confirmar con Balam</div>
<div class="legend-item"><span class="dot bad"></span> Bloqueador si falta</div>
<div class="legend-item"><span class="dot info"></span> Lo construyo yo</div>
<div class="legend-item"><span class="dot accent"></span> Servicio externo (costo Balam)</div>
</div>
<!-- ============ FILA 1: FUENTES DE DATOS ============ -->
<div class="section-title">1 · Fuentes de datos (de dónde sale la información)</div>
<div class="grid">
<div class="card">
<h3>BIND ERP <span class="badge ok">API confirmada</span></h3>
<ul>
<li>Facturas, clientes, catálogo</li>
<li>Timbrado CFDI con PAC integrado</li>
<li>Límite 20K req/día (suficiente)</li>
<li><strong>Falta confirmar:</strong> sandbox, webhooks, endpoints de escritura</li>
</ul>
</div>
<div class="card">
<h3>3 Bancos (PDFs) <span class="badge warn">Solo PDF hoy</span></h3>
<ul>
<li>2 bancos MX (Banorte + Intercam?)</li>
<li>1 banco US: IBC Bank Texas</li>
<li>Sin API en MVP, sin sandbox</li>
<li><strong>Falta:</strong> muestras reales anonimizadas</li>
</ul>
</div>
<div class="card">
<h3>BUK / Jira <span class="badge bad">Diferido Fase 2</span></h3>
<ul>
<li>Nómina (BUK) y horas (Jira)</li>
<li>BUK: servicio problemático, API por confirmar</li>
<li>NO entran en MVP</li>
<li>Habilitan flujo end-to-end más adelante</li>
</ul>
</div>
</div>
<!-- ============ FILA 2: LA PLATAFORMA ============ -->
<div class="section-title">2 · La plataforma que construyo (capa sobre BIND, no reemplazo)</div>
<div class="card core-card">
<h2>⚙️ Plataforma de Operaciones Financieras</h2>
<p>Orquesta el flujo entre BIND, bancos y el equipo · No emite CFDI · No reemplaza contabilidad</p>
</div>
<div class="grid" style="margin-top:16px">
<div class="card">
<h3>📥 Ingesta &amp; Sync <span class="badge info">Construir</span></h3>
<ul>
<li>Conector BIND API (lectura)</li>
<li>Upload de PDFs bancarios</li>
<li>Parser IA (Claude) para PDFs</li>
<li>Validación de totales</li>
</ul>
</div>
<div class="card">
<h3>🔁 Motor de negocio <span class="badge info">Construir</span></h3>
<ul>
<li>Conciliación pagos ↔ facturas</li>
<li>Cobranza con lista blanca dura</li>
<li>Templates de correo + recordatorios</li>
<li>Audit log universal</li>
</ul>
</div>
<div class="card">
<h3>📊 UI &amp; Reportes <span class="badge info">Construir</span></h3>
<ul>
<li>Dashboard CxC / vencidas / próximas</li>
<li>RBAC: Finanzas / Dirección / Ops</li>
<li>Export Excel para BIND</li>
<li>Multimoneda MXN + USD (TC DOF)</li>
</ul>
</div>
</div>
<!-- ============ FILA 3: SERVICIOS EXTERNOS ============ -->
<div class="section-title">3 · Servicios externos (Balam los paga directo)</div>
<div class="grid">
<div class="card">
<h3>☁️ Azure <span class="badge accent">$45$140 USD/mes</span></h3>
<ul>
<li>App Service + worker</li>
<li>PostgreSQL administrado</li>
<li>Blob Storage para PDFs</li>
<li><strong>Falta:</strong> ¿subscripción existe?</li>
</ul>
</div>
<div class="card">
<h3>🤖 Claude API <span class="badge accent">$5$20 USD/mes</span></h3>
<ul>
<li>Parsing de PDFs bancarios</li>
<li>Sin entrenamiento sobre datos del cliente</li>
<li>Costo por página procesada</li>
</ul>
</div>
<div class="card">
<h3>💳 Stripe MX <span class="badge accent">% por transacción</span></h3>
<ul>
<li>Solo si confirman pago con link</li>
<li>RFC + CLABE + rep. legal requeridos</li>
<li><strong>Falta confirmar:</strong> ¿lo quieren?</li>
</ul>
</div>
</div>
<!-- ============ FILA 4: LO QUE NECESITO DE BALAM ============ -->
<div class="section-title">4 · Lo que Balam debe entregar antes / durante Fase 0</div>
<div class="grid">
<div class="card">
<h3>👥 Personas <span class="badge warn">Por nombrar</span></h3>
<ul>
<li>1 contacto técnico (día a día)</li>
<li>1 gerente administrativo (reglas)</li>
<li>Admin de BIND para resolver dudas</li>
<li>SLA respuesta &lt;48 h en bloqueadores</li>
</ul>
</div>
<div class="card">
<h3>🔑 Accesos <span class="badge warn">Crítico</span></h3>
<ul>
<li>API Key de BIND (o gestionarlo)</li>
<li>Subscripción Azure</li>
<li>Acceso a portal IBC para descarga PDFs</li>
<li>Cuenta Stripe MX (si aplica)</li>
</ul>
</div>
<div class="card">
<h3>📄 Datos &amp; reglas <span class="badge warn">Inicio Fase 0</span></h3>
<ul>
<li>3 PDFs reales (1 por banco) anonimizados</li>
<li>Lista blanca: ACUNTIA + Top 3 con nombres legales</li>
<li>Manual de marca</li>
<li>NDA (suyo o mío)</li>
<li>Ciclo de cobranza actual (días, escalación)</li>
</ul>
</div>
</div>
<!-- ============ DECISIÓN PENDIENTE ============ -->
<div class="checklist">
<h3>⚠️ Decisión pendiente del CTO antes de cotizar firme</h3>
<ol>
<li><strong>Alcance del MVP:</strong> ¿Opción A "BIND-first" (34 semanas, ~$3645K MXN) o Opción B "MVP completo con conciliación bancaria" (6 semanas, ~$6684K MXN)?</li>
<li><strong>BIND API:</strong> sandbox disponible (aunque sea pagado), webhooks expuestos, endpoints de escritura (registrar pagos / asientos).</li>
<li><strong>Pago con link Stripe:</strong> ¿es requerimiento real o se difiere a Fase 2?</li>
<li><strong>Operación:</strong> nombres de contacto técnico y gerente administrativo + cuenta Azure.</li>
</ol>
</div>
<!-- ============ FOOTER: PARÁMETROS ============ -->
<div class="footer-grid">
<div class="footer-card">
<h4>💰 Modelo comercial</h4>
<ul>
<li><span class="pill">600 MXN/h</span> + IVA, facturación semanal</li>
<li>Time &amp; Materials con soft cap por fase</li>
<li>Pago a 7 días, anticipo de 30 h Fase 0</li>
<li>Dedicación medio tiempo (~20 h/semana)</li>
</ul>
</div>
<div class="footer-card">
<h4>⏱️ Tiempo &amp; entrega</h4>
<ul>
<li>MVP B completo: 6 semanas esfuerzo · 8 semanas calendario</li>
<li>MVP A BIND-first: 34 semanas esfuerzo</li>
<li>Soporte post-launch: 2 semanas incluidas</li>
<li>Demo semanal viernes + standup async 2-3/sem</li>
</ul>
</div>
</div>
</body>
</html>