📘 GUÍA DE PROMPTS PARA EL PROYECTO FINAL: RUTA B (INGENIERÍA AGROINDUSTRIAL Y AGRÍCOLA)

Objetivo del proyecto: Desarrollar, versionar y desplegar una aplicación web multipágina en Streamlit que automatice los cálculos de balance de masa (Semana 12) y balances termodinámicos/flujo de aire (Semana 13) para el dimensionamiento preliminar de secadores solares.

Instrucciones de uso para el estudiante: Copia y pega cada Prompt en el orden indicado. Espera la respuesta del IA, implementa el código en tu entorno local, prueba que funcione y, una vez validado, pasa al siguiente prompt. Si aparece un error, copia el traceback completo y pide al IA que lo corrija antes de continuar.


🔧 FASE 0: Configuración del Entorno de Desarrollo

(Descargas, instalación y preparación de VSCode)

Prompt 0.1:

Actúa como un Ingeniero de Software Senior y mentor técnico. Soy estudiante de Ingeniería Agroindustrial y necesito configurar mi equipo Windows/macOS desde cero para desarrollar una app en Streamlit. Guíame paso a paso para: 1) Instalar Python 3.10+ (marcando la opción de agregar al PATH). 2) Instalar VSCode y las extensiones obligatorias: Python, Pylance, GitLens, y Streamlit. 3) Instalar Git y configurar mi identidad de usuario y correo en la terminal. 4) Verificar cada instalación con los comandos exactos. Entregame solo los pasos claros, sin información redundante.


📁 FASE 1: Estructura del Proyecto y Control de Versiones

(Repositorio, archivos base y organización multipágina)

Prompt 1.1: Voy a crear un repositorio local llamado “SecadorSolar_Agro”. Guíame con los comandos exactos de terminal para: 1) Crear la carpeta del proyecto y entrar a ella. 2) Inicializar Git y vincularlo a un nuevo repositorio remoto en GitHub (déjame el placeholder para la URL). 3) Crear la estructura de archivos y carpetas requerida por Streamlit multipágina: app.py, requirements.txt, .gitignore (optimizado para Python y VSCode), README.md, y una carpeta pages/ con dos archivos vacíos: 1_Calculo_Humedad.py y 2_Balance_Termodinamico.py. 4) Hacer el primer commit inicial y subirlo a GitHub. Dame los comandos uno por uno con explicación breve.


⚙️ FASE 2: Backend (Lógica Termodinámica y de Masa)

(Módulo Python reutilizable con las fórmulas de las semanas 12 y 13)

Prompt 2.1:

Actúa como un Ingeniero Agroindustrial experto en operaciones unitarias y Python. Necesito crear un archivo llamado backend_secado.py que contenga las funciones matemáticas para mi proyecto. Genera el código completo con type hints, docstrings y validaciones de entrada para:

  1. humedad_base_humedada(masa_agua: float, masa_seca: float) -> float
  1. humedad_base_seca(masa_agua: float, masa_seca: float) -> float
  1. agua_a_evaporar(masa_inicial: float, humedad_inicial: float, humedad_final: float) -> float (usa la fórmula: m_w = m_i * ((M_i - M_f)/(100 - M_f))). Retorna un error si M_final >= M_inicial.
  1. energia_requerida(masa_agua_kg: float) -> float (usa L_v = 2260 kJ/kg).
  1. calcular_caudal_aire(energia_Q: float, temp_ambiente: float, temp_colector: float) -> dict (calcula masa y volumen de aire usando C_pa=1.006 kJ/kg°C y ρ_a=1.2 kg/m³. Retorna un diccionario con ‘volumen_m3’, ‘masa_kg’ y ‘tipo_conveccion’ (NATURAL si V≤10000, FORZADA si V>10000). Maneja el caso donde T_colector <= T_ambiente.

Incluye un bloque if name == “main”: con un caso de prueba (200 kg de ñame, 70%→12% humedad, T_amb=30°C, T_col=60°C) y muestra los resultados formateados.


🖥️ FASE 3: Frontend Multipágina en Streamlit

(Interfaz gráfica, navegación y visualización técnica)

Prompt 3.1 (Página Principal):

Ahora programemos app.py. Crea una página de bienvenida profesional para mi app “Dimensionador de Secadores Solares”. Usa Streamlit para mostrar: 1) Título y subtítulo con st.title y st.markdown. 2) Una breve explicación técnica del propósito del proyecto (2 párrafos). 3) Una barra lateral (st.sidebar) con st.page_link para navegar a las páginas de cálculo. 4) Un st.metric o st.info con el estado del proyecto. Usa un diseño limpio, colores institucionales (azul/verde) y comentarios en español.

