633d05e330
- 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>
294 lines
10 KiB
HTML
294 lines
10 KiB
HTML
<!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 & 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 & 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 <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 & 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" (3–4 semanas, ~$36–45K MXN) o Opción B "MVP completo con conciliación bancaria" (6 semanas, ~$66–84K 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 & 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 & entrega</h4>
|
||
<ul>
|
||
<li>MVP B completo: 6 semanas esfuerzo · 8 semanas calendario</li>
|
||
<li>MVP A BIND-first: 3–4 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>
|