📹 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.
📌 IMPORTANTE: LA GRABACIÓN ES DEL PROYECTO INTEGRADORA, NO DEL EJEMPLO DE ESTA GUÍA
El ejemplo "Tienda UTH Tech" (Categorías, Proveedores, Productos) de esta guía y de practicau3pasoapaso.html es solo material de apoyo para ENSEÑAR el patrón Repository/DAO, SOLID y las llaves foráneas.
- La grabación del examen debe mostrar el CRUD de TU PROYECTO INTEGRADORA, no el ejemplo de la guía.
- Será UN SOLO CRUD (una sola entidad principal a administrar desde la interfaz Flet).
- Con 3 llaves foráneas (FOREIGN KEY), incluyendo obligatoriamente la tabla
usuarios. - Los nombres de tablas, columnas, clases y métodos que muestres en el video deben coincidir EXACTAMENTE con los de tu proyecto integradora real — no los renombres, no los simplifiques ni los adaptes "para que se vea como el ejemplo".
Si tu proyecto integradora aún no tiene las 3 FK (incluida usuarios), debes completarlas ANTES de grabar; no se aceptará el ejemplo genérico como sustituto.
Al INICIO del video debes presentarte formalmente diciendo:
- Nombre completo (Apellido Paterno, Apellido Materno, Nombres)
- Grupo (ejemplo: DSM3-1)
- Asignatura (Programación Orientada a Objetos)
- Práctica que realizarás (ejemplo: "Voy a demostrar el examen de Unidad 3: el CRUD de mi proyecto INTEGRADORA, con interfaz gráfica en Flet, base de datos relacional MySQL y 3 llaves foráneas, incluyendo la tabla usuarios")
Ejemplo de presentación: "Hola, mi nombre es Prado Díaz Bernardo del grupo DSM3-1, de la asignatura Programación Orientada a Objetos. En este video voy a demostrar el examen de Unidad 3: el CRUD de mi proyecto integradora, con interfaz gráfica en Flet, base de datos MySQL, patrón Repository/DAO y 3 llaves foráneas — incluyendo la tabla usuarios..."
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 la práctica paso a paso, terminal, phpMyAdmin/DBeaver, etc.
⚠️ Las 3 secciones deben ser VISIBLES SIMULTÁNEAMENTE durante TODO el video.
La pantalla DEBE estar dividida en 3 SECCIONES específicas:
⚠️ Las 3 secciones deben ser VISIBLES SIMULTÁNEAMENTE durante TODO el video.
- Grabado Todo: Debe estar grabado todo el proceso, siguiendo la guía paso a paso de la práctica.
- 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.
Mientras trabajas, debes:
- Explicar de forma general cada paso del CRUD de TU PROYECTO INTEGRADORA (el ejemplo de
practicau3pasoapaso.htmles solo guía conceptual del patrón a seguir, no lo que se grabará) - Describir qué tecnología estás usando: Flet (interfaz gráfica en Python), MySQL (base de datos relacional), patrón Repository/DAO, principios SOLID, y para qué sirve cada uno
- Mostrar el código que escribes con los nombres REALES de tu proyecto: archivo de configuración, modelos, repositorio(s) y el archivo principal de la interfaz
- Demostrar la conexión a MySQL:
mysql.connector.connect()y la creación automática de las tablas conENGINE=InnoDB - Demostrar el CRUD completo (crear, leer, actualizar, eliminar) de la entidad principal de tu proyecto integradora — debe ser UN SOLO CRUD
- Demostrar las 3 FOREIGN KEY de tu proyecto integradora, incluyendo obligatoriamente la relación hacia la tabla
usuarios, con los nombres exactos de tus tablas y columnas (no los del ejemplo de la guía) - Demostrar el
SELECT ... JOIN: mostrar que la tabla principal despliega el NOMBRE/dato relacionado, no el ID crudo, para cada una de las 3 FK - Demostrar los Dropdown dinámicos:
ft.Dropdownllenado con unSELECTreal de tu proyecto para cada llave foránea - Mostrar comandos en terminal: instalación de dependencias y ejecución de tu proyecto integradora
- Insertar registros de prueba en todas las tablas involucradas (incluida
usuarios) - Probar la integridad referencial: intentar eliminar un registro padre en uso por la tabla principal → debe fallar de forma controlada (no debe "tronar" la app)
- 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 Flet, MySQL, el patrón Repository/DAO y las llaves foráneas, usando SIEMPRE los nombres reales de tablas, columnas, clases y métodos de tu proyecto integradora — coincidencia exacta, sin renombrar ni simplificar.
La 2da práctica de la Unidad 3 (practicau3pasoapaso.html) será el molde que tomarás para el examen de evaluación de la Unidad 3. Debes seguirla paso a paso, pero modificándola según la tabla de tu proyecto integradora que tiene las 3 llaves foráneas.
- Todo lo que en la guía corresponde a las tablas de
productos,categoríasyproveedoresserá reemplazado por la tabla principal de tu proyecto integradora y por las tablas relacionadas correspondientes a sus 3 llaves foráneas (incluyendousuarios). - Cambia también los atributos/campos de cada tabla del ejemplo por los atributos/campos reales de tu integradora, de manera que la guía quede adaptada — al molde — de tu tabla personal, no de "Tienda UTH Tech".
- Antes de grabar, haz un ENSAYO completo de todo el proceso con tu proyecto integradora. Solo hasta que funcione sin errores debes iniciar la grabación final.
- Al iniciar el video, debes leer en voz alta TODO el contenido de la guía paso a paso, tal y como está escrito, e ir mostrando cómo queda cada parte ya adaptada con la tabla de tu integradora (nombres de tablas, columnas, clases, métodos, etc.).
- Debes leer y mostrar absolutamente todo el recorrido de la guía paso a paso — explicaciones, tablas de referencia, código y resultados — mientras lo vas ejecutando con tu proyecto integradora.
- Deberás, antes de despedirte, probar en el video el CRUD completo: agregando un registro, luego modificando todos los campos o atributos y mostrando que lo hizo, y después eliminando un registro. Todo lo que hagas debe mostrarse ahí y en la base de datos —ya sea en consola o en phpMyAdmin, como decidas—; en los dos escenarios deben verse plasmados los cambios que hagas en el sistema de tu CRUD de integradora.
- Al momento de iniciar la revisión, debe estar el diagrama entidad-relación en el repositorio de la página web de la asignatura. De no estar, no se haría dicha evaluación.
⚠️ Cada omisión resta puntos. No basta con ejecutar el código: debes leer y explicar todo el contenido de la guía de la práctica 2, exactamente como está, pero con los datos de tu tabla de integradora.
Al FINAL del video debes:
- Repetir tu nombre completo (Apellido Paterno, Apellido Materno, Nombres)
- Repetir tu grupo (ejemplo: DSM3-1)
- Dar un pequeño resumen de lo que se realizó en el video (CRUD del proyecto integradora, Flet, MySQL, 3 llaves foráneas incluyendo usuarios)
- Mencionar lo aprendido brevemente (ejemplo: "Aprendí a conectar una interfaz gráfica en Flet con una base de datos MySQL usando el patrón Repository/DAO, a modelar relaciones con llaves foráneas y a mantener la integridad referencial entre tablas de mi proyecto integradora")
- 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 DSM3-1. En este video realicé el examen de Unidad 3 con el CRUD de mi proyecto integradora, con Flet y MySQL, 3 llaves foráneas incluyendo la tabla usuarios, CRUD completo y el patrón Repository/DAO. Aprendí a persistir datos en una base de datos relacional desde una interfaz gráfica de escritorio en Python. Gracias por su atención."
No hay tiempo máximo. Los minutos que sean necesarios, no debe incluirse los errores en la grabación. En cuanto haya alguno deben detener la grabación, ver cómo fue la corrección paso a paso, e incluirla en el video.
Y solo debe ser UN SOLO video, no varios. Si llegaran a quedar varios videos, deberán unirlos para que el examen tenga validez y pueda ser revisado con todos los requerimientos solicitados. Lo que su conocimiento no llegue a saber, deberán aprender a hacerlo; hay muchos recursos de aprendizaje en internet para lograrlo.
Solo debe escucharse la voz del alumno durante el video, no la de otra persona, por lo que debe prepararse antes de iniciar la grabación. Durante este proceso debe verse esta guía 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 el uso de IA (Inteligencia Artificial). Una vez se detecte un error, se detiene el video y se resuelve con IA si así lo eligen; después se reinicia el video, se explica qué ocurrió y se muestra lo que se realizó apoyado con la IA y las partes de código que cambió.
Software recomendado para grabación de pantalla con cámara, SIN 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.
Debe mostrar el funcionamiento completo del CRUD de tu proyecto integradora, aplicando el mismo patrón explicado en la guía de la Unidad 3 (Repository/DAO, SOLID, llaves foráneas), pero con los nombres y la estructura REALES de tu proyecto — no el ejemplo "Tienda UTH Tech".
- Configuración inicial (10 min):
- WampServer/MySQL corriendo, base de datos de tu proyecto integradora ya creada
- Instalación de dependencias del proyecto (
flet,mysql-connector-python, etc.) - Archivo de configuración de conexión con los datos reales de tu base
- Modelos (10 min): Mostrar las clases/modelos reales de tu proyecto (principio S de SOLID: solo modelan datos)
- Repositorio(s) CRUD (20 min): Mostrar el código de acceso a datos y la creación de tablas con
ENGINE=InnoDB - Las 3 llaves foráneas, incluyendo
usuarios(25 min):- Mostrar las 3
FOREIGN KEYde tu tabla principal, con sus nombres reales - Insertar un registro nuevo eligiendo valores válidos para las 3 relaciones (incluido un
usuario) → funciona - Intentar eliminar un registro padre (por ejemplo un usuario) que esté en uso → error controlado, sin crashear
- Mostrar el
SELECT ... JOINque resuelve las 3 FK al mostrar la información en pantalla
- Mostrar las 3
- Interfaz Flet — UN SOLO CRUD (20 min):
- Formulario y tabla (
ft.DataTable) de la entidad principal - 3
ft.Dropdown(uno por cada FK, incluyendo usuarios), llenados con unSELECTreal - CRUD completo: crear, leer, actualizar, eliminar
- Formulario y tabla (
- Pruebas de persistencia (10 min): Cerrar y reabrir la app → los datos siguen ahí; verificar en phpMyAdmin/DBeaver que las tablas y columnas coinciden con lo mostrado en pantalla
⏱️ Duración total estimada: 1.5 a 2 horas de demostración completa. El video debe ser continuo (puedes editarlo para quitar errores, pero debe verse como un flujo completo).
Subir a Google Drive (con permisos de visualización pública) y adjuntar el enlace. Sin restricciones.
- Sube el video a Google Drive en un solo Link, no por partes; lo que se presente será evaluado
- Sube el video en una sola carpeta de Drive con Unidad 3 y tus apellidos, ejemplo:
Unidad3-pradodiaz - Clic derecho en el archivo → Obtener enlace
- Cambiar permisos a "Cualquier persona con el enlace puede ver"
- Enviar el enlace al correo de la asignatura:
tenor_prado@yahoo.com.mx - Asunto:
Apellido Paterno Apellido Materno Nombres Grupo Examen Práctica U3 - Ejemplo:
Prado Diaz Bernardo DSM3-1 Examen Práctica U3 - En el cuerpo del email: lo mismo (nombre, grupo) + enlace de Google Drive listo para ver el 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
- Si NO cumples CUALQUIERA de estas reglas: Video RECHAZADO y deberás rehacerlo completamente
🎯 OBJETIVOS DE APRENDIZAJE - UNIDAD 3
Al completar esta práctica de la Unidad 3: Persistencia y Diseño Orientado a Objetos, el estudiante será capaz de:
📚 Conocimientos Técnicos:
- ✅ Flet: Construir interfaces gráficas multiplataforma en Python con
ft.Tabs,ft.Dropdown,ft.DataTable,ft.TextField - ✅ MySQL: Diseñar bases de datos relacionales, tipos de datos, motor
InnoDBy por qué es obligatorio para usarFOREIGN KEY - ✅ mysql-connector-python: Conectar Python con MySQL, ejecutar SQL parametrizado de forma segura (sin inyección SQL)
- ✅ CRUD completo: Crear, leer, actualizar y eliminar registros desde una interfaz gráfica conectada a una base de datos real
- ✅ Llaves foráneas (FOREIGN KEY): Modelar relaciones padre-hijo entre tablas y mantener integridad referencial
- ✅ SELECT con JOIN: Combinar datos de varias tablas relacionadas para mostrar información legible al usuario
- ✅ Patrón Repository/DAO: Separar la lógica de acceso a datos de la lógica de negocio y de la interfaz
- ✅ Principios SOLID: Aplicar Responsabilidad Única en modelos y repositorios
🛠️ Habilidades Prácticas:
- ✅ Diseñar un modelo entidad-relación (ER) con tablas padre e hijas
- ✅ Configurar la conexión a una base de datos mediante un archivo de configuración separado
- ✅ Crear formularios dinámicos cuyos
Dropdownse llenan desde la base de datos (SELECT) - ✅ Manejar errores de integridad referencial sin que la aplicación se caiga (try/except controlado)
- ✅ Persistir datos de forma permanente, verificando que sobrevivan a cerrar y reabrir la app
💼 Competencias Profesionales:
- ✅ Portafolio: Tendrás una aplicación de escritorio funcional con base de datos real para mostrar a futuros empleadores
- ✅ Experiencia real: Habrás aplicado el patrón Repository/DAO, usado en sistemas profesionales para desacoplar datos de lógica
- ✅ Resolución de problemas: Sabrás diagnosticar errores de conexión, claves foráneas y restricciones de integridad
🎓 Competencias Específicas de la Unidad 3:
- ✅ Implementar una base de datos con al menos 2 tablas relacionadas mediante llave foránea
- ✅ Construir un CRUD completo en Flet conectado a MySQL
- ✅ Aplicar principios SOLID en el diseño de clases (modelos, repositorios)
- ✅ Resolver relaciones N:1 mediante
SELECT ... JOINyDropdowndinámicos
💻 REQUISITOS PREVIOS - UNIDAD 3
🌟 ESTA GUÍA ESTÁ DISEÑADA PARA COMPLETARSE PASO A PASO
La Unidad 3 se construye sobre las unidades anteriores. Asegúrate de haber completado:
- Unidad 1: Conceptos básicos de POO en Python ✅
- Unidad 2: Los 4 pilares de la POO — Abstracción, Encapsulamiento, Herencia, Polimorfismo ✅
🧠 Conocimientos Previos Necesarios:
- 📝 Programación en Python: Clases, listas, diccionarios, manejo de excepciones (try/except)
- 🗄️ SQL básico:
CREATE TABLE,INSERT,SELECT,UPDATE,DELETE - 🔧 Terminal/Consola: Ejecutar comandos,
pip, Python, navegación de directorios - 📁 Estructura de proyecto: Separar código en varios archivos (
.py) que se importan entre sí
💾 Software Necesario (Instalar en orden):
- Python 3.9-3.11 - Lenguaje principal
- WampServer - Apache + MySQL + phpMyAdmin (servidor local de base de datos)
- Flet 0.24.1 - Framework de interfaz gráfica en Python
- mysql-connector-python 9.5.0 - Conector Python ↔ MySQL
- DBeaver - Cliente visual de base de datos (opcional, recomendado)
- VS Code / PyCharm - Editor recomendado
📦 Bibliotecas Python de la Unidad 3:
Comando para instalar todo (requirements.txt):
pip install flet==0.24.1 mysql-connector-python==9.5.0
Explicación de cada librería:
flet==0.24.1- Interfaz gráfica multiplataforma (ventanas, pestañas, tablas, formularios)mysql-connector-python==9.5.0- Conexión y ejecución de SQL desde Python hacia MySQL
🔧 Crear la base de datos:
Abrir http://localhost/phpmyadmin (usuario root, tu contraseña de MySQL) y crear la base de datos (ejemplo de práctica):
CREATE DATABASE IF NOT EXISTS tienda_uth;
Las 3 tablas (categorias, proveedores, productos) se crean solas al ejecutar main.py por primera vez.
⚠️ Esto es solo el ejemplo de práctica. Para el video del EXAMEN debes usar la base de datos de tu proyecto integradora, con sus propios nombres de tablas y columnas.
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 |
| Fuera de tiempo / incompleto | NA | NA |
✅ LISTA DE VERIFICACIÓN FINAL - UNIDAD 3
Antes de Entregar tu Examen Práctico (sobre tu PROYECTO INTEGRADORA)
🔧 Configuración:
- WampServer/MySQL corriendo: servicio activo
- Base de datos del proyecto integradora creada en MySQL (con sus nombres reales, no
tienda_uth) - Dependencias instaladas:
pip listmuestrafletymysql-connector-python - Archivo de configuración correcto: host, user, password y database de tu proyecto
🧱 Modelos y Repositorios:
- Modelos: las clases reales de tu proyecto solo modelan datos (sin lógica de BD)
- Las tablas se crean automáticamente al ejecutar tu proyecto por primera vez
- Las tablas usan
ENGINE=InnoDB - Tu tabla principal tiene 3
FOREIGN KEY, incluyendo obligatoriamente la relación haciausuarios, con los nombres reales de tu proyecto
🔄 CRUD e Interfaz Flet:
- UN SOLO CRUD completo funciona (crear, leer, actualizar, eliminar) sobre la entidad principal de tu proyecto integradora
- Los 3 Dropdown (uno por cada FK, incluyendo usuarios) se llenan con un
SELECTreal de tu base de datos - La tabla principal muestra el dato relacionado de cada FK vía
SELECT ... JOIN(no IDs crudos) - Eliminar un registro padre en uso (por ejemplo un usuario) muestra un error controlado (no crashea la app)
- Los datos persisten al cerrar y reabrir la app
- Los nombres de tablas, columnas, clases y métodos del video coinciden EXACTAMENTE con los de tu proyecto integradora real
📋 General:
- requirements.txt: dependencias listadas con versiones exactas
- Video completo: demostración de configuración, modelos, repositorios, FK e interfaz Flet
Entregables Mostrados en Video - Unidad 3 (Proyecto Integradora)
- Estructura de Carpetas (con los nombres reales de tu proyecto):
- Archivo de configuración - Datos de conexión a MySQL
- Modelos - Clases que representan tus entidades reales (incluida la relacionada con
usuarios) - Repositorio(s) - Acceso a datos y creación de tablas
- Archivo principal - Interfaz Flet con el CRUD y los 3 Dropdown
requirements.txt- Dependencias del proyecto
- Video de Demostración Completo: Enlace de Google Drive mostrando el CRUD de tu proyecto integradora, con sus 3 llaves foráneas (incluida
usuarios), nombres reales, presentación inicial y cierre. - Email de Entrega:
- Enviar a:
tenor_prado@yahoo.com.mx - Asunto:
Apellido1 Apellido2 Nombre Grupo Examen Práctica U3 - Ejemplo:
Prado Diaz Bernardo DSM3-1 Examen Práctica U3 - Cuerpo del email: nombre completo y grupo, enlace de Google Drive con el video
- Enviar a:
🎓 CONCLUSIÓN - UNIDAD 3: PERSISTENCIA Y DISEÑO ORIENTADO A OBJETOS
🌟 Al completar esta práctica de la Unidad 3 habrás dominado:
🗄️ Persistencia de Datos:
- ✅ Conectado una aplicación Python a una base de datos MySQL real
- ✅ Diseñado tablas relacionadas con llaves foráneas e integridad referencial
- ✅ Usado
SELECT ... JOINpara combinar datos de varias tablas
🏗️ Diseño Orientado a Objetos:
- ✅ Aplicado el patrón Repository/DAO para separar datos de lógica de negocio
- ✅ Aplicado el principio de Responsabilidad Única (SOLID) en modelos y repositorios
🖥️ Interfaces Gráficas:
- ✅ Construido una interfaz multiplataforma con Flet (pestañas, tablas, formularios, dropdowns dinámicos)
- ✅ Conectado formularios a una base de datos con CRUD completo
📚 Recursos Adicionales - Unidad 3
Documentación Oficial:
- Flet Documentation - Framework de interfaz gráfica
- MySQL Documentation - Base de datos relacional
- MySQL Connector/Python - Conexión Python ↔ MySQL
Conceptos:
💡 Consejos Finales para Unidad 3
- Sigue la guía paso a paso - Configuración → Modelos → Repositorios → Llaves Foráneas → Interfaz Flet
- Crea las tablas padre antes que la tabla hija:
categoriasyproveedoresdeben existir antes deproductos - Verifica
ENGINE=InnoDBen las 3 tablas - sin esto, MySQL ignora lasFOREIGN KEY - Prueba la integridad referencial a propósito: intenta eliminar una categoría usada por un producto y observa el error controlado
- Pide ayuda cuando la necesites: si la conexión a MySQL no funciona después de 30 min, pide ayuda
🚀 ¡Éxito en tu práctica de la Unidad 3!
Esta práctica te prepara para trabajar con bases de datos relacionales reales, una habilidad fundamental en cualquier aplicación profesional.
🎓 ¡Éxito en tu examen de la Unidad 3!