Portal FastAPI + 5 endpoints REST para Bootcamp Agentic AI con watsonx Orchestrate (FactorIT). Single container, Coolify-ready. - Landing brandeado FIT con formulario de registro (honeypot anti-bot) - Tokens itsdangerous para descargas (24h expiry) - 5 endpoints API: historical/available procedures, member-insights, schedule, generate-report (Jinja2 + Plotly) - SQLite con upsert-on-email para leads + log de descargas - Admin endpoints (HTTP Basic): leads.json, leads.csv, stats - 23 tests pytest pasando - Dockerfile listo para Coolify con volúmenes persistentes (/app/leads.db, /app/app/data/reports_output, /app/material) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 lines
831 B
HTML
22 lines
831 B
HTML
<!DOCTYPE html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Care Report</title>
|
|
<style>
|
|
body { font-family: 'Inter', system-ui, sans-serif; max-width: 960px; margin: 40px auto; padding: 20px; color: #1A1A1A; }
|
|
h2 { color: #0A1F44; border-bottom: 3px solid #FF7A00; padding-bottom: 8px; }
|
|
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
|
|
th { background: #0A1F44; color: white; padding: 10px; text-align: left; }
|
|
td { padding: 8px; border-bottom: 1px solid #D8DEE5; }
|
|
.eyebrow { color: #00B5D8; font-weight: 700; }
|
|
footer { margin-top: 40px; color: #5A6473; font-size: 13px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header><p class="eyebrow">FACTORIT · FIT</p></header>
|
|
{{ content | safe }}
|
|
<footer>Generado por AskReporting · taller-wox.fitlabs.dev</footer>
|
|
</body>
|
|
</html>
|