¿Qué es DOE Lab?
DOE Lab es una aplicación web que te permite hacer análisis estadísticos de Diseño de Experimentos sin escribir código. Solo subes tu archivo CSV con datos y la app hace todo el trabajo: análisis, gráficas, interpretación y reporte en PDF.
Además incluye un chatbot con IA 🤖 que te puede ayudar a interpretar los resultados (usando Gemini de Google).
Antes de empezar
- Una cuenta de Replit (gratuita) — Crear cuenta aquí
- El archivo ZIP que te compartió tu profesor (contiene toda la app)
- Un navegador web actualizado (Chrome, Firefox, Safari o Edge)
- Opcional: Una API key de Gemini para el chatbot — Obtenerla gratis aquí
Paso 1 — Importar el proyecto en Replit
⏱ ~3 minutos- Ve a replit.com
- Inicia sesión con tu cuenta (o créala si aún no tienes)
- Llegarás a tu página de inicio (Home)
- Haz clic en el botón azul "+ Create Repl" (arriba a la izquierda o en el centro)
- En "Template", selecciona Python
- En "Title", escribe:
DOE-Lab-A0XXXXXXX— reemplazaA0XXXXXXXcon tu matrícula (ej.DOE-Lab-A01234567). Esto hace que tu URL incluya tu matrícula al publicar. - Haz clic en "+ Create Repl"
- Descomprime el archivo ZIP en tu computadora (doble clic en Mac, clic derecho → Extraer en Windows)
- En Replit, mira el panel de archivos a la izquierda
- Primero, elimina el archivo
main.pyque Replit creó automáticamente:- Clic derecho sobre
main.py→ Delete
- Clic derecho sobre
- Ahora, haz clic en los tres puntos (⋮) en la parte superior del panel de archivos
- Selecciona "Upload folder"
- Navega hasta la carpeta descomprimida (
doe-lab-replit) y selecciónala
app.py, requirements.txt, etc. deben quedar en la raíz de tu Repl, no dentro de una subcarpeta.
Tu panel de archivos debe verse así:
📁 Tu Repl ├── 📄 app.py ← Este es el más importante ├── 📄 config.py ├── 📄 modules.json ├── 📄 requirements.txt ├── 📄 .replit ├── 📄 activate.py ├── 📄 README.md ├── 📁 chatbot/ ├── 📁 modules/ ├── 📁 static/ ├── 📁 templates/ ├── 📁 logs/ ├── 📁 uploads/ └── 📁 outputs/
doe-lab-replit/?Si ves algo como
doe-lab-replit/app.py en lugar de solo app.py, necesitas moverlos a la raíz. Haz clic en cada archivo → "Move" o arrastra los archivos fuera de la subcarpeta. El archivo app.py DEBE estar en la raíz.
Paso 2 — Configurar el Chatbot (opcional pero recomendado)
⏱ ~2 minutos- Ve a aistudio.google.com/apikey
- Inicia sesión con tu cuenta de Google
- Haz clic en "Create API Key"
- Selecciona cualquier proyecto (o crea uno nuevo)
- Copia la API key — es un texto largo que empieza con
AIza...
- En Replit, busca el ícono de 🔒 "Secrets" en el panel izquierdo (o en el menú Tools)
- Haz clic en "+ New Secret"
- En Key, escribe exactamente:
GEMINI_API_KEY - En Value, pega tu API key (el texto
AIza...) - Haz clic en "Add Secret"
GEMINI_API_KEY — en mayúsculas, con guiones bajos. Si lo escribes diferente, el chatbot no funcionará.
Paso 3 — ¡Ejecutar la app!
⏱ ~1 minuto (primera vez ~2-3 min)- Haz clic en el botón verde "Run ▶️" en la parte superior
- La primera vez tardará 2-3 minutos porque Replit instala las dependencias (pandas, scipy, matplotlib, etc.)
- Verás mensajes en la consola (panel inferior). Espera hasta ver:
============================================================
🔬 DOE Lab — Q2003B Design of Experiments
============================================================
🌐 URL: http://0.0.0.0:5000
📦 Módulos habilitados:
✅ ANOVA Básico
✅ ANOVA Completo
...
============================================================
- Cuando aparezca ese mensaje, la app está lista. Ahora abre la pestaña "Webview" (también puede llamarse "Output" o "Browser") para verla:
- Busca las pestañas en la parte superior del panel derecho (o inferior)
- Si no la ves, haz clic en el ícono de monitor 🖥️ o busca el botón "Open Webview"
- También puedes ir al menú Tools → Webview
Paso 4 — Cómo usar DOE Lab
🏠 Pantalla de inicio
Al abrir la app verás las tarjetas de módulos disponibles. Cada tarjeta tiene:
- Nombre y descripción del análisis
- Badge de estado (✅ Listo o 🔒 Próximamente)
- Haz clic en cualquier tarjeta para ir a ese módulo
📊 Hacer un análisis (ejemplo: ANOVA Básico)
Haz clic en "ANOVA Básico" en el menú de la izquierda o en la tarjeta del dashboard.
- Haz clic en "Seleccionar archivo CSV" o arrastra tu archivo al área de carga
- Tu CSV debe tener al menos dos columnas:
factor— el grupo o tratamiento (texto)respuesta— el valor medido (número)
- Verás una vista previa de tus datos si la carga fue exitosa
static/ejemplos/.
,) o punto y coma (;) como separador. ¡Ambos funcionan!
- Haz clic en "Analizar"
- Espera unos segundos — la app procesa tus datos
- Verás los resultados: estadísticos, tabla ANOVA, gráficas y la interpretación
- Después de ver los resultados, haz clic en "Descargar Reporte PDF"
- Se descarga un PDF con todos los resultados, tablas y gráficas
- Puedes usar este PDF para tu entrega o como referencia
🤖 Chatbot de IA
El panel derecho tiene un chatbot con Gemini que te puede ayudar:
- Usa las preguntas sugeridas que aparecen según el módulo activo
- Pregúntale cosas como: "¿Qué significa el p-valor?" o "¿Debo hacer post-hoc?"
- El chatbot conoce el contexto de tu análisis actual (módulo, datos, resultados)
- Puedes editar el prompt del sistema haciendo clic en ⚙️ (para personalizar cómo responde)
Paso 5 — Publicar y compartir tu proyecto
⏱ ~2 minutosAntes de publicar, asegúrate de que la app está activa: haz clic en Run ▶️ si no lo has hecho. Debes ver el mensaje de inicio en la consola.
- En la barra superior de Replit, busca el botón Deploy (a veces aparece como ☁️ o con un ícono de cohete 🚀)
- Haz clic en Deploy
- Selecciona la opción Autoscale o Static — para esta app usa Autoscale
- Haz clic en Deploy nuevamente para confirmar
- Espera ~1 minuto mientras Replit construye y despliega tu app
- Cuando termine el deploy, Replit te mostrará tu URL pública. Tiene este formato:
https://DOE-Lab-A01234567.tuusuario.repl.co - Copia esa URL — verás que incluye el nombre del proyecto (
DOE-Lab-TuMatricula) que pusiste al crearlo - Pega esa URL en el formulario de registro de la Tab S5 en el sitio del curso:
- Ve a doe-recursos.jorgeeduai.com → Tab S5
- Llena tu matrícula, nombre y pega la URL
- Haz clic en Registrar
- Abre la URL en una pestaña nueva (o en tu celular)
- Deberías ver la pantalla de inicio de DOE Lab
- Si funciona — ¡listo! Comparte esa URL con el profesor
El deploy puede tardar unos minutos extra la primera vez. Espera 2-3 minutos y recarga la página. Si persiste, regresa al editor de Replit y haz clic en Run ▶️ nuevamente, luego vuelve a intentar el deploy.
📋 Formato de archivos CSV
Para ANOVA (Básico, Completo, Pipeline)
Dos columnas: factor y respuesta
factor,respuesta NP-10nm,12.5 NP-10nm,13.2 NP-50nm,8.1 NP-50nm,7.9 NP-100nm,4.3 NP-100nm,5.1
Para Factorial 2k
Una columna por factor + columna respuesta
temperatura,presion,respuesta 50,1,12.3 50,1,11.8 50,3,15.6 100,1,18.2 100,3,22.1
Para Fraccionado 2k-p
Mismo formato que factorial (múltiples factores + respuesta)
temperatura,concentracion,tiempo,pH,respuesta 50,0.1,30,5,72.3 50,0.1,60,9,68.1 100,0.5,30,9,81.5 100,0.5,60,5,77.2
- La primera fila siempre son los nombres de las columnas
- Los nombres de columnas deben ser sin espacios (usa guion bajo:
mi_factor) - Los valores numéricos usan punto decimal (12.5, no 12,5)
- No dejes filas vacías al final
🔧 Solución de Problemas
❌ Replit no encuentra el archivo al hacer Run (error con ".main")
Replit intenta correr un archivo llamado .main que no existe. Hay que indicarle que use app.py. Para eso necesitas editar el archivo .replit:
- Busca el archivo
.repliten el panel de archivos (izquierda)- Si no lo ves, los archivos ocultos no están activados — búscalo en las pestañas superiores del editor (arriba, junto a los archivos que tienes abiertos)
- También puedes ir a Tools → Config files para que aparezca
- Abre el archivo
.replit - Busca la línea que dice
entrypoint = ".main" - Cámbiala por:
entrypoint = "app.py" - Guarda el archivo (Ctrl+S o Cmd+S)
- Haz clic en Run ▶️ de nuevo
.replit, .gitignore), son archivos ocultos. En Replit puedes mostrarlos con el botón de los tres puntos ⋯ en el panel de archivos → "Show hidden files".
❌ "ModuleNotFoundError: No module named 'flask'"
Replit no instaló las dependencias. Solución:
- En la consola (Shell), escribe:
pip install -r requirements.txt - Espera a que termine la instalación
- Haz clic en Run ▶️ de nuevo
❌ Los archivos quedaron dentro de una subcarpeta
Si ves doe-lab-replit/app.py en vez de solo app.py:
- Abre la carpeta
doe-lab-repliten el panel de archivos - Selecciona todos los archivos (Ctrl+A o Cmd+A)
- Arrástralos a la raíz del proyecto (fuera de la carpeta)
- Elimina la carpeta vacía
doe-lab-replit - Haz clic en Run ▶️
❌ "Address already in use" (Puerto ocupado)
El servidor anterior no se cerró bien. Solución:
- En la consola, escribe:
kill 1y presiona Enter - Espera 2 segundos
- Haz clic en Run ▶️ de nuevo
❌ El chatbot dice "API key no configurada"
No has configurado la API key de Gemini, o el nombre es incorrecto.
- Ve a Tools → Secrets
- Verifica que exista un secret con el nombre exacto
GEMINI_API_KEY - Si no existe, créalo siguiendo el Paso 2 de esta guía
- Después de agregar el secret, detén y vuelve a ejecutar la app (Stop → Run)
❌ "Error al procesar el archivo" al subir CSV
Tu archivo puede tener un formato incorrecto. Verifica:
- ¿Tu archivo es realmente un CSV? (no un .xlsx de Excel)
- ¿La primera fila tiene los nombres de las columnas?
- ¿Los números usan punto decimal? (12.5, no 12,5)
- ¿No hay filas completamente vacías?
Tip: Prueba primero con un archivo de ejemplo (están en la carpeta static/ejemplos/) para verificar que la app funciona bien.
❌ La app se ve rara / no carga estilos
Posibles soluciones:
- Haz hard refresh: Ctrl+Shift+R (Windows) o Cmd+Shift+R (Mac)
- Abre la app en una nueva pestaña (botón ↗️ en el Webview)
- Verifica que la carpeta
static/esté en la raíz del proyecto
❌ Replit dice "This Repl is out of resources"
El plan gratuito de Replit tiene límites. Si te sale este error:
- Espera unos minutos e intenta de nuevo
- Cierra otras pestañas de Replit que tengas abiertas
- Si persiste, puedes crear un Repl nuevo e importar los archivos de nuevo
💡 ¿Cómo exporto un CSV desde Excel?
- En Excel, ve a Archivo → Guardar como
- En el tipo de archivo, selecciona "CSV UTF-8 (delimitado por comas)"
- Si tu Excel está en español y solo te da opción de "CSV (delimitado por comas)" — eso también funciona, la app detecta el separador automáticamente
- Guarda el archivo y úsalo en DOE Lab
📚 Extras
Archivos de ejemplo incluidos
Dentro de static/ejemplos/ encontrarás 5 archivos CSV listos para probar:
ejemplo_anova_basico.csv— 3 grupos de nanopartículas, 45 observacionesejemplo_anova_completo.csv— 3 solventes, 40 observacionesejemplo_pipeline.csv— 3 catalizadores, 30 observacionesejemplo_factorial_2x2.csv— Temperatura × Presión, 12 runsejemplo_fraccionado.csv— 4 factores, 8 runs
Personalizar el chatbot
Puedes editar el archivo chatbot/prompt_system.txt para cambiar cómo se comporta el asistente de IA. Por ejemplo, puedes pedirle que:
- Responda siempre en español
- Explique como si fueras nuevo en estadística
- Se enfoque en interpretación práctica y no en fórmulas