🎨 Lab 03: Bootstrap Dashboard - Tu Centro de Comando¶
Escenario de Misión
Eres el Dashboard Architect de Atlantyqa. Tienes datos procesados y ahora debes crear un centro de comando visual donde los analistas puedan explorar insights sin tocar una línea de código. Tu misión: levantar un dashboard operativo en menos de 5 minutos.
1. 🗺️ Mapa de Arquitectura¶
Visualiza cómo los componentes se conectan.
graph TD
User[👤 Analista] -->|Browser| UI[📊 Streamlit UI]
UI -->|Lee| Insights[📂 outputs/insights/]
UI -->|Verifica| Auth[🔐 Token Auth]
Insights -->|Renderiza| Charts[📈 Gráficos]
style User fill:#e7ae4c,stroke:#333,stroke-width:2px,color:#fff
style UI fill:#37a880,stroke:#333,stroke-width:2px,color:#fff
style Insights fill:#f1f5f9,stroke:#333,stroke-width:2px,color:#182232
style Auth fill:#e0e7ff,stroke:#333,stroke-width:2px,color:#182232
style Charts fill:#f1f5f9,stroke:#182232,stroke-width:2px,color:#182232
2. ⚔️ Ejecución de la Misión¶
Sigue los pasos para levantar tu dashboard.
Si no tienes datos del Lab 01/02, genera datos de demostración.
Verificación: Confirma que existe outputs/insights/analysis.json
Para modo desarrollo, no necesitas autenticación. Para producción:
Ejecuta Streamlit y abre el navegador.
Acceso: Abre tu navegador en http://localhost:8501
Deberías ver: * 📊 Gráfico de entidades detectadas * 📈 Timeline de eventos * 🚨 Alertas de riesgo (si las hay) * 📄 Resumen ejecutivo
Edita frontend/streamlit_app.py para añadir tu propio widget.
import streamlit as st
import json
# Cargar datos
with open('outputs/insights/analysis.json') as f:
data = json.load(f)
# Tu widget personalizado
st.subheader("🎯 Mi Métrica Custom")
st.metric("Total Entidades", len(data.get('entities', [])))
Hot Reload: Streamlit recarga automáticamente al guardar cambios.
3. 📸 Evidencia de Cumplimiento¶
Para reclamar tu recompensa (75 XP), debes presentar pruebas.
Checklist de Entrega¶
- [ ] Screenshot del Dashboard: Captura mostrando el dashboard funcionando.
- [ ] Widget Personalizado: Código de al menos 1 widget que añadiste.
- [ ] URL de Acceso: Confirma que funciona en
localhost:8501 - [ ] Logs de Streamlit: Captura del terminal mostrando "You can now view your Streamlit app"
📝 Template para tu Pull Request
## 🎨 Lab 03 Misión Completada
- **Dashboard URL:** http://localhost:8501
- **Widgets Añadidos:** [Describir widgets personalizados]
- **Datos Visualizados:** ✅ Sí
- **Modo:** Desarrollo Local
Screenshots adjuntos en /evidence folder.
4. 🎨 Mejoras Opcionales (Bonus XP)¶
¿Quieres destacar? Implementa estas mejoras:
🌙 Modo Oscuro
Añade un toggle para cambiar entre tema claro y oscuro.
Bonus: +10 XP
📥 Exportar PDF
Botón para exportar el dashboard como PDF.
Bonus: +15 XP
🔔 Alertas en Tiempo Real
Sistema de notificaciones para nuevos análisis.
Bonus: +20 XP
🆘 Problemas Comunes¶
Streamlit no arranca
- ¿Instalaste Streamlit?
pip install streamlit - ¿El puerto 8501 está ocupado? Usa
--server.port 8502
No veo datos en el dashboard
- Verifica que
outputs/insights/analysis.jsonexiste - Revisa la ruta en el código: debe apuntar a
outputs/insights/
🎯 Siguiente Nivel¶
Has creado tu centro de comando visual. ¡Felicidades!