📚 REQUISITOS Y FECHAS DE ENTREGA

PRÁCTICAS DE EXAMEN UNIDAD 3

III. Desarrollo de una interfaz de programación de aplicaciones (API).

🌐SOAP 🔌 REST 🐳 Docker 📦 Compose 🏗️ Microservicios ⚡ Escalabilidad

Profesor: Bernardo Prado

Cuatrimestre: 2026-1

Universidad: Universidad Tecnológica de Hermosillo (UTH)

Asignatura: Aplicaciones Web Orientadas a Servicios

📹 REQUISITOS OBLIGATORIOS DEL VIDEO DE PRESENTACIÓN (EVIDENCIA)

⚠️ REGLAS OBLIGATORIAS PARA EVALUACIÓN DEL VIDEO

El incumplimiento de CUALQUIERA de estas reglas resultará en la NO ACEPTACIÓN del video y la necesidad de rehacerlo completamente.

1️⃣ PRESENTACIÓN INICIAL (OBLIGATORIO):

Al INICIO del video debes presentarte formalmente diciendo:

  • Nombre completo (Apellido Paterno, Apellido Materno, Nombres)
  • Grupo (ejemplo: DSM5-1)
  • Asignatura (Aplicaciones Web Orientadas a Servicios)
  • Práctica que realizarás (ejemplo: "Voy a demostrar Una Práctica de integración con SOAP, REST, Docker, Compose, Microservicios y Escalabilidad ")

Ejemplo de presentación: "Hola, mi nombre es Prado Díaz Bernardo del grupo DSM5-1, de la asignatura Aplicaciones Web Orientadas a Servicios. En este video voy a demostrar Una Práctica de integración con SOAP, REST, Docker, Compose, Microservicios y Escalabilidad..."

2️⃣ CONFIGURACIÓN DE PANTALLA (OBLIGATORIO):

La pantalla DEBE estar dividida en 3 SECCIONES específicas:

📐 Distribución de pantalla:

  • Esquina inferior derecha: Tu video/cámara (1/6 de la altura total de la pantalla)
  • Desde el borde superior del video hasta arriba: La GUÍA abierta en el navegador (este documento HTML)
  • Todo el lado izquierdo: Visual Studio Code, navegador con las prácticas, consolas, etc.

⚠️ Las 3 secciones deben ser VISIBLES SIMULTÁNEAMENTE durante TODO el video.

FOTO DE COMO DEBE VERSE LA PANTALLA (OBLIGATORIO):

La pantalla DEBE estar dividida en 3 SECCIONES específicas:

Ejemplo de distribución de pantalla

⚠️ Las 3 secciones deben ser VISIBLES SIMULTÁNEAMENTE durante TODO el video.

3️⃣ CALIDAD DE AUDIO Y VIDEO (OBLIGATORIO):
  • Grabado Todo: Debe estar grabado toda la GUIA tanto de manera Local como Remota. Todo el Proceso.
  • Volumen ALTO: El audio debe escucharse FUERTE Y CLARO en cualquier computadora
  • Calidad de video: Resolución mínima 720p (HD), todo el texto debe ser LEGIBLE
  • Sin ruidos de fondo: Grabar en un ambiente silencioso
  • Voz clara: Hablar pausado, claro y con buena dicción
  • Solo tu voz: NO se debe escuchar la voz de otra persona durante la grabación

⚠️ Si el audio no se escucha correctamente o el video es de baja calidad, será RECHAZADO.

4️⃣ EXPLICACIÓN DURANTE EL DESARROLLO (OBLIGATORIO):

Mientras trabajas, debes:

  • Explicar de forma general cada paso que realizas siguiendo la guía paso a paso
  • Leer y seguir la GUÍA visible en la pantalla mientras trabajas
  • Describir qué tecnología estás usando (SOAP, REST, Docker, Compose, etc.) y para qué sirve
  • Mostrar el código que escribes, archivos de configuración y explicar su función
  • Demostrar el funcionamiento de servicios SOAP (WSDL), REST (endpoints), Docker (contenedores), Compose (orquestación)
  • Mostrar comandos en terminal y explicar qué hacen (docker build, docker-compose up, etc.)
  • Verificar que todo funciona en tiempo real (navegador, herramientas de testing)
  • Insertar 5 registros en cada Tabla tanto de manera Local primero como en PythonAnywhere después
  • Narrar los errores si los hay y cómo los resuelves (detener grabación, resolver, reiniciar mostrando la solución)

NO es válido grabar en silencio o sin explicar. Debes NARRAR todo el proceso demostrando comprensión de SOAP, REST, Docker, Compose, Microservicios y Escalabilidad.

