Aplicación de Clean A chi ec u e
a la ges ión de la logís ica de
exámenes en la Uni e sidad
TRABAJO DE FIN DEL GRADO DEL
INGENIERÍA DE COMPUTADORES.
FACULTAD DE INFORMÁTICA
Lo ena Cos a López
Uni e sidad Complu ense de Mad id
Feb e o 2021
Documen o maque ado con TEX
i
S .1.0.
Es e documen o es á p epa ado pa a se imp imido a doble ca a.
Aplicación de Clean A chi ec u e a la ges ión
de la logís ica de exámenes en la Uni e sidad
Memo ia que p esen a pa a op a al í ulo de Ingenie ía en In o má ica de
Compu ado es
Di igida po el p o eso
Simon Pickin
Uni e sidad Complu ense de Mad id
Feb e o 2021
Copy igh
©
Lo ena Cos a López
A mi comapañe o de ida.
A mi ma emá ica a o i a.
Resumen
En la ac ualidad, las acul ades de la Uni e sidad Complu ense de Mad id ienen
una necesidad i al de ac ualiza la ges ión de exámenes. Es e p oyec o subsana odas
las necesidades c eando un sis ema de ges ión de exámenes digi alizado e i ando la g an
ca ga que supone a los p o eso es una o ganización manual. Los pun os más impo an es
sol en ados son:
O ganización y op imización del calenda io de exámenes pa a educi su anja de
iempo.
Ges iona las ese as de aulas dando cabida al mayo núme o de exámenes po día.
Ubicación es a égica de alumnos en aulas pa a e i a la copia en e ellos.
Imp imi y almacena bajo es imación los exámenes.
T anspo e de exámenes con sus co espondien es iesgos.
Todas es as uncionalidades son solo una pequeña mues a de las necesidades encon adas
inicialmen e. Todo e oluciona con el iempo y se iene que adap a , los p oyec os acasan
po que se hacen ad hoc[43] a unas especicaciones iniciales. Es o hace que a la go plazo
queden obsole os e inman enibles. El po encial de es e p oyec o no es solo que cub e las
necesidades an es nomb adas sino el
know-how
1
que asegu a una al a p og esión a u u o.
Pa a log a es a e sa ilidad se ha seguido los p incipios SOLID, c eando una a qui ec u a
obus a que pod á sopo a cualquie e olución. Además, una g an en aja compe i i a
es que la base del p oyec o puede eu iliza se como es uc u a pa a o os p oyec os con
un n dis in o al ac ual.
La a qui ec u a del p oyec o es a inuenciada po el en oque de Clean A chi ec u e de
Robe C. Ma in[30] e olucionada con Hexagonal A chi ec u e de Alis ai Cockbu n[31][35],
que se basan en Domain-D i en Design[45]. Todo ello obliga a ene un desacople en e
capas po esponsabilidades y man ene una al a cohesión den o de ellas.
Las capas u ilizadas, de la pa e más co e de la aplicación a la más ex e na, son
En e p ise Business Rules, Applica ion Business Rules, In e ace adap e s y F amewo ks
& D i e s. Las capas de negocio En e p ise Business Rules y Applica ion Business Rules
denen odas la lógica de negocio como las en idades y sus caso de uso. En es e dominio
1
conjun o de conocimien os écnicos y habilidades que has adqui ido a í ulo pe sonal
ii
iii Resumen
se debe deni y desa olla oda la uncionalidad de negocio ales como los algo i mos
que planica án el calenda io de exámenes, op imización de uso de aulas y dis ibución
in eligen e del alumnado en ellas. A su ez deni á, median e con a os de in e az, cómo
han de comunica se los módulos ex e nos con el núcleo y que deben de implemen a ,
lo que en Hexagonal A chi ec u e se llama pue os. Es os agen es ex e nos pueden se
la pe sis encia de da os (BBDD), la comunicación HTTP y se icios ex e nos como
la alidación del alumno median e el ca ne uni e si a io. Es as implemen aciones o
adap aciones de pue o se ealiza án en la capa In e ace adap e s, que se i á de mediado
en e nues o dominio de negocio y odo lo ajeno a él.
Uno de los ocos más impo an es implemen ados en el p oyec o ha a ado la independencia
con el luga de pe sis encia de da os, es deci , la base de da os. Como dijo Robe C.
Ma in "The da abase is a de ail. Why do we ha e da abases?"[9] explicando su e olución
desde las a je as pe o adas has a la posibilidad de la desapa ición de las base de da os
elacionales[4][11] en p o de hash ables o ees debido a la c ecien e elocidad de lec u a
de los ha dwa e de pe sis encias. Es o se ha log ado median e un simple DAO[44] en la
capa de dominio y el uso de un ORM en las capas In e ace adap e s y F amewo ks &
D i e s, sopo ando Pos g eSQL, MySQL, Ma iaDB, SQLi e y MSSQL solo cambiando
un único pa áme o de código.
La lógica de negocio implemen ada puede se consumida desde una página web, una
aplicación mó il na i a o una aplicación de esc i o io, sa is aciendo las u u as necesidades
de disposi i os donde haya de se usada. Es o apo a una g an escalabilidad y una
g an p oyección de u u o pa a añadi uncionalidades a demanda sin cambia el co e
de la aplicación. Es a enaz independencia, sumada a los p incipios SOLID, ealizada
de o ma igu osa pe mi i á que haya un con inuo c ecimien o y una ácil e olución
según necesidades. Sin ol ida que p esen a un p eceden e a segui pa a u u os p oyec os
pudiendo segui su es udiada a qui ec u a pa a o os nes.
Abs ac
A p esen , he acul ies o he Complu ense Uni e si y o Mad id ha e a i al need o
upda e he managemen o exams. This p ojec sol es all he needs by c ea ing a digi ized
exam managemen sys em a oiding he g ea bu den ha manual o ganiza ion implies
o eache s. The mos impo an poin s esol ed a e:
O ganiza ion and op imiza ion o he exam calenda o educe you ime ame.
Manage class oom ese a ions accommoda ing he la ges numbe o exams pe
day.
S a egic placemen o s uden s in class ooms o a oid copying be ween hem.
P in and s o e exams unde es ima e.
T anspo e de exámenes con sus co espondien es iesgos.
All hese ea u es a e jus a small sample o he needs ini ially ound. E e y hing
e ol es o e ime and i has o be adap ed, p ojec s ail because hey a e made ad hoc[43]
o ini ial specica ions. This makes hem obsole e and unsus ainable in he long e m.
The po en ial o his p ojec is no only ha i mee s he needs men ioned abo e, bu
also he
know-how
2
ha ensu es high p og ession in he u u e. To achie e his e sa ili y,
SOLID p inciples ha e been ollowed, c ea ing a obus a chi ec u e ha can wi hs and
any e olu ion. In addi ion, a g ea compe i i e ad an age is ha he p ojec base can be
eused as a s uc u e o o he p ojec s wi h a die en pu pose han he cu en one.
The a chi ec u e o he p ojec is inuenced by he Clean A chi ec u e app oach by
Robe C. Ma in [30] e ol ed wi h Hexagonal A chi ec u e by Alis ai Cockbu n[31][35],
which a e based on Domain-D i en Design[45]. All his o ces o ha e a decoupling be ween
laye s due o esponsibili ies and o main ain high cohesion wi hin hem.
The laye s used, om he mos co e pa o he applica ion o he mos ex e nal, a e
En e p ise Business Rules, Applica ion Business Rules, In e ace adap e s and F amewo ks
& D i e s. The En e p ise Business Rules and Applica ion Business Rules business laye s
dene all business logic such as en i ies and hei use cases. In his domain, all business
unc ionali y mus be dened and de eloped, such as he algo i hms ha will plan he
exam calenda , op imiza ion o he use o class ooms and in elligen dis ibu ion o s uden s
2
se o echnical knowledge and skills ha you ha e acqui ed on a pe sonal basis
ix
Capí ulo 1
In oducción
1.1. Pe spec i a his ó ica de la e aluación uni e si a ia
T as las in es igaciones lle adas a cabo po los alumnos del TFG[34] de hace dos
años, descub ie on que las p ime as Uni e sidades su gie on en Eu opa al ededo de los
siglos XII y XIII a a és de las escuelas ca ed alicias y monás icas. En ese en onces, el
mé odo de e aluación más ex endido e a la dispu a io, que consis ía en deba i sob e
a ias ma e ias pa a descub i y es ablece las e dades de ellas. Había unas eglas jas
pa a ese p oceso, ales como la dependencia de las au o idades esc i as adicionales o la
comp ensión p o unda de los a gumen os de cada bando.
Con el paso del iempo la me odología ue e olucionando has a con e i se lo que aho a
conocemos como examen o al. Es e ipo de examen ue adop ado po las uni e sidades
eu opeas en el siglo XVIII y supuso un g an a ance ya que se conside a el p ime mé odo
ecuanime acional de e aluación de es udian es.
En los úl imos años ha habido un g an a ance ecnológico en muchos ámbi os di e en es.
Pese a ello, la ges ión logís ica de los exámenes en las uni e sidades casi no ha a anzado,
siendo en la mayo pa e de los casos un mé odo muy inecien e y sin au oma iza .
1.2. Si uación ac ual en la Facul ad de In o má ica
En el TFG[34] de los alumnos ed hace dos años explican que, a día de hoy, la Facul ad
de In o má ica, pe enecien e a la Uni e sidad Complu ense de Mad id, no dispone de un
g an a ance en la logís ica de sus exámenes. El hecho de no ene un sis ema au oma izado
implica un abajo ex a que ecae en el pe sonal docen e. G acias al p og eso ecnológico,
se pod ía libe a a los p o eso es de ese abajo adicional.
El p oceso ac ual de los exámenes en la Facul a de In o má ica es:
1. Publicación del calenda io de exámenes a p incipio del año académico.
1
2
Capí ulo 1.
In oducción
2. Asignación de las aulas pa a el examen.
Rese a del aula pa a la pa e eó ica (si exis e) en unción del o al de alumnos
ma iculados.
Rese a de labo a o ios es imando al alza el núme o de alumnos que an a
p esen a se pa a la pa e p ác ica (si exis e).
3. Imp esión de los exámenes es imando al alza el núme o de alumnos que an a
p esen a se.
4. T anspo e de las copias del examen al aula co espondien e el día del examen.
No solo el hecho de es ima las copias necesa ias del examen puede llega a esul a
edioso, sino ambién anspo a las mismas al aula, con el consecuen e iesgo de pé dida
en el p oceso desde su imp esión has a el día del examen.
La me odología u ilizada puede p o oca dis in os con a iempos y p oblemas como
pueden se :
T abajo in e ido po pa e de los écnicos en la p epa ación del labo a o io, y
que nalmen e no sea necesa io po p esen a se menos alumnos, llegando incluso a
queda labo a o ios comple amen e acíos en ocasiones.
Posibles exámenes imp esos sob an es o aulas que nalmen e han quedado acías
con el posible gas o en cale acción o ai e acondicionado necesi ado pa a c ea un
buen clima pa a el examen. Además de lo mencionado, g acias a es e p oyec o, se ía
posible educi el p og ama de exámenes, debido a la op imización de aulas y además
la consiguien e educción del p o eso ado de igilancia en exámenes.
La pé dida de iempo del p o eso en es ima el núme o de alumnos que pod ía
p esen a se a cada examen, lo que ello conlle a la consiguien e pé dida de iempo
en ese a cada una de las aulas pa a cada uno de sus exámenes.
La colocación de alumnos en exámenes. El p o eso debe in e i iempo en o dena
a los alumnos, con el n de que la sepa ación en e ellos sea la p opicia pa a e i a
posibles ampas.
P oblema de que los alumnos copien. Si un alumno es lib e de sen a se en cualquie
si io, las p obabilidades de copia cambia án en unción del si io escogido. Si puede
sen a se al lado o muy ce ca de algún amigo, el iesgo de copia es mayo . En cambio,
si es conscien e de que los si ios son asignados, sabe que sus posibilidades de copia
son meno es ya que igual no puede sen a se ce ca de un amigo, en el caso de que lo
necesi e pa a ap oba el examen.
1.3. Mo i ación y alcance del p oyec o
En el pun o an e io , se ha desc i o la si uación ac ual de la me odología de los
exámenes y los posibles incon enien es ales como la pé dida de iempo que puede supone
1.4. Co id 3
a un p o eso la ges ión de ese a un aula o la colocación de los alumnos en el aula
des inada al examen. Pe o ambién puede exis i o os p oblemas como puede se la copia
du an e un examen, o incluso la pé dida del mismo.
Es e TFG p e ende palia , en la medida de lo posible, los incon enien es y p oblemas
que puedan su gi en lo e e en e a la logís ica de exámenes. Pa a ello, mis compañe os[34]
de hace dos años diseña on una aplicación que pe mi e la ges ión de ese a de aulas y la
asignación de asien os pa a los alumnos en base a un algo i mo. Es o pe mi e p e eni la
copia en exámenes, dado que los asien os se án asignados po el algo i mo en unción de
unos pa áme os p e ios.
La aplicación ambién ges iona á un examen en gene al, pudiéndose c ea un examen,
mos a oda la in o mación e e en e a él (asigna u a, g upo, echa, aula, alumnos,
p o eso ...), modica lo o incluso elimina lo. Además, el p o eso esponsable end á la
posibilidad de subi el pd con el modelo de examen en la aplicación, asignándolo a un
examen c eado p e iamen e. Po o a pa e, los exámenes únicamen e pod án se c eados
po un usua io que posea el ol de adminis ado de exámenes. O a de las opciones que
o ece á la aplicación se á la subida de la solución de un alumno al examen, pudiendo
se és a el escaneo del examen esc i a po el alumno du an e el examen, o en caso de
se un examen de p og amación, subi los che os eque idos po el p o eso . Es a opción
es a á suje a al inicio y nal de un examen, ya que se á imposible añadi una solución de
examen a un examen que no haya comenzado o haya nalizado, lo cual, se á di igido po
el p o eso que ha es ado impa iendo la asigna u a o po el p o eso de gua dia asignado
a la igilancia de dicho examen.
Pa a la ges ión de lo explicado an e io men e, se á necesa io dispone de la in o mación
de los alumnos ma iculados y las asigna u as. O o equisi o impo an e es el conocimien-
o del calenda io de exámenes, la denición au omá ica de un calenda io de examenes que
sa is aga una se ie de equisi os es un p oblema de op imización compleja que no se a a
en es e TFG; suponemos que el calenda io iene denida. Es o es impo an e dado que
la idea p incipal es op imiza las aulas y asien os pa a cada uno de los exámenes y es
p obable que en un mismo día se ealicen a ios exámenes a la ez. Po úl imo, se á
necesa io conoce en de alle cada aula, es deci , el núme o de asien os y su dis ibución.
Se p e ende c ea una aplicación que pe mi a mejo a el uncionamien o de nues a
acul ad, y que pueda se ampliable a o as acul ades. A con inuación, se p esen a á la
aplicación, explicando los lenguajes seleccionados y su po qué, las ecnologías u ilizadas
en el p oceso de desa ollo, el uncionamien o, los equisi os y la a qui ec u a elegida.
1.4. Co id
Dada la si uación ac ual de pandemia que se es á i iendo, es e p oyec o se ha con e ido
en un abajo indispensable. Inicialmen e las necesidades no enían a eeja los iempos
p opicios, y po an o las uncionalidades no enía el oco adecuado, a pesa de ello pudimos
e los benecios que da ía la aplicación.
4
Capí ulo 1.
In oducción
Uno de los p incipios pa a comba i una pandemia una ez con olada, es e i a
algome aciones que es jus o lo que ocu e en epoca de exámenes. A lo la go de los
pasillos de la acul ades, los alumnos se agolpan al ededo de las pue as de las aulas
pa a ob ene los asien os más cómodos pa a ellos o se los p ime os en en a . La solución
ya se encon aba en las uncionalidades ecogidas, conc e amen e con la asignación de
plazas en las aulas. Den o de es a ca ac e ís ica enemos dos a ian es:
Modo es á ico: Los alumnos conocen de an emano el asien o que ienen asignado en
la aula an es de llega al examen median e una p einsc ipción. Incluso se pod ían
o ganiza la cola del examen en unción de u asien o, ellenado la clase de ondo a
en e.
Modo dinámico: Según llega el alumno al aula y se iden ica, au omá icamen e se
le asigna un asien o.
Aunque es di ícil con ola el acceso al aula pa a que se haga escalonado, si que se
puede ene un con ol de la salida en cie o modo. Cuando un alumno ecogie a el
examen de la imp eso a empeza ía a con a su iempo pa a desa olla lo. De es a o ma
la salida se p oduci ía lige amen e más escalonada dejando ma gen de mejo a a u u o.
En e las mejo as que se pod ían con a , cab ía la posibilidad de que cuando alumno
solici e e mina el examen se le indique en que momen o debe abandona el aula. Las
indicaciones pueden llega median e una no icación a una aplicación mó il.
La o a g an medida pa a as ea casos posi i os es ene un buena azabilidad de
las pe sonas pa a iden ica con ac os con gen e posi i a a la en e medad. Aunque exis en
apps que ayudan a dicho n, den o de las aulas, la aplicación desa ollada complemen a ia
esa nalidad. Se pod ía sabe la ubicación exac a del alumno que ha dado posi i o en el
aula y odos los alumnos que se sen a on al ededo , pudiendo de es a o ma aza cí culos
de cua en ena donde los alumnos más ce canos sen ados a él se ían con ac os de g a edad
al a y se no ica ía en consecuencia.
1.5. Es uc u a del abajo
T as la In oducción, dada po la pe spec i a his ó ica de la e aluación uni e si a ia,
la si uación ac ual en la Facul ad de In o má ica y la Mo i ación y alcance del p oyec o,
y Co id, se a a expone a con inuación un b e e esumen del con enido del es o de la
memo ia, comp endiendo es os los siguien es capí ulos:
El siguien e Capi ulo es el 2, In oduc ion. Siendo és e la aducción al inglés del
Capí ulo 1, In oducción.
El p óximo capí ulo es el 3, An eceden es. En es e capí ulo se a a expone cómo
o as uni e sidades ges ionan los exámenes y el mé odo u ilizado pa a ello.
1.5. Es uc u a del abajo 5
Después le sigue el capí ulo 4, Análisis y especicación, en el cual se ealiza una
desc ipción del p oyec o y dos especicaciones en unción de un equisi o p e io.
En el Capí ulo 5 es el co espondien e al his ó ico de la aplicación, mos ando la
e olución de la aplicación desde que empezó hace dos años, has a aho a.
El capí ulo 6 con inúa con la elección de las ecnologías, en el que se exponen los
mo i os de la elección de cada una de ellas y sus en ajas p incipales.
El capí ulo 7 es el co espondien e al de A qui ec u a, explicando la a qui ec u a
escogida y los mo i os de su elección.
Es en el capí ulo 8 en el que se enseña la ins alación, o ganización e implemen ación
que se ha ealizado en el p oyec o, así como un ejemplo de un escena io de uso pa a
mayo comp ensión.
En el Capí ulo 9, Implemen ación, es en el se explica á como se ha implemen ado
cada pa e de la aplicación y se expone un ejemplo de un escena io de uso.
El capí ulo 10 es el co espondien e a la e icación y alidación. En és e capí ulo
se explica las alidaciones y e icaciones necesa ias pa a el p oyec o en unción del
ni el de p og eso que enga.
A con inuación, se encuen a el capí ulo 11, en el que se ealiza un desa ollo de a-
llado del abajo u u o haciendo incapié en man ene la escalabilidad del p oyec o
y su solidez.
El Capí ulo 12 es Conclusiones. En es e capí ulo, se ealiza un esumen de las pa es
más ele an es de la aplicación, además de una pequeña pa e de los conocimien os
adqui idos.
El Capí ulo 13 es la aducción al inglés del Capí ulo 12, Conclusiones.
Po úl imo, se encuen a la bibliog a ía, en el que se encuen an las páginas y do-
cumen os que se han u ilizado an o pa a ap endizaje, pa a ins alación, como pa a
con as e de ecnologías en e o as.
Capí ulo 2
In oduc ion
2.1. His o ical pe spec i e
A e he in es iga ions ca ied ou by he s uden s o he TFG [34] wo yea s ago, hey
disco e ed ha he s Uni e si ies a ose in Eu ope a ound he 12 h and 13 h cen u ies
h ough he ca hed al and monas ic schools. A ha ime, he mos widesp ead e alua ion
me hod was he dispu a io , which consis ed o deba ing on a ious subjec s o disco e
and es ablish he u hs o hem. The e we e se ules o ha p ocess, such as eliance
on addi ional w i en au ho i ies o deep unde s anding o each side's a gumen s.
O e ime he me hodology e ol ed o become wha we now know as he o al exam.
This ype o examina ion was adop ed by Eu opean uni e si ies in he 18 h cen u y and
ep esen ed a g ea ad ance since i is conside ed he s equanimous a ional me hod
o e alua ing s uden s.
In ecen yea s he e has been a g ea echnological ad ance in many die en a eas.
Despi e his, he logis ics managemen o he exams in he uni e si ies has ha dly ad anced,
being in mos cases a e y inecien and non-au oma ed me hod.
2.2. Cu en si ua ion
In he TFG o he s uden s ed wo yea s ago hey explain ha , o his day, he Facul y
o In o ma ics, belonging o he Complu ense Uni e si y o Mad id, does no ha e a g ea
ad ance in he logis ics o i s exams. The ac o no ha ing an au oma ed sys em implies
an ex a wo k ha alls on he eaching s a. Thanks o echnological p og ess, eache s
could be eed om ha ex a wo k.
The cu en p ocess o he exams in he Facul y o In o ma ics is:
1. Publica ion o he exam calenda a he beginning o he academic yea .
2. Assignmen o class ooms o he exam.
7
8
Capí ulo 2.
In oduc ion
Class oom ese a ion o he heo e ical pa (i any) depending on he o al
numbe o s uden s en olled.
Rese e labo a o ies es ima ing upwa ds he numbe o s uden s who a e going
o a end he p ac ical pa (i any).
3. P in ing o he exams es ima ing upwa ds he numbe o s uden s who a e going o
si .
4. T anspo a ion o he exam copies o he co esponding class oom on he exam day.
No only he ac o es ima ing he necessa y copies o he exam can be edious, bu
also anspo ing hem o he class oom, wi h he consequen isk o loss in he p ocess
om p in ing o exam day.
The me hodology used can cause die en se backs and p oblems such as:
Wo k in es ed by he echnicians in he p epa a ion o he labo a o y, and ha in
he end i is no necessa y because ewe s uden s show up, some imes e en lea ing
labo a o ies comple ely emp y.
Possible le o e p in ed exams o class ooms ha ha e nally been le emp y wi h
possible spending on hea ing o ai condi ioning needed o c ea e a good exam
clima e. In addi ion o he a o emen ioned, hanks o his p ojec , i would be
possible o educe he exam p og am, due o he op imiza ion o class ooms and
also he consequen educ ion in he numbe o exam su eillance eache s.
The loss o ime o he eache in es ima ing he numbe o s uden s who could
ake each exam, which en ails he consequen loss o ime in ese ing each o he
class ooms o each o hei exams.
S uden placemen in exams. The eache mus in es ime in o de ing he s uden s,
so ha he sepa a ion be ween hem is conduci e o a oid possible aps.
P oblem ha s uden s copy. I a s uden is ee o si anywhe e, he odds o copying
will change depending on he si e chosen. I you can si nex o o e y close o a
iend, he isk o copying is g ea e . On he o he hand, i you a e awa e ha he
places a e assigned, you know ha you chances o copying a e lowe since you can
no si nea a iend, in case you need i o pass he exam.
2.3. P ojec scope and mo i a ion
In he p e ious poin , he cu en si ua ion o he me hodology o he examina ions
and he possible incon eniences such as he loss o ime ha a eache can suppose when
ese ing a class oom o he placemen o s uden s in he class oom des ined o exam.
Bu he e can also be o he p oblems such as copying du ing an exam, o e en losing i .
This TFG aims o alle ia e, as a as possible, he incon eniences and p oblems ha
may a ise in ela ion o he logis ics o exams. To do his, my colleagues [34] wo yea s
2.4. Co id 9
ago designed an applica ion ha allows he managemen o class oom ese a ions and
he alloca ion o sea s o s uden s based on an algo i hm. This allows o p e en copying
in exams, since he sea s will be assigned by he algo i hm based on p e ious pa ame e s.
The applica ion will also manage an exam in gene al, being able o c ea e an exam,
display all he in o ma ion ela ed o i (subjec , g oup, da e, class oom, s uden s, eache
...), modi y i o e en dele e i . In addi ion, he esponsible eache will ha e he possibili y
o uploading he pd wi h he exam model in he applica ion, assigning i o a p e iously
c ea ed exam. On he o he hand, exams can only be c ea ed by a use who has he ole o
exam adminis a o . Ano he op ion ha he applica ion will oe will be he uploading
o a s uden 's solu ion o he exam, which may be he scan o he exam w i en by he
s uden du ing he exam, o in he case o a p og amming exam, upload he les equi ed
by he eache . This op ion will be subjec o he beginning and end o an exam, since
i will be impossible o add an exam solu ion o an exam ha has no s a ed o has
nished, which will be di ec ed by he p o esso who has been eaching he subjec o by
he p o esso . gua d assigned o o e see said examina ion.
Fo he managemen o he p e iously explained, i will be necessa y o ha e he
in o ma ion o he en olled s uden s and he subjec s. Ano he impo an equi emen
is knowledge o he exam calenda . The au oma ic deni ion o an exam calenda ha
sa ises a se ies o equi emen s is a complex op imiza ion p oblem ha is no deal wi h
in his TFG; We assume ha he calenda is dened. This is impo an since he main
idea is o op imize he class ooms and sea s o each o he exams and i is likely ha
se e al exams will be aken on he same day a he same ime. Finally, i will be necessa y
o know each class oom in de ail, ha is, he numbe o sea s and hei dis ibu ion.
I is in ended o c ea e an applica ion ha allows us o imp o e he unc ioning o ou
school, and ha can be ex ended o o he schools. Nex , he applica ion will be p esen ed,
explaining he selec ed languages and why, he echnologies used in he de elopmen
p ocess, he ope a ion, he equi emen s and he chosen a chi ec u e.
2.4. Co id
Gi en he cu en pandemic si ua ion ha is being expe ienced, his p ojec has
become an indispensable job. Ini ially, he needs did no eec he a o able imes, and
he e o e he unc ionali ies did no ha e he app op ia e ocus, despi e his we could see
he bene s ha he applica ion would gi e.
One o he p inciples o comba a pandemic once con olled, is o a oid some e en s,
which is jus wha happens a exam ime. Along he hallways o he acul ies, s uden s
c owd a ound he class oom doo s o ge he mos com o able sea s o hem o o be he
s o en e . The solu ion was al eady ound in he unc ionali ies collec ed, specically
wi h he alloca ion o places in he class ooms. Wi hin his ea u e we ha e wo a ian s:
16
Capí ulo 3.
An eceden es
Al conoce el núme o exac o de alumnos p esen ados a un examen, esul a sencilla
la asignación de pues os a cada alumno. El equisi o necesa io pa a el p oceso se á la
iden icación del alumno median e la a je a uni e si a ia. Exis e la posibilidad de que,
si po alguna ci cuns ancia no jus icable, un alumno insc i o decida no p esen a se al
examen. En es e caso la con oca o ia del examen co e á. Si un alumno no es á insc i o
en un examen, no se á posible que se p esen e al mismo.
La iden icación es obliga o ia en odas las uni e sidades. En la mayo ía es obliga o io
la iden icación a nal del examen, excep o en la de Malmö, en la cual es necesa io
iden ica se an es de es e.
Al igual que en Dinama ca, la Facul ad de In o má ica dispone de aulas de g an
capacidad. Es o esul a se una g an en aja dado que pueden jun a se más de un g upo
o examen a la ez. El consegui jun a g upos de la misma asigna u a o exámenes de asig-
na u as dis in as o ece la posibilidad de aco a el pe iodo de exámenes y de disminui
el núme o de p o eso es de gua dia que se necesi an pa a igilas odos los exámenes.
En la Uni e sidad de Oulu, la mayo pa e de los exámenes que se ealizan son en
aulas, siendo pun uales los casos en los que u ilizan los labo a o ios pa a examina se. Pese
a ello, en los exámenes en labo a o io, cada alumno iene un pues o p easignado. En la
Uni e sidad Complu ense de Mad id no es así. Muchos de los exámenes ealizados son en
labo a o io, es o p oduce que en bas an es ocasiones se necesi e eubica a los alumnos en
un mismo labo a o io, quedándose de es e modo, labo a o ios acíos. Con es e sis ema,
es e p oblema se sol en a ía, y se aho a ía abajo al pe sonal de labo a o ios ya que
no se ía necesa io p epa a pa a el examen más labo a o ios que los que se an a usa
nalmen e.
Capí ulo 4
Análisis y especicación
4.1. Desc ipción
Geloex es un p oyec o que iene como obje i o au oma iza en la medida de lo posible
la ges ión de los exámenes.
La aplicación a a ene cua o oles de usua io, los cuales pod án ealiza a eas
di e en es y es po ello que el análisis de la aplicación se a a ealiza en unción de esos
usua ios.
Se a a comenza con el p ime ol, el adminis ado de sis emas. Es e usua io a a se
el enca gado de la ges ión de o os usua ios. La ges ión de usua ios implica pode c ea un
usua io, modica un usua io ya c eado, elimina un usua io o mos a la in o mación de
un usua io. El adminis ado de sis emas dispond á de una in e az en la que le salga un
lis ado de los usua ios c eados. Además de ello, dispond á de a ias pes añas pa a ealiza
l ado, siendo és os po nomb e, o denando los usua ios po o den al abé ico y ambién
end á la posibilidad de o denación po echa de c eación de usua io. O as opciones de
l ado que implican la educción de mues a de usua ios se ían la de l ado po g upo,
en la que le apa ece á un lis ado con los g upos y pod á selecciona uno de ellos. O a
opción de l ado se á el de nomb e, poniendo el nomb e del usua io a l a mos ando
únicamen e los usua ios con ese nomb e.Además de lo an e io , end á la opción de l a
po ol, seleccionando el ol de un desplegable. Exis i á ambién la opción del l ado
po asigna u a, siendo és a seleccionada median e un desplegabla en la que apa ece á
el nomb e de cada una. Y po úl imo, se pod á l a po cu so, seleccionando en cual
de ellos se desa busca . És as dos úl imas opciones se ía pa a la l ación de alumnos,
pudiéndose es udia la posibilidad de añadi a los p o eso es que impa an en esos g upos
o en la asigna u a. Cuando el adminis ado de sis emas seleccione un usua io, apa ece á
o a is a en la que se mues e oda la in o mación ace ca del usua io seleccionado. En
es a is a ambién se á posible modica el usua io o elimina lo.
El segundo ol es pa a el adminis ado de exámenes se á simila al de sis emas, pe o
en ez de con usua ios, con exámenes. En la página p incipal dispond á de una lis a con
odos los exámenes c eados. Tend á la opción de e en de alle un examen si lo selecciona,
17
18
Capí ulo 4.
Análisis y especicación
además de pode modica cualquie a de sus campos o elimina el examen po comple o.
Dispond á de e ias opciones de l ado, po asigna u a, seleccionando en un desplegable
la asigna u a po la que se desea l a . También pod á l a po echa de c eación del
examen, es deci , la echa en la que se ha c eado el examen en el sis ema. O a opción de
l ado se á po p o eso , mos ando el núme o de exámenes de los que un p o eso es á a
ca go. Además se á posible l a po g upo, mos ando así odos los exámenes que han
sido c eados pa a un g upo conc e o. O a opción, al como el g upo, es la de l ación
po cu so, ob eniendo odos los exámenes e e en es al cu so seleccionado. Además de
ello, se pod á l a po es ado de examen, comp endiendo és e es posibles es ados: po
hace , en p og eso o nalizado. Tend á la opción de l a po du aciónn de examen. O a
opción se á el l ado median e la echa de examen, mos ando los exámenes que se án
ealizados en esa echa. Y po úl imo, el aula, mos ando pa a el aula seleccionada los
exámenes que se ealiza án ahí du an e odo el pe iodo de exámenes.
O o ol a a se el de el alumno. Los alumnos an a dispone de dos is as di e en es.
La p ime a de ellas se á en la que an a pode consul a odos los exámenes que pueden
ealiza . Al igual que los adminis ado es, los alumnos ambién an a dispone de opciones
de l ado pa a agiliza la busqueda de exámenes. Aunque pueden l a , los l os del
alumno es a án suje os a lo que es á ma iculado, es deci , cuando l e po g upo, cu so,
asigna u a o p o eso , solo op a á a las asigna u as, cu sos y g upos en los que es á
ma iculado, así como los p o eso es que le impa en clase. También end á la opción de
l a po echa de examen. Y la úl ima opción de l ado de la que a a dispone es la de
po es ado de examen, pudiendo selecciona un examen que oda ía no se ha ealizado, o
un examen que ya ha nalizado. No se con empla la posiblidad de que un alumno enga
la opción de l a el es ado de un examen como Én p ogeso', ya que se le consigue e
la u ilidad. La o a is a se á la de labo a o io. En es a is a, pod á e el í ulo de la
asigna u a de la que se es á examinando, y con a además con cinco bo ones. El p ime o
de ellos se á con el que solici e ayuda al p o eso po ene una duda. El siguien e se á
el co espondien e al examen, pudiendo desca ga lo pa a isualiza lo desde el o denado .
O o se á el de solici ud de escaneo de la solución del examen, pa a el caso en el que sea
necesa io. Y po úl imo dispond á de un bo ón en el que pueda se posible adjun a los
a chi os gene ados du an e el examen y que sean necesa ios pa a el p o eso pa a lle a a
cabo la co eción. Aho a se a a explica el p oceso de examen pa a un alumno. Una ez
llegue el alumno al aula co espondien e, se au en ica á median e el ca né uni e si a io
o in oduciendo los ca ac e es de su DNI. A con inuación, se le imp imi á el examen que
debe ealiza , además de los da os co espondien es del alumno, como el nomb e, DNI,
asigna u a, g upo, echa, y pues o que debe ocupa . Cuando el alumno nalice el examen,
debe á desloguea se pa a indica que ha nalizado el examen. És e logou se ealiza á
ol iendo a pasa su ca né uni e si a io o in oduciendo su DNI.
El úl imo de los oles es el co espondien e al p o eso . Al igual que el ol del alumno,
el p o eso a a dispone de dos posibles is as. La p ime a se á donde se le mos a án
odos los exámenes de las asigna u as que impa e. Pa a una búsqueda más ágil, se á
posible ene a ias opciones de l ado. Al igual que los alumnos, las opciones de l ado
de un p o eso es án suje as a lo que impa e, eniendo pa a l a las asigna u as de las
que es el p o eso , el l ado po cu so en los que iene alguna asigna u a a su ca go, o el
4.1. Desc ipción 19
g upo, eniendo como opción los g upos en los que impa e alguna asigna u a. También
end á la opción del l ado po echa de examen, además de po es ado, siendo las
dos opciones posibles las co espondien es a los examenes po ealiza , y los que ya han
nalizado. Cuando se seleccione un examen, y el es ado del examen sea
Finalizado
, se á
posible desca ga las soluciones de los alumnos. La o a is a es la co espondien e a un
examen. En la is a p incipal end á en la pa e izquie da un menú, y la pa e cen al
es a á compues a po una ep esen ación del aula seleccionada. La pa e del menú de la
izquie da con iene un lis ado con el nomb e de las aulas, pa a el caso en el que un examen
equie a más de un aula, un apa ado de no icaciones, en el cual apa ece á un lis ado de
los pues o que han solici ado ayuda, y un e ce apa ado de Modelos de examen. En el
lis ado de aulas, como ya se ha an icipado, se a a mos a un lis ado con el núme o de
aulas en las que se ealiza el examen. Cuando un aula es seleccionada, en la pa e cen al
de la pan alla apa ece una ep esen ación g áca del aula. Es a ep esen ación indica los
pues os, pudiendo a ia el colo del pues o según si es á acío, si un alumno es á ea-
lizando un examen, si el alumno en ese pues o ha solici ado ayuda o si es á p óximo a
ago a el iempo de su examen. Si un alumno es á ealizando el examen, el p o eso end á
la opción de pincha en ese pues o y que en una en ana eme gen e, se mues a oda la
in o mación ace ca de ese alumno, además en esa en ana end á la opción de añadi un
comen a io pa a ese alumno. Desde la is a p incipal dispond á de dos bo ones, uno pa a
naliza el examen, po mo i os como puede se que odos los alumnos han en egado el
examen an es de que el iempo de du ación del examen haya nalizado, o po que nadie
se haya p esen ado al examen. Y el o o bo ón pe mi i á amplia el iempo del examen.
El p oceso de la ese a de aulas se lle a á a cabo as la c eación de odos los
exámenes. Un adminis ado de examenes dispond á de un bo ón en el que, as habe
c eado odos los exámenes, pod á pincha y se gene a á el calenda io de exámenes de ese
cu so académico. Es a gene ación de calenda io lle a implíci a la asignación de aulas, y
po an o, la ese a de las mismas. Pa a ealiza co ec amen e es e p oceso de calenda io,
se á necesa io p e iamen e que odos los exámenes hayan sido c eados, que dispongan de
iempo de du ación, que engan el núme o es imado de alumnos que pueden p esen a se
y el núme o de modelos que iene cada examen.
El p oceso de la asignación de asien o a un alumno se ealiza á cuando con la iden icación
del alumno cuando en a en el aula en el momen o del examen. En ese momen o, se le
asigna á un asien o en ese aula.
O o p oceso se ía el de ecogida de las soluciones al examen de los alumnos. Es e
p oceso iene dos posibilidades, que el examen se ealice esc i o, se escanee al nal del
examen y la solución sea subida a la pla a o ma, o que sea un examen de labo a o io y se
equie a la subida de che os, los cuales se pod án ealiza median e la is a del examen
del alumno.
20
Capí ulo 4.
Análisis y especicación
4.2. Enume ación
La ges ión de exámenes en la Uni e sidad, en pa icula , la pa e de la ges ión de aulas
y la asignación de asien os, iene una al a complejidad. A con inuación se a a mos a
los dos posibles modos, en unción de una p einsc ipción o no, que llega on a expone mis
compañe os de hace dos años[34].
El modo dinámico se co esponde con la opción en la que no es necesa ia una p einsc ipción.
En es e modo el sis ema ob end á la in o mación del alumno en el momen o en el que se
ealiza el examen, po lo que los pues os se debe án asigna en ese momen o. Pa a que
los pues os se asignen co ec amen e se u iliza ían algo i mos de colo eado de g a os. En
ocasiones, se ecu i á a la es imación de alumnos que pueden p esen a se a un examen,
ya sea po que en algunas asigna u as sea necesa io cumpli con cie os equisi os, como
la en ega de odas las p ác icas, o po que al con a con una es imación, y no con odo
el núme o de alumnos ma iculados en cada asigna u a, ob end íamos un esul ado más
p óximo a la op imización comple a del aula.
Es p obable que en ocasiones sea necesa io u iliza algún ipo de es imación, debido
a que en cie as asigna u as es necesa io cumpli cie os equisi os pa a p esen a se al
examen, como la en ega comple a de odas las p ác icas, y con espec o a ene en
cuen a a odos los ma iculados en la asigna u a.
El o o modo es el es á ico. Es e modo se basa en una p einsc ipción p e ia al examen.
Con es a p einsc ipción, el sis ema dispone de los da os necesa ios pa a asigna los pues os
en el examen de la mane a más óp ima. Pa a la p einsc ipción, se p opo ciona á una
pla a o ma a los alumnos en la que dispond án de odos los exámenes con los días y
ho as a las que op an a p esen a se. Cada examen end á un plazo de insc ipción, po lo
que, as naliza ese pe iodo, ningún alumno pod á insc ibi se. Al igual que el modelo
dinámico, dispond á de una posible es imación en el caso de que sea necesa io cumpli
cie os equisi os p e ios al examen como ya se han mencionado.
En unción a la desc ipción de los dos modos, pueden di e encia se a ios ni eles de
complejidad pa a cada uno de ellos. Es e desa ollo ue analizado po mis compañe os
del cu so an e io de una o ma co ec a y especíca. A con inuación, se mues a dicha
enume ación[34]:
1. G ado de complejidad 1: Modelo es á ico. En es e ni el se implemen a á la uncionalidad
más simple, de modo que solo exis a la posibilidad de ealiza en un aula un único
examen de la asigna u a, con un solo modelo de examen, pe o con la posibilidad de
que e ec úen el examen a ios g upos dis in os.
2. G ado de complejidad 2: Modelo es á ico. Es e g ado de complejidad aba ca el
p ime o, añadiendo la posibilidad de pode ealiza a ios modelos de examen de
una misma asigna u a. De modo que se pod á ubica a los alumnos pa a que a su
al ededo no engan un compañe o con el mismo modelo de examen.
3. G ado de complejidad 3: Modelo es á ico. El e ce ni el con empla la posibilidad
4.2. Enume ación 21
de que en un aula se puedan ubica dos o más g upos de asigna u as di e en es, pe o
con un solo modelo de examen en cada asigna u a.
4. G ado de complejidad 4: Modelo dinámico. En es e ni el la implemen ación ya
expe imen a una dicul ad mayo , pues al se dinámico, el algo i mo pa a ubica a
los alumnos en el aula se á más complejo. Así mismo, se pod ía ene un examen
ubicado en un aula y con uno o a ios g upos de la misma asigna u a.
5. G ado de complejidad 5: Modelo dinámico. En es e g ado de complejidad, la aplicación
pe mi e ubica a los alumnos de dis in os g upos en una misma aula con más mo-
delos de examen, pe o de la misma asigna u a.
6. G ado de complejidad 6: Modelo dinámico. Es e úl imo g ado de complejidad se
co esponde con la idea de ene en un mismo aula alumnos que ealizan dis in os
exámenes de dis in as asigna u as, con dis in os g upos y dis in os modelos de
examen po cada asigna u a.
Capí ulo 5
His ó ico de la aplicación
És e p oyec o es una con inuación del TFG de es alumnos del año pasado. És o es así
po que el p oyec o no llegó a comple a se. Mis compañe os del año pasado ealiza on un
g an anajo en lo e e en e a los an ecenden es, ya que busca on in o mación ace ca de los
p ime os mé odos de e aluación, empezados en la Edad Media, y su e olución. También
lle a on a cabo una exhaus i a búsqueda pa a a a de plasma la impo ancia de és e
p oyec o poniendo como ejemplo a la Uni e sidad Nacional de Educación a Dis ancia
(UNED) con la La Valija Vi ual, explicando de alladamen e su unción y el p oceso
que se se desa olla en la p epa ación y ealización de exámenes. O o pun o que lle a on
a cabo con g an ni el de de alle ue el análisis y la especicación, ealizando una g an
dis inción en e los posibles modelos que se podían llega a implemen a , siendo és os
es á ico y dinámico, y odas sus posibles a ian es den o de esas dos posibilidades.
Como ya an icipábamos an e io men e, ealiza on un de allado es udio de los equisi-
os del p oyec o, siendo siendo és os los co espondien es al sis ema, usua ios, exámenes y
el en o no. También cabe menciona el a duo abajo e ec uado en la ealización de odos
los diag amas, an o de uso, de Gan , de p ocesos, del dominio, como de secuencia.
Pese al g an es ue zo in e ido po mis compañe os del año pasado, quedó pendien e
mucho abajo po hace . Pa a ealiza la implemen ación, basa on la aplicación en los
lenguajes Ja sc ip y HTML, ayudados de Exp ess.js pa a la c eación de plan illas. Y pa a
el backend u iliza on MySQL como lenguaje pa a la BBDD, y JQue y jun o con DHTMLX
Schedule pa a la ealización de la uncionalidad del calenda io. Después de desca ga y
analiza el eposi o io, y c ea una base de da os pa a in e acciona con la aplicación, se
pudo ap ecia que odo lo implemen ado e an pa es sepa adas. Realiza on unas plan illas
con ayuda de Exp ess.js las cuales no es aban conec adas a nada, excep o el login, que eso
sí uncionaba, pe o el es o únicamen e e an HTMLs es á icos, en el que se podían ap ecia
bo ones, subidas de a chi os u opciones que no lle aban ni ealizaban ninguna acción. Po
o a pa e, la implemen ación del DAO ealizada, la cual no ue posible que se conec a a a
la BBDD, no es co ec a. El pa ón DAO a a de independiza lo máximo posible la lógica
de la aplicación de la in e acción con la base de da os, p oponiendo como al una in e az
con los mé odos a implemen a , a pa i de la cual una se ie de clases que he eda án de
dicha in e az ienen como obje i o implemen a los mé odos de la misma pa a la base de
da os co espondien e. Pese a que los compañe os del año pasado conocían de la buena
p ác ica del uso de in e aces DAO, no lo lle a on a cabo co ec amen e, pues o que no
23
24
Capí ulo 5.
His ó ico de la aplicación
ealiza on ninguna in e az DAO, sino que los DAOs que implemen a on, son di ec amen e
las implemen aciones de la base de da os, es deci , no se aplicó el pa ón DAO en ningún
momen o, po lo que la implemen ación queda comple amen e acoplada a es a base de
da os, suponiendo un p oblema de escalabilidad y de mig ación a o a base de da os.
Es po ello, en e o as cosas, que ha sido necesa io con inua con el p oyec o. Dado
que la implemen ación, en g an pa e no es á conec ada y en o os casos se ha ealizado
e óneamen e, se ha decidido implemen a la aplicación desde ce o. Aún así, se han
man enido ecnologías del p oyec o an e io como Node.js y Exp ess. Ap o echando la
opo unidad de empeza una aplicación, se ealiza on búsquedas de a qui ec u as pa a
web, siendo Clean A chi ec u e una de las más ecomendadas pa a ello, y se decidió
aplica la al p oyec o. Po o a pa e, se ha iniciado una implemen ación que pe mi a una
al a escalabilidad, a la ez que o ezca la posibilidad de eu ilización de ese código en
o os posibles p oyec os siendo mínimos los cambios. Osea, se ha ealizado la es uc u a
de un p oyec o álida pa a o os muchos, dando la posibilidad de comenza un p oyec o
basándose en és e, ex ae una pa e del p oyec o pa a se u ilizado en o o, o incluso
ex ae una pa e del p oyec o pa a se sus i uida po o a sin a penas ene impac o en
el desa ollo ya ealizado, g acias a la aplicación de Clean A chi ec u e.
Pa a ealiza odo ello, se ha di idido el p oyec o en dos pa es, on ed y backend.
A la pa e del backend se le ha aplicado, como ya se ha mencionado p e iamen e, la
a qui ec u a Clean A chi ec u e, di idiendo el p oyec o en cua o capas, las co espon-
dien es a la a qui ec u a.
El desa ollo ha consis ido en p ime luga , como nexo en e el on end y la lógica
de negocio del backend, una API REST, siendo REST una in e az que usa HTTP pa a
la ob ención de da os y el en ío de ellos. És a API, ealizada con Exp ess.js, ecibe las
pe iciones HTTP, y ac úa en consecuencias llamando al con olado opo uno.
El con olado es el mediado en e la lógica de negocio y el en u ado de la aplicación,
a la pa que el enca gado de la ans o mación de da os, ya sea ealiza un
mappeo
, ealiza
un pa seo, o c ea un obje o. El con olado , as la ans o mación de da os opo una,
ealiza á una llamada al caso de uso co espondien e.
Los casos de uso es án di ididos en ca pe as po emá ica, y además, cada caso de uso
ocupa á un a chi o comple o, po lo que el nomb e del a chi o se á el nomb e del caso de
uso co espondien e. Po su pa e, los casos de uso son los enca gados de la lógica de la
aplicación, ecayendo en és os las alidaciones de da os, siendo és os los equisi os pa a el
caso de uso, la ob ención de da os, bien pa a comp oba , como puede se la exis encia de
un usua io, con el n de ealiza la a ea del caso de uso seleccionado. Cada caso de uso
ealiza á una se ie de acciones en él, pudiendo se en e ellas, la in e acción con la base
de da os.
Pa a la in e acción con la base de da os se ha c eado una in e az con los mé odos
necesa ios. De aho a en adelan e, cuando a lo la go del TFG se hable de in e az, hay que
25
ene en cuen a que en Ja asc ip no exis en in e aces de o ma na i a. La clase c eada
pa a és e n se a a de un mediado que e obliga a implemen a esos mé odos, pe o
se ha decidido llama la in e az po la unción que iene y pa a mayo comodidad en la
lec u a. Es a in e az, es ealmen e impo an e, ya que es el nexo en e la lógica de la
aplicación en la base de da os, ealizando así el pa ón DAO, y además, la in e sión de
dependencias pa a la in e acción de los casos de uso con la base de da os cumpliendo el
p incipio más impo an e de Clean A chi ec u e, el p incipio de dependencias.
Con espec o a la implemen ación de la base de da os, se ha ealizado en MySQL,
u ilizando pa a ello el ORM Sequelize. Es e ORM es de g an impo ancia y u ilidad, ya
que desacopla la base de da os de la lógica de la aplicación, pe mi iendo ene a ias bases
de da os, siendo és as de di e en es lenguajes, y además, apo a obus ez y segu idad dado
que e i a las inyecciones de código SQL, en e o as.
Además de odo es o, se ha c eado un modelo de ges ión de e o es. Es e ges o de
e o es ex iende de la clase E o , pe sonalizándolo con un mensaje, deniendo el e o ,
un código, el cual indica el ni el se e idad, y po úl imo, un alias, que apo a un ex a de
in o mación pa a la solución del mismo, ya sea en el backend, como en el on end.
32
Capí ulo 6.
Elección de las ecnologías
[16]
6.5. MySQL
Pa a el caso de la base de da os, se analizó la posibilidad de ealiza un modelo
elacional con MySQL o uno no elacional con MongoDB. Dadas las di e encias en e lo
elacional y no, se desca ó la idea de una base de da os no elacional debido a que no se a
a ene una can idad de da os muy g ande y es muy imp obable que haya habi ualmen e
cambio en los esquemas de las ablas. Pese a ello, la aplicación es á diseñada pa a se lo
más indpendien e posible del ipo de base de da os, pudiendo se es a no elacional si uese
el caso. MySQL[8], como ya se ha an icipado, es un sis ema de ges ión de base de da os
elacional basado en el modelo clien e-se ido . Los da os es án dis ibuidos en di e en es
ablas compues as po las y columnas. Es as columnas y las es án conec adas median e
elaciones. Es de código abie o y u iliza SQL como lenguaje pa a la comunicación con la
base de da os. Al se una base de da os mul ipla a o ma, puede ejecu a se en di e en es
sis emas ope a i os.
La p ime a ca ac e ís ica des acable de MySQL es la ac uación, que p opo ciona un
g an endimien o en si uaciones delicadas sin que los da os esul en expues os. Además,
cumple con las ca ac e ís icas ACID (a omicidad, consis encia, aislamien o y du abilidad),
que ga an izan el p ocesamien o de ansacciones y la p ecisión de da os en si uaciones
des a o ables. También p opo ciona un ue e mecanismo de segu idad como pueden se
el ci ado de con aseñas o la au o ización de cuen as de usua io. Al u iliza SQL como
lenguaje pa a la base de da os, MySQL pe mi e el uso de componen es SQL a anzados
como is as, p ocedimien os y unciones.
6.6. Sequelize
Según la documen ación, Sequelize es un ORM de Node.js basado en p omesas
5
[14]
pa a Pos g es, MySQL, Ma iaDB, SQLi e y Mic oso SQL Se e . Cuen a con un sólido
sopo e de ansacciones, elaciones, ca ga ansiosa y pe ezosa, eplicación de lec u a y
más[10].
Sequelize dispone de cie as ca ac e ís icas des acables como el hecho de que unciona
con p omesas, iene sopo e de ansacciones y pe mi e alida los modelos. Además,
dispone de sopo e pa a MySQL, SQLLi e, Pos g eSQL y Mic oso SQL Se e .
La u ilización de Sequelize o ece múl iples benecios. Uno de ellos es la p e ención de
inyección de código, g acias a que las consul as se ealizan median e unciones y no con
consul as SQL di ec amen e. O a ca ac e ís ica es que pe mi e esc ibi código o ien ado
5
.
Es
un obje o que ep esen a la e minación o el acaso de una ope ación asínc ona"[5] la cual no se
sabe cuando se a a esol e . Se u ilizan pa a pa a lle a a cabo código asínc ono así como pa a a eas
pesadas, ya que g acias a es e en oque, pe mi e no bloquea el código y po en e, la in e az
6.7. Webs o m 33
a obje os pa a los modelos y abs ae el p oceso CRUD pe mi iendo esc ibi código más
decla a i o. La educción de iempo es o a de las ca ac e ís icas de las que dispone, ya
que minimiza el iempo de desa ollo pues o que no es necesa io esc ibi las consul as SQL
ya que dispone de unas llamadas a unciones Ja asc ip que ealizan esa a ea. Además,
cuen a con una in e az segu a pa a lle a a cabo la in e acción con la base de da os.
6.7. Webs o m
Una ez analizados los conocimien os, la expe iencia y la habilidad en a ios en o nos
u ilizados an o a lo la go de los cu sos en la uni e sidad como en la ida labo al, se han
ba ajado Eclipse, Visual S udio Code y Webs o m como IDEs pa a el p oyec o. De es os
es IDEs se ha enido en cuen a la expe iencia del desa ollado con el IDE, la in e acción
e in eg ación de las lib e ías seleccionadas, documen ación, in eg ación de amewo ks y
soluciones de código abie o.
En base a es os equisi os, se ha op ado po desa olla la aplicación en el en o no de
desa ollo WebS o m, que además de con ene las cualidades mencionadas, p opo ciona
un buen análisis es á ico del código, análisis de código ac i o, o ece un mejo sopo e
pa a en o nos de Ja aSc ip ayudando y dando acilidades al desa ollado , y dispone de
una in e az amigable.
Es e IDE pe enece a la amilia Je B ains, la cual dispone de una amplia gama de
IDEs especializados pa a casi odos los lenguajes, el más conocido In elliJ IDEA pa a
Ja a.
Capí ulo 7
A qui ec u a
7.1. Clean A chi ec u e
Clean A chi ec u e[30][40][29][13][32][38] es un pa ón a qui ec u al de diseño ágil de
so wa e p opues o hace una década po Robe C. Ma in ( ambién llamado üncle Bob"),
el au o de la conocida colección de p incipios de diseño so wa e denominada SOLID.
Consis e en una a qui ec u a que se basa en es uc u a el código en capas con iguas.
Es as capas solo pod án comunica se con las capas que engan a ambos lados.
Es a a qui ec u a iene como no ma gene al la egla de dependencias. Es a egla
sos iene que las dependencias del código uen e solo pueden apun a hacia aden o, es
deci , nada de lo que pueda con ene una capa ex e na se á isible pa a una capa in e na.
Con el n de no a ec a a las capas in e io es, no se debe ían usa es uc u as de da os
denidas en las capas ex e io es en ellas. Lo único que se pe mi i á pasa de una capa a
o a se án da os con una es uc u a simple.
Las capas básicas de las que se compone Clean A chi ec u e son F amewo k & D i e s,
In e ace Adap e s, Applica ion Business Rules y En e p ise Business Rules, o denadas
de la capa si uada más al ex e io a la capa si uada más al in e io .
35
36
Capí ulo 7.
A qui ec u a
Figu a 7.1: Imagen A qui ec u a Limpia
La capa F amewo ks & d i e s es á compues a de las he amien as y amewo ks, ales
como la base de da os o los amewo ks web que an a se u ilizados en la aplicación.
La capa In e ace Adap e s es la que se a a enca ga de ans o ma los da os en algo
que en ienda la siguien e capa que los aya a u iliza , además con end á los con olado es,
p esen ado es y accesos a se icios de e ce os.
La capa Applica ion Business Rules es la que con iene los casos de uso y, po an o,
la lógica de la aplicación. En ella se deni án los da os de en ada, los da os de salida y
el compo amien o que end á el sis ema.
La úl ima capa es En e p ise Business Rules. En es a capa se encuen an las en idades,
que con ienen las eglas de negocio. Es as en idades debe án compone se de las unciones
más básicas. Además, una en idad puede se usada po uno o más componen es, po lo
que se án independien es y no debe án cambia po inuencia de elemen os ex e nos.
Siemp e hab á casos en los que alguna capa in e na necesi a á algún da o de una capa
ex e na, pe o, como ya hemos is o p e iamen e, una capa in e na no puede e a una
capa ex e na po la egla de dependencias. Pa a ello se u iliza el p incipio de in e sión
de dependencias, uno de los p incipios SOLID. Es e p incipio se basa en dos eglas, la
p ime a es que la capa ex e io no debe depende de la capa in e io y que ambas capas
deben depende de las abs acciones. La segunda egla es que las abs acciones no deben
7.2. Po qué usa Clean A chi ec u e 37
depende de los de alles, sino los de alles de las abs acciones.
Pa a ilus a es o se a a usa el siguien e ejemplo: es posible que un caso de uso
(capa Applica ion Business Rules) necesi e uno o a ios da os de una base de da os o de
un se icio (capa F amewo ks & d i e s) y, como ya hemos an icipado, po la egla de
dependencias, no es posible solici a da os di ec amen e a la base de da os o al se icio.
Pa a no ompe es a egla, se c ea á una in e az en la capa Applica ion Business Rules
que deni á los da os necesa ios de en ada y de salida. Esa in e az se á implemen ada
po la capa F amewo ks & d i e s, ciñéndose a lo denido en la in e az. De es a ma-
ne a, cada capa sigue sin sabe nada de la o a y no se ompe la egla de dependencias
man eniendo así el ujo unidi eccional hacia aden o.
7.2. Po qué usa Clean A chi ec u e
T as ealiza una in es igación sob e a qui ec u as en ocadas al en o no web, se ha
llegado a la conclusión de que Clean A chi ec u e es una de las mejo es opciones ac ualmen e.
Clean A chi ec u e es una buena opción po múl iples azones. La p ime a de ellas
es la independencia, pues o que cada capa iene su p opio pa adigma como si de una
aplicación se a ase, y el es o de capas no se en a ec adas po su con enido. Al se
las capas independien es, esul a muy sencillo modica cualquie pa e del código, como
puede se la in e az de usua io o la base de da os.
O a de las azones es que es ácilmen e es eable. G acias a la independencia en e
capas, se a o ece que sea más ápido la e isión de una uncionalidad conc e a. Además,
po esa misma independencia, es posible c ea es de end- o-end en cada ni el. De es a
mane a, se puede es ea cada capa po sepa ado y se pueden c ea obje os que simulen
la en ada/salida de da os de o a capa pa a pode es ea una nue a uncionalidad sin
necesidad de usa da os eales.
El hecho de que la aplicación es é es uc u ada en capas a o ece la o ganización del
código y, po an o, se acili a la búsqueda de uncionalidades y su na egación a a és
del scaolding
1
.
La más impo an e de las azones pa a usa Clean A chi ec u e es el desacoplamien o.
Al se las capas independien es las unas de las o as e i amos que, an e u u os cambios
como puedan se un cambio de la base de da os o el de algún amewo k, es os a ec en
a nues a lógica de negocio. Además, Clean A chi ec u e a o ece el pode desa olla el
código en di e en es ecnologías y su eu ilización en o as aplicaciones pa ecidas.
1
Es uc u a de ca pe as y a chi os de una aplicación
Capí ulo 8
Ins alación
8.1. In oducción
Pa a lle a a cabo la implemen ación de la aplicación, se ha di idido en dos pa es, el
on end y el backend.
Pa a p ocede a su desa ollo, se decidió u liza Ja asc ip como único lenguaje en la
aplicación, debido a ello, una buena elección es Node.js como en o no de ejecución pa a
la capa del se ido . Con el n de acili a la implemen ación de la API, se ha op ado
po u iliza Exp ess, un amewo k que acili a la c eación de aplicaciones web, así como
en u ado y u ilización de middlewa e en e o os. Pa a la alidación de da os en la API,
se ha u ilizado la lib e ía Joi, la cual iene incluida en exp ess- alida ion con la que es
posible c ea eglas de alidación.
A con inuación se a a explica cómo se ealiza on las ins alación y las e e encias a
las páginas que esul a on de guía o de página de desca ga.
8.2. Webs o m
El p ime paso que se lle ó a cabo ue la ins alación del en o no especializado en
Ja asc ip , Webs o m.
Pa a la ins alación de Webs o m, ecu imos a la página Je B ains, la cual acili a el
pode c ea se una cuen a o almen e g a ui a g acias al co eo de es udian e de la UCM,
y pode así, dis u a de cualquie IDE de la amilia Je B ains.
Es posible median e la página di ec a de Webs o m, desca ga se el IDE e ins ala lo.
Pe o, ap o echando la cuen a que el co eo UCM nos o ece, se ha desca gado una
aplicación llamada Je B ains ToolBox. Es a aplicación aúna más de 15 IDEs especializados
de Je B ains, dado lo cual, es posible ins ala se cualquie IDE que con enga de Je B ains
únicamen e haciendo click en
Ins all
. Desde es a misma aplicación, es posible ac ualiza
39
40
Capí ulo 8.
Ins alación
un IDE p e iamen e ins alado, y ab i un p oyec o pa a el cual es emos u ilizando alguno
de los IDEs.
Figu a 8.1: Imagen ToolBox
Una ez ins alado Webs o m, se congu ó el a chi o de ejecución. Pa a es e p oyec o
se congu ó el a chi o se e .js como el a chi o de ejecución del p oyec o, se especicó la
ca pe a del p oyec o y la e sión de Node.js.
8.3. Ins alación Node.js 41
Figu a 8.2: Imagen congu ación
O o aspec o de la congu ación en Webs o m ue el de la sinc onización con el
eposi o io de Gi Hub, el cual se ealizó median e ssh. G acias a es a sinc onización,
apa ece en Webs o m una en ana ex a en la pa e de abajo en la cual pueden e se,
en e o as cosas, los a chi os que no han sido commi eados, ealiza commi s, ollbacks,
e esh, push, pull o mos a di e encias en e un a chi o an es y después de habe lo
modicado.
Figu a 8.3: Imagen Gi
8.3. Ins alación Node.js
Como ya se an icipó en el capí ulo sob e ecnologías, e a necesa io la ins alación de un
in e media io en e el sis ema ope a i o y Ja asc ip , se ha seleccionado la solución más
popula , Node.js.
Pues o que el sis ema ope a i o u ilizado pa a la ealización del p oyec o es una
dis ibución de Linux, se op ó po ins ala Node.js median e el comando
sudo ap ins all
nodejs
, del cual no se ob u o ningún p oblema.
48
Capí ulo 9.
Implemen ación
campo de un examen, pudiendo se és os la du ación, el g upo, la asigna u a, el es ado,
el p o eso o el aula. También se á el enca gado de añadi una nue a asigna u a a la
pla a o ma, pa a el caso en el que se haya c eado una nue a asigna u a y sea necesa io
c ea el examen. Y al igual que puede c ea asigna u as, ambién pod á modica las o
elimina las. Además, gene a á el calenda io de exámenes.
Po su pa e, al p o eso le encomenda on las a eas de que sea posible consul a
un examen, elimina un modelo de examen, subi un modelo de examen, ecupe a las
soluciones a un examen, ag ega iempo de du ación a un examen, que pueda da comienzo
a un examen, que sea capaz de igila un examen y de e mina un examen. De odo ello,
se ha llegado a implemen a la posibilidad de ag ega iempo de du ación a un examen, la
consul a de un examen del cual sea p o eso , ob eniendo como da os la asigna u a, día de
la echa del examen, iempo de du ación, el o las aulas, el g upo y el es ado. El comienzo,
igilancia y e minación de un examen se ha lle ado a cabo median e la modicación del
es ado de un examen. Además, ambién es posible mos a odos los exámenes de los que
es el p o eso i ula .
Pa a el caso del alumno, p opusie on como casos de uso únicamen e la iden icación
del usua io y la en ega elec ónica. Pa a el caso del alumno, se ha implemen ado el pode
lis a los exámenes de las asigna u as en las que es á ma iculado.
Aunque no se ha mencionado p e iamen e, la iden icación comple a de un usua io,
en iendo como al la lec u a de la a je a del ca ne uni e si a io, no se ha llegado a
implemen a . Lo que la aplicación si es capaz de dis ingui es el ol de un usua io, y las
a eas que son capaces de ealiza . Un ejemplo de ello es la de c eación de un usua io, la
pa e enca gada de la c eación de un usua io ecibi a los da os del usua io a c ea , a la
pa que un iden icado de usua io, el cual pe mi i á sabe el ol que posee el usua io que
ha solici ado c ea el usua io, y a no se que enga el de adminis ado de sis emas, no
pod á c ea el usua io.
Con espec o a la ese a de las aulas pa a exámenes, se ealiza con la acción del
adminis ado de exámenes de gene a calenda io. Es e calenda io se gene a en unción
del núme o de aulas y la dis ibución de las mismas, del núme o de alumnos que se es ime
que se a a p esen a al examen, el núme o de exámenes y el núme o de modelos que
dispone un examen.
En lo que espec a a la asignación de asien os, se ealiza en el momen o del examen.
Aunque no exis a un logueo como al, es posible simula lo llamando a la unción co-
espondien e enca gada de la dis ibución de asien os que, pasándole el iden icado del
alumno y el iden icado del examen, calcula á el asien o que debe ocupa .
9.3. En e p ise_business_ ules
Ya se ha mencionado en o a sección, que es a ca pe a hace e e encia a la capa
En e p ise Business Rules de Clean A chi ec u e, y po ello su nomb e.
9.3. En e p ise_business_ ules 49
Figu a 9.1: Imagen En e p ise_business_ ules
Es a capa es la enca gada de aloja las en idades, en endiendo como en idad oda
egla de negocio que esul a se c í ica pa a el aplicación. En es a ca pe a se encuen an
o as es ca pe as, En i ies, Reposi o ies y Manage_e o . Cons e que odas las ca pe as
con ienen en idades, únicamen e se han di ido pa a mayo comodidad y agilidad en la
na egación.
También exis e un a chi o llamado cons an .js. Es e a chi o almacena las cons an es
que an a se u ilizadas a lo la go del desa ollo. Ac ualmen e con iene los oles de usua io,
los dis in os g upos exis en es po cu so, y los es ados de un examen, pe o es p obable
que cuando aya a anzando el desa ollo, sea necesa io inclui o o ipo de cons an es.
Figu a 9.2: Imagen cons an es
A con inuación, se a a pasa a explica el con enido de las es ca pe as.
50
Capí ulo 9.
Implemen ación
9.3.1. En i ies
En es a ca pe a se an a encon a odas las en idades que ep esen an una denición
pa a la aplicación, como puede se un p o eso , un examen o un espacio.
Figu a 9.3: Imagen En idades
Se a a comenza con la en idad
Use
. Es a en idad se a a de una clase abs ac a
de la que de i an los dis in os ipos de usua ios de los que es á compues a la aplicación.
Es a clase es la enca gada de c ea un usua io exigiendo al menos el nomb e, apellidos, el
email y el ol del usua io, pudiendo se és e cada uno de los dis in os ipos de usua ios que
exis en en la aplicación. Se ha enido en conside ación que un usua io pueda ene más de
un ol asignado, pudiendo de es a o ma da la posibilidad que un usua io sea p o eso , a
la ez que adminis ado de exámenes. O as de las uncionalidades que o ece es a clase
es el pode consul a y modica cada da o del que es á compues o un usua io median e
los habi uales ge e s y se e s pa a cada da o. Y además de la consul a y modicación
de da os, es posible la con e sión de da os de un usua io a un o ma o JSON. El es o de
en idades que he edan de la clase
Use
son
AdminExam
,
AdminSy em
,
Teache
y
S uden
.
9.3. En e p ise_business_ ules 51
Figu a 9.4: Imagen en idad Use
A con inuación, se mues a la imagen de la en idad
Teache
, cabe des aca que en las
en idades que he edan de
Use
, an es de llama a la clase pad e pa a c ea la en idad, se
le asigna el ol que les pe enece, ya que uno de los equisi os pa a c ea un usua io es
que enga un ol asignado.
52
Capí ulo 9.
Implemen ación
Figu a 9.5: Imagen en idad Teache
O a de las en idades exis en es es
Space
. Es a en idad ep esen a un espacio en el que
puede ealiza se un examen, pudiendo dis ingui se en e aula y labo a o io. Es a en idad,
al igual que
Use
, ambién dispone de los ge e s y se e pa a la consul a y modicación
de los espacios de exámenes. Un espacio de examen se ha conside ado que es á ep esen a-
do po un id, un núme o de las, un núme o de asien os y si se a a de un labo a o io o no.
9.3. En e p ise_business_ ules 53
Figu a 9.6: Imagen en idad Space
El a chi o
Exam.js
es la en idad que ep esen a un examen. Es a en idad es á compues a
po un p o eso , una asigna u a, un espacio, una echa, un g upo y un es ado. El es ado
i á modicándose du an e la ejecución del mismo y de e mina á aspec os como has a
cuando es posible que un alumno pueda en ega un examen o cuando es posible que un
alumno pueda empeza un examen.
Exam.js
ambién dispone de mé odos de ge e s y
se e s como puede se el modica la echa del examen o consul a el p o eso i ula del
examen.
54
Capí ulo 9.
Implemen ación
Figu a 9.7: Imagen en idad Exam
9.3.2. eposi o ies
La o a ca pe a exis en e en En e p ise_business_ ules es
eposi o ies
. Es a ca pe a
iene como con enido los dis in os eposi o ios que an a se necesa ios en la aplicación.
Figu a 9.8: Imagen Clean A chi ec u e
Un eposi o io es una in e az c eada en la capa En e p ise Business Rules y que es
9.3. En e p ise_business_ ules 55
implemen ada po la capa F amewo ks & d i e s con el n de conec a la pa e de la
lógica de la aplicación con la base de da os, de mane a que no se ompa el p incipio de
Clean A chi ec u e.
Figu a 9.9: Imagen Clean A chi ec u e
El p incipio básico de Clean A chi ec u e es que las dependencias únicamen e pueden
i hacia den o. Pe o en ocasiones, es necesa io in e ac ua con la base de da os desde una
capa in e na, po que esul e necesa io uno o a ios da os pa a lle a a cabo un caso de
uso. El caso es que, po el p incipio de dependencias de Clean A chi ec u e, no es posible
ealiza una llamada a la base de da os desde un caso de uso, debido a que los casos de
uso se encuen an en la capa Applica ion Business Rules, y la base de da os se encuen a
en la capa F amewo ks & d i e s, ahí es donde en an los eposi o ios. Un eposi o io es
una in e az c eada en la capa En e p ise Business Rules y que es implemen ada en la
capa F amewo ks & D i e s. Es os eposi o ios son los enca gados de hace la in e sión
de dependencias mencionada en el apa ado A qui ec u a, pa a no ompe el p incipio de
dependencias de Clean A chi ec u e. Po lo an o, cuando sea necesa io algún da o, desde
el caso de uso co espondien e, se llama á al eposi o io que sea necesa io, y ob end á el
da o sin ompe el p incipio.
9.3.3. Ges ión de e o es
Toda aplicación, a de o emp ano, se encuen a con e o es, ya sean causados po
el usua io, como causados po el p opio p og amado . Po ello, es impo an e ene
una buena ges ión de e o es[12][15][41], po que aunque al p incipio es posible que no
exis an una g an can idad de ellos, du an e el pe iodo de desa ollo de la aplicación
acaba án su giendo. Es aquí donde en a la e ce a ca pe a de En e p ise_business_ ules
es Manage_e o , en la cual se ha alojado la implemen ación elacionada con la ges ión
de e o es en la aplicación.
56
Capí ulo 9.
Implemen ación
Figu a 9.10: Imagen Manage e o
En la imagen puede obse a se que la ca pe a con iene dos a chi os,
codeE o .js
y
ResponseE o .js
.
Se a a comenza po
codeE o .js
. Es e a chi o si e pa a almacena los dis in os
ipos de e o es que i án de ec ándose du an e el desa ollo y pos e io men e. Pa a ello, se
añade como una cons an e a con inuación de la úl ima añadida, con el ex o más adecuado
pa a desc ibi el e o , y de es a mane a, sea más sencilla y ápida la de ección del e o .
Figu a 9.11: Imagen codeE o
El o o che o es
ResponseE o .js
. Es e che o es una ex ensión de la clase E o ,
que nos pe mi e pe sonaliza los e o es man eniendo las en ajas de la clase pad e.
9.3. En e p ise_business_ ules 57
Figu a 9.12: Imagen ResponseE o
Es e a chi o es á compues o po un ipo de e o , el cual es á denido en
codeE o .js
,
un alias, y un mensaje. El mensaje, debe se una ase indicando el e o o su posible
solución. Po o o lado los alias an a juga un papel impo an e en la ges ión de e o es,
ya que se ía impo an e que an o en el backend como en el on end se compa ie an
los mismos alias con el n de acili a la de ección y solución de e o es, ya que és os
con end án más in o mación que únicamen e los códigos de e o .
Un ejemplo de u ilización es el de el caso de uso de la ac ualización de un p o eso .
64
Capí ulo 9.
Implemen ación
9.5.2. Rou es
En es a ca pe a se almacena la API. Tene una API apo a mul i ud de en ajas
como es la sepa ación en e clien e y se ido , escalabilidad o independencia del ipo de
pla a o ma. En el caso de es a aplicación, apo a exac amen e lo mismo. Al ene la API,
exis e una cla a di e encia en e la pa e del on end, y la pa e del backend, comunicadas
ambas po la API que pe mi e cambia la pa e on end sin necesidad de cambia el
backend. Apo a escalablidad, ya que al ene sepa ados el clien e y se ido , es posible
añadi nue as uncionalidades sin g andes complicaciones. Y apo a independencia del
ipo de pla a o ma, es posible ene se ido es ya sean Ja a, py hon o Node.js, siemp e
cuando el in e cambio de da os sea en el o ma o aco dado, en el caso de es e p oyec o,
JSON.
La ca pe a del p oyec o es á compues a po los siguien es a chi os:
Figu a 9.21: Imagen Rou es
Pa a e un ejemplo del uncionamien o de ello, amos a e las u as de
eache .js
.
9.5. In e ace_adap e s 65
Figu a 9.22: Imagen ou e eache
En la imagen se mues a la implemen ación de los endpoin s e e en es a la c eación de
un p o eso , u ilizando el mé odo pos , y a la ac ualización de un p o eso , u ilizando el
mé odo pu . En ambos mé odos se ap ecia que el p ime paso es la alidación de los da os
ecibidos, y que en caso de no se co ec os o no habe los ecibido, se lanza una excepción
con el código de e o , el mensaje y el alias co espondien e. A con inuación, ambos
mé odos ealizan una llamada al mé odo co espondien e del con olado pasándole po
pa áme o los da os necesa ios. Después, de ol e á un JSON con la solución o in o mación
a la solici ud. Si du an e el p oceso de la solici ud hubie a algún p oblema que p o ocase
algún ipo de e o , se á cap u ado po el
ca ch
, y con la unción
nex ()
, una unción de
Exp ess que p o oca que se pase al siguien e endpoin en los cuales no en a á debido a
que la u a no coincide con la in oducida po el usua io, has a llega a la siguien e:
Figu a 9.23: Imagen ou e eache
66
Capí ulo 9.
Implemen ación
Es un middlewa e de Exp ess que se enca ga de maneja los e o es y que es á
compues o po cua o pa áme os de en ada, e , eq, es y nex . Es a unción debe
pone se al nal de odos los endpoin s, y en el caso de u iliza o o ou e .use(), debe
es a después, osea, al nal.
9.6. F amewo ks_d i e s
F amewo ks & D i e s es la capa ex e io de Clean A chi ec u e, la llamada capa de
los de alles, pues o que es en es a capa donde se encuen a la implemen ación de la base
de da os, los de alles de la congu ación, desde donde se conec a con se icios de e ce os,
donde es á la web. Es lógico que es o se encuen e en la capa ex e io ya que la in ención
de Clean A chi ec u e es que cuan o más in e io sea la capa, menos implemen ación se
encuen e, con el n de educi el impac o de una modicación en la aplicación.
En es a aplicación, en es a capa exis en cua o ca pe as, Da abase, ORM, S o age y
WebSe e .
Figu a 9.24: Imagen F amewo ks_d i e s
A con inuación pasamos a e cada ca pe a y su con enido.
9.6.1. Da abase
En es a ca pe a se almacenan los modelos de sequelize en elación a las ablas de la
base de da os.
9.6. F amewo ks_d i e s 67
Figu a 9.25: Imagen Da abase
En es os modelos se dene el nomb e de la abla y los campos de la abla, poniendo el
nomb e del campo y su ipo. Sequelize ambién o ece la posibilidad de añadi es icciones
o condiciones a los campos, ya que en el caso de ejecu a la aplicación, y de ec a que
la abla no exis e, se c ea au omá icamen e con el modelo c eado y las es icciones o
condiciones pa a ello.
Pa a mayo cla idad, se a a expone un ejemplo con el modelo
use .js
.
68
Capí ulo 9.
Implemen ación
Figu a 9.26: Imagen Modelo use
Pa a c ea un modelo de Sequelize se u iliza una unción llamada
de ine
, es a unción
con iene dos pa áme os de en ada, el p ime o es el nomb e que iene, o en el caso de no
exis i , end á la abla que a a se c eada. El segundo pa áme o es la denición de los
campos de la abla. Como se an icipaba al p incipio, es á compues o de un nomb e, el del
campo, y un ipo, como en es e caso es un usua io, és e es a á compues o po un nomb e,
un p ime apellido, un segundo apellido, un email, un ol y un id. Como se ap ecia en la
imagen, es en el id donde se ap encian los de alles p e iamen e mencionados, ya que ha
sido a és e al que se le ha añadido que sea cla e p ima ia, y que además de eso, cada ez
que se añada un usua io a la abla, el id se au oinc emen e.
9.6.2. ORM
Pa a la ealización de la pa e de sequelize, se consul ó una se ie de u o iales[21][22][23][24]
que lle aban a cabo el p oceso dede ce o. En es a ca pe a se aloja odo lo elacionado
con la congu ación de Sequelize, es po eso que se encuen a el a chi o
sequelize.js
.
Auqnue los modelos y la congu ación de sequelize es á sepa ada, si en un u u o se
decidiese a inclui o o ORM, los modelos c eados con Sequelize pod ían eubica se en
una ca pe a c eada den o de ORM llamada Sequelize, donde es a ían an os los modelos
c eado po Sequelize, como la congu ación.
9.6. F amewo ks_d i e s 69
Figu a 9.27: Imagen ORM
Es e a chi o con iene la congu ación de la base de da os, que es el si io en el que se
c ea una ins ancia de Sequelize con cua o a gumen os. El p ime o, el nomb e de la base
de da os, el segundo es el usua io de la base de da os, el e ce o es la con aseña de la base
de da os pa a ese usua io y el cua o es una se ie de campos. Es os campos indican el hos ,
el pue o y el ipo de base de da os que se u iliza. Lo siguien e en el a chi o es c ea una
ins ancia del modelo, pa a pode expo a la median e el module.expo s de ja asc ip ,
lo cual pe mi e desde cual pun o de la aplicación, impo a el modelo. Po úl imo se
ha ealizado la sinc onización con las ablas median e el mé odo sync de sequelize, que,
dependiendo de si o ce es ue o alse, e bo a oda la base de da os o la deja al cual
es á. Es o esul a ealmen e ú il cuando se es án p obando uncionalidades y no se quie e
acaba con la abla llena, o que la abla empiece con un id=200, po ejemplo.
70
Capí ulo 9.
Implemen ación
Figu a 9.28: Imagen Sequelize
9.6.3. S o age
Es a ca pe a es la enca gada de aloja las implemen aciones de las in e aces de los
eposi o ios c eadas en la capa En e p ise Business Rules y que son usadas po los casos
de uso pa a in e ac ua con la base de da os median e la in e sión de dependencias ya
mencionada. Como es aquí donde se almacena ían odo los eposi o ios pa a cualquie base
de da os, se ha op ado po c ea una ca pe a llamada
MySQL
, donde aloja los eposi o ios
elacionados con MySQL.
9.6. F amewo ks_d i e s 71
Figu a 9.29: Imagen S o age
A con inuación se a a mos a un ejemplo de implemen ación de un eposi o io,
conc e amen e se mos a á el de usua ios,
Use Reposi o yMyQL
.
72
Capí ulo 9.
Implemen ación
Figu a 9.30: Imagen Use Reposi o yMySQL
Lo p ime o que es necesa io pa a implemen a el eposi o io es impo a el modelo
que se ha c eado con sequelize en el modelo
use .js
alojado en
Da abase/Models
. Ese
modelo es el que se u iliza pa a in e acciona con la base de da os, con unciones como
c ea e
,
des oy
,
indOne
,
indAll
, en e o as.
En la imagen se puede obse a que los mé odos son asínc onos, es o esul a se así
debido a que Sequelize, como esul ado, de uel e una p omesa en ja asc ip . Pa a a a
las p omesas en Ja asc ip , se ha u ilizado async y awai . El awai se ha colocado donde
se ecepciona la p omesa, que se encuen a en la API, en el endpoin desde el que se
ha iniciado la llamada has a llega
Use Reposi o yMySQL
. U iliza
async
y
awai
es
ela i amen e nue o en Ja asc ip , es po eso que ambién es posible ealiza lo con
new
P omise
y ecepciona lo con
. hen
.
9.6. F amewo ks_d i e s 73
9.6.4. WebSe e
Es a ca pe a con iene odo lo elacionado con el se ido . Ac ualmen e, únicamen e
con iene un único a chi o,
se e .js
.
Figu a 9.31: Imagen WebSe e
En es e a chi o se congu a odo lo que implica al se ido . También es donde se
ubican odas las u as de la API, debiendo es a odas las u as c eadas añadidas en es e
a chi o.
La p ime a pa e, en la que se c ea una cons an e llamada
Use Valida ion
, es una
unción c eada g acias a la lib e ía Joi, la cual iene incluida en exp ess- alida ion, y
que se u iliza pa a alidación de da os. En es e caso, es una alidación de usua io,
ya que un usua io debe es a o mado po un nomb e, apellidos, email, que enga una
con aseña y enga asignado un id, en el caso de no se uno nue o. Es e ipo de alidación
esul a se ealmen e ú il ya que puede se usada pa a alida un p o eso , un alumno,
un adminis ado de sis emas o un adminis ado de exámenes, y únicamen e es necesa io
hace lo que se ap ecia en la siguien e imagen. Cuando se incluya un conjun o de u as,
como po ejemplo las del p o eso ,
eache Rou e
, se añade como pa áme o pa a alida .
Además, es posible u iliza la en más de un conjun o de u as, de es a mane a eu ilizamos
código y no se esc ibe el mismo código más de una ez.
Como ya se an icipaba, la segunda pa e es la zona en la que se añaden los dis in os
conjun os de u as a la aplicación. Pa a ello, se u iliza el middlewa e de Exp ess, conc e amen e
la unción
use
. En la línea 41 es posible obse a como son añadidas las u as e e en es
a un p o eso , y cómo es u ilizado el mé odo
use
pa a ello. Con el n de e i a el allo de
la aplicación po no habe incluído co ec amen e una u a, se u iliza el mé odo
all
. Es e
mé odo se debe si ua en úl imo luga , ya que, siemp e que se llegue aquí, se ejecu a. Po
lo an o, es e mé odo se á u ilizado con el n de que si una u a no es á con emplada en
la aplicación, llegue a ese mé odo y no ique que la u a no se ha encon ado.
La úl ima pa e es á compues a po la ejecución de la aplicación, en ella, se u iliza á
el mé odo
lis en
, al cual hay que in oduci le dos a gumen os, el pue o, y un callback,
en caso de que e hace algo cuando la aplicación haya a ancado. En el caso de es a
aplicación, se ha esc i o una ase pa a no ica que la aplicación ha sido a ancada y el
pue o donde lo ha hecho.
80
Capí ulo 9.
Implemen ación
Figu a 9.39: Imagen En idad Use
Una ez c eada la ins ancia del p o eso , se le pasa al caso de uso jun o con la ins ancia
del eposi o io.
9.7. Escena io de uso 81
Figu a 9.40: Imagen Teache Con olle
Pa a el caso de los casos de uso, el enca gado de ges iona la c eación de un p o eso
es
C ea eTeache .js
, ubicado en Use_cases/Teache /C ea eTeache .js. Como ya se ha
explicado en apa ados an e io es, es aquí donde eside la lógica de la aplicación. Una ez
den o del caso de uso pa a c ea un p o eso , se analiza qué es necesa io pa a la c eación
de un p o eso , que el usua io no exis a. Como es posible que dos pe sonas se llamen de la
misma mane a, se analiza que el email que le ha sido asignado no exi a, siendo és a una
mane a única de iden icación pa a un usua io.
82
Capí ulo 9.
Implemen ación
Figu a 9.41: Imagen Caso de uso de la c eación de un p o eso
Pa a comp oba que el email no exis e, debemos hace una consul a a nues a abla
de usua ios. Como no es posible accede di ec amen e po el p incipio de dependencias,
u ilizamos la in e sión del p incipio de indepencia haciendo uso del eposi o io que hemos
ecibido, Use Reposi o yMySQL, el cuál esul a se la in e az. Ese eposi o io iene un
mé odo llamado
ge byEmail
al que se le pasa el email ecibido.
9.7. Escena io de uso 83
Figu a 9.42: Imagen In e az del eposi o io de usua io
Como se ap ecia en la imagen, la in e az
Use Reposi o y.js
dispone del mé odo
ge ByEmail
, el que po he encia, edi ecciona a
Use Reposi o yMySQL.js
, alojado en la
capa F amewo ks & D i e s donde es á implemen ado la in e az
Use Reposi o y.js
.
En el mé odo
ge ByEmail
de
Use Reposi o yMySQL
, ecibe po pa áme o el email a
encon a . Pa a lle a a cabo la consul a, se u iliza el mé odo
indOne
de sequelize, al
cual se le pasa el email a busca .
84
Capí ulo 9.
Implemen ación
Figu a 9.43: Imagen Implemen ación del eposi o io de usua io
Una ez la consul a ha sido esuel a, se gua da el esul ado en una cons an e y se
analiza. Si exis e un usua io con ese email, se lanza á un e o . En caso nega i o, los
da os que se han ecibido pa a c ea el usua io se án ans o mados en un JSON con un
mé odo de la en idad
Use
.
9.7. Escena io de uso 85
Figu a 9.44: Imagen Caso de uso de la c eación de un p o eso
Una ez e icado que el usua io debe se c eado, los da os son en iados al esposi o io,
Use Reposi o y.js
, donde dicho eposi o io iene el mé odo pa a c ea usua ios,
c ea eTeache
.
86
Capí ulo 9.
Implemen ación
Figu a 9.45: Imagen In e az del eposi o io de usua io
Como ya ha sido is o pa a el caso del email,
Use Reposi o y.js
se a a de una
in e az que es implemen ada en
Use Reposi o yMySQL.js
, a la cual edi ige cuando
ecibe una pe ición o consul a a la base de da os. La in e az lle a a la implemen ación en
Use Repo si o yMySQL
, conc e amen e al mé odo
c ea eUse
, el cual ecibe odos los
da os eque idos pa a la c eación del usua io y la ealiza.
9.7. Escena io de uso 87
Figu a 9.46: Imagen Implemen ación del eposi o io de usua io
Una ez se haya ealizado la consul a, se gua da en la cons an e
eache
, c eada en
el mé odo POST del cojun o de u as
eache .js
.
88
Capí ulo 9.
Implemen ación
Figu a 9.47: Imagen Mé odo POST de un p o eso
Después, se en ía lo que se ha ecibido en o ma o JSON, ob eniendo la siguien e
espues a en caso de que odo haya ido bien.
9.7. Escena io de uso 89
Figu a 9.48: Imagen pe ición de c eación de p o eso en Pos man
Po úl imo, comp obamos que en la base de da os el p o eso ha sido añadido.
Figu a 9.49: Imagen P o eso c eado en la base de da os
96
Capí ulo 10.
Ve icación y Validación
es ado nal, la pan alla a alida , se p ocede á con el Then, lle ando a cabo la alidación
de da os y elemen os, pa a lo cual se u ilizan los mé odos de la clase abs ac a lógica.
Capí ulo 11
T abajo u u o
El n de es e p oyec o es ealiza po comple o una aplicación que lle e a cabo la
ges ión de exámenes en la Uni e sidad. Es a aplicación debe ene dos pa es cla amen e
di e enciadas, el on end y el backend. A pesa de que el p oyec o sólo ha podido con a
con una desa ollado a, y de habe enido que ehace la implemen ación desde ce o, se
ha log ado implemen a la pa e más impo an e del backend, quedando an solo algunos
de alles secunda ios, y dejando la implemen ación del más sencillo on end como abajo
u u o.
T as ealiza es udio p e io a la implemen ación de la aplicación, indica que u iliza
Clean A chi ec u e pod ía se una buena o ma de o ganiza la pa e on end. Al igual que
en la pa e del backend, ob end íamos los mismos benecios en cuan o a independencia
en e capas y desacoplamien o.
U ilizando Clean A chi ec u e, la o ganización de las capas se ía la misma que en el
backend, en lo que die e es en el con enido, ya que en el on end es á en ocado a los da os
de usua io y las is as. La capa En e p ise Business es a ía compues a po las en idades,
las cuales coinciden con las de la pa e del backend. En la capa Applica ion Bussiness, al
igual que en la pa e del backend, se implemen a ía la lógica de negocio, compues a po
los casos de uso en lo que espec a a usua ios. Pa a el caso de la capa In e ace Adap e s
se lle a ía a cabo la implemen ación de los con olado es y la se ialización de da os, que
pos e io men e, se en ia á a la capa Applica ion Bussiness. Po úl imo, es a ía la capa
F amewo k & D i e s. En el caso de backend, es a capa albe ga la implemen ación de la
API y de la base de da os, mien as que pa a el caso del on end, ambién se end á la
API y se di e encia á en que en luga de la base de da os, se end á la is a.
En cuan o a la a qui ec u a del on end se ía o ien ada a componen es. Es a a qui ec u a
se basa en descompone el diseño en componen es uncionales o lógicos. Cada componen e
puede se an o, cada una de las piezas que o man la in e az, como la p opia in e az
comple a. Además, con end á an o la lógica como la pa e isual, de es e modo podemos
eu iliza lo den o de o os componen es. Como se ha an icipado b e emen e, las en ajas
de es a a qui ec u a adica en que es al amen e eu ilizable, que se end á una mínima
dependencia en e componen es, no end án con ex o especíco, pudiendo así se u ilizado
en di e en es ambien es y con ex os, pe mi e se ampliado desde o o componen e con el
n de c ea un nue o compo amien o y cada componen e expond á su in e az pa a pode
97
98
Capí ulo 11.
T abajo u u o
se usado po la aplicación, quedando de es a o ma encapsulado.
Pa a lle a a cabo es a labo , las ecnologías a u iliza se ían Reac .js y Redux, con
Ja asc ip como lenguaje. Reac es una lib e ía Ja aSc ip de código abie o c eada po
Facebook pa a desa olla in e aces de usua ios median e componen es. Es os componen es
pueden se an o cada una de las piezas que o man la in e az, como la p opia in e az
comple a. Cada componen e con iene an o la lógica como la pa e isual, de es e modo
podemos eu iliza lo den o de o os componen es. También o ece la posibilidad de c ea
aplicaciones an o en el lado del clien e como en el lado del se ido . Reac o ece g andes
en ajas en el desa ollo de aplicaciones web. Pe mi e den o de un mismo a chi o con
ex ensión .jsx, esc ibi código más legible y compac o. Al es a basado en Ja aSc ip
cuen a con una amplia comunidad con un g an núme o de lib e ías ex e nas. Las aplicaciones
webs desa olladas con Reac es án basadas en componen es eu ilizables, es o acili a
que la aplicación sea más escalable y ácil de man ene ya que los e o es sucede án en
la p opia uncionalidad del componen e o en la comunicación con los demás. Al a a se
de una lib e ía, podemos ag upa la jun o a o as lib e ías como Redux pa a consegui
mayo uncionalidad y acili a el desa ollo. Redux y Reac encajan muy bien ya que
ambos abajan con es ados. Mien as que cada componen e Reac iene su p opio es ado
(da os de cada componen e que se an modicando a lo la go de su ciclo de ida), la
unción de Redux es emi i ac ualizaciones de los es ados en espues a a acciones. Y la
p incipal en aja de Reac es pode gene a el DOM (Modelo de Obje os del Documen-
o, es uc u a de los elemen os que se gene an en el na egado web al ca ga una página)
de o ma dinámica. Es o pe mi e que pa a pode isualiza los cambios de los da os, no
es necesa io ende iza oda la página de nue o, sino solamen e el componen e que haya
sido ac ualizado. G acias a es a ca ac e ís ica mejo a: la expe iencia de usua io al na ega
po la aplicación web, la apidez en la ca ga de las páginas y acili a el man enimien o de
la aplicación.
Redux es una lib e ía Ja aSc ip que ayuda a la ges ión del es ado de la aplicación y
el es ado de cada uno de los componen es. Funciona emi iendo ac ualizaciones de es ado
en espues a a acciones, con la peculia idad de ealiza dichas modicaciones a a és de
obje os sencillos llamados
ac ions
, y no a a és de cambios di ec os en el es ado. Los
p incipios de Redux son:
Exis e un obje o S o e en el cual se almacena el es ado, en o ma o JSON, de oda
la aplicación en un á bol.
El es ado se á solo de lec u a, solo se á posible modica lo emi iendo una acción
(ac ion) con un obje o que desc ibe lo ocu ido.
Los cambios se lle a án a cabo en unciones pu as llamadas educe s, en ellas se
gene a á un nue o es ado sin modica el an e io .
Las en ajas de la u ilización de Redux son amplias. Al desacopla la ges ión del es ado
de los componen es y aslada lo a un único si io, damos obus ez a nues a aplicación,
e i ando que cuando nues a aplicación c ezca sea complejo maneja el es ado y donde
ubica lo. Se acili a la comunicación en e componen es ya que es posible hace lo de o ma
99
sencilla median e el ujo de acciones y sin necesidad de acopla un componen e a o o.
En el desa ollo web esul a cos oso consul a el DOM, po lo que no es ecomendable
espalda nos en el DOM pa a maneja el es ado de nues a apliación, en cambio Redux
ob iene la in o mación y la modica con un cos e muy bajo, es o implica que g acias a
Redux, ob end emos una mejo a del endimien o en lo que a ges ión del es ado se ee e.
Una de las p incipales en ajas a la ho a de implan a Redux en nues a aplicación es que
es independien e del lenguaje o amewo k que es emos usando, es posible u iliza lo con
cualquie lenguaje de p og amación. Resul a se muy ecien e la o ma en la que ges iona
y pone a disposición los da os que son u ilizados en las is as, llegando incluso a dispone
de los da os en iempo eal.
Capí ulo 12
Conclusiones
És e p oyec o a a de la con inuación de un TFG[34] de hace dos años, el cual su gió
de la necesidad de mejo a la ges ión de exámenes de la Uni e sidad Complu ense. En el
TFG de los compañe os, ealiza on una g an especicación y análisis de la aplicación, pe o
lamen ablemen e no llega on a implemen a la mayo pa e y lo que es aba implemen ado
e a es á ico o es aba mal, desde el pun o de is a de su especicación. Es po ello que se
ha con inuado, pa a consegui lle a a la p ác ica esa especicación.
Además de basa se en la especicación de los compañe os, ambién se han ealizado
mejo as y han sido añadidas uncionalidades que no habían conside ado. En es e p oyec o,
se ha log ado c ea un es uc u a backend basada en Clean A chi ec u e[30][29] de Robe
C.Ma in, lo que p opo ciona una es uc u a álida pa a cualquie p oyec o sin necesidad
de se de logís ica de exámenes. El backend se ha di idido en las cua o capas de Clean
A chi ec u e, En e p ise Business Rules, Applica ion Business Rules, In e ace Adpa e s
y F amewo ks & D i e s. Den o del p oyec o, la capa En e p ise Business Rules es
la capa enca gada de aloja las en idades del p oyec o con las unciones más básicas
de la aplicación. Además, con a á con un un esposi o io de in e aces que conec a án
la pa e de la lógica de la aplicación con la base de da os, c eando de es a o ma la
in e sión de dependencias[39] necesa ia pa a cumpli con la egla de dependencias de
Clean A chi ec u e y el pa ón DAO. La capa Applica ion Business Rules po su pa e, es
la enca gada del desa ollo de la lógica de negocio, albe gando aquí los casos de uso que
desa olla la aplicación. La siguien e capa es la de In e ace Adap e s, es a capa se enca ga
de la ans o mación de da os, de es ablece los con olado es necesa ios y del en u ado
de oda la apliación. Po úl imo, F amewo ks & D i e s, es la capa más dependien e y
con más posibilidad de cambios, ya sean po se icios de e ce os o po la implemen ación
de la base de da os, la cual se aloja en es a capa. Suele pasa que el cambio del ipo de
base de da os en una aplicación gene e muchos p oblemas, es po ello que se ha u ilizado
el ORM Sequelize pa a en el caso de necesi a ealiza un cambio en la base de da os, solo
se ía necesa io cambia el ipo en la congu ación de Sequelize. Es impo an e menciona
que la implemen ación de la base de da os es á basada en la in e az del eposi o io de
la capa En e p ise Bussiness Rules, po lo an o, odo mé odo que se encuen e en esa
in e az, debe á es a implemen ada en la capa F amewo ks & D i e s.
Una ez ealizado el p oyec o, y as hace un anális de ello, se puede conside a que
101
102
Capí ulo 12.
Conclusiones
es mucho lo que se ha ap endido. Es muy impo an e basa el p oyec o en una buena
a qui ec u a, como es caso de Clean A chi ec u e, pa a ob ene una g an escalabilidad,
aunque al p incpio sea complicado de en ende o haya que ehace odo po que se haya
o o la egla de dependencias po odas pa es. O o ac o impo an e ha sido el de
ap endizaje de la asínc onía de Ja asc ip , y el se conscien e de que se ejecu a en un hilo
y es necesa io maneja es a asinc onía con el n de no bloquea la aplicación. También se
ha ap endido la impo ancia de los mediado es, como pueden se los con olado es, ORM
o DAO, independizando la base de da os y el en u ado de la lógica de la aplicación. Y
po úl imo, de lo ú il que es ene una ges ión de e o es ya que, es mucho más ápido
encon a los e o es.
Capí ulo 13
Conclusion
This p ojec is abou he con inua ion o a TFG [34] wo yea s ago, which a ose om
he need o imp o e he managemen o exams a he Complu ense Uni e si y. In he TFG
o he colleagues, hey ca ied ou a g ea specica ion and analysis o he applica ion, bu
un o una ely hey did no implemen mos o i and wha was implemen ed was s a ic o
was w ong, om he poin o iew o i s specica ion. Tha is why i has been con inued,
in o de o pu ha specica ion in o p ac ice.
In addi ion o being based on he specica ion o he companions, imp o emen s ha e
also been made and unc ionali ies ha e been added ha hey had no conside ed. In his
p ojec , i has been possible o c ea e a backend s uc u e based on Clean A chi ec u e
[30][29] by Robe C. Ma in, which p o ides a alid s uc u e o any p ojec wi hou
he need o exam logis ics. The backend has been di ided in o he ou laye s o Clean
A chi ec u e, En e p ise Business Rules, Applica ion Business Rules, In e ace Adpa e s,
and F amewo ks & D i e s. Wi hin he p ojec , he En e p ise Business Rules laye is
he laye in cha ge o hos ing he p ojec en i ies wi h he mos basic unc ions o he
applica ion. In addi ion, i will ha e a eposi o y o in e aces ha will connec he pa
o he applica ion logic wi h he da abase, hus c ea ing he dependency in e sion [39]
necessa y o comply wi h he Clean A chi ec u e dependency ule and he DAO pa e n.
The Applica ion Business Rules laye , o i s pa , is in cha ge o de eloping he business
logic, hos ing he e he use cases de eloped by he applica ion. The nex laye is In e ace
Adap e s, his laye is in cha ge o da a ans o ma ion, es ablishing he necessa y d i e s
and ou ing he en i e applica ion. Finally, F amewo ks & D i e s, is he laye ha is mos
dependen and wi h he g ea es possibili y o changes, ei he by hi d-pa y se ices o
by he implemen a ion o he da abase, which is housed in his laye . I usually happens
ha changing he da abase ype in an applica ion gene a es many p oblems, ha is why
he Sequelize ORM has been used o in he case o needing o make a change in he
da abase, i would only be necessa y o change he ype in he Sequelize congu a ion. I
is impo an o men ion ha he implemen a ion o he da abase is based on he in e ace
o he eposi o y o he En e p ise Bussiness Rules laye , he e o e, any me hod ound in
ha in e ace mus be implemen ed in he F amewo ks & D i e s laye .
Once he p ojec is comple ed, and a e doing an analysis o i , i can be conside ed
ha much has been lea ned. I is e y impo an o base he p ojec on a good a chi ec u e,
103
104
Capí ulo 13.
Conclusion
as in he case o Clean A chi ec u e, o ob ain g ea scalabili y, e en i a he beginning
i is dicul o unde s and o you ha e o edo e e y hing because he dependency
ule has been b oken e e ywhe e. Ano he impo an ac o has been lea ning Ja asc ip
asynch ony, and being awa e ha i is unning in a h ead and i is necessa y o handle
his asynch ony in o de no o block he applica ion. The impo ance o media o s,
such as con olle s, ORM o DAO, has also been lea ned, making he da abase and
ou ing independen o he applica ion logic. And nally, how use ul i is o ha e an
e o managemen since i is much as e o nd he e o s.
Bibliog a ía
[1] Compa a i a en e exp ess, hapi y koa.
h ps://medium.com/@ heomalape .
cognez/exp ess- s-koa-and-hapi-a2c65 949b78
, ????.
[2] Denición de o m.
h ps://www2.deloi e.com/es/es/pages/ echnology/
a icles/que-es-o m.h ml
, ????
[3] Exp ess.
h ps://exp essjs.com/es/
, ????.
[4] I i we e o acle, i would be p e y sca ed because he eason o my
exis ence is e apo a ing om unde nea h me.[...] he eason o he da abase o
exis is disappea ing.
h ps://www.you ube.com/wa ch? =3157& =o_TH-Y78 4&
ea u e=you u.be
, ????.
[5] In o mación ace ca de p omesas.
h ps://de elope .mozilla.o g/es/docs/Web/
Ja aSc ip /Guide/Usa _p omesas
, ????
[6] In o mación sob e deno.
h ps://blog.bi s c.io/
wha -is-deno-and-will-i - eplace-nodejs-a13aa1734a74
, ????
[7] In o mación sob e node.
h ps://medium.com/@sebas ianpaduano/
welcome- o-node-js-peque%C3%B1a-in oducci%C3%B3n-163d0299de81#:~:
ex =js%20es%20un%20en o no%20en,el%20mo o %20V8%20de%20Google.
, ????
[8] Ins alación de mysql.
h ps://medium.com/@shi aj.jadha 82/
mysql-se up-on-linux-min -948470115d5
, ????
[9] Mención obe c.ma in.
h ps://www.you ube.com/wa ch? =o_TH-Y78 4&
ea u e=you u.be& =2771
, ????.
[10] Página ocial sequelize.
h ps://www.npmjs.com/package/sequelize
, ????
[11] The e will p obably be some ela ional ables ha su i e, bu now he e is some
heal hy compe i ion.
h ps://www.you ube.com/wa ch? =3216& =o_TH-Y78 4&
ea u e=you u.be
, ????.
[12] Manejo de e o es con exp ess.
h ps://exp essjs.com/es/guide/
e o -handling.h ml
, 2017.
[13] Clean a chi ec u e.
h ps://www2.deloi e.com/es/es/pages/ echnology/
a icles/clean-a chi ec u e.h ml
, 2019.
105