scieee Science in your language
[es] (orig)

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

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.

Read accessible full text

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

Author: Pinto Justiniano, Sebastián
Year: 2024
Source: https://docta.ucm.es/bitstreams/6213f029-3575-485e-a877-05e5be3116e6/download
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