5️⃣ DESPEDIDA Y CIERRE (OBLIGATORIO):

Al FINAL del video debes:

  • Repetir tu nombre completo (Apellido Paterno, Apellido Materno, Nombres)
  • Repetir tu grupo (ejemplo: DSM5-1)
  • Dar un pequeño resumen de lo que se realizó en el video
  • Mencionar lo aprendido brevemente (ejemplo: "Aprendí a integrar con SOAP, REST, Docker, Compose, Microservicios y Escalabilidad en aplicaciones web..")
  • Despedirte formalmente (ejemplo: "Gracias por su atención, hasta luego")

Ejemplo de cierre: "Esto ha sido todo, mi nombre es Prado Díaz Bernardo del grupo DSM5-1. En este video realicé Una Práctica de integración con SOAP, REST, Docker, Compose, Microservicios y Escalabilidad en aplicaciones web. Gracias por su atención."

6️⃣ FORMATO Y DURACIÓN:

No hay tiempo máximo. Los minutos que sean necesarios, no debe incluirse los errores en la grabación. En cuanto haya alguno debén detener la grabación y ver como fue la corrección paso a paso, también incluirla en el video.

Y solo debe ser un SOLO video no varios, Entonces si deben pegar varios videos, deberán hacerlo para que su examen tenga validez para ser revisado con todos los requerimientos solicitados. Lo que su conocimiento no llegue a saber, deberan aprender a hacerlo. Como hacerlo, Hay muchos recursos de apredizaje en internet. Para Lograrlo.

Solo debe escucharse la voz del alumno, durante el video, no la de otra persona mas, por ello debe el alumno prepararse antes de iniciar la grabación. Y durante este proceso debe verse esta Guia de apoyo, para que vayan diciendo lo que se va solicitando, todo esto es requisito para tener derecho a la evaluación.

Durante la grabación No se debe ver la utilizacion de la IA(inteligencia Artificial) una vez se detecte un error, se detiene el video y se resuleve con (IA) si asi lo eligen, despues se reinicia video, se explica que ocurrio, y se muestra lo que se realizo apoyado con la IA y las partes de codigo que cambio.

7️⃣ HERRAMIENTAS DE GRABACIÓN:

Software recomendado para grabación de pantalla con cámara, No PRESENTE marca de AGUA:

  • OBS Studio (gratuito y profesional)
  • Loom (gratuito con límites)
  • Zoom (grabar reunión personal)
  • Camtasia (de pago)
  • ShareX (gratuito)

Asegúrate de que tu rostro sea visible constantemente en la esquina inferior derecha.

🎬 DEMOSTRACIÓN DE LA PRÁCTICA:

Debe mostrar el funcionamiento completo de la práctica integrando todas las tecnologías de la Unidad 3.

  • Servicios SOAP: Demostrar WSDL funcionando, operaciones SOAP (buscar libros, préstamos, etc.)
  • Servicios REST: Probar endpoints JSON, crear/leer/actualizar/eliminar recursos
  • Docker: Mostrar contenedores corriendo (docker ps), logs, acceso a shell de contenedor
  • Docker Compose: Levantar todos los servicios con un comando, mostrar red y volúmenes
  • Microservicios: Demostrar comunicación entre servicios (Django, MySQL, Redis, Nginx)
  • Escalabilidad: Escalar servicios (--scale web=3), mostrar balanceo de carga con Nginx
  • Base de Datos: Mostrar datos persistentes en MySQL dentro del contenedor
  • Integración: Comprobar que todo el sistema funciona como una aplicación completa
8️⃣ NOMENCLATURA DE CUENTAS Y REPOSITORIOS (OBLIGATORIO):

⚠️ REGLA OBLIGATORIA: Todos los nombres de cuentas y repositorios DEBEN contener TUS DOS APELLIDOS en cualquier parte.

📋 Requisitos de nomenclatura:

  • Cuenta de GitHub: Debe incluir tus dos apellidos
    • ✅ Ejemplos válidos: pradodiaz, bernardo-prado-diaz, prado-diaz-dev
    • ❌ Ejemplos NO válidos: bernardo123, developer2026, pradodev (falta un apellido)
  • Nombre de cada Repositorio: Debe incluir tus dos apellidos
    • ✅ Ejemplos válidos: prado-diaz-apis-u2, practicas-prado-diaz, maps-pradodiaz
    • ❌ Ejemplos NO válidos: practica-apis, unidad2, google-maps
  • Cuenta de PythonAnywhere (si aplica): Debe incluir tus dos apellidos
    • ✅ Ejemplos válidos: pradodiaz, pradodiaz2026, bpradodiaz
    • ❌ Ejemplos NO válidos: bernardo2026, student123, prado (falta un apellido)
  • URLs de despliegue: Deben contener tus dos apellidos
    • ✅ Ejemplo: https://pradodiaz.github.io/practica1-maps-pradodiaz/
    • ✅ Ejemplo: https://pradodiaz.pythonanywhere.com