Prompt 3.2 (Página 1 - Humedad):

Programa el archivo pages/1_Calculo_Humedad.py. Debe importar las funciones del archivo backend_secado.py. Crea inputs numéricos con st.number_input para: masa_inicial (kg), humedad_inicial (%) y humedad_final (%). Al presionar un botón st.button(“Calcular”), ejecuta las funciones y muestra en st.columns tres st.metric: Humedad Base Húmeda (%), Humedad Base Seca (%) y Agua a Evaporar (kg). Si hay error de validación, muéstralo con st.error. Agrega un st.expander(“📘 Fundamento Teórico”) con una explicación breve de por qué usamos base seca en ingeniería de diseño.

Prompt 3.3 (Página 2 - Termodinámica y Aire):

Programa pages/2_Balance_Termodinamico.py. Debe importar backend_secado.py y permitir ingresar manualmente los kg de agua a evaporar (o cargar el valor calculado desde la página anterior usando st.session_state), junto con st.slider para T_ambiente (15°C a 40°C) y T_colector (30°C a 90°C). Al calcular, muestra: Energía Requerida (kJ), Masa de Aire (kg), Volumen de Aire (m³) y una st.success o st.warning con la recomendación de convección. Genera un gráfico con matplotlib o plotly que muestre cómo varía el Volumen de Aire (m³) si T_colector varía entre 40°C y 80°C (manteniendo T_ambiente fija). Usa st.pyplot() o st.plotly_chart(). Comenta el código claramente.


☁️ FASE 4: Empaquetado, Git y Despliegue en Streamlit Cloud

(Entorno virtual, requisitos y publicación)

Prompt 4.1:

Guíame para preparar el proyecto para despliegue. 1) Muéstrame los comandos para crear y activar un entorno virtual .venv en VSCode (Windows/macOS). 2) Instrucciones para instalar streamlit, matplotlib y pandas solo en ese entorno. 3) Comando exacto para generar requirements.txt automáticamente sin dependencias del sistema. 4) Secuencia de Git para hacer commit de los cambios y push a la rama main. 5) Pasos detallados para desplegar la app en Streamlit Community Cloud (selección de repo, rama, archivo app.py, secrets si aplica). Asegúrate de mencionar que Streamlit detecta automáticamente la carpeta pages/ para la navegación multipágina.

Prompt 4.2 (Optimización Final para Rúbrica):

Revisa mentalmente la rúbrica de mi proyecto final: Lógica Matemática (30%), Interactividad/Frontend (20%), Visualización Gráfica (20%), Ingeniería de Software/Despliegue (10%) y Sustentación (20%). Sugiere 3 mejoras concretas en mi código actual para asegurar la máxima puntuación en cada criterio. Dame los fragmentos de código exactos para implementarlas (ej: formateo de decimales con f”{valor:.2f}“, validación de inputs con st.form(), y estructura de README.md profesional para la sustentación).


📋 CHECKLIST DE ENTREGA (Alineado a tu Rúbrica)

Criterio Verificación en la App
Lógica y Precisión Matemática (30%) Funciones en backend_secado.py coinciden con fórmulas de las guías 12 y 13. Validaciones de entrada activas. Sin errores de tipo o división por cero.
Interactividad y Diseño (20%) Navegación multipágina fluida. Uso de st.sidebar, st.columns, st.metric, st.expander. Inputs claros y botón de cálculo intuitivo.
Visualización Gráfica (20%) Gráfico dinámico en Página 2 que muestra la relación inversa entre T_colector y Volumen de Aire. Ejes etiquetados y leyenda técnica.
Ingeniería de Software (10%) Repo en GitHub con .venv ignorado, requirements.txt exacto, .gitignore completo, README.md con instrucciones de ejecución. App accesible vía URL pública.
Sustentación y Dominio (20%) Estudiante puede explicar: por qué M_db se usa en diseño, el significado físico de L_v y C_pa, y cómo la app acelera el dimensionamiento preliminar de equipos eco-eficientes.

💡 Nota pedagógica para tu clase:

Se recomienda a los estudiantes que no copien todo de una vez, sino que trabajen iterativamente: `

Prompt → Código → Prueba local → Commit → Siguiente Prompt`.

Esto refuerza el flujo profesional de desarrollo y evita la sobrecarga cognitiva.