Entradas

Migración a script iterativo de carga de datos y implementación de bloqueo por intentos fallidos de login

Imagen
Fecha:  1 de mayo 2026 Hora de inicio:  2:00 p.m.  Hora de finalización:  9:00 p.m. Horas trabajadas: 3h 40 min Después de tener el SP CargarDatos funcionando, se envió una consulta al profesor sobre si este SP era aceptable, dado que en la clase del miércoles él mencionó algo que no había tenido en cuenta relacionado con como se leían los movimientos. El profesor indicó que los movimientos debían procesarse de forma iterativa, o sea, cada movimiento con su propia transacción atómica para garantizar consistencia, cosa que no se había hechi. Esto llevó a una migración completa del SP a un script SQL puro con tablas variables y un WHILE loop. Simultáneamente, se implementó la funcionalidad de bloqueo de login después de 5 intentos fallidos en 20 minutos. Actividades realizadas 2:00 p.m. - 4:30 p.m. Durante este lapso se le hicieron varias consultas al profesor relacionadas con la antigua forma planteada para cargar los datos.     Img 1: conversación con e...

Inicio de documentación (Documento de Análisis de Resultados)

Imagen
  Fecha: Lunes  27 de abril 2026 Hora de Inicio:  8:00 pm Hora Finalización:  9:30 pm Total Horas : 1h 30 min En esta sesión yo, JJ, me encargué de realizar lo correspondiente al capítulo 1 (introducción)  y parte del 2 (Ambiente de desarrollo) de la documentación. Actividades Realizadas 8:00 p.m. - 9:30 p.m. Durante este lapso me encargué enteramente de la realización de los capítulos 1 y parte del  2 de la documentación. Este apartado lo tenía avanzado previamente dado que para este punto ya había hecho el diagrama de ambiente de desarrollo. Para la introducción escribí 3 párrafos cortos y concisos. Por otra parte, para el  capítulo 2: Descripción de ambiente de desarrollo y arquitectura de aplicación  escribí un párrafo corto que explica brevemente la información que ya expresa el diagrama.  También durante este lapso me encargué de organizar, en medida de lo posible, las bases para la tabla de contenido y el índice de figuras.  ...

Creación Diagrama de Desarrollo

Imagen
 Hora Inicio: 5:00 p.m. Hora Final: 6: 10 p.m. Total Horas Trabajadas: 1 h 10 min El plan para esta sesión fue simplemente crear el diagrama de ambiente de desarrollo. Actividades Realizadas 5:00 p.m - 6: 10 p.m Durante este lapso me encargué de realizar el diagrama/dibujo de contexto de desarrollo. La idea es que el dibujo representara de manera autoexplicativa el contexto de desarrollo de mi compañera y yo.  El diagrama nos dice: dónde se encuentra el servidor, qué computadora, que IDE usamos y también representa el uso de github. En este caso fue más sencillo de realizar que en la Tarea 1 dado que ya tenía el diagrama de ambiente de desarrollo que realicé en la tarea 1. Yo hice el diagrama de la anterior tarea a mano, por lo que en este caso fue nada más cambiarle unas cosas (para que en vez de aparecer HAMACHI apareciera Azure) y listo. Por eso mismo no le consulté al profesor sobre si ya está correcto, es muy similar al diagrama de la Tarea 1, solo que con la distinció...

Redacción de capítulos 3 y 4 de la documentación

Fecha:  l unes 27 de abril Horas trabajadas:  2 h 50 min Con la tarea completamente funcional, lo que quedaba era el análisis de resultados. Johana y yo nos habíamos dividido el trabajo previamente de la siguiente manera: Johana:  capítulos 1 y 2 (introducción y descripción del ambiente y arquitectura). Valeria:  capítulos 3 y 4 (resultados del proyecto y métricas). Actividades realizadas 10:00 a.m. – 11:05 a.m. Construí las dos tablas principales del documento: T abla del capítulo 3 Resultados del proyecto:  un ítem por cada elemento evaluable de la tarea según la rúbrica, con su estado final y un comentario. Tabla del capítulo 4 Métricas del proyecto:  nombre de la métrica, valor y comentario, cubriendo horas trabajadas por cada integrante, cantidad de commits, líneas de código, cantidad de SPs, pruebas realizadas, entre otras. Esperé a que Johana las revisara y me confirmara que estaban completas. Además, le pedí que agregara los valores correspondientes...

Implementación de funcionalidad: Insertar Movimiento

Imagen
Fecha: domingo 26 de abril de 2026 Hora de inicio: 9:30 a.m. Hora de finalización: 1:48 p.m. Horas trabajadas: 3 h 18 min El plan para esta sesión era implementar la funcionalidad completa de insertar movimiento: el SP auxiliar que necesitaba para el dropdown, las funciones en el modelo, la vista en el controlador y el HTML. Actividades realizadas 9:30 a.m. – 10:12 a.m. — SP: ListarTiposMovimiento Al empezar a pensar en el formulario de insertar movimiento me di cuenta de que necesitaba un dropdown para que el usuario escogiera el tipo de movimiento, y para llenarlo necesitaba un SP que retornara todos los tipos disponibles. Este no estaba pensado originalmente, pero surgió la necesidad en este momento al diseñar la funcionalidad completa. 10:12 a.m. – 11:45 a.m. — Funciones listar_tipos_movimiento e insertar_movimiento (modelo) + vista insertar_movimiento_view (controlador) Con el SP listo, implementé las dos funciones del modelo y la vista del controlador. ins...

Implementación de funcionalidades: Editar Empleado y Eliminar Empleado

Imagen
Fecha: sábado 25 de abril de 2026 Hora de inicio: 9:30 a.m. Hora de finalización: 5:38 p.m. Horas trabajadas:  4 h 41 min El plan para esta sesión era implementar las funcionalidades completas de editar y eliminar empleado. Fue la sesión más larga del proyecto hasta ahora, con bastante trabajo tanto en capa lógica como en presentación. Actividades realizadas 9:30 a.m. – 10:35 a.m. — Función actualizar_empleado (modelo) Empecé por la función en Python que conecta con el SP ActualizarEmpleado. La estructura es similar a las funciones que ya había hecho: abre la conexión, ejecuta el SP con cursor.execute, lee el resultset con el código de resultado y cierra la conexión en el finally. Un detalle importante en esta función es el conn.commit() después del fetchone. Como ActualizarEmpleado hace un UPDATE dentro de una transacción, es necesario confirmar el cambio desde la capa Python también, de lo contrario la modificación no persiste en la base de datos. Esto ya lo ha...

Implementación de funcionalidad: Consultar Empleado

Imagen
Fecha: viernes 24 de abril de 2026 Hora de inicio: 2:30 p.m. Hora de finalización: 7:45 p.m. Horas trabajadas:  3 h 02 min El plan para esta sesión era implementar la funcionalidad completa de consultar empleado: la función en la capa lógica, el controlador y la vista. Johana ya había terminado su parte de capa lógica y presentación días antes, así que yo había esperado a que estuviera lista para arrancar con la mía, tal como lo acordamos. Actividades realizadas 2:30 p.m. – 3:20 p.m. — Función consultar_empleado (capa lógica) Comencé escribiendo la función consultar_empleado en Python. Esto era bastante similar a lo que hice en la tarea 1, así que no partí desde cero: repasé el código de la tarea anterior para refrescar cómo se hacían las llamadas a SPs con pyodbc y cómo se manejaban los resultsets. La función abre la conexión, ejecuta el SP con cursor.execute, lee el primer resultset con cursor.fetchone para obtener los datos del empleado, y luego llama a cursor.nextset() para ...