⚠️ IMPORTANTE: Si tu cuenta o repositorios NO contienen tus DOS apellidos, deberás crear nuevas cuentas/repositorios con la nomenclatura correcta. No se aceptarán entregas que no cumplan esta regla.

9️⃣ ENTREGA DEL VIDEO:

Subir a Google Drive (con permisos de visualización pública) y adjuntar el enlace. Sin restricciones.

  • Sube el o los videos a Google Drive en un solo Link, No por partes, Lo que se presente sera evaluado
  • Subir Video en una sola Carpeta de DRIVE, unidad 3 y sus apellidos, ejemplo: Unidad 3-pradodiaz
  • Clic derecho en el archivo → Obtener enlace
  • Cambiar permisos a "Cualquier persona con el enlace puede ver"
  • Copiar el enlace de la práctica y enviarlo a el Email de la Asignatura
  • Enviarlo al Email: Tenor_Prado@yahoo.com.mx
  • Escribiendo en Asunto: Apellido Paterno Apellido Materno Nombres Grupo Examen Práctica U3
  • ejemplo: Prado Diaz Bernardo DSM5-1 Examen Práctica U3
  • en el cuerpo del Email: Lo mismo Prado Diaz Bernardo DSM5-1 Examen Práctica U3, enlaces de GitHub, enlaces de las práctica desplegada y el enlace de Google DRIVE listo para ver video

⚠️ ADVERTENCIA FINAL - MUY IMPORTANTE

  • El video ES OBLIGATORIO para la evaluación completa
  • Debes aparecer TÚ en el video, no solo tu voz (cámara en esquina inferior derecha)
  • Las 3 secciones de pantalla deben estar visibles simultáneamente
  • Audio ALTO y CLARO - debe escucharse perfectamente
  • Presentación inicial y despedida son OBLIGATORIAS
  • Explicar mientras trabajas es OBLIGATORIO
  • NO uses videos pregrabados de terceros
  • Un solo video continuo - puedes editarlo pero debe ser uno solo
  • GitHub, repositorios y PythonAnywhere DEBEN contener tus DOS APELLIDOS
  • Si NO cumples CUALQUIERA de estas reglas: Video RECHAZADO y deberás rehacerlo completamente

🎯 OBJETIVOS DE APRENDIZAJE

Al completar esta práctica de la Unidad 3, el estudiante será capaz de:

  • ✅ Comprender arquitectura de aplicaciones web orientadas a servicios
  • ✅ Crear servicios SOAP completos con Python, Django y Spyne
  • ✅ Desarrollar APIs REST con Django REST Framework
  • ✅ Integrar MySQL con Django usando ORM (Object-Relational Mapping)
  • ✅ Consumir servicios SOAP desde clientes Python y herramientas de testing
  • ✅ Comparar REST vs SOAP y decidir cuándo usar cada uno
  • ✅ Entender arquitectura de microservicios desde cero
  • ✅ Dominar Docker: imágenes, contenedores, volúmenes, redes
  • ✅ Orquestar aplicaciones multi-contenedor con Docker Compose
  • ✅ Implementar balanceo de carga con Nginx
  • ✅ Escalar servicios horizontalmente (múltiples instancias)
  • ✅ Configurar entornos de desarrollo, testing y producción
  • ✅ Desplegar aplicaciones containerizadas
  • ✅ Aplicar mejores prácticas de desarrollo profesional
  • ✅ Utilizar Git y GitHub para control de versiones
  • ✅ Documentar y presentar proyectos técnicos empresariales

💻 REQUISITOS PREVIOS

🧠 Conocimientos Previos Necesarios:

  • 📝 Programación básica: Variables, funciones, condicionales, ciclos (en cualquier lenguaje)
  • 🌐 Conceptos web básicos: Qué es una URL, servidor, cliente, navegador
  • 💻 Uso de terminal/consola: Ejecutar comandos simples en PowerShell o CMD
  • 📁 Sistema de archivos: Crear carpetas, navegar entre directorios
  • 🔧 Conocimiento básico de Python (sintaxis, funciones, importaciones)

