scieee Open visual document viewer

Diseño de aplicación web para la gestión de los resultados de ensayos de laboratorio

Pinto Justiniano, Sebastián

Abstract

El presente trabajo consiste en la especificación, diseño e implementación de una base de datos, una API, y una aplicación web realizadas para el Centro de Estudios y Experimentación de Obras Públicas (CEDEX), con el fin de estructurar, persistir, interactuar y visualizar datos relacionados con experimentos de laboratorio sobre aceros. Se han diseñado dos bases de datos, una base de datos siguiendo un esquema relacional para la gestión de los metadatos a partir de los cuales se diseñan las distintas pantallas de la aplicación web. La segunda base de datos sigue un esquema NoSql, en particular se trata de una base de datos orientada a documentos que garantizará la persistencia de los resultados obtenidos por los distintos ensayos que se realizan en el laboratorio y a partir de los cuales se generarán informes y estadísticas. Para poder interactuar con los datos disponibles, se utiliza una API. Por último, se creó una página web para facilitar el uso de dicha API, permitiendo además generar tablas y diagramas para poder visualizar los datos seleccionados. Tanto la API como la aplicación web tienen un sistema de autenticación para proteger los datos existentes.

Full text

DISEÑO DE APLICACIÓN WEB PARA LA GESTIÓN DE LOS RESULTADOS DE ENSAYOS DE LABORATORIO DESIGN OF A WEB APPLICATION FOR THE MANAGEMENT OF LABORATORY TEST RESULTS. TRABAJO FIN DE GRADO CURSO 2023-2024 AUTOR Sebas ián Pin o Jus iniano DIRECTOR YOLANDA GARCÍA RUIZ GRADO EN INGENIERÍA DEL SOFTWARE FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID RESUMEN El p esen e abajo consis e en la especi icación, diseño e implemen ación de una base de da os, una API, y una aplicación web ealizadas pa a el Cen o de Es udios y Expe imen ación de Ob as Públicas (CEDEX), con el in de es uc u a , pe sis i , in e ac ua y isualiza da os elacionados con expe imen os de labo a o io sob e ace os. Se han diseñado dos bases de da os, una base de da os siguiendo un esquema elacional pa a la ges ión de los me ada os a pa i de los cuales se diseñan las dis in as pan allas de la aplicación web. La segunda base de da os sigue un esquema NoSql, en pa icula se a a de una base de da os o ien ada a documen os que ga an iza á la pe sis encia de los esul ados ob enidos po los dis in os ensayos que se ealizan en el labo a o io y a pa i de los cuales se gene a án in o mes y es adís icas. Pa a pode in e ac ua con los da os disponibles, se u iliza una API. Po úl imo, se c eó una página web pa a acili a el uso de dicha API, pe mi iendo además gene a ablas y diag amas pa a pode isualiza los da os seleccionados. Tan o la API como la aplicación web ienen un sis ema de au en icación pa a p o ege los da os exis en es. Palab as cla e expedien es, ensayos, p oduc os, cien í ico, SQL, mongoDB, web, la a el, ja asc ip . ABSTRACT The p esen wo k in ol es he speci ica ion, design, and implemen a ion o a da abase, an API, and a web applica ion de eloped o he Cen o de Es udios y Expe imen ación de Ob as Públicas (CEDEX), wi h he aim o s uc u ing, pe sis ing, in e ac ing wi h, and isualizing da a ela ed o labo a o y expe imen s on s eel. Two da abases ha e been designed: a ela ional da abase schema o managing he me ada a om which he a ious sc eens o he web applica ion a e designed, and a NoSQL da abase, speci ically a documen -o ien ed da abase ha ensu es he pe sis ence o esul s ob ained om a ious labo a o y es s, which will be used o gene a e epo s and s a is ics. To in e ac wi h he a ailable da a, an API is used. Finally, a web page was c ea ed o acili a e he use o his API, also allowing he gene a ion o ables and diag ams o isualize he selec ed da a. Bo h he API and he web applica ion ha e an au hen ica ion sys em o p o ec he exis ing da a. Keywo ds eco ds, es s, p oduc s, scien i ic, SQL, mongoDB, web, la a el, ja asc ip . ÍNDICE DE CONTENIDOS Capí ulo 1 - In oducción........................................................................................................... 1 1.1 Mo i ación..........................................................................................................................1 1.2 Obje i os............................................................................................................................2 1.2.1 Uni icación de la es uc u a de los da os.................................................................. 2 1.2.2 Ob ención de es adís icas ele an es.......................................................................2 1.3 Plan de abajo...................................................................................................................3 1.4 Es uc u a de la memo ia...................................................................................................6 Capí ulo 2 - Es ado de la cues ión............................................................................................8 Capí ulo 3 - Tecnologías empleadas.......................................................................................10 3.1 He amien as F on end....................................................................................................10 3.1.1 HTML 5................................................................................................................... 10 3.1.2 CSS y Tailwind CSS................................................................................................10 3.1.3 Ja aSc ip y TypeSc ip ...........................................................................................11 3.1.4 DaisyUI 4.................................................................................................................11 3.1.5 AG G id................................................................................................................... 11 3.1.6 Cha .js......................................................................................................................... 12 3.1.7 S el e 4 y S el eKi 1..............................................................................................12 3.2 He amien as Backend.................................................................................................... 13 3.2.1 PHP y La a el 10....................................................................................................13 3.2.2 Pos g eSQL............................................................................................................ 13 3.2.3 MongoDB................................................................................................................14 3.2.4 Docke .....................................................................................................................14 3.2.6 AWS RDS............................................................................................................... 15 3.2.7 MongoDB A las.......................................................................................................15 3.2.8 Rende .................................................................................................................... 15 3.3 O as he amien as..........................................................................................................16 3.3.1 Visual S udio Code................................................................................................. 16 3.3.2 Gi Hub.....................................................................................................................16 3.3.3 DBea e ..................................................................................................................16 3.3.4 MongoDB Compass................................................................................................17 3.3.5 Pos man..................................................................................................................17 Capí ulo 4 - Modelo de da os...................................................................................................17 4.1 Modelo En idad-Relación.................................................................................................17 4.2 Implemen ación de la base de da os...............................................................................19 4.2.1 Base de da os elacional.........................................................................................19 4.2.1.1 P oduc os.............................................................................................................21 4.2.1.2 Nominales............................................................................................................24 4.2.1.3 Ensayos............................................................................................................... 26 4.2.1.4 A ibu os...............................................................................................................28 4.2.1.5 Usua ios...............................................................................................................30 4.2.1.6 Tokens Pe sonales...............................................................................................32 4.2.2 Base de da os no elacional....................................................................................33 Capí ulo 5 - Casos de uso........................................................................................................34 4.1 Ac o es.............................................................................................................................34 4.2 Diag ama de casos de uso..............................................................................................34 4.3 Especi icación de equisi os............................................................................................ 35 4.3.1 Usua ios..................................................................................................................36 4.3.2 Expedien es............................................................................................................ 38 4.3.3 P oduc os................................................................................................................46 4.3.3 Ensayos.................................................................................................................. 56 4.3.5 Es adís icas.............................................................................................................67 Capí ulo 6 - A qui ec u a..........................................................................................................68 5.1 A qui ec u a del sis ema.................................................................................................. 68 5.2 Pa ones A qui ec ónicos.................................................................................................70 5.2.1 REST...................................................................................................................... 70 5.2.2 Modelo-Vis a-Con olado .......................................................................................71 5.3 Pa ones de diseño..........................................................................................................73 5.3.1 Dependency injec ion..............................................................................................73 5.3.2 Chain o Responsibili y........................................................................................... 75 5.3.3 Obse e ................................................................................................................. 76 5.4 Vis as............................................................................................................................... 77 5.4.2 Templa e View.........................................................................................................77 5.4.2 Composi e...............................................................................................................78 Capí ulo 7 - Diseño................................................................................................................... 80 7.1 Au en icación................................................................................................................... 80 7.2 Expedien es.....................................................................................................................80 7.3 Es adís icas..................................................................................................................... 80 7.4 P oduc os.........................................................................................................................80 7.5 Ensayos...........................................................................................................................80 Capí ulo 8 - Conclusiones y abajo u u o............................................................................ 80 9.1 Conclusiones................................................................................................................... 80 9.2 T abajo u u o...................................................................................................................81 Bibliog a ía.................................................................................................................................83 ÍNDICE DE ILUSTRACIONES Figu a 1. Table o de a eas Figu a 2. Diag ama en idad- elación Figu a 3. Mig ación de P oduc os Figu a 4. Modelo de P oduc o Figu a 5. Enume ado de Clase Figu a 6. Mig ación de Nominales Figu a 7. Modelo de Nominal Figu a 8. Mig ación de Ensayos Figu a 9. Modelo de Ensayo Figu a 10. Mig ación de A ibu os Figu a 11. Modelo de A ibu o Figu a 12. Mig ación de Usua ios Figu a 13. Modelo de Usua io Figu a 14. Mig ación de Tokens Pe sonales de Acceso Figu a 15. Diag ama de casos de uso Figu a 16. A qui ec u a del sis ema Figu a 17. Diag ama de MVC Figu a 18. Ejemplo de inyección de dependencias Figu a 19. Código de Middlewa e de au en icación Figu a 20. Ejemplo de componen e de S el e básico Figu a 21. Ejemplo de componen e S el e usando el pa ón Composi e Figu a 22. Inicio de sesión Figu a 23. Cie e de sesión Figu a 24. Búsqueda y Acciones de Expedien es Figu a 25. Visualización de Expedien e Figu a 26. Fo mula io de c eación y modi icación de Expedien e 1 Figu a 27. Fo mula io de c eación y modi icación de Expedien e 2 Figu a 28. Fo mula io de c eación y modi icación de Expedien e 3 Figu a 29. Fo mula io de c eación y modi icación de Expedien e 4 Figu a 30. Fo mula io de c eación y modi icación de Expedien e 5 Figu a 31. Eliminación de Expedien e Figu a 32. Ejemplo de His ó ico Figu a 33. Ejemplo de Tes de G ubbs Figu a 34. Ejemplo de di e encia de medias Figu a 35. Búsqueda de P oduc os Figu a 36. Búsqueda de Ensayos Figu a 37. Visualización de P oduc os Figu a 38. Visualización de Ensayos Figu a 39. Fo mula io de c eación y modi icación de P oduc o Figu a 40. Fo mula io de c eación y modi icación de Ensayo ÍNDICE DE TABLAS Tabla 1. Inicia sesión Tabla 2. Ce a sesión Tabla 3. Ve Expedien e Tabla 4. C ea Expedien e Tabla 5. Modi ica Expedien e Tabla 6. Elimina Expedien e Tabla 7. Busca Expedien es po ID Tabla 8. Busca Expedien es median e il os Tabla 9. Ve P oduc o Tabla 10. C ea P oduc o Tabla 11. Modi ica P oduc o Tabla 12. Elimina P oduc o Tabla 13. Busca P oduc os po ID Tabla 14. Busca P oduc os po Clase Tabla 15. Busca P oduc os po nomb e Tabla 16. Ob ene Nominales de un P oduc o Tabla 17. Ve Ensayo Una ez implemen adas las acciones sob e un expedien e, se ha usado es e sp in pa a empeza a implemen a uncionalidades sob e a ios expedien es. Las p ime as ue on un his ó ico de da os, mos ando la e olución de los esul ados de los ensayos ealizados en los expedien es seleccionados; y el Tes de G ubbs, pe mi iendo a e igua la exis encia de alo es a ípicos al compa a los con expedien es p eexis en es. Sp in 5: Más es adís icas. El úl imo sp in se ha cen ado en añadi más es adís icas a la aplicación. La p ime a ue la compa ación de los alo es medios de los nominales de p oduc os de dis in os ab ican es, que pe mi ía encon a anomalías en e los p oduc os de dos ab ican es, seleccionando una lis a de expedien es como mues a. La o a ue la capacidad de e un his ó ico sob e un conjun o de expedien es, que pe mi e e de o ma g á ica la e olución de los esul ados ob enidos en los ensayos comunes a dichos expedien es. 1.4 Es uc u a de la memo ia A con inuación se desc iben de o ma b e e los capí ulos que cons i uyen la memo ia: ●Capí ulo 1 - In oducción: Es e capí ulo es á dedicado a la mo i ación y obje i os del abajo jun o con el plan del abajo seguido y la es uc u a de la memo ia. ●Capí ulo 2 - Es ado del a e: Es e capí ulo es á dedicado a la desc ipción de aplicaciones que o ecen uncionalidades pa ecidas a las de es e abajo. ●Capí ulo 3 - Tecnología implemen ada: Es e capí ulo es á dedicado a explica las ecnologías implemen adas en el abajo. 6 ●Capí ulo 4 - Modelo de da os: Es e capí ulo es á dedicado a la desc ipción del modelo de da os usado en el abajo pa a ealiza la pe sis encia de la in o mación de la aplicación. ●Capí ulo 5 - Casos de uso: Es e capí ulo es á dedicado a la desc ipción de la especi icación de equisi os y los ac o es que pa icipan en ellos. ●Capí ulo 6 - A qui ec u a: Es e capí ulo es á dedicado a la desc ipción de la a qui ec u a u ilizada pa a la implemen ación del abajo p opues o. ●Capí ulo 7 - Diseño: Es e capí ulo es á dedicado a la desc ipción de las p incipales uncionalidades implemen adas jun o con el diseño u ilizado en ellas. ●Capí ulo 8 - Conclusiones y abajo u u o: Es e capí ulo es á dedicado a las conclusiones del abajo ealizado seguido de el posible abajo u u o a ealiza . 7 Capí ulo 2 - Es ado de la cues ión Si bien es cie o no exis en al e na i as al p oyec o, al desa olla en es e una aplicación muy especí ica, sí que exis en o os p oduc os que se pod ían habe usado pa a implemen a la solución de nues o p oyec o (p oduc os so wa e con acceso a una base de da os median e una in e az g á ica, pe mi iendo ob ene es adís icas ele an es). En es e apa ado se nomb an es os p oduc os, y po qué se desca a on pa a el desa ollo de nues a aplicación. ●Fi ebase [3]. Fi ebase es una pla a o ma en la nube pa a el desa ollo de aplicaciones web y mó iles que pe enece a Google. Tiene he amien as pa a ges iona Bases de da os, au en icación de usua ios y de analí icas (aunque es as se cen an más en in o mación sob e los usua io que u ilizan la aplicación, po lo que no nos se i ía pa a nues o p opósi os es adís icos). El p incipal p oblema de FI ebase es que es un p oduc o p i a i o y de pago, además de no con a con la opción de se au o hos eado, lo cual signi ica que nues os da os se encon a án en la nube. ●Supabase [4]. Supabase es una al e na i a a Fi ebase de código abie o, con opción de se au o hos eado, y con un plan g a is, aunque es e plan no nos se i ía debido al amaño de da os de nues a aplicación. El p ecio ambién se e educido, pe o al no con a ampoco con he amien as pa a ob ene es adís icas ele an es ambién ue desca ado. ●Pocke Base [5]. Po úl imo, Pocke Base es o a al e na i a a Fi ebase, muy simila a Supabase, solo que de mane a comple amen e g a ui a, pe o usa como Base de da os SQLi e, una Base de da os basada en iche os en memo ia, la cual no 8 es la mejo opción pa a g andes can idades de da os, po lo que ampoco ue u ilizada. 9 Capí ulo 3 - Tecnologías empleadas Es e capí ulo es á dedicado a p esen a odas las ecnologías u ilizadas pa a el desa ollo de los obje i os plan eados en el apa ado 1.2. 3.1 He amien as F on end 3.1.1 HTML 5 HTML 5 [6] (Hype Tex Ma kup Language, e sión 5) es un lenguaje de ma cado que se u iliza en el desa ollo de páginas web. En es e p oyec o se ha u ilizado pa a de ini la es uc u a, el diseño y el con enido de la página web. 3.1.2 CSS y Tailwind CSS CSS [7] (Cascading S yle Shee s) es el lenguaje de es ilos u ilizado pa a desc ibi la p esen ación de documen os HTML. CSS desc ibe cómo debe ende iza el elemen o es uc u ado en la pan alla. Es uno de los lenguajes base de la Open Web y posee una especi icación es anda izada po pa e del W3C (Wo ld Wide Wo ld Conso ium) Po o a pa e, Tailwind [8] CSS es un amewo k CSS basado en CSS a ómico, p opo cionando un conjun o de clases u ili a ias. En ez de implemen a es ilos pa a cada elemen o de nues a aplicación, podemos u iliza las clases de ailwind p ede inidas pa a agiliza el desa ollo de nues a in e az. Aunque su uso no es el más ecomendable pa a g andes aplicaciones con in e aces muy complejas, pa a una in e az sencilla como es la de nues a aplicación es de g an ayuda. 10 3.1.3 Ja aSc ip y TypeSc ip Ja aSc ip [9] es un lenguaje de p og amación con ipado débil, al pe mi i decla a a iables sin especi ica su ipo, y dinámico, al se posible cambia el ipo de a iables exis en es. Debido a es as dos ca ac e ís icas, Ja aSc ip siemp e se ha is o como un lenguaje poco obus o, po lo que en 2012 Mic oso lanzó TypeSc ip [10], una ex ensión de Ja aSc ip que in en a mejo a la segu idad del lenguaje median e un ipado ue e y es á ico. Además, mien as Ja aSc ip es un lenguaje in e p e ado, TypeSc ip es uno compilado, pe mi iendo indica e o es an es de la ejecución del código. Se ha u ilizado TypeSc ip pa a implemen a oda la lógica del on end de la aplicación. 3.1.4 DaisyUI 4 DaisyUI [11] es una lib e ía de componen es web g a is y de código abie o basada en Tailwind CSS, p opo cionándonos clases u ili a ias más complejas y un amplio eposi o io de componen es eu ilizables que podemos usa en nues a aplicación. El uso de es a lib e ía ha se ido como base de los componen es más complejos que usa nues a aplicación. 3.1.5 AG G id AG G id [12] es la lib e ía de ablas pa a Ja asc ip más u ilizada del mundo. Cuen a con e siones g a ui as y de pago, pe o la e sión g a ui a cumple odos los equisi os que necesi a nues a aplicación, ya que nos pe mi e c ea ablas complejas y dinámicas de mane a muy simple. 11 Se ha u ilizado es a lib e ía pa a c ea las ablas exis en es en las is as de búsqueda y de alle de Expedien es, P oduc os y Ensayos, y en la selección de g upos pa a el es adís ico de di e encia de medias median e la dis ibución de S uden . 3.1.6 Cha .js Cha .js [13] es una lib e ía de código abie o pa a la c eación de g á icas. Cuen a con una in e az muy simple pe o comple a, que nos pe mi e c ea a ios ipos de g á icas de mane a ácil y ápida. Se ha u ilizado es a he amien a pa a mos a de mane a más isual los esul ados de las es adís icas disponibles en es e p oyec o. 3.1.7 S el e 4 y S el eKi 1 S el e [14] es un amewo k de desa ollo web diseñado pa a c ea in e aces de usua io (UI). En es e TFG se ha usado S el e pa a desa olla componen es de in e az de usua io, como ba as de na egación o o mula ios pa a c ea expedien es. Los usua ios pueden e e in e ac ua con es os componen es en sus na egado es. S el e cuen a con un compilado , el cual con ie e los componen es en Ja aSc ip , que puede ejecu a se pa a gene a el HTML de la página, y en CSS, que aplica es ilos a la página. Es una al e na i a a Reac , que es la lib e ía pa a c ea páginas web eac i as más u ilizada. Po o a pa e, S el eki [15] es un amewo k pa a desa olla de mane a ápida aplicaciones web obus as y con buen endimien o, y u iliza S el e pa a c ea las in e aces de usua io. El uso de es a ecnología nos pe mi e añadi u as con a iables, ejecu a código Ja aSc ip al ca ga u as (pa a p o ege las o hace llamadas a la Base de Da os po ejemplo), o ene a iables globales, en e muchas o as cosas. De hecho, S el eki puede unciona como un Backend comple o, po lo que se pueden 12 cons ui aplicaciones ull s ack con él, aunque en es e p oyec o solo se ha u ilizado pa a cons ui el on end. 3.2 He amien as Backend 3.2.1 PHP y La a el 10 PHP [16] es un lenguaje de p og amación in e p e ado del lado del se ido y de uso gene al, con ipado débil y dinámico al igual que Ja aSc ip . La a el [17] es un amewo k de PHP lanzado en 2011, con el obje i o de acili a el desa ollo de aplicaciones que sigan el pa ón Modelo-Vis a-Con olado . La a el es un amewo k muy comple o, que acili a mucho la in e acción con los da os de la aplicación, al pe mi i c ea en idades (llamadas Modelos) de mane a muy sencilla, y con ene un ORM (Objec Rela ional Mappe ) in eg ado, llamado Eloquen que elaciona los Modelos con Tablas (o Colecciones en caso de usa MongoDB) de nues a Base de Da os. Además, Eloquen pe mi e ealiza cambios en nues a Base de Da os median e iche os de mig aciones, y accede a és a median e una API muy sencilla, po lo que no nos enemos que p eocupa po ulne abilidades en nues as consul as. Apa e de Eloquen , La a el con iene muchas uncionalidades más, como la de añadi Middlewa e a nues as u as, inyección de dependencias en los Con olado es, o una alidación de da os muy compleja. Po odos es os mo i os, se decidió u iliza La a el pa a el desa ollo del backend de es e p oyec o en e a o as al e na i as como Ja a Sp ing Boo , ya que se hab ía necesi ado con igu a la dependencia de un ORM, y de un gene ado de consul as como Que yDSL, mien as que La a el las inco po a na i amen e. 13 3.2.2 Pos g eSQL Pos g eSQL [18], o ambién llamado Pos g es, se conside a un sis ema de ges ión de bases de da os obje o- elacional (ORDBMS) de código abie o, lo que signi ica que combina las capacidades de las bases de da os elacionales con algunas ca ac e ís icas o ien adas a obje os. En es e abajo se ha usado pa a ges iona la pa e elacional de la base de da os, enca gada de gua da la es uc u a de las en idades y me ada os del p oyec o. 3.2.3 MongoDB MongoDB [19] es un sis ema de base de da os NoSQL, o ien ado a documen os y de código abie o. En luga de gua da los da os en ablas, al y como se hace en las bases de da os elacionales, MongoDB gua da es uc u as de da os BSON (una especi icación simila a JSON) con un esquema dinámico. Hemos hecho uso de MongoDB en es e p oyec o pa a la pe sis encia y ges ión de los esul ados ob enidos en los ensayos de Expedien e. Es o es ideal pa a nues a aplicación, ya que la es uc u a de los da os puede a ia en e di e en es expedien es y ensayos. Dicha es uc u a se á explicada con más de alle en el capí ulo 4. 3.2.4 Docke Docke [20] es un p oyec o de código abie o diseñado pa a au oma iza el despliegue de aplicaciones median e el uso de con enedo es, p opo cionando una capa adicional de abs acción y au oma ización al despliegue de an o en o nos de desa ollo como de p oducción. Docke au oma iza la eplicación de aplicaciones median e iche os .Docke ile, los cuales encapsulan el en o no de una aplicación 14 (dependencias, a iables de en o no, comandos a ejecu a pa a inicia la aplicación, e c). Pa a pode ejecu a un con enedo Docke solamen e se necesi a ene Docke ins alado, y compa i el mismo ke nel que el con enedo (no malmen e Linux, aunque es posible ambién con Windows). Se ha u ilizado es a ecnología pa a au oma iza el lanzamien o de las aplicaciones on end y backend en los en o nos de p oducción. 3.2.6 AWS RDS Amazon Web Se ices [21] es la colección de se icios de compu ación en la nube p opiedad de Amazon. Uno de es os se icios es AWS Rela ional Da abase Se ice, enca gado de p opo ciona bases de da os elacionales en AWS. Se ha u ilizado es e se icio pa a albe ga la base de da os Pos g es de p oducción, ya que RDS cuen a con un plan g a ui o que sa is ace las necesidades del p oyec o. El cambio a o o se icio en la nube, o el uso de un se ido p opio implica ía ealiza cambios en las a iables de en o no del se ido enca gado de albe ga el backend, indicando el hos , pue o, usua io y con aseña del nue o se icio. 3.2.7 MongoDB A las MongoDB A las [22] es el se icio en la nube de Mongo, el cual ha se ido pa a almacena la base de da os MongoDB de p oducción. Al igual que ocu e con la base de da os elacional, el CEDEX puede segui usando es e se icio, o decidi aloja es a base de da os en un se ido local, modi icando las a iables de en o no necesa ias. 15 pa a adap a se a u u os cambios y escalabilidad. Al combina lo mejo de las bases de da os elacionales y no elacionales, se log a una solución obus a y e sá il que sa is ace los di e sos eque imien os de la aplicación. 4.2 Implemen ación de la base de da os 4.2.1 Base de da os elacional Pa a la implemen ación de la base de da os elacional, se ha u ilizado Pos g es 16.1, ya que es la e sión más ac ual sopo ada po AWS en la echa de c eación de la base de da os. Pa a la c eación de las ablas se ha u ilizado la uncionalidad Schema de La a el, que nos pe mi e la c eación y manipulación de ablas de odas las conexiones en la aplicación median e el uso de iche os de mig ación, que ac úan como un sis ema de con ol de e siones de la base de da os. Una ez c eada una abla, median e el ORM Eloquen , podemos c ea un Modelo asociado a dicha abla, lo que nos pe mi e u iliza el ORM pa a ealiza consul as en ez de esc ibi código SQL a mano. Pa a ejecu a las mig aciones, u ilizamos A isan, el CLI que nos p o ee La a el. El comando a ejecu a es php a isan mig a e: e esh. A con inuación se mos a án los iche os de mig ación y los Modelos de las en idades de la base de da os. 22 4.2.1.1 P oduc os Figu a 3. Mig ación de P oduc os (elabo ación p opia) * La unción imes amps() u ilizada en la c eación de la abla c ea las columnas c ea ed_a y upda ed_a . 23 Figu a 4. Modelo de P oduc o (elabo ación p opia) 24 La unción nominals() decla a una elación 1 a n con el modelo Nominal, lo que nos pe mi e accede a los Nominales pe enecien es a un P oduc o de mane a di ec a. Además, el a ibu o $cas s nos pe mi e decla a que el a ibu o class de un P oduc o solo puede oma los alo es del enume ado ClassEnum, que es el siguien e: Figu a 5. Enume ado de Clase (elabo ación p opia) 25 4.2.1.2 Nominales Figu a 6. Mig ación de Nominales (elabo ación p opia) El uso de las unciones o eignId() y cons ained() si en pa a c ea una cla e o ánea. La a el busca á una abla con el nomb e del a ibu o sin el ‘_id’, y c ea á dicha cla e. 26 Figu a 7. Modelo de Nominal (elabo ación p opia) La unción p oduc () decla a una elación de pe enencia en e un Nominal y un P oduc o, lo que nos pe mi e accede al P oduc o de un Nominal de o ma di ec a. 27 4.2.1.3 Ensayos Figu a 8. Mig ación de Ensayos (elabo ación p opia) 28 Figu a 9. Modelo de Ensayo (elabo ación p opia) 29 4.2.1.4 A ibu os Figu a 10. Mig ación de A ibu os (elabo ación p opia) 30 Figu a 11. Modelo de A ibu o (elabo ación p opia) 31 4.3. Modi ica Ensayo 4.4. Elimina Ensayo 4.5. Busca Ensayos po ID 4.6. Busca Ensayos po Clase 4.7. Busca Ensayos po nomb e 4.8. Busca Ensayos de cie os p oduc os 4.9. Ob ene A ibu os de un Ensayo 5. Es adís icas 5.1. G ubbs 5.2. Di e encia de medias 5.3. His ó ico 5.3.1 Usua ios Las ablas 1 y 2 mues an los casos de uso elacionados con los usua ios. 38 Requisi o Inicia sesión Iden i icado 1.1 P io idad Al a P econdición NA Desc ipción Inicio de sesión de un usua io En ada Co eo elec ónico y con aseñas del usua io. Salida Token de acceso pe sonal pa a el uso de la API Tabla 1. Inicia sesión 39 Secuencia No mal 1. El usua io sin sesión accede a la web, y es a le edi ige a la página de inicio de sesión. 2. Se mues a en pan alla un o mula io de inicio de sesión. 3. El Usua io ellena odos los campos y hace click en el bo ón de ‘En ia ’. 4. La página web en ía una pe ición a la API con la in o mación del usua io. 5. La API alida la in o mación y gene a un oken de acceso pa a el usua io. 6. La página web ecibe el oken y lo gua da pa a las subsiguien es pe iciones que ealice el usua io. Pos condición Inicio de sesión del usua io Excepciones Paso 5 : No se ha podido ealiza el inicio de sesión debido a una con aseña o usua io inco ec o, po lo que se le mues a un mensaje de e o al usua io Comen a ios NA Ac o es Usua io no egis ado Requisi o Ce a sesión Iden i icado 1.2 P io idad Al a P econdición El usua io ha de habe iniciado sesión Tabla 2. Ce a sesión 5.3.2 Expedien es Las ablas 3 - 8 mues an los casos de uso elacionados con los expedien es. 40 Desc ipción Cie e de sesión de un usua io En ada Token de acceso pe sonal del usua io Salida NA Secuencia No mal 1. El usua io p esiona el bo ón de cie e de sesión en la ba a de na egación de la página web. 2. La aplicación web en ía una pe ición a la API con el oken ob enido en el inicio de sesión. 3. La API alida el oken y lo elimina de la base de da os. 4. Se edi ecciona al usua io a la página de inicio se sesión. Pos condición Cie e de sesión del usua io Excepciones NA Comen a ios NA Ac o es Usua io egis ado Requisi o Ve Expedien e Iden i icado 2.1 P io idad Al a P econdición El usua io ha de habe iniciado sesión Tabla 3. Ve Expedien e 41 Desc ipción Visualización g á ica de un Expedien e En ada ID del Expedien e a isualiza Salida Vis a de isualización del Expedien e Secuencia No mal 1. El usua io accede a la página de isualización de un Expedien e. 2. Al ca ga dicha is a, la página web ealiza una pe ición a la API pa a ob ene oda la in o mación del Expedien e deseado. 3. Se mues a de o ma g á ica la in o mación del Expedien e indicado. Pos condición NA Excepciones Paso 4: si no exis e un Expedien e con el iden i icado escogido, se edi ecciona al usua io a la página de e o de la aplicación web con el código 404 NOT FOUND. Comen a ios La excepción an e io men e desc i a no debe ía ocu i a no se que se in en e accede a la is a de isualización esc ibiendo manualmen e la URL, ya que el usua io pod ía equi oca se al esc ibi manualmen e el iden i icado . Ac o es Usua io egis ado Requisi o C ea Expedien e Iden i icado 2.2 42 P io idad C í ica P econdición El usua io ha de habe iniciado sesión Desc ipción Pe sis encia de un nue o Expedien e en la base de da os En ada JSON con la in o mación del Expedien e a c ea Salida Iden i icado del nue o Expedien e Secuencia No mal 1. El usua io accede a la página de c eación de Expedien e, en la que se le mues a un o mula io di idido en 3 pasos (In o mación gene al, P oduc os y Ensayos) pa a ellena con la in o mación del nue o Expedien e. 2. El usua io ellena el o mula io. 3. El usua io, una ez comple ado el o mula io, p esiona un bo ón que ealiza una pe ición a la API con la in o mación del nue o Expedien e. 4. La API alida la in o mación. 5. Se c ea un nue o documen o en la colección de la base de da os MongoDB de la aplicación. 6. La API de uel e el iden i icado del nue o Expedien e. Pos condición Se c ea un nue o Expedien e en la base de da os Excepciones Pasos 2 y 4: si ocu e un allo en las alidaciones ealizadas desde el clien e o el se ido , se mues a el mensaje de e o pe inen e al usua io. Tabla 4. C ea Expedien e 43 Comen a ios Las alidaciones desde el clien e se cen an en que odos los da os necesa ios se encuen en ellenados, mien as que las alidaciones ealizadas desde el se ido se cen an en la e acidad de los da os (no exis e un expedien e con el mismo núme o de expedien e, odos los p oduc os o ensayos ing esados exis en en la base de da os, e c). Ac o es Usua io egis ado Requisi o Modi ica Expedien e Iden i icado 2.3 P io idad Baja P econdición El usua io ha de habe iniciado sesión Desc ipción Modi icación de un Expedien e p esen e en la base de da os En ada JSON con la in o mación del Expedien e modi icado Salida NA Tabla 5. Modi ica Expedien e 44 Secuencia No mal 1. El usua io accede a la página de modi icación de Expedien e, en la que se le mues a el mismo o mula io que en la c eación del Expedien e pe o con los da os p eca gados. 2. El usua io modi ica los da os del Expedien e. 3. El usua io, una ez comple ado el o mula io, p esiona un bo ón que ealiza una pe ición a la API con la in o mación del Expedien e modi icado. 4. La API alida la in o mación. 5. Se ac ualiza el Expedien e con la nue a in o mación p opo cionada. Pos condición NA Excepciones Pasos 2 y 4: se ealizan las mismas alidaciones que en la c eación de un Expedien e. Paso 1: si no exis e un Expedien e con el iden i icado escogido, se edi ecciona al usua io a la página de e o de la aplicación web con el código 404 NOT FOUND. Comen a ios La excepción an e io men e desc i a no debe ía ocu i a no se que se in en e accede a la is a de modi icación esc ibiendo manualmen e la URL, ya que el usua io pod ía equi oca se al esc ibi manualmen e el iden i icado . Ac o es Usua io egis ado 45 Requisi o Elimina Expedien e Iden i icado 2.4 P io idad Baja P econdición El usua io ha de habe iniciado sesión Desc ipción Ha d dele e de un Expedien e exis en e en la base de da os En ada Iden i icado del Expedien e a elimina Salida NA Secuencia No mal 1. El usua io, ya sea desde la is a de isualización de expedien e, o desde los esul ados de una búsqueda de expedien e, selecciona uno de ellos pa a su eliminación. 2. La página web mues a un mensaje de con i mación an es de elimina el Expedien e, ya que es una acción pe manen e. 3. Si el usua io con i ma la acción, se en ía una pe ición a la API pa a la eliminación del Expedien e. Pos condición Se elimina el Expedien e seleccionado de la base de da os Excepciones NA Comen a ios El ha d dele e consis e en la eliminación ísica del egis o seleccionado. La al e na i a se ía un so dele e, que ma ca el egis o como eliminado/inac i o median e una a ibu o de la en idad, pe o no lo elimina de la base de da os. Tabla 6. Elimina Expedien e Tabla 7. Busca Expedien es po ID 46 Ac o es Usua io egis ado Requisi o Busca Expedien es po ID Iden i icado 2.5 P io idad Media P econdición El usua io ha de habe iniciado sesión Desc ipción Búsqueda de Expedien es median e una lis a de iden i icado es En ada Lis a de iden i icado es de Expedien es Salida JSON con la in o mación de los Expedien es búscados Secuencia No mal 1. Se buscan en la base de da os los Expedien es con los iden i icado es indicados 2. Se de uel e la in o mación de los Expedien es median e JSON. Pos condición NA Excepciones NA Comen a ios Es e caso de uso es de uso in e no pa a di e sas is as de la aplicación. Se pueden e odas en el diag ama de casos de uso de la aplicación. Ac o es Usua io egis ado 47 Requisi o Busca Expedien es median e il os Iden i icado 2.6 P io idad Al a P econdición El usua io ha de habe iniciado sesión Desc ipción Búsqueda il ada de Expedien es En ada JSON con el c i e io de búsqueda de los expedien es Salida Lis ado con los Expedien es esul an es de la búsqueda Secuencia No mal 1. El usua io accede a la página p incipal de expedien es, donde se encuen a una sección con di e sos il os pa a ealiza una búsqueda. 2. El usua io ellena los il os que quie a y ealiza una búsqueda. 3. Se ealiza una pe ición a la API que ealiza la búsqueda pe inen e. 4. La API de uel e el lis ado de Expedien es que cumpla el c i e io de búsqueda. 5. Se mues an los esul ados de mane a abulada. Pos condición NA Excepciones NA Comen a ios Los il os exis en es son los siguien es: núme o de expedien e, nomb e del ab ican e, conjun o de años Tabla 13. Busca P oduc os po ID 54 P io idad Al a P econdición El usua io ha de habe iniciado sesión Desc ipción Búsqueda de P oduc os median e una lis a de iden i icado es En ada Lis a de iden i icado es de P oduc os Salida JSON con la in o mación de los P oduc os buscados Secuencia No mal 1. Se buscan en la base de da os los P oduc os con los iden i icado es indicados 2. Se de uel e la in o mación de los P oduc os median e JSON. Pos condición NA Excepciones NA Comen a ios Es e caso de uso es de uso in e no pa a di e sas is as de la aplicación. Se pueden e odas en el diag ama de casos de uso de la aplicación. Ac o es Usua io egis ado Requisi o Busca P oduc os po Clase Iden i icado 3.6 P io idad Al a Tabla 14. Busca P oduc os po Clase 55 P econdición El usua io ha de habe iniciado sesión Desc ipción Búsqueda de P oduc os pe enecien es a una Clase En ada Clase de los P oduc os Va iable booleana pa a ob ene ambién los Nominales de los P oduc os (opcional) Salida JSON con la in o mación de los P oduc os buscados Secuencia No mal 1. Se buscan en la base de da os los P oduc os pe enecien es a la Clase indicada. 2. Se de uel e la in o mación de los P oduc os median e JSON. Pos condición NA Excepciones NA Comen a ios Es e caso de uso es de uso in e no pa a di e sas is as de la aplicación. Se pueden e odas en el diag ama de casos de uso de la aplicación. Ac o es Usua io egis ado Requisi o Busca P oduc os po nomb e Iden i icado 3.7 Tabla 15. Busca P oduc os po nomb e 56 P io idad Al a P econdición El usua io ha de habe iniciado sesión Desc ipción Búsqueda de P oduc os median e una cadena de ex o que il a los P oduc os po su nomb e En ada Cadena de ex o pa a la búsqueda Va iable booleana pa a ob ene ambién los Nominales de los P oduc os (opcional) Salida JSON con la in o mación de los P oduc os buscados Secuencia No mal 1. Se buscan en la base de da os los P oduc os cuyos nomb es concue dan con la cadena de ex o p opo cionada. 2. Se de uel e la in o mación de los P oduc os median e JSON. Pos condición NA Excepciones NA Comen a ios Es e caso de uso es de uso in e no pa a di e sas is as de la aplicación. Se pueden e odas en el diag ama de casos de uso de la aplicación. Ac o es Usua io egis ado Tabla 16. Ob ene Nominales de un P oduc o 57 Requisi o Ob ene Nominales de un P oduc o Iden i icado 3.8 P io idad Al a P econdición El usua io ha de habe iniciado sesión Desc ipción Ob ención de los Nominales de un P oduc o En ada Iden i icado del P oduc o Salida Lis a de Nominales del P oduc o seleccionado Secuencia No mal 1. Se buscan en la base de da os los Nominales pe enecien es al P oduc o indicado. 2. Se de uel e la in o mación de los Nominales median e JSON. Pos condición NA Excepciones NA Comen a ios Es e caso de uso es de uso in e no pa a di e sas is as de la aplicación. Se pueden e odas en el diag ama de casos de uso de la aplicación. Ac o es Usua io egis ado 5.3.3 Ensayos Las ablas 17 - 25 mues an los casos de uso elacionados con los ensayos. 58 Requisi o Ve Ensayo Iden i icado 4.1 P io idad Baja P econdición El usua io ha de habe iniciado sesión Desc ipción Visualización g á ica de un Ensayo En ada ID del Ensayo a isualiza Salida Vis a de isualización del Ensayo Secuencia No mal 1. El usua io accede a la página de isualización de un Ensayo. 2. Al ca ga dicha is a, la página web ealiza una pe ición a la API pa a ob ene oda la in o mación del Ensayo deseado. 3. Se mues a de o ma g á ica la in o mación del Ensayo indicado. Pos condición NA Excepciones Paso 4: si no exis e un Ensayo con el iden i icado escogido, se edi ecciona al usua io a la página de e o de la aplicación web con el código 404 NOT FOUND. Comen a ios La excepción an e io men e desc i a no debe ía ocu i a no se que se in en e accede a la is a de isualización esc ibiendo manualmen e la URL, ya que el usua io pod ía equi oca se al esc ibi manualmen e el iden i icado . Tabla 17. Ve Ensayo 59 Ac o es Usua io egis ado Requisi o C ea Ensayo Iden i icado 4.2 P io idad Media P econdición El usua io ha de habe iniciado sesión Desc ipción Pe sis encia de un nue o Ensayo en la base de da os En ada JSON con la in o mación del Ensayo a c ea Salida Iden i icado del nue o Ensayo Tabla 18. C ea Ensayo 60 Secuencia No mal 1. El usua io accede a la página de c eación de Ensayo, en la que se le mues a un o mula io pa a ellena con la in o mación del nue o Ensayo. 2. El usua io ellena el o mula io. 3. El usua io, una ez comple ado el o mula io, p esiona un bo ón que ealiza una pe ición a la API con la in o mación del nue o Ensayo. 4. La API alida la in o mación. 5. Se c ean nue as en adas pa a las ablas de Ensayos y A ibu os de la base de da os elacional con la in o mación del nue o P oduc o. 6. La API de uel e el iden i icado del nue o Ensayo. Pos condición Se c ea un nue o Ensayo en la base de da os Excepciones Pasos 2 y 4: si ocu e un allo en las alidaciones ealizadas desde el clien e o el se ido , se mues a el mensaje de e o pe inen e al usua io. Comen a ios Las alidaciones desde el clien e se cen an en que odos los da os necesa ios se encuen en ellenados, mien as que las alidaciones ealizadas desde el se ido se cen an en la e acidad de los da os (no exis e un ensayo con el mismo nomb e). Ac o es Usua io egis ado 61 Requisi o Modi ica Ensayo Iden i icado 4.3 P io idad Baja P econdición El usua io ha de habe iniciado sesión Desc ipción Modi icación de un Ensayo p esen e en la base de da os En ada JSON con la in o mación del Ensayo modi icado Salida NA Secuencia No mal 1. El usua io accede a la página de modi icación de Ensayo, en la que se le mues a el mismo o mula io que en la c eación del Ensayo pe o con los da os p eca gados. 2. El usua io modi ica los da os del Ensayo. 3. El usua io, una ez comple ado el o mula io, p esiona un bo ón que ealiza una pe ición a la API con la in o mación del Ensayo modi icado. 4. La API alida la in o mación. 5. Se ac ualiza el Ensayo con la nue a in o mación p opo cionada. Pos condición NA Excepciones Pasos 2 y 4: se ealizan las mismas alidaciones que en la c eación de un Ensayo. Paso 1: si no exis e un Ensayo con el Tabla 19. Modi ica Ensayo 62 iden i icado escogido, se edi ecciona al usua io a la página de e o de la aplicación web con el código 404 NOT FOUND. Comen a ios La excepción an e io men e desc i a no debe ía ocu i a no se que se in en e accede a la is a de modi icación esc ibiendo manualmen e la URL, ya que el usua io pod ía equi oca se al esc ibi manualmen e el iden i icado . Ac o es Usua io egis ado Requisi o Elimina Ensayo Iden i icado 4.4 P io idad Baja P econdición El usua io ha de habe iniciado sesión Desc ipción Ha d dele e de un Ensayo exis en e en la base de da os En ada Iden i icado del Ensayo a elimina Salida NA Tabla 20. Elimina Ensayo 63 Secuencia No mal 1. El usua io, ya sea desde la is a de isualización de ensayo, o desde los esul ados de una búsqueda de ensayos, selecciona uno de ellos pa a su eliminación. 2. La página web mues a un mensaje de con i mación an es de elimina el Ensayo, ya que es una acción pe manen e. 3. Si el usua io con i ma la acción, se en ía una pe ición a la API pa a la eliminación del Ensayo. Pos condición Se elimina el Ensayo seleccionado de la base de da os Excepciones Paso 3: solamen e se pod á elimina un Ensayo que no apa ezca en ningún Expedien e. En caso con a io, se mos a á al usua io un mensaje de e o explica i o. Comen a ios El ha d dele e consis e en la eliminación ísica del egis o seleccionado. La al e na i a se ía un so dele e, que ma ca el egis o como eliminado/inac i o median e una a ibu o de la en idad, pe o no lo elimina de la base de da os. Ac o es Usua io egis ado Requisi o Busca Ensayos po ID Iden i icado 4.5 Tabla 26. Tes de G ubbs 70 Secuencia No mal 1. Se ealiza una búsqueda de Expedien es, y se seleccionan los deseados pa a la ealización del es adís ico. 2. Se accede a la is a del es de G ubbs. 3. Se selecciona el Ensayo, A ibu o y nue o alo , con la posibilidad de ellena los il os mencionados en la en ada. 4. Se p esiona el bo ón de calcula , que ealiza una llamada a la API, de ol iendo el esul ado del es adís ico. 5. Se mues an los esul ados de o ma g á ica al usua io. Pos condición NA Excepciones NA Comen a ios NA Ac o es Usua io egis ado Requisi o Di e encia de medias Iden i icado 5.2 P io idad Al a P econdición El usua io ha de habe iniciado sesión La lis a de Expedien es debe de se de al menos 2 Los Expedien es deben de ene al menos 71 un Ensayo en común Los Expedien es deben de pe enece a un máximo de 2 ab ican es Los Expedien es deben de ene al menos un p oduc o con un ipo común Desc ipción Realización del es de di e encia de medias sob e los esul ados de un a ibu o en a ios expedien es, con el obje i o de e si los alo es medios sob e los da os elegidos son homogéneos. En ada Lis a de iden i icado es de Expedien es, sepa ados en dos g upos Iden i icado del Ensayo Iden i icado del A ibu o Tipo sob e el que se ealizan los cálculos Fil os de ipo, g ado y p oduc os sob e los que ealiza el es adís ico (opcionales) Salida Resul ado que indique si las medias de los dos g upos son homogéneas Secuencia No mal 1. Se ealiza una búsqueda de Expedien es, y se seleccionan los deseados pa a la ealización del es adís ico. 2. Se accede a la is a del es de di e encia de medias. 3. Se di iden los Expedien es en dos g upos, y se seleccionan el Ensayo, A ibu o y ipo sob e el que se ealiza án los cálculos. 4. Se p esiona el bo ón de calcula , que ealiza una llamada a la API, de ol iendo el esul ado del es adís ico. 5. Se mues an los esul ados de o ma g á ica al usua io. Tabla 27. Di e encia de medias 72 Pos condición NA Excepciones NA Comen a ios El ipo es un iden i icado que da in o mación sob e las p opiedades mecánicas y químicas del ace o. Se a a de una cadena de ex o de 4 ca ac e es. Ac o es Usua io egis ado Requisi o His ó ico Iden i icado 5.3 P io idad Media P econdición El usua io ha de habe iniciado sesión La lis a de Expedien es debe de se de al menos 3 Los Expedien es deben de ene al menos un Ensayo en común Desc ipción Visualización g á ica de la e olución de los esul ados sob e una se ie de Expedien es. En ada Lis a de iden i icado es de Expedien es Salida G á icas que mues an de mane a isual la e olución de los esul ados sob e una se ie de Expedien es. Tabla 28. His ó ico 73 Secuencia No mal 1. Se ealiza una búsqueda de Expedien es. 2. Po cada Ensayo común en e los Expedien es, se mues a un apa ado, en el que se mues an dos g á icas po a ibu o del Ensayo, una ep esen ando los esul ados ag upados po expedien es, y o a mos ando la endencia que han ido omando los esul ados. Pos condición NA Excepciones NA Comen a ios NA Ac o es Usua io egis ado Capí ulo 6 - A qui ec u a Es e capí ulo es á dedicado a la desc ipción de la a qui ec u a u ilizada pa a la implemen ación del abajo p opues o. 6.1 A qui ec u a del sis ema La a qui ec u a del sis ema sigue un doble modelo clien e-se ido . Exis en dos se icios, la aplicación web con S el eKi y la API con La a el. Los usua ios hacen solici udes GET a la aplicación web, enca gada de mos a las is as. La aplicación de S el eKi ac úa en es e caso como se ido , pe o a la ez ac úa como clien e, ealizando llamadas HTTP a la API pa a in e ac ua con la base de da os. La ep esen ación g á ica del sis ema se mues a en la Figu a 16. 74 Figu a 16. A qui ec u a del sis ema (elabo ación p opia) 75 6.2 Pa ones A qui ec ónicos 6.2.1 REST REST [29] (Rep esen a ional S a e T ans e ) es una se ie de p incipios pa a la c eación de se icios web, basándose en el uso del p o ocolo HTTP . El uso de REST ul APIs (nomb e de las APIs que siguen los p incipios REST) es el más común en la web a día de hoy, y la opción que se ha seguido pa a la implemen ación de nues a API. Los p incipios que debe segui una API REST son los siguien es: ●Uso de in e az uni o me: se deben ag upa los dis in os ecu sos en URIs dis in as, usando sus an i os pa a de ini los (po ejemplo /p oduc os, o /ensayos/{id}/a ibu os. Se debe e i a u iliza e bos en la in e az, y u iliza los dis in os mé odos HTTP disponibles (po ejemplo, en ez de usa GET /c ea -p oduc o, usa POST /p oduc os) ●Clien e-se ido : el dominio del clien e es la UI y la ecolección de pe iciones, mien as que el dominio del se ido se cen a en el acceso de da os, ges ión de ca ga de abajo y segu idad. Es a sepa ación pe mi e el desa ollo independien e de cada uno, disminuyendo el acoplamien o. ●Ope aciones sin es ado: el se ido no gua da in o mación del es ado del clien e. Es e p incipio jun o a la sepa ación de los se icios, siguiendo el p incipio de clien e-se ido , impidió el uso de sesiones o cookies. Po eso se c eó un middlewa e de au en icación u ilizando cabece as HTTP, que se á explicado en el siguien e apa ado. ●Almacenamien o de caché de ecu sos: debe de se posible almacena en caché el esul ado de las pe iciones, con el obje i o de mejo a la e iciencia y endimien o. Pa a que es o sea posible, las pe iciones GET deben de se 76 idempo en es, ya que es o pe mi e que llamadas subsecuen es de uel an el mismo esul ado, independien emen e de que usua io las ealice. Aunque e a una posibilidad, no se ealiza el uso de caché en es e abajo, ya que es a dinámica suele se empleada al usa APIs ex e nas, que no malmen e cuen an con lími e de pe iciones o cos e po uso. ●Sis ema de capas: se ecomienda di idi el sis ema en di e sas capas, lo que dis ibuye las uncionalidades de la aplicación pe mi iendo una mejo escalabilidad y man enimien o. Aunque el sis ema de 3 capas (Con olado , Se icio y Reposi o io) es más común en Ja a, las APIs implemen adas median e La a el suelen op a po un sis ema de 2 capas, siendo es as la capa de Con olado y la de Reposi o io, ya que La a el cuen a inyección de dependencias en los con olado es y con Eloquen , p opo cionando una capa de acceso a da os muy comple a, pe mi iendo p escindi de la capa de Se icio si no se cuen a con una lógica muy ex ensa. ●Código bajo demanda: mien as que el se ido suele de ol e ep esen aciones es á icas de los ecu sos (en es e p oyec o median e el uso de JSON), se da la posibilidad de en ia ejecu ables al clien e si es necesa io. REST u iliza es os p incipios jun o con el uso del p o ocolo HTTP pa a de ini una comunicación es anda izada. 6.2.2 Modelo-Vis a-Con olado El uso de MVC se basa en la sepa ación de las uncionalidades de la aplicación en 3 capas: ●Modelo: enca gado de las en idades de la aplicación, y su in e acción con la base de da os. ●Vis a: enca gada de la ep esen ación isual de los da os. 77 ●Con olado : ecibe las ó denes del usua io, y se enca ga de in e ac ua con el Modelo, y comunica los esul ados a la Vis a. MVC ha sido u ilizado no malmen e en aplicaciones monolí icas, ya que pe mi e una implemen ación sencilla. En es e p oyec o, aunque se u ilizan dos se icios, al sepa a los en on end y backend con amos con una a qui ec u a MVC un poco modi icada, siendo: ●Modelo: usamos Eloquen pa a ep esen a las en idades de la aplicación median e las clases PHP mencionadas en el apa ado 4.2.1, e in e ac uando con ellas g acias al ORM que nos p opo ciona el p opio Eloquen . ●Vis a: las is as en iadas desde nues a aplicación web. ●Con olado : los di e sos con olado es que exis en en nues a API. Las di e encias de es e sis ema con un MVC adicional es que el usua io no in e ac úa di ec amen e con el con olado . Es e sis ema es más común al usa aplicaciones web eac i as, ya que nos pe mi e ac ualiza la in e az g á ica de una pa e de la is a sin ene que ende iza de nue o oda la pan alla. El diag ama de la Figu a 17 mues a las di e encias en e el MVC adicional y el nues o. Figu a 17. Diag ama de MVC (elabo ación p opia) 78 6.3 Pa ones de diseño 6.3.1 Dependency injec ion La Inyección de Dependencias es un pa ón de diseño que esuel e el manejo de dependencias en e di e en es clases de una mane a poco acoplada y ácil de man ene y escala . Exis en a ios ipos de Inyección de Dependencias, pe o la u ilizada en es e p oyec o es la Me hod Injec ion, que consis e en pasa las dependencias de una unción como pa áme os de es a. De es a mane a, las dependencias son c eadas y p opo cionadas ue a de la unción, lo que educe la complejidad de la unción, y pe mi e es ea la uncionalidad de mane a sencilla. Es e pa ón es u ilizado po los con olado es de La a el, lo que nos pe mi e inyec a dependencias como el cue po de una pe ición HTTP de mane a au omá ica. La Figu a 18 mues a un ejemplo en el que se inyec a el obje o Reques a la c eación de un expedien e. 79 Figu a 21. Ejemplo de componen e S el e usando el pa ón Composi e (elabo ación p opia) 86 Capí ulo 7 - Diseño Es e capí ulo es á dedicado a mos a el diseño de las uncionalidades desa olladas du an e la elabo ación del p oyec o. La in e az isual se ha implemen ado median e el uso de componen es S el e y Tailwind CSS, buscando una in e az sencilla, amigable y dinámica. 7.1 Au en icación En el apa ado de Au en icación, solo exis en dos uncionalidades. La p ime a es inicia sesión, que ocu e cuando un usua io accede a la aplicación sin ene una sesión iniciada en el o denado . En es a si uación, se mues a al usua io un o mula io en el que debe de in oduci sus c edenciales, que en el caso de nues a aplicación son su co eo elec ónico y su con aseña. La Figu a 22 mues a la is a de dicho o mula io. La o a uncionalidad en el apa ado de au en icación, es la de ce a sesión. Es a acción ocu e cuando un usua io con sesión ac i a p esiona el bo ón de cie e de sesión en la ba a de na egación de la aplicación. La Figu a 23 mues a la ba a de na egación, donde se encuen a el bo ón de cie e de sesión. 87 Figu a 22. Inicio de sesión (elabo ación p opia) Figu a 23. Cie e de sesión (elabo ación p opia) 7.2 Expedien es El apa ado de Expedien es es el más ex enso y complejo. La página p incipal es la de búsqueda, donde se puede ealiza una búsqueda median e a ios il os, como clase de p oduc o, ab ican e o ango de años, en e o os. Los esul ados se mues an de o ma abulada, usando la lib e ía AG G id, que pe mi e al usua io eo ganiza las columnas según el gus o pe sonal, y o dena los esul ados po o den de las columnas que ea opo unas. La Figu a 24 mues a un ejemplo de esul ado de búsqueda, y un esumen de las acciones que se pueden ealiza desde es a is a, que se án explicadas a con inuación. Sob e un Expedien e se pueden ealiza a ias acciones. 88 Figu a 24. Búsqueda y Acciones de Expedien es (elabo ación p opia) La p ime a es isualiza el expedien e, que edi ecciona al usua io a una is a donde puede e con más de alle la in o mación del Expedien e, al mos a se la in o mación comple a de los p oduc os que lo con o man, y an o in o mación de los ensayos que se han ealizado, como los esul ados de dichos ensayos sob e los p oduc os del Expedien e. Además, al hace click en el id de un p oduc o o ensayo, se ab i á en una nue a pes aña la is a de isualización de p oduc o o ensayo. La Figu a 25 mues a la is a de es a uncionalidad. 89 Figu a 25. Visualización de Expedien e (elabo ación p opia) La segunda es edi a el Expedien e. A es a is a se puede accede desde los esul ados de una búsqueda, o desde la is a de allada de un Expedien e. Es a is a es una lige a modi icación de la c eación de un Expedien e, que cons a de un o mula io di idido en 3 pa es: In o mación gene al, P oduc os y Ensayos, que si e pa a añadi un documen o a la base de da os no elacional de la aplicación en el caso de c ea un Expedien e, o modi ica un documen o ya exis en e en el caso de edi a . En el caso de que se quie a edi a un Expedien e, el o mula io se á p eca gado con la in o mación de es e pa a e i a que el usua io enga que ol e a ellena lo en e o de nue o. Las Figu as 26, 27, 28, 29 y 30 mues an el p oceso de c eación y edición de Expedien es. La e ce a acción posible es la eliminación del Expedien e. Es a acción, al igual que la edición, puede ealiza se an o desde la búsqueda como desde la is a de allada de un Expedien e. En ambos casos, se mues a un mensaje de ad e encia, pidiendo al usua io con i ma la acción, ya que es una acción que no se puede deshace . En caso de que el usua io con i me la acción, el expedien e se á eliminado de la base de 90 da os de la aplicación. La Figu a 31 mues a el mensaje de con i mación que isualiza el usua io al elimina un Expedien e. Apa e de las acciones que se pueden ealiza sob e un Expedien e, en la aplicación exis en 3 es adís icas que pueden ealiza se sob e un conjun o de Expedien es, al selecciona los en la abla de esul ados, y p esiona el bo ón de la es adís ica co espondien e, que es a á ac i o si los Expedien es cumplen la p econdición ano ada en la Sección 4.3. Es os bo ones se pueden e en la Figu a 24, y sus is as se explica án en el siguien e apa ado. Figu a 26. Fo mula io de c eación y modi icación de Expedien e 1 (elabo ación p opia) 91 Figu a 27. Fo mula io de c eación y modi icación de Expedien e 2 (elabo ación p opia) Figu a 28. Fo mula io de c eación y modi icación de Expedien e 3 (elabo ación p opia) 92 Figu a 29. Fo mula io de c eación y modi icación de Expedien e 4 (elabo ación p opia) Figu a 30. Fo mula io de c eación y modi icación de Expedien e 5 (elabo ación p opia) 93 Figu a 31. Eliminación de Expedien e (elabo ación p opia) 7.3 Es adís icas El apa ado de es adís icas in en a da un alo añadido a los da os exis en es en la aplicación, pe mi iendo e da os de mane a g á ica, y ob ene conclusiones de mane a au oma izada sob e los da os que el usua io conside e opo unos. La p ime a uncionalidad de es e g upo es el His ó ico, que pe mi e e la e olución de los esul ados en un conjun o de Expedien es. Pa a accede a es a is a se necesi a selecciona al menos 3 expedien es, y que es os engan al menos un ensayo común. Sob e cada a ibu o de es os ensayos comunes se ealizan dos g á icos. El p ime o mues a los esul ados ag upados po expedien e, pe mi iendo e an o si los esul ados de cada expedien e son simila es, como e la e olución de los esul ados a lo la go del iempo. El segundo g á ico mues a los esul ados de odos los p oduc os de mane a secuencial, y una línea de eg esión pa a isualiza la endencia de los esul ados. La Figu a 32 mues a un ejemplo de es a is a. 94 Figu a 32. Ejemplo de His ó ico (elabo ación p opia) La segunda es adís ica es el Tes de G ubbs, que se u iliza pa a comp oba si un alo es abe an e. Se u iliza es a uncionalidad cuando al ealiza un ensayo, se ob iene un esul ado que el usua io piensa que puede se anómalo. En es e caso, se selecciona una conjun o de expedien es sob e los cuales se quie e compa a el nue o alo . Es e conjun o de expedien es debe ene al menos 3 elemen os, y odos deben de ene el ensayo que se quie e comp oba . Al accede a la is a, apa ece un menú con los ensayos sob e los que se puede calcula el es adís ico, el a ibu o del ensayo seleccionado que se quie e comp oba , y el alo que se piensa que es a ípico. Además, exis en dos da os más que se pueden ellena de mane a opcional, pa a il a los p oduc os sob e los que se ealizan los cálculos. Es os da os son el ipo y g ado del p oduc o. Una ez seleccionados los campos necesa ios, se puede calcula el esul ado. El cálculo es el siguien e: 95 Figu a 40. Fo mula io de c eación y modi icación de Ensayo (elabo ación p opia) 102 Capí ulo 8 - Conclusiones y abajo u u o 9.1 Conclusiones En es e T abajo de Fin de G ado se ha desa ollado una aplicación des inada la ges ión de esul ados de labo a o io sob e di e en es ipos de ace os, median e la c eación de una base de da os, una API que pe mi a in e ac ua con los da os, y una página web que acili e dicha in e acción g acias a una in e az g á ica dinámica. Es a aplicación busca esol e un p oblema eal, p opo cionando al CEDEX una o ma de es uc u a y gua da da os p o enien es de a ias decenas de años, siendo es a la uncionalidad más impo an e de la aplicación. Pe o es a aplicación les pe mi e además ealiza búsquedas complejas sob e expedien es, p oduc os y ensayos, pudiendo e los esul ados de es os de mane a g á ica y abulada, lo que p opo ciona un alo añadido a las al e na i as que usaban an e io men e, como ablas Excel o iche os ísicos. Pa a la ealización del p oyec o, se han u ilizado ecnologías ac uales, y con p esencia en el sec o p o esional. Además, el p oyec o no solo se ha cen ado en el desa ollo del código, sino en la pues a en p oducción de es e. Se ha con ene izado la aplicación, pa a au oma iza la eplicación del sis ema en caso de que el CEDEX decidie a u iliza la aplicación en sus se ido es, y se han c eado en o nos de p oducción pa a la base de da os, API y página web, pa a pe mi i a los usua ios del CEDEX p oba la aplicación median e in e ne . 9.2 T abajo u u o De ca a al u u o, el p oyec o pod ía amplia se y mejo a se de di e en es mane as. Algunas de las posibles ampliaciones plan eadas son: 103 ●Añadi más es adís icas: Uno de los obje i os u u os se ía implemen a más ipos de es adís icas, de mane a que se pueda ex ae más in o mación sob e los da os con enidos en la aplicación. Debido a que se a a de un p oyec o con echa de inalización, se escogie on las es adís icas que más alo apo an al p oyec o, pe o si se a a a de un p oyec o con con inuidad en el iempo, se abaja ía en añadi más es adís icas, con el obje i o de da más alo a los da os exis en es. ●Añadi il os p ede inidos pa a la búsqueda de expedien es: Se ía muy in e esan e pode analiza los il os que más u ilizan los usua ios al busca expedien es, pa a e si se pod ían implemen a il os p ede inidos, con el obje i o de aho a iempo a los usua ios y que no engan que ellena odos los campos que necesi an odas las eces. Pe o pa a es a uncionalidad se necesi an da os con inuados en el iempo, de mane a que se pueden ob ene pa ones en e mul i ud de usua ios. De odas mane as, es una ampliación que apo a ía mucho alo a los usua ios de la aplicación. ●Añadi ges ión de usua ios: Ac ualmen e, la ges ión de los usua ios se ealiza de mane a manual en la base de da os, ya que no se especi icó ningún equisi o en las euniones con el clien e. Pe o se ía ú il la posibilidad de ges iona los usua ios de la aplicación de mane a g á ica. P obablemen e se op a ía po implemen a un sis ema de oles, y do a a los adminis ado es de una is a adicional que les pe mi a in e ac ua con es a uncionalidad. ●Añadi página de usua io: de la misma mane a que se ía posible añadi una ges ión de usua ios, se pod ía implemen a una página dedicada a la in o mación del mismo, pe mi iéndole ac ualiza algún campo como el co eo y la con aseña, o mos a in o mación sob e su uso de la aplicación ( echa de egis o, núme o de expedien es c eados, e c). 104 ●Más pe sonalización de la in e az: Aumen a el g ado de pe sonalización de la in e az pod ía hace el uso de la aplicación más ameno y ag adable. Es o se pod ía consegui median e el uso de emas, que cambien la apa iencia isual de la aplicación, o gua dando in o mación sob e cómo le gus a dis ibui las columnas de las ablas que exis en en la aplicación, pa a no ene que mo e las cada ez que se ac ualice la in e az. ●Añadi lógica de designaciones: Po úl imo, exis e la posibilidad de añadi a la base de da os las posibles designaciones de los p oduc os. Exis e una lógica asociada a las designaciones, pe o se decidió no implemen a la en el p oyec o, ya que se le dió más impo ancia al es o de las uncionalidades exis en es de la aplicación debido a las limi aciones de iempo. 105 Bibliog a ía [1] CEDEX: disponible en h ps://www.cedex.es/ [2] Desa ollo ágil de so wa e - Wikipedia: disponible en h ps://es.wikipedia.o g/wiki/Desa ollo_%C3%A1gil_de_so wa e [3] Fi ebase: disponible en h ps:// i ebase.google.com/?hl=es [4] Supabase: disponible en h ps://supabase.com/ [5] Pocke Base: disponible en h ps://pocke base.io/ [6] HTML: disponible en h ps://de elope .mozilla.o g/es/docs/Glossa y/HTML [7] CSS: disponible en h ps://de elope .mozilla.o g/es/docs/Glossa y/CSS [8] Tailwind CSS: disponible en h ps:// ailwindcss.com/ [9] Ja aSc ip : disponible en h ps://de elope .mozilla.o g/es/docs/Web/Ja aSc ip [10] TypeSc ip : disponible en h ps://www. ypesc ip lang.o g/ [11] DaisyUI: disponible en h ps://daisyui.com/ [12] AG G id: disponible en h ps://www.ag-g id.com/ [13] Cha .js: disponible en h ps://www.cha js.o g/ [14] S el e: disponible en h ps://s el e.de / [15] S el eKi : disponible en h ps://ki .s el e.de / [16] PHP: disponible en h ps://www.php.ne /manual/es/in o-wha is.php [17] La a el: disponible en h ps://la a el.com/docs/11.x/ [18] Pos g eSQL: disponible en h ps://www.pos g esql.o g/ 106 [19] MongoDB: disponible en h ps://www.mongodb.com/ [20] Docke : disponible en h ps://www.docke .com/ [21] Amazon Web Se ices: disponible en h ps://aws.amazon.com/es/wha -is-aws/ [22] MongoDB A las: disponible en h ps://www.mongodb.com/p oduc s/pla o m/a las-da abase [23] Rende : disponible en h ps:// ende .com/ [24] Visual S udio Code: disponible en h ps://code. isuals udio.com/ [25] Gi Hub: disponible en h ps://gi hub.com/ [26] DBea e : disponible en h ps://dbea e .io/abou / [27] MongoDB Compass: disponible en h ps://www.mongodb.com/p oduc s/ ools/compass [28] Pos man: disponible en h ps://www.pos man.com/ [29] REST, explicada po Red Ha : disponible en h ps://www. edha .com/en/ opics/api/wha -is-a- es -api 107