Ir al contenido principal

Entradas

Mostrando entradas de abril, 2023

2. Creación de la estructura de la base de datos y primeros problemas técnicos

Día: 30/04/2023 Desde: 10:30 am / Hasta: 12:57 pm Tiempo transcurrido: 2 horas 27 minutos Se utilizó SQL Server para crear las tablas y establecer las relaciones entre ellas. Se definieron las claves primarias y foráneas (en sesiones previas solo se había discutido el modelo físico pero ahora lo comenzamos a formular en MSSQL), y se establecieron las restricciones necesarias para mantener la integridad de los datos. Sin embargo, surgieron los primeros problemas técnicos. El equipo tuvo dificultades para configurar SQL Server y hubo problemas al intentar establecer las relaciones entre las tablas. Además, se encontraron errores en el diseño inicial de la base de datos que requerían correcciones. Se consultaron recursos en línea, se discutieron diferentes enfoques y se realizaron múltiples pruebas. De esta forma se resolvieron en gran parte estos problemas y se plantearon preguntas para hacerle al profesor en sesiones de clase o consulta. Aunque no se resolvieron todos los problemas técn...

1. Diseño inicial de la base de datos y definición de reglas de negocio

Día: 28/04/2023 Desde: 2:15 pm / Hasta: 4:01 pm Tiempo transcurrido: 1 hora 46 minutos En esta sesión nos centramos en el diseño de la base de datos. Se identificó la necesidad de varias tablas para almacenar información sobre usuarios, tarjetas de crédito, transacciones y cuentas. Se discutió la importancia de las relaciones entre estas tablas y se definieron las claves primarias y foráneas para mantener la integridad de los datos. Las reglas de negocio se definieron en paralelo. Se acordó que los usuarios podrían ser administradores o tarjetahabientes, y que cada uno tendría diferentes niveles de acceso al sistema. También se estableció que las transacciones requerirían autenticación y que las consultas de saldo deberían ser en tiempo real. Las complicaciones surgieron al tratar de definir las relaciones entre las tablas y al intentar establecer las reglas de negocio. Se debatieron varias ideas y se consideraron diferentes enfoques. A pesar de los desafíos, el equipo trabajó en conju...

Comienzo de la tercera/cuarta tarea programada

Día: 26/04/2023 Desde: 9:12 am / Hasta: 11:37 am Tiempo transcurrido: 2 horas 25 minutos Se realizó la primera reunión para comenzar el proyecto. El objetivo principal fue desarrollar una aplicación web utilizando ASP.NET y SQL Server para manejar operaciones de tarjetas de crédito. Se identificó la necesidad de una base de datos robusta y bien estructurada para soportar las operaciones requeridas, y se decidió que C# sería el lenguaje de programación principal para la capa lógica. La descripción del problema se centró en la necesidad de un sistema que pudiera manejar múltiples operaciones de tarjetas de crédito, incluyendo transaciones, consultas de saldo, y administración de cuentas. Las complicaciones iniciales surgieron en la definición de los requerimientos y la planificación del proyecto. Se debatieron varias ideas y se discutieron diferentes enfoques para el diseño de la base de datos y la capa lógica. A pesar de los desafíos, el equipo se mantuvo enfocado y trabajó en conjunto ...

20. Mejora en el formato de la bitácora

Día: 10/04/2023 Desde: 1:50 pm / Hasta: 3:35 pm Tiempo transcurrido: 1 hora 45 minutos Hoy avanzamos en la mejora de la bitácora del proyecto. Nos dimos cuenta de que había detalles que podíamos mejorar en cuanto a las descripciones y el formato que se debía presentar en cada entrada. También decidimos agregar más imágenes para hacer más visual y amena la lectura de cada uno de los avances que hemos logrado. Por otro lado, nos dimos a la tarea de actualizar todas las referencias de las fuentes que hemos utilizado a lo largo del desarrollo del proyecto. Queríamos asegurarnos de que cualquier persona que leyera nuestra bitácora pudiera acceder a la información de manera fácil y precisa. Para ello, nos aseguramos de incluir la información completa de cada fuente utilizada, así como el enlace de acceso. Además, nos encontramos con algunos errores de formato en algunas entradas de la bitácora que corregimos para asegurarnos de que todo estuviera en orden y coherente en cuanto a presentación...

