Tarea Final – Segundo 50% del Semestre

Desarrollo de Aplicación Web en Streamlit con GitHub Codespaces + Copilot

Asignatura: Programación de Computadores con Python

Tema final: Aplicaciones integradas con módulos de Python (SymPy, NumPy, Matplotlib, Bokeh/Plotly/Altair y Pandas)

Duración: 4 semanas

Entregable final: Video grupal + App desplegada en Streamlit Community Cloud


🎯 Objetivo General

Desarrollar una aplicación multipágina en Streamlit que integre los módulos vistos (SymPy, NumPy, Matplotlib, Bokeh/Plotly/Altair y Pandas) aplicada a una situación de interés real en Ingeniería Agrícola, Agroindustrial o Civil, utilizando GitHub Codespaces y Copilot como entorno colaborativo de desarrollo y documentación.


🎯 Objetivos Específicos

  1. Aplicar los módulos de Python vistos en el curso para resolver problemas propios de las ingenierías.
  2. Usar Copilot para generar teoría, documentación y código en un entorno profesional (GitHub Codespaces).
  3. Crear una app multipágina en Streamlit, estructurada y documentada con archivos .md y .py.
  4. Desplegar la aplicación en Streamlit Community Cloud y presentar el proceso en un video grupal.

🧠 Competencias a Desarrollar

  • Competencia técnica: Integrar múltiples módulos de Python en un proyecto funcional.

  • Competencia comunicativa: Explicar fundamentos teóricos, estructura del proyecto y funcionamiento de la app.

  • Competencia investigativa: Indagar con Copilot aspectos teóricos y metodológicos relacionados con el problema elegido.

  • Competencia colaborativa: Trabajar en equipo de manera organizada y evidenciar la participación individual.


🧩 Estrategia de Trabajo

Cada grupo (máximo 10 integrantes) deberá:

  1. Seleccionar una situación de interés real en su respectiva ingeniería (ver ejemplos más abajo).

  2. Crear un repositorio en GitHub con el nombre:

    Tarea_Final_2025_2_NombreDeGrupo
  3. Iniciar un proyecto en GitHub Codespaces con entorno Python y extensión de Streamlit.

  4. Utilizar Copilot para:

    • Redactar teoría en archivos .md dentro de /docs/.
    • Generar scripts .py dentro de /app/ para cada módulo o subtema.
  5. Ejecutar la app localmente (streamlit run app/Home.py).

  6. Desplegar la app en Streamlit Community Cloud.

  7. Grabar un video de sustentación mostrando:

    • Al Inicio del video, la Presentación individual de cada integrante
    • El repositorio en GitHub.
    • El entorno Codespaces en ejecución.
    • La app corriendo en Streamlit Community Cloud.
    • La participación de cada miembro explicando su parte.

🧮 Situaciones sugeridas por Ingeniería

🔹 Ingeniería Agrícola

  1. Estimación simbólica del balance hídrico con SymPy y visualización de series climáticas con Matplotlib.
  2. Predicción del rendimiento del cultivo según humedad del suelo usando NumPy + Pandas.
  3. Mapa de calor interactivo de humedad o temperatura del suelo con Plotly o Altair.

🔹 Ingeniería Agroindustrial

  1. Modelado simbólico de una cinética de degradación con SymPy y análisis vectorizado con NumPy.
  2. Visualización de control de calidad con Matplotlib y Altair (barras, histogramas y límites de control).
  3. Trazabilidad del proceso de producción usando Pandas para unir datos de lotes y control sensorial.

🔹 Ingeniería Civil

  1. Análisis simbólico de vigas o trusses con SymPy y visualización de diagramas con Matplotlib.
  2. Simulación hidráulica de canales con NumPy (Manning) y visualización en Bokeh o Plotly.
  3. Consolidación de ensayos de suelo con Pandas y visualización de resultados normalizados.

🧰 Estructura sugerida del proyecto

