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