19. Análisis y documentación de resultados en la tarea programada de SQL

Día: 07/04/2023 Desde: 9:30 pm / Hasta: 11:15 am Tiempo transcurrido: 1 hora 45 minutos En esta fase de la segunda tarea, nos enfocamos en documentar y analizar los resultados obtenidos. Para ello, creamos una tabla en Excel donde registramos los resultados de las pruebas realizadas a los store procedures y consultas creados para la tarea. En general, los resultados obtenidos fueron satisfactorios. Los store procedures y consultas funcionaron correctamente y pudimos realizar las operaciones requeridas con éxito. Sin embargo, durante el análisis de los resultados, nos dimos cuenta de que había algunas áreas que podían mejorarse. En particular, notamos que algunos store procedures tenían tiempos de ejecución más largos de lo deseado. Decidimos investigar más a fondo para determinar la causa de este problema. Luego de revisar el código y hacer algunas pruebas, nos dimos cuenta de que el problema radicaba en la forma en que se estaban realizando las consultas en algunos store procedures. A...

18. Solución de problemas con formato de JSON en tabla Eventlog

Día: 06/04/2023 Desde: 7:00 pm / Hasta: 8:45 pm Tiempo transcurrido: 1 hora 45 minutos Durante el desarrollo de la tarea programada, nos encontramos con un problema relacionado con el formato del JSON en la tabla Eventlog. Ya que no estábamos seguros de cuál era el correcto, pero terminamos estandarizando según la tabla de valor y descripción indicada en el enunciado del proyecto. El problema era que el JSON que estábamos tratando de insertar no tenía el formato correcto y que debíamos asegurarnos de que todos los campos estuvieran en el orden correcto. Tomando en cuenta este consejo, nos pusimos a revisar el formato del JSON y descubrimos que había un campo que no estaba siendo incluido en la inserción. Una vez que agregamos este campo, pudimos insertar los datos sin problemas y sin recibir el error. Para evitar futuros problemas, decidimos documentar detalladamente el formato del JSON en la tabla Eventlog y asegurarnos de que siempre se inserten todos los campos necesarios. Esto nos ...

17. Optimización y documentación del código SQL en la tarea programada

Día: 05/04/2023 Desde: 9:18 am / Hasta: 11:18 pm Tiempo transcurrido: 2 horas Durante esta tarea programada, uno de nuestros objetivos fue revisar el código de los procedimientos almacenados existentes para asegurarnos de que estaba funcionando correctamente. Para ello, revisamos cuidadosamente cada sección del código para identificar cualquier problema o error. Una vez que identificamos los problemas, agregamos comentarios claros en el código para explicar el funcionamiento de cada sección y asegurarnos de que otros miembros del equipo pudieran entender el código con facilidad. Los comentarios ayudaron a hacer que el código fuera más legible y fácil de mantener, lo que es fundamental para proyectos en equipo. Además, encontramos algunos errores menores en la sintaxis del código y los corregimos de manera inmediata. Esto incluyó la eliminación de espacios en blanco innecesarios y la corrección de errores de ortografía. Aunque estos errores parecían pequeños, podían tener un impacto sig...

16. Corrección de validación espacio vacío en el filtro de cantidad

Día: 05/04/2023 Desde: 11:20 am / Hasta: 1:20 pm Tiempo transcurrido: 2 horas En el desarrollo del proyecto, se encontró un problema con la validación de la casilla de cantidad en el procedimiento almacenado de filtro por nombre. Al dejar en blanco la casilla de cantidad, es decir un '', se enviaba ese parámetro al procedimiento almacenado y no enseñaba ningún elemento en pantalla, cuando en realidad lo que tenía que hacer era mostrar todos. Para resolver el problema, se decidió validar el parámetro de cantidad en el procedimiento almacenado. Cuando el valor de cantidad estaba vacío, se realizaría una selección de todos los elementos de la tabla artículos. Se realizó la siguiente modificación en el código: -- Validacion valor nulo DECLARE @cantTemp INT SELECT @cantTemp = COUNT(*) FROM [dbo].[Articulo]; IF (@inCantidad = '') BEGIN SET @outResultCode = 50002   -- Error de entrada de valores nulos SET @inCantidad = @cantTemp; Con esta validación, el ...