Software Necesario:

  • Python 3.11 - Lenguaje principal (NO Python 3.13)
  • Django 4.2+ - Framework web de Python
  • Docker Desktop - Plataforma de contenedores (con WSL2 en Windows)
  • Docker Compose - Orquestación multi-contenedor (incluido en Docker Desktop)
  • Git - Control de versiones
  • VS Code (editor recomendado)
  • MySQL 8.0 - Base de datos (en contenedor Docker)
  • Navegador web moderno (Chrome, Firefox, Edge)

Herramientas y Cuentas Requeridas:

  • GitHub (gratuita) - github.com - Para control de versiones y despliegue
  • SoapUI (opcional) - soapui.org - Para probar servicios SOAP
  • Postman (opcional) - postman.com - Para probar APIs REST
  • Docker Hub (gratuita) - hub.docker.com - Para subir imágenes Docker
  • Hosting/Cloud (opcional) - AWS, Azure, DigitalOcean, Railway - Para despliegue en producción

📦 Bibliotecas Python Principales:

  • Django==4.2.11 - Framework web
  • djangorestframework==3.15.1 - Para APIs REST
  • spyne==2.14.0 - Para servicios SOAP
  • lxml==5.1.0 - Procesamiento XML
  • mysqlclient==2.2.0 - Conector MySQL
  • gunicorn==21.2.0 - Servidor WSGI para producción
  • redis==5.0.1 - Cliente Redis para caché
  • celery==5.3.4 - Tareas asíncronas

Escala de Calificación

Puntos Calificación Nivel
9.5-10.0 ESTRATÉGICO E
8.50-9.49 AUTÓNOMO A
7.5-8.49 BÁSICO B
6.50-7.49 RECEPTIVO R
0-6.49 PREFORMAL NA

✅ LISTA DE VERIFICACIÓN FINAL

Antes de Entregar

  • Servicio SOAP: WSDL accesible y válido, operaciones SOAP funcionando correctamente
  • Cliente SOAP: Cliente Python funcional, pruebas con SoapUI o herramientas similares
  • API REST: Endpoints REST funcionando, respuestas JSON correctas, documentación de API
  • Modelos Django: Libros, Autores, Préstamos, Usuarios configurados con relaciones correctas
  • Base de Datos MySQL: Conexión funcionando, migraciones aplicadas, datos de prueba cargados
  • Dockerfile: Imagen construye sin errores, optimizado y documentado
  • Docker Compose: Todos los servicios levantan correctamente (db, web, nginx, redis)
  • Volúmenes Docker: Datos persisten al reiniciar contenedores
  • Redes Docker: Contenedores se comunican entre sí correctamente
  • Escalabilidad: Servicios se pueden escalar (docker-compose up --scale web=3)
  • Nginx: Balanceo de carga funciona, archivos estáticos se sirven correctamente
  • Repositorio Git: Commits organizados, .gitignore correcto completo
  • Video completo: Demostración SOAP + REST + Docker + Compose + Microservicios + Escalabilidad

Entregables Mostrados en Video

  1. Repositorio GitHub: Proyecto completo con código fuente
    • URL del repositorio: https://github.com/apellido-nombre/biblioteca-soap-u3
    • Debe contener: código Django, Dockerfile, docker-compose.yml, documentación
    • Nomenclatura obligatoria: repositorio debe incluir tus DOS apellidos
  2. Estructura de Carpetas:
    • codigo/ - Todo el código fuente del proyecto Django
    • video/ - Enlace o archivo del video de demostración
  3. Archivos Docker:
    • Dockerfile - Configuración de imagen Docker optimizada
    • docker-compose.yml - Orquestación de servicios (db, web, nginx, redis)
    • .dockerignore - Archivos excluidos de la imagen
    • nginx.conf - Configuración de Nginx para balanceo de carga
  4. Documentación Técnica:
    • requirements.txt - Dependencias Python del proyecto
  5. Video de Demostración: Enlace de Google Drive mostrando:
    • Funcionamiento completo de servicios SOAP (WSDL, operaciones)
    • Funcionamiento de APIs REST (endpoints JSON)
    • Docker en acción (construcción, ejecución de contenedores)
    • Docker Compose levantando todos los servicios
    • Microservicios comunicándose entre sí
    • Escalabilidad (escalar servicios, balanceo de carga con Nginx)
    • Presentación inicial y cierre con tu nombre completo y grupo
  6. Email de Entrega:
    • Enviar a: Tenor_Prado@yahoo.com.mx
    • Asunto: Apellido1 Apellido2 Nombre Grupo Examen Práctica U3
    • Cuerpo: Mismo formato + enlaces de GitHub, video y observaciones

