AssistControl

Es una aplicación web para el Centro Tecnológico Marcos Homero Guatemala INATEC que facilita los procesos académicos que realizan los docentes y personal de registro. A los maestros les permite llevar un control de asistencia de los grupos que tengan asignados en ese momento y a registro(administración) tiene toda una gestión de docentes, estudiantes, grupos y carreras del centro, de modo que les agilice su trabajo.

Imagen del proyecto AssistControl

Kristhian Ferrufino

15-07-2023

Imagen de la actividad de un programador

Cuando comenzó mi último año de la carrera y una de las clases que venían en el trimestre eran prácticas de profesionalización, ya antes había realizado las de familiarización, así que tocaban estas. Un profesor, el mismo que me pidió ayuda con la aplicación de reclutamiento de trabajo, me consiguió desde antes donde desempeñarlas e iba a ser en el Centro Tecnológico Marcos Homero Guatemala INATEC.


Ahora el objetivo era realizar una aplicación que le facilitara tanto a docentes como a registro la gestión de asistencia del centro y de que con esa misma se participara en el evento de INNOVATEC 2023. El docente me hizo unas cuantas explicaciones del funcionamiento de la aplicación y le hice unas cuantas preguntas a registro para aclarar mis dudas, de ahí saque una captura de un sistema que ellos poseen para hacer el diseño del software que iba a desarrollar.


Lo primero fue diseñar la base de datos para ver cuánta información se requería y como se relacionaban los datos entre sí, para ello use un programa llamado Draw.io que me permite realizar muchos tipos de diagramas. Por la estructura y el cómo se relacionan los datos decidí usar una base de datos relacional, para este caso MySQL.


Ya antes había levantado una lista de requerimientos del sistema, pero al diseñar la base de datos me di cuenta de que se necesitaban más funcionalidades, así que las agregue. Estas funcionalidades están divididas entre los roles del usuario que ingrese al sistema(docente o administrador), de modo que tenía que programarlas de forma que solo quien tenga el rol indicado puede realizar la acción que se solicita.


Para esta ocasión quería desarrollar mi propio Backend y como tenía tiempo así que lo hice, utilice Node.js, TypeScript, Express y Sequelize para realizar esta parte del proyecto, primero me centre en la parte que utilizarían los docentes. Cuando la termine use Jest y SuperTest para testear la API, luego de eso realice correcciones de errores.


Lo siguiente fue empezar a crear el Frontend, por lo que use la tecnología que más conozco React, además de Vite y TypeScript, seguí lo mismo que en el Backend, es decir, desarrolle solo la parte de los docentes y realice pruebas con Jest y Testing Library.


Hasta ese punto tenía una aplicación prácticamente terminada y de hecho se podía desplegar sin ningún problema, pero faltaban las funcionalidades de registro. Así que se volvió al Backend de Node.js para desarrollar el resto de funcionalidades, realizar pruebas y corregir errores. Mientras veía shorts en YouTube salió uno que explicaba la importancia de los logs así que decidí implementarlo en el Backend, me documente de cómo hacerlo localmente y remotamente, para ello utilice Winston y Better Stack Logtail. La API estaba lista.


Se regresó al Frontend para implementar las nuevas funcionalidades que le permitirían a registro realizar sus labores, luego se testearon y se depuraron los errores.


Ahora había que buscar un servicio que me permitiera tener un base de datos de MySQL gratis y que cubriera la necesidad. Se pasó varios días buscando ese servicio, pero los que encontré no resolvían el problema, principalmente por el límite de conexión de tantos usuarios a la base de datos. Así que al final se decidió pagar por un servicio para solucionar este problema.


Imagen de una pareja de programadores

Luego se hizo el despliegue tanto del Backend y del Frontend y no hubo mayores inconvenientes, ambas se conectaban de forma eficaz. Luego se hicieron pruebas de usuario con registro y docentes, ambos estaban satisfechos con los resultados.


A través de la resolución de obstáculos, ajustes constantes y aprendizaje de nuevas herramientas, el proyecto culminó con éxito. El sentimiento de logro se experimentó al ver la aplicación probada y desplegada satisfactoriamente, además de la alegría al recibir la aprobación y satisfacción de los usuarios finales, reflejando el esfuerzo, crecimiento personal y profesional en la superación de desafíos y en la creación de una solución que cumplió y superó expectativas.


Habilidades Aplicadas

https://res.cloudinary.com/dzs8lf9lc/image/upload/v1700445502/portfolio/skills/v5u2rxpt7mebytthfrb2.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1708577022/portfolio/skills/scss_jozonx.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1700445492/portfolio/skills/gnpzldswhegpzcxirmo2.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1702525293/portfolio/skills/cguq35pke2uqlkfts74a.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1708577846/portfolio/skills/Express_jv5eue.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1708642862/portfolio/skills/Jest_bdtntf.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1708641039/portfolio/skills/Vitest_lemqd2.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1708987338/portfolio/skills/Testing_Library_n21cgg.pnghttps://res.cloudinary.com/dzs8lf9lc/image/upload/v1708577846/portfolio/skills/MySQL_xglbkh.png

Compartir

Comentarios