15. Creación del store procedure SP_LogOut

Día: 04/04/2023 Desde: 3:15 pm / Hasta: 5:00 pm Tiempo transcurrido: 1 hora 45 minutos Hicimos un nuevo procedimiento almacenado para guardar el log de cada vez que el usuario salga de la sesión, es decir, cuando aprieta el botón de salir en la página de la tabla de artículos. Este procedimiento recibe como parámetro la fecha y hora, el nombre del usuario, el IP del ordenador. Para insertar el Id del usuario en la tabla EventLog se hace un select de la tabla Usuario en donde el nombre de usuario es igual al parámetro ingresado @inNombre. Para llamar a este procedimiento almacenado, hemos creado la función Button1_Click() en donde una vez se llama al store procedure se redirige a la página inicial de login y también se finaliza el Forms que tenía almacenado el nombre del usuario que había iniciado sesión. En conclusión, en lo que hemos trabajado mas tiempo ha sido el código en SQL para el store procedure de Logout. La implementación desde capa lógica fue relativamente sencil...

14. Inserción de datos del usuario y descripción en la tabla EventLog en procedimientos almacenados

Día: 03/04/2023 Desde: 6:00 pm / Hasta: 8:00 pm Tiempo transcurrido: 2 horas En esta tarea programada, se nos pidió insertar los datos del usuario y la descripción de la acción realizada en la tabla EventLog al final de cada procedimiento almacenado. Para hacer esto, revisamos los requisitos y los datos necesarios para implementar la inserción. En primer lugar, revisamos el código de los procedimientos almacenados existentes y agregamos la inserción de los datos del usuario y la descripción de la acción realizada al final del procedimiento. Utilizamos los parámetros de entrada @LogDescription, @UserID, @inIP, y @inTime para asignar los valores a ingresar a la tabla.                                                   Para asegurarnos de que la inserción se realizara correctamente, utilizamos la cláusula TRY-CATCH en SQL y la incluimos dentro...

13. Pasar strored procedures al formato solicitado en clase

 Día: 03/04/2023 Desde: 8:30 pm / Hasta: 10:30 pm Tiempo transcurrido: 2 horas Durante la fase de desarrollo de nuestro proyecto, nos dimos cuenta de que los stored procedures que habíamos creado previamente no seguían el estándar solicitado en clase. Por lo tanto, decidimos optimizarlos para asegurarnos de que seguían las mejores prácticas y para garantizar un manejo adecuado de errores y parámetros. Para lograr esto, comenzamos revisando cada uno de los stored procedures que habíamos creado y comparándolos con el estándar que se había presentado en clase. Identificamos rápidamente que algunos de los procedimientos almacenados tenían un manejo inadecuado de errores y parámetros. Además, encontramos que algunas partes del código no seguían una estructura lógica, lo que dificultaba la lectura del código y su mantenimiento. Después de identificar los problemas, nos tomamos el tiempo para reescribir cada uno de los stored procedures, asegurándonos de que siguieran el estándar visto en...

12. Investigación e implementación del IP, autenticación de usuario y DATETIME

Día: 01/04/2023 Desde: 1:45 pm / Hasta: 2:30 pm Tiempo transcurrido: 1 hora 45 minutos Se trabajó en las funciones y métodos necesarios en capa lógica para obtener el IP del ordenador y la fecha y hora que se necesitan para insertar a la tabla EventLog. En lo primero que trabajamos fue en la autenticación del usuario, lo cual nos perimitirá conservar el nombre del usuario que ha hecho login en la pagina inicial. Este nombre se conserva en una cookie por medio de un Forms con la función SetAuthCookie(), la cual guarda el nombre de usuario solo cuando se ha validado efectivamente después de llamar el procedimiento de login que el resultCode es igual a cero. De caso contrario no se va a guardar el nombre ni se procederá a la siguiente página. Al haber investigado como realizar esta autenticación decidimos usar esta página como referencia https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/aspnet/development/forms-based-authentication. Para acceder al nombre de usuar...