🎓 CONCLUSIÓN

Al completar esta práctica de la Unidad 3 habrás:

  • ✅ Dominado servicios web SOAP con Django y Spyne
  • ✅ Creado APIs REST modernas con Django REST Framework
  • ✅ Implementado autenticación y autorización en servicios web
  • ✅ Trabajado con bases de datos MySQL en contenedores Docker
  • ✅ Comprendido arquitectura de microservicios a nivel profesional
  • ✅ Dominado Docker: imágenes, contenedores, volúmenes, redes
  • ✅ Orquestado aplicaciones multi-contenedor con Docker Compose
  • ✅ Implementado balanceo de carga y escalabilidad con Nginx
  • ✅ Utilizado Git y GitHub para control de versiones
  • ✅ Desplegado aplicaciones containerizadas listas para producción
  • ✅ Documentado proyectos técnicos de nivel empresarial

📚 Recursos Adicionales

💡 Consejos Finales

  1. Sigue la guía paso a paso - cada parte tiene un propósito específico
  2. Prueba cada componente antes de continuar con el siguiente
  3. Usa control de versiones - haz commits frecuentes con mensajes descriptivos
  4. Lee los logs cuando algo falle - Docker y Django dan información valiosa
  5. Consulta la documentación oficial - es tu mejor recurso de aprendizaje
  6. Experimenta - cambia configuraciones, agrega features, aprende haciendo
  7. Documenta tu trabajo - tu yo del futuro te lo agradecerá
  8. No dejes el video para el último día - grábalo con tiempo y calidad
  9. Respalda tu trabajo - usa GitHub y guarda copias locales
  10. Pide ayuda cuando la necesites - no pierdas horas atascado en algo

🚀 ¡Éxito en tu práctica de la Unidad 3!

Esta práctica integral de SOAP, REST, Docker, Compose, Microservicios y Escalabilidad te prepara para el desarrollo empresarial moderno. Dominar estas tecnologías te abre puertas en el mercado laboral, ya que son herramientas utilizadas por empresas líderes como Netflix, Amazon, Google, Uber y miles más.

Tómate tu tiempo, comprende cada concepto, y construye un proyecto del que te sientas orgulloso.

Este conocimiento es una inversión en tu futuro profesional. ¡Disfruta el proceso de aprendizaje!

📅 Fechas de Entrega y Calificación - Examen U3

Tu calificación final dependerá del periodo en el que entregues tu proyecto. Cuanto antes completes y subas tu evidencia, mayor será tu evaluación.

🏆

E = ESTRATÉGICO

Calificación: 10

Del 09 al 14 Febrero 2026

Hora límite: 15:00 — Zona: America/Hermosillo

A = AUTÓNOMO

Calificación: 9.0

Del 14 Febrero 15:01 al 16 de Febrero 2026

Hora límite: 15:00 — Zona: America/Hermosillo
🔔

B = BÁSICO

Calificación: 8.0

Del 16 Febrero 15:01 al 18 de Febrero 2026

Hora límite: 15:00 — Zona: America/Hermosillo
⚠️

R = RECEPTIVO

Calificación: 7.0

Del 18 Febrero 15:01 al 23 de Febrero 2026

Hora límite: 15:00 — Zona: America/Hermosillo

NA = PREFORMAL

Calificación: 6.0

Después de las 15:01 del 23 de Febrero 2026

Entrega expirada

📊 Progreso Estimado (Actualización en Tiempo Real)

Fase 1: 09 -14 Febrero, Hora límite: 15:00 Calificación: 10

Nivel ESTRATÉGICO - Entrega temprana con tiempo de sobra

Fase 2: 14 - 16 Febrero, Hora límite: 15:00 Calificación: 9.0

Nivel AUTÓNOMO - Entrega en tiempo razonable

Fase 3: 16 - 18 Febrero, Hora límite: 15:00 Calificación: 8.0

Nivel BÁSICO - Entrega próxima al límite

Fase 4: 18 - 23 Febrero, Hora límite: 15:00 Calificación: 7.0

Nivel RECEPTIVO - Entrega en el límite final

Después del 23 Febrero, Hora: 15:01 Calificación: 6.0

Nivel PREFORMAL - Entrega fuera de tiempo (o 0 si no entrega nada)

⚠️ Importante: El no entregar nada resultaría en 0 (Cero) para contabilizar su promedio. Cada error u omisión restará calificación.

⏱️ Tiempo Restante para Entrega Óptima

0
Días
0
Horas
0
Minutos
0
Segundos
🖨️ Imprimir Guía