proyecto_final/
├─ .vscode/
├─ requirements.txt
├─ README.md
├─ docs/
│  ├─ 00_teoria_general.md
│  ├─ 01_agricola.md / 01_agroindustrial.md / 01_civil.md
│  ├─ mod_sympy.md
│  ├─ mod_numpy.md
│  ├─ mod_matplotlib.md
│  ├─ mod_plotly_altair.md
│  └─ mod_pandas.md
└─ app/
   ├─ Home.py
   ├─ Sympy.py
   ├─ Numpy.py
   ├─ Matplotlib.py
   ├─ PlotlyAltair.py
   └─ Pandas.py

💬 Prompts sugeridos para interactuar con Copilot

📘 Para la teoría (docs/*.md)

“Redacta un archivo docs/mod_sympy.md explicando el uso del módulo SymPy en la resolución simbólica de ecuaciones aplicadas a [situación específica]. Incluye: descripción teórica, ecuaciones simbólicas, variables, pasos de resolución y relevancia en la ingeniería seleccionada. No incluyas código ejecutable.”

💻 Para los scripts (app/*.py)

“Genera app/Sympy.py como una página multipropósito de Streamlit. Incluye:

  • widgets de entrada de parámetros,
  • resolución simbólica con SymPy,
  • visualización con Matplotlib o Plotly,
  • texto explicativo,
  • manejo de errores y supuestos. Añade comentarios claros y estructura modular.”

📄 Para el README.md

“Crea un README.md explicando la finalidad del proyecto, los módulos utilizados, la estructura de carpetas, instrucciones de instalación, ejecución local y despliegue en Streamlit Cloud.”


🚀 Despliegue en Streamlit Community Cloud

  1. Crear cuenta en https://streamlit.io/cloud (iniciar con GitHub).
  2. Clic en ‘New app’ → seleccionar el repositorio del grupo.
  3. Rama: main
  4. Archivo principal: app/Home.py
  5. Clic en Deploy!
  6. Esperar a que la app cargue y copiar la URL pública.
  7. Añadir la URL en el README.md del repositorio y mostrarla en el video final.

🎥 Indicaciones para el Video Final

  • Duración: 10 a 12 minutos.

  • Formato: MP4 o enlace de YouTube (no listado).

  • Cada integrante debe aparecer explicando:

    • Su parte teórica y el módulo que trabajó.
    • El archivo .md que generó con Copilot.
    • El script .py correspondiente.
    • La parte funcional dentro de la app (en ejecución).
    • La app desplegada en Streamlit Community Cloud.
  • El video debe mostrar el flujo completo: GitHub → Codespaces + Copilot → Streamlit local → Streamlit Cloud.


🧾 Rúbrica de Evaluación (100%)

Criterio Descripción Peso (%)
1. Estructura del repositorio Archivos y carpetas organizadas según la guía, uso correcto de .md y .py 15
2. Uso de Copilot en Codespaces Evidencia de prompts bien formulados, documentación generada y código funcional 15
3. Funcionamiento técnico de la App Ejecución sin errores, interactividad, coherencia de resultados 25
4. Despliegue en Streamlit Cloud App disponible públicamente y funcional 10
5. Contenido teórico Claridad, precisión técnica y aplicación al contexto ingenieril 15
6. Video de sustentación Todos los miembros participan, exposición ordenada y dominio del tema 20

Total: 100 puntos Nota mínima de aprobación: 60/100


🧩 Criterios de presentación y ética académica

  • El trabajo debe ser original. Se permite usar Copilot, pero el grupo debe comprender y explicar cada parte generada.

  • No se aceptan proyectos clonados de Internet ni de otros grupos.

  • El video debe mostrar la participación activa y visible de todos los integrantes.

  • La app desplegada debe incluir un pie de página con:

    Proyecto final – Programación de Computadores con Python – Universidad de Sucre – 2025-2

Entrega

  • Enlace al repositorio GitHub.
  • Enlace a la App en Streamlit Cloud.
  • Enlace al video de sustentación (YouTube o Drive).
  • Fecha límite: última semana de clases (semana 16).