Full text
Aplicación web de sopo e al Ap endizaje-Se icio
Web applica ion o suppo ing Se ice-Lea ning
UNIVERSIDAD COMPLUTENSE DE MADRID
FACULTAD DE INFORMÁTICA
GRADO EN INGENIERÍA DE SOFTWARE
TRABAJO DE FIN DE GRADO
Au o es:
Se gio A oyo Galán (G ado en Ingenie ía de So wa e)
Y ing Da id Conde Cubas (G ado en Ingenie ía de So wa e)
Ad ián Do a Yagüe (G ado en Ingenie ía de So wa e)
Di ec o es:
Manuel Mon eneg o Mon es
Simon Pickin
Cu so académico 2021-2022
Ag adecimien os
Ag adecimien os a Simon Pickin y a Manuel Mon eneg o po odo el apoyo que nos han
b indado du an e el p oyec o. También a nues as amilias y amigos po anima nos y con ia
en noso os más que noso os mismos. Somos quien somos g acias a odos oso os.
1
Índice gene al
Ag adecimien os 1
Lis o Figu es 6
Enlace al código uen e del p oyec o 8
Resumen 10
Palab as cla e 11
Abs ac 13
Keywo ds 14
1. In oducción 15
1.1. P esen ación de la p opues a . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Obje i os ..................................... 16
1.3. Plande abajo.................................. 19
1.4. P esen ación del es o del documen o . . . . . . . . . . . . . . . . . . . . . . 20
2. In oduc ion 22
2.1. Backg ound .................................... 22
2.2. Obje i es ..................................... 23
2.3. Wo kplan ..................................... 25
2.4. P esen a ion o he es o he documen . . . . . . . . . . . . . . . . . . . . 26
3. Es ado del a e / P eceden es 28
2
3.1. An eceden es ................................... 28
3.2. Mo i ación..................................... 28
3.3. Pun odepa ida ................................. 30
4. Elección de ecnologías 32
4.1. Node.js....................................... 32
4.2. Exp ess.js ..................................... 33
4.3. Angula ...................................... 33
4.4. Gi ......................................... 34
4.5. Gi Hub ...................................... 34
4.6. L
A
TEX....................................... 34
4.7. Docke ....................................... 35
4.8. Docke Compose ................................. 35
4.9. Po aine ..................................... 36
4.10.Sona Qube..................................... 36
4.11.phpMyAdmin................................... 37
4.12.Modelio ...................................... 37
4.13.Jenkins....................................... 37
4.14. Heimdall Applica ion Dashboa d . . . . . . . . . . . . . . . . . . . . . . . . 38
4.15.O e lea ...................................... 38
4.16.T ello ....................................... 38
4.17.Compodoc..................................... 38
5. Especi icación de equisi os 40
5.1. Análisis ...................................... 40
5.1.1. Diag ama c eación p oyec o . . . . . . . . . . . . . . . . . . . . . . . 40
5.1.2. Ciclo de ida de un p oyec o . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.3. ModelodeDominio............................ 45
3
5.2. Diseño....................................... 48
5.2.1. ModelodeDa os ............................. 48
6. Implemen ación 51
6.1. Página de lis ado de o e as . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.2. Página de in o mación de allada de una o e a . . . . . . . . . . . . . . . . . 52
6.3. Página de lis ado de demandas . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.4. Página de in o mación de allada de una demanda . . . . . . . . . . . . . . . 53
6.5. Página de c eación de pa ena iado . . . . . . . . . . . . . . . . . . . . . . . 53
6.6. Página pe sonal de cada usua io . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.7. C eación de la in aes uc u a . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.7.1. Po aine ................................. 67
6.7.2. Ma iaDB ................................. 68
6.7.3. PHPmyadmin............................... 68
6.7.4. Jenkins .................................. 68
6.7.5. Sona qube................................. 68
7. Conclusiones y abajo u u o 69
7.1. Obje i oscumplidos ............................... 69
7.2. P oblemasencon ados.............................. 71
7.3. T abajo u u o .................................. 71
8. Conclusions and u u e wo k 74
8.1. Objec i escomple ed............................... 74
8.2. P oblems ound.................................. 75
8.3. Fu u ewo k.................................... 76
9. Con ibuciones 78
9.1. Se gioA oyoGalán ............................... 78
4
9.2. Y ing Da id Conde Cubas . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.3. Ad ianDo aYagüe ............................... 81
10. Ins alación 84
10.1.Local(Desa ollo)................................. 84
10.2.Cloud(P oducción)................................ 87
Bibliog a ía 89
5
Índice de igu as
4.1. Gi hub: In o mación del p oyec o . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2. Po aine : In o mación del po aine del p oyec o . . . . . . . . . . . . . . . 36
5.1. Modelio: Diag ama de posibles casos en la c eación de un p oyec o . . . . . . 42
5.2. Modelio: Diag ama subp oceso c eación de un pa ena iado . . . . . . . . . . 43
5.3. Modelio: Diag ama subp oceso de ap obación de la c eación de un pa ena iado 43
5.4. Modelio: Ciclo de ida de un p oyec o ApS . . . . . . . . . . . . . . . . . . . 44
5.5. Modelio: Diag ama alo ación de en ada de usua ios en el p oyec o. . . . . . 45
5.6. Modelio: Modelo de Dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.7. Modelio: Modelo de Dominio del TFG an e io . . . . . . . . . . . . . . . . . 47
5.8. Modelio: Modelo de Da os . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.9. Modelio: Modelo de Da os del TFG an e io . . . . . . . . . . . . . . . . . . 50
6.1. Páginalis adodeo e as............................. 55
6.2. Página lis ado de o e as (con inuación) . . . . . . . . . . . . . . . . . . . . . 56
6.3. Página in o mación de allada de o e a . . . . . . . . . . . . . . . . . . . . . 57
6.4. Página lis ado de demandas . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.5. Página c eación de pa ena iado pa e 1 . . . . . . . . . . . . . . . . . . . . 59
6.6. Página c eación de pa ena iado pa e 2 . . . . . . . . . . . . . . . . . . . . 60
6.7. Página c eación de pa ena iado pa e 3 . . . . . . . . . . . . . . . . . . . . 61
6.8. Página c eación de pa ena iado pa e 4 . . . . . . . . . . . . . . . . . . . . 62
6.9. Página pe sonal de usua io pa e 1 . . . . . . . . . . . . . . . . . . . . . . . 63
6.10. Página pe sonal de usua io pa e 2 . . . . . . . . . . . . . . . . . . . . . . . 64
6.11. Página pe sonal de usua io pa e 3 . . . . . . . . . . . . . . . . . . . . . . . 65
6
6.12. Página pe sonal de usua io pa e 4 . . . . . . . . . . . . . . . . . . . . . . . 66
7
Enlace al código uen e del p oyec o
h ps://gi hub.com/ucm- g/ g-aps
h ps://gi hub.com/ucm- g/ g-aps-con igu a ion
8
Capí ulo 1
In oducción
El sec e o de i a anzando es empeza
Ma k Twain
1.1. P esen ación de la p opues a
Pa a Ba ba a Jacoby [3], el Ap endizaje-Se icio (ApS) es una o ma de educación ba-
sada en la expe iencia, en la que los es udian es con ibuyen en di e sas ac i idades que
abo dan dis in os aspec os como pueden se los de echos humanos o las necesidades de
una comunidad, jun o con opo unidades pa a la e lexión pa a así log a los esul ados del
ap endizaje deseados. Jacoby [3] añade que algunas de iniciones de Ap endizaje-Se icio es-
ablecen cla amen e la necesidad de que el ApS sea pa e del cu ículo académico. Además
el ApS no es una ac i idad de olun a iado, ya que, en las ac i idades de olun a iado el
én asis es á en el se icio p es ado a la comunidad, y en consecuencia, el aspec o de ap en-
dizaje iene poco peso. Aps ampoco es lo mismo que p ác icas ex e nas, ya que, en es as
el én asis es á en el ap endizaje, y en consecuencia, el se icio p es ado iene poco peso.
Los p o eso es con expe iencia en inicia i as de ipo ApS han llegado a la conclusión de
que un buena he amien a in o má ica pod ía se de g an u ilidad a la ho a de empa eja
las o e as y las demandas ApS. G acias a es e sopo e se acili a ían la iden i icación de
po enciales pa ena iados, así como la colabo ación en e el p es ado y el ecep o de un
15
de e minado se icio.
El obje i o p incipal de es e p oyec o es desa olla una aplicación web de sopo e al
ApS, ex endiendo y comple ando un p o o ipo desa ollado en Node.js en el con ex o de un
TFG [4] ealizado du an e el cu so 2020-21.
1.2. Obje i os
La aplicación implemen ada en el con ex o de es e TFG es á compues a po dos subsis-
emas cla amen e di e enciados:
Subsis ema de o e as-demandas: Es e subsis ema iene como inalidad ges iona las
o e as de se icio c eadas po los p o eso es y las demandas de se icio c eadas po
los socios comuni a ios. Ambas se in en an empa eja , ya sea de o ma manual o au o-
má icamen e a a és del sis ema de ma ching pa a c ea pa ena iados en e el socio
comuni a io y los p o eso es, con el in úl imo de c ea y lanza p oyec os ApS. Es e
p ime subsis ema ya exis ía a la ho a de comenza el p esen e p oyec o, pe o enía
bas an es pa es po añadi y e mina .
Subsis ema de p oyec os ac i os: Es e subsis ema pe mi e da sopo e a p oyec os ApS
en ma cha, conc e amen e, sopo e pa a la e aluación de los alumnos. Es e subsis ema,
se c eó en elación a es e p oyec o. En la aplicación no exis e es a uncionalidad, ni
siquie a la especi icación de equisi os.
Pa iendo del p oyec o an e io , y eniendo en cuen a los subsis emas de los que es á com-
pues a la aplicación, los obje i os es ablecidos ue on la c eación y modi icación de di e sas
is as, la capacidad de il ado po a ios campos, la c eación de pa ena iados a pa i de
una o e a y demanda, y la especi icación del ciclo de ida de un p oyec o ApS y e aluación
de los es udian es. A con inuación se puede obse a un lis ado de los obje i os de es e TFG:
Eliminación de odas las e e encias a las inicia i as, debido a que ya no se u ilizan en
el p esen e TFG. En una e sión p e ia de la aplicación ealizado en la UNED [5], an o
16
un p o eso como un socio comuni a io podían c ea inicia i as. Es o ue debido a una
mala “comp ensión” de la al a de sime ía en e los concep os de o e a de se icio
(c eadas po p o eso es) y demandas de se icio (c eadas po socios comuni a ios).
Es a pa e debió se eliminada en la aplicación lle ada a cabo en el pasado TFG [4],
pe o no ue el caso.
Limpieza del código uen e e e ido a MongoDB, sis ema de base de da os no u ilizado
en es e p oyec o. En el TFG desa ollado en la UNED [5], se decidió implemen a la
base de da os usando MongoDB. En la aplicación desa ollada el cu so pasado [4] se
cambió la base de da os po una MySQL, y se p og amó los DAO co espondien es,
pe o oda ía quedaba código elacionado con MongoDB, aho a ya eliminado en su
o alidad.
Implemen ación de las is as pa a el lis ado de o e as y demandas. Se implemen a on
es as is as debido a la necesidad de isualiza en la aplicación las o e as y demandas
disponibles.
Implemen ación de il os pa a las is as mencionadas an e io men e. Se implemen a-
on, en el lis ado de o e as, los il os necesa ios po í ulo, po p o eso , según los ags
c eados, po á ea de implemen ación, po año académico y cua imes e obje i o. En
elación al lis ado de demandas, se c ea on il os según el í ulo, la necesidad social a
cumpli , el á ea de implemen ación y la en idad demandan e.
C eación de las is as de in o mación de allada, an o pa a o e a como pa a demanda.
Es as is as mues an la in o mación de cada o e a y demanda de o ma indi idual,
además de da la posibilidad de acep a la o e a (si el usua io es un socio comuni a io)
o espalda la demanda (si el usua io es un p o eso in e no).
Implemen ación del o mula io pa a la c eación de pa ena iados a a és de una o e a
y una demanda. Pa a c ea un pa ena iado hay es posibilidades:
17
•La acep ación po pa e de un socio comuni a io de la o e a ealizada po un
p o eso in e no.
•El espaldo po pa e de un p o eso de una demanda de se icio c eada po un
socio comuni a io.
•El empa ejamien o au omá ico de una o e a de se icio c eada po un p o eso
y una demanda de se icio c eada po un socio comuni a io, haciendo uso del
algo i mo de ma ching desa ollado en el TFG [4] del año pasado.
Implemen ación de la página pe sonal de cada usua io. Es un pe il pa a mos a la
in o mación de cada usua io.
Implemen ación de in aes uc u a.
Implemen ación de no i icaciones den o de la aplicación. Las no i icaciones se u ili-
za ían pa a a isa a los p o eso es cuando un socio comuni a io ha acep ado su o e a
de se icio o cuando un p o eso decide espalda una demanda pa a a isa al socio
comuni a io co espondien e. Todo es o, con la inalidad de c ea un pa ena iado en-
e ambos.
Co ección de bugs encon ados en el an e io TFG.
Ampliación del modelo de dominio y modelo de da os. Ampliación del modelo de do-
minio y de da os del subsis ema o e as-demandas de inidos en el an e io TFG [4]
pa a así inclui el modelado del subsis ema p oyec os-ac i os.
De inición de ciclo de ida de un p oyec o. De inición del p oceso de ciclo de ida de un
p oyec o, desde la c eación de una o e a o demanda, con el in de especi ica cómo se á
la na egación en e las dis in as is as de la aplicación. Se pod ía habe especi icado la
pa e del p oceso sopo ado po el subsis ema o e as-demandas en la ase de análisis
del desa ollo del pasado TFG [4], pe o no ue el caso. Se había cons a ado, du an e
18
el TFG [4] an e io , que en ausencia de una especi icación del p oceso solían su gi
cie as con usiones al espec o en e los desa ollado es.
De inición de la e aluación del p oyec o. La cali icación del p oyec o se e alúa en
unción del se icio que ha sido capaz de p opo ciona a los bene icia ios.
1.3. Plan de abajo
Una ez es ablecidos los obje i os p incipales de es e TFG, se decidió di idi lo en las
ases que se obse an a con inuación:
La p ime a ase consis ió en el es udio de la memo ia del TFG an e io , además de
in es iga ace ca del Ap endizaje-Se icio pa a ene una p ime a ap oximación al
con ex o en el que se desa ollaba el p oyec o.
En la segunda ase, nos aden amos en el código del an e io TFG pa a amilia iza nos
con él. Además, ealizamos p uebas manuales en las que encon amos algunos bugs que
se co igie on más adelan e. En la pa e de Diseño, ealizamos la ampliación del Modelo
de Dominio y el Modelo de Da os pa a p o undiza más ace ca de cómo plan ea un
p oyec o ApS.
La e ce a ase consis ió en el ap endizaje de Angula , ecnología desconocida pa a o-
dos noso os pe o indispensable en la implemen ación de es e p oyec o y en la c eación
y modi icación de a ios o mula ios. En la pa e de Análisis decidimos p o undiza
más en los p ocesos de un p oyec o median e diag amas BPMN pa a ep esen a la
c eación de un p oyec o y el ciclo de ida del mismo.
En la cua a ase nos cen amos en la pa e de in aes uc u a del p oyec o, de es a
mane a podemos hace mas obus o y escalable la aplicación en medio y la go plazo.
Pa a inaliza nos cen amos en el desa ollo de los casos de usos pendien es, asi como
limpia y soluciona bugs encon ados a medida que se a anzaba en el p oyec o.
19
1.4. P esen ación del es o del documen o
A con inuación apa ece la secuencia de capí ulos, así como una b e e desc ipción de su
con enido:
Capí ulo 1: In oducción. En es e capí ulo se ha hecho una b e e p esen ación de
la p opues a, además de p esen a los obje i os p opues os y el plan de abajo lle ado
a cabo.
Capí ulo 2: In oduc ion. T aducción del capí ulo an e io al idioma inglés.
Capí ulo 3: Es ado del a e. En es a sección se p esen an los an eceden es al p e-
sen e p oyec o.
Capí ulo 4: Elección de ecnologías. En es e capí ulo se comen an las ecnologías
u ilizadas du an e el desa ollo del p oyec o y las azones que lle a on a su uso.
Capí ulo 5: Especi icación de equisi os. En es e capí ulo se comen an los modelos
de dominio y de da os y los diag amas BPMN ace ca del ciclo de ida de un p oyec o.
Capí ulo 6: Implemen ación. En es e capí ulo se ela a el p oceso seguido en la
c eación de los o mula ios y de la in aes uc u a.
Capí ulo 7: Conclusiones y abajo u u o. En es a sección se a an los obje i os
comple ados, los p oblemas encon ados y el posible abajo a desa olla en u u os
p oyec os.
Capí ulo 8: Conclusions and u u e wo k. T aducción del capí ulo an e io al
idioma inglés.
Capí ulo 9: Con ibuciones. En es a capí ulo se ela an las con ibuciones al p o-
yec o de cada miemb o del equipo.
20
Capí ulo 10: Ins alación. En es e capí ulo se de allan los pasos a segui pa a ins ala
el p oyec o.
21
Capí ulo 2
In oduc ion
Lo que nunca empieza, nunca e mina.
Pa icio Oso io
2.1. Backg ound
Fo Ba ba a Jacoby [3], Se ice-Lea ning (SL) is a o m o educa ion based on expe ience,
in which s uden s con ibu e wi h a ious ac i i ies ha add ess di e en aspec s such as
human igh s o he needs o a communi y, along wi h oppo uni ies o e lec ion in o de
o achie e he desi ed lea ning ou comes. Jacoby adds ha some SL de ini ions clea ly s a e
he need o SL o be pa o he academic cu iculum. Fu he mo e, SL is no a olun ee
ac i i y; he emphasis is on he se ice, ha is, he needs o a communi y.
Teache s wi h expe ience in SL inicia i es ha e come o he conclusion ha good IT
suppo could be e y use ul in ma ching SL o e s and demands. Thanks o his suppo ,
he iden i ica ion o po encial pa ne ships would be acili a ed, as well as he collabo a ion
be ween he p o ide and he ecei e o a gi en se ice.
The main objec i e o his FDP is o de elop a web applica ion o suppo Se ice-
Lea ning, ex ending and comple ing a p o o ype de eloped in Node.js in he con ex o a
FDP ca ied ou du ing he 2020-2021 academic yea .
22
2.2. Obje i es
The applica ion implemen ed in he con ex o his FDP is made up o wo di e encia ed
subsys ems:
Subsys em o o e s-demands: This subsys em is in ended o manage he se ice o e s
c ea ed by he eache s and he se ice demands c ea ed by he communi y pa ne s.
Bo h y o ma ch each o he , ei he manually o au oma ically h ough he ma ching
sys em o c ea e pa ne ships be ween he communi y pa ne and he eache s, wi h
he ul ima e goal o c ea ing and launching SL p ojec s. This i s subsys em al eady
exis ed a he ime o s a ing his p ojec , bu i had many pa s o add and inish.
Ac i e p ojec s subsys em: This subsys em allows suppo o ongoing SL p ojec s,
speci ically, suppo o s uden s assessmen . This subsys em was c ea ed in ela ion
wi h his p ojec . This unc ionali y does no exis in he applica ion, no e en he
equi emen s speci ica ion.
S a ing om he las FDP, and conside ing he subsys ems o which he applica ion is
made up, he es ablished objec i es we e he c ea ion and modi ica ion o a ious iews, he
abili y o il e by a ious ields, he c ea ion o pa ne ships based on o e and demand,
he speci ica ion o he li e cycle o a SL p ojec . Below you can see a lis o he objec i es
o his FDP:
Remo al o all e e ences o ini ia i es, as hey a e no longe used in he p esen FDP.
In a p e ious e sion o he applica ion made a he UNED [5], bo h eache and
communi y pa ne could c ea e inicia i es. This was due o a poo “unde s anding“
o he lack o simme y be ween he concep s o se ice o e (c ea ed by eache s)
and se ice demands (c ea ed by communi y pa ne s). This pa should ha e been
elimina ed in he applica ion ca ied ou in he las FDP [4], bu i was no he case.
Cleanup o sou ce code e e ing o MongoDB, da abase sys em no used in his FDP.
23
In he FDP de eloped a UNED [5], i was decided o implemen he da abase using
MongoDB. In he applica ion de elop las yea [4], he da abase was changed o
MySQL, in addi ion o i s co esponding DAO, bu he e was s ill code ela ed o
MongoDB, now al eady emo ed in i whole.
Implemen a ion o he iews o he lis o o e s and demands. These iews we e
implemen ed due o he need o isualize he a ailable o e s and demands.
Implemen a ion o il e s o he p e ious iews. In he o e s lis iew, he neccesa y
il e s whe e implemen ed by i le, by p o esso , acco ding o he ags c ea ed, by
a ea o implemen a ion, by academic yea and objec i e semes e . In ela ion wi h he
demands lis , il e s we e c ea ed acco ding o i le, he social need o comply, he a ea
o implemen a ion and he eques ing en i y.
C ea ion o de ailed in o ma ion iews, bo h o supply and demand. These iews show
he in o ma ion o each o e and demand indi idually, in addi ion o gi e he possi-
bili y o accep he o e (i he use is a communi y pa ne ) o suppo he eques
(i he use is a p o esso ).
Implemen a ion o a o m o he c ea ion o pa ne ships h ough an o e and a
demand. To c ea e a pa ne ship he e a e h ee possibili ies:
•The accep ance by a communi y pa ne o he o e made by a p o esso .
•Endo semen by a p o esso o a se ice demand c ea ed by a communi y pa ne .
•Au oma ic ma ching o a se ice o e c ea ed by a p o esso and a se ice demand
c ea ed by a communi y pa ne , making use o he ma ching algo i hm de elop
in he las yea FDP [4].
Implemen a ion o he pe sonal page o each use . Is a p o ile o show he in o ma ion
o each use .
24
demandas. Se cambió la base de da os de MongoDB a MySQL y se c ea on algunos de los
DAO necesa ios pa a la comunicación con la base de da os ya que en el TFG desa ollado
an es que el suyo [5] se hacía desde el con olado . También se de inió los o mula ios de
c eación de o e a y de c eación de demanda. Po úl imo, se de inió y se implemen ó una
p ime a e sión de un algo i mo de ma ch en e o e as y demandas, dejando los esul ados
en una abla nue a en la base de da os. Noso os nos hemos cen ado en las uncionalidades
que es aban pendien es como son la c eación, modi icación, bo ado, il ado y lis ado de
las o e as, demandas y pa ena iados, an o en la pa e on end como backend. Además,
el p oyec o enía dependencias en algunas uncionalidades con una base de da os ipo Mon-
goDB y con un se icio S3 de AWS pa a gua da las imagenes de los usua ios.
31
Capí ulo 4
Elección de ecnologías
Se ha uel o e iblemen e ob io que nues a
ecnología ha supe ado nues a humanidad.
Albe Eins ein
En es e capí ulo, se a a án las ecnologías usadas en el p oyec o explicando b e emen e
qué son y las azones que nos han lle ado a u iliza las.
4.1. Node.js
Node.js es un en o no asínc ono di igido po e en os. Es á basado en el uso de p omesas,
es deci , unciones que de ol e án un esul ado en el u u o. Es as se pueden encadena
unas con o as, ecibiendo cada una el esul ado de la p omesa an e io . Es a es una o ma
de consegui concu encia de una o ma dis in a a la habi ual basada en mecanismos de
sinc onización, como po ejemplo, candados, moni o es, o paso de mensajes.
Node.js posee un modelo de concu encia asínc ono y no maneja hilos de ejecución de
o ma explíci a. Po odo es o, Node.js es una elección adecuada pa a la c eación de aplica-
ciones escalables.
Ya que en los p oyec os p e ios se ha u ilizado es a ecnología, con inuamos con el
desa ollo sob e ella. Una al e na i a que se pod ía habe empleado pa a es e p oyec o
debido a la baja complejidad de la pa e backend es un he amien a low code (p opo ciona
32
un en o no de desa ollo pa a c ea so wa e a a és de una in e az g á ica de usua io)
como Apicu io [1], que hubie a educido el iempo de desa ollo de es a pa e y la capacidad
de amplia el iempo dedicado a la pa e on end.
4.2. Exp ess.js
Exp ess.js es un amewo k basado en Node.js que pe mi e ges iona el se ido de una
o ma sencilla. Es a ecnología se usó en el an e io abajo y se decidió man ene la debido
a que odo el equipo había u ilizado es e amewo k an e io men e.
Exis en di e en es amewo ks que pe mi en ealiza un abajo equi alen e, como pueden
se KOAjs (usa especi icación ES6), SailsJS (cen ado mas en la c eación de APIs median e
el uso del pa ón MVC) o as i y ( amewo k muy li iano), aunque cada uno de ellos iene
en ajas a la go plazo, ha de ene se en cuen a la cu a de ap endizaje que conlle a el hecho
de u iliza es os amewo ks desconocidos pa a noso os.
4.3. Angula
Angula es un amewo k pa a c ea aplicaciones de una sola página, ambién conocidas
como SPA oSingle-Page Applica ion, sigue un pa ón modelo- is a-con olado aunque no
como el pa ón clásico, ya que, u iliza el wo-way da a blinding pa a sinc oniza los da os con
la is a. Una aplicación Angula es á o mada po componen es yse icios. Un componen e
es á o mado po cua o a chi os: un .h ml que con iene la is a a mos a al usua io, un
. s que con iene la lógica del componen e y las p opiedades a mos a en la is a, un .scss
que con iene los es ilos del componen e y, po úl imo, un .spec. s que con iene los es s del
componen e. Los componen es usan se icios, que son clases que se enca gan de accede a
los da os y en egá selos a los componen es.
Se usó es a ecnología po que enía impues a en el p oyec o, a pesa de que ninguno
de los au o es del abajo eníamos expe iencia con ella. Aunque Angula es un amewo k
bas an e común en a eas emp esa iales, debido a la es uc u a de los p oyec os, así como
33
la can idad de sopo e que exis e sob e es a ecnología, hay o as al e na i as como pueden
se Reac JS o VueJS, las cuales en los úl imos años ienen siendo las más popula es debido
a que en el caso de Reac JS, al se una ecnología hecha po Facebook es á en cons an e
c ecimien o, mien as que VueJS iene una cu a de ap endizaje bas an e in e io a los o os
amewo ks indicados an e io men e.
4.4. Gi
Gi es un so wa e de con ol de e siones diseñado po Linus To alds. Su p opósi o es
lle a un egis o de los cambios ealizados en a chi os, además de coo dina el abajo que
a ias pe sonas ealizan sob e los a chi os compa idos en un eposi o io de código.
Se decidió u iliza es a ecnología po que es ampliamen e usada a ni el mundial y po que
la mayo ía de los miemb os del equipo enían expe iencia usándola.
4.5. Gi Hub
Gi Hub es un se icio en la nube, usado pa a aloja p oyec os. U iliza el sis ema de
con ol de e siones Gi .
Se decidió usa Gi Hub debido a que es la pla a o ma de colabo ación más impo an e y
a que odos noso os ya habíamos abajado con ella.
4.6. L
A
TEX
L
A
TEXes un sis ema de composición de documen os que es á o mado mayo i a iamen e
po ó denes cons uidas a pa i de comandos de TeX —un lenguaje «de bajo ni el».
L
A
TEXes ampliamen e usado en la gene ación de a ículos y lib os cien í icos. Es po es a
azón po la que se decidió usa L
A
TEXpa a la ealización de es a memo ia.
34
Figu a 4.1:Gi hub: In o mación del p oyec o
4.7. Docke
Docke es un p oyec o de código abie o que pe mi e “empaque a “ una aplicación y odas
sus dependencias en con enedo es lige os. En e sus p incipales en ajas se encuen an el
hecho de que pe mi e un despliegue ápido y que ga an iza el aislamien o y la po abilidad
de las aplicaciones.
Se apos ó po es a ecnología debido a que es á ganando ue za en el ámbi o de las
ecnologías de la in o mación y a que a ios miemb os del equipo ya habían abajado con
ella.
4.8. Docke Compose
Compose es una he amien a que pe mi e de ini y ejecu a aplicaciones Docke de a ios
con enedo es. Se u iliza un a chi o YAML pa a con igu a los se icios de la aplicación.
35
Figu a 4.2:Po aine : In o mación del po aine del p oyec o
Luego, con un solo comando, se c ean e inician odos los se icios.
Se apos ó po es a ecnología debido a que a ios miemb os del equipo ya habían aba-
jado con ella.
4.9. Po aine
Po aine es una he amien a web de código abie o desde la cual se pueden ges iona
con enedo es Docke . Es a he amien a pe mi e adminis a con enedo es de o ma emo a
o local.
Se decidió usa es a ecnología po que algunos miemb os del equipo, en conc e o Jo-
na han y Da id, enían expe iencia en su uso.
4.10. Sona Qube
Sona Qube es una pla a o ma que pe mi e e alua la calidad del código uen e. Es so wa-
e lib e y usa di e sas he amien as de análisis es á ico de código como Checks yle,FindBugs
oPMD pa a ob ene mé icas que pueden ayuda a mejo a la calidad del código. In o ma
sob e e o es po enciales, código duplicado, e c. Se in eg a con Ma en,An y he amien as
de in eg ación con inua como Jenkins.
36
4.11. phpMyAdmin
phpMyAdmin una he amien a esc i a en PHP que si e pa a maneja la adminis ación
de, an o MySQL como Ma iaDB a a és de páginas web.
Se usó es a ecnología po que odos los miemb os del equipo ya la habían u ilizado
an e io men e, además de po su acilidad de uso.
4.12. Modelio
Es una he amien a de modelado UML y BPMN de código abie o. Se usó es a he a-
mien a debido a que pe mi e ealiza modelos y p ocesa los, pe mi iendo así gene a código.
O as en ajas de es a he amien a son la ela i a sencillez de su uso y que al se código
abie o es g a is. En cambio, la mayo ía de aplicaciones de modelado ienen una licencia de
pago.
4.13. Jenkins
Jenkins es un se ido de au oma ización de código abie o esc i o en Ja a. Jenkins ayuda
en la au oma ización de pa e del p oceso de desa ollo de so wa e median e in eg ación
con inua.
La in eg ación con inua consis e en hace in eg aciones au omá icas de un p oyec o lo
más a menudo posible pa a, de es a o ma, pode de ec a allos lo an es posible. Se en iende
po in eg ación la compilación y la ejecución de p uebas de un p oyec o.
Cada despliegue de la aplicación e i ica que el código uen e compila sa is ac o iamen e
y ob iene un a chi o Docke el cuál, si odo es co ec o, se desplega á en el se ido co es-
pondien e.
La p incipal azón que lle ó al uso de Jenkins es que es una ecnología que es á eniendo
un g an impac o en los equipos de desa ollo a ni el mundial. O a azón ue que a ios
miemb os del equipo ya habían abajado con ella con an e io idad.
37
4.14. Heimdall Applica ion Dashboa d
Heimdall Applica ion Dashboa d es, como indica su p opio nomb e, un panel pa a mos a
aplicaciones web. Pe mi e añadi links asociados con un icono de una mane a g á ica. Una
ez con igu ado, c ea un panel con un bo ón pa a cada link añadido en una sola pan alla.
Es una g an solución pa a o ganiza enlaces a aplicaciones web. En nues o caso lo hemos
u ilizado pa a cen aliza el acceso a las di e en es u ls elacionadas con nues a aplicación.
4.15. O e lea
O e lea es una he amien a de publicación y edacción colabo a i a en linea basada
en L
A
TEX. B inda la con eniencia de un edi o L
A
TEX ácil de usa con colabo ación en
iempo eal y la salida o almen e compilada p oducida au omá icamen e en segundo plano
a medida que se esc ibe.
Se u ilizó es a he amien a debido a su acilidad de uso y ap endizaje y a que no es
necesa io ningún ipo de ins alación.
4.16. T ello
T ello es una aplicación pa a adminis a p oyec os median e una in e az web. Emplea
el sis ema japonés Kanban, que inco po a a je as i uales y ablones pa a el egis o y
coo dinación de las ac i idades.
Se decidió u iliza T ello debido a que ya lo habíamos usado en an e io es asigna u as
del G ado, además de po su acilidad de uso.
4.17. Compodoc
Compodoc es una he amien a pa a la gene ación de documen ación en p oyec os Angu-
la . No es necesa io ningún se ido ni subi código a ninguna web, ya que, la documen ación
38
se gene a o almen e o line. Una posible al e na i a a Compodoc es Dgeni, aunque es a úl-
ima es más compleja de u iliza .
Se ha u ilizado Compodoc pa a gene a la documen ación de es e p oyec o debido a su
ácil ins alación a a és de npm.
39
Capí ulo 5
Especi icación de equisi os
En so wa e, muy a amen e pa imos de equisi os con sen ido.
Incluso eniéndolos, la única medida del éxi o que impo a es si nues a solución esuel e
la cambian e idea que el clien e iene de lo que es su p oblema
Je A wood
Un p oyec o ApS puede ealiza se en una amplia a iedad de campos. Teniendo en cuen a
es o necesi amos desa olla un modelo de aplicación que sea u ilizable pa a cualquie p o-
yec o ApS, indis in amen e del campo sob e el que se es é ealizando.
5.1. Análisis
En es a sección se desc ibi án los diag amas de c eación y ciclo de ida de un p oyec-
o ApS. También se ha ealizado un modelo de Dominio pa a ep esen a el subsis ema
p oyec os-ac i os.
5.1.1. Diag ama c eación p oyec o
Se ha ealizado un diag ama BPMN pa a ep esen a los posibles casos que pueden
ocu i pa a que un p oyec o se c ee. En es e diag ama se pueden dis ingui dos ipos de
usua ios:
40
Figu a 5.7:Modelio: Modelo de Dominio del TFG an e io
47
5.2. Diseño
En es a sección se de alla el modelo de Da os ealizado pa a el subsis ema p oyec os-
ac i os pa iendo del modelo de Dominio ealizado en el apa ado an e io .
5.2.1. Modelo de Da os
Al igual que el modelo de Dominio, hemos pa ido del modelo de Da os del subsi ema
o e as-demandas ealizado en el TFG del año an e io [4], ( igu a 5.9) pa a ealiza es e
modelo de Da os del subsis ema p oyec os-ac i os. En es e modelo exis en clases en común
con el subsis ema o e as-demandas. También se añaden nue as clases y asociaciones. (Figu a
5.8). Nue as en idades:
Obje i o: Den o de un obje i o se con emplan los a ibu os de Tí ulo, Desc ipción y
echacumplimien o.
•Tí ulo: Nomb e que se le a a da al obje i o.
•Desc ipción: Da os más de allados ace ca del p opio obje i o
• echacumplimien o: Fecha en la que el obje i o se da po inalizado.
E en o: Un e en o puede ene Nomb e, una desc ipción pa a da mas da os ace ca
del e en o y las echas de inicio y inal del mismo.
•Nomb e: Tí ulo del e en o.
•Desc ipción: Da os más de allados ace ca del e en o.
• echainicio: Fecha de comienzo del e en o.
• echa in: Fecha de inalización del e en o.
E aluación: Den o de la en idad e aluación se ha conside ado el pa áme o cali ica-
ción.
•Cali icación: No a asociada al alumno del p oyec o.
48
Figu a 5.8:Modelio: Modelo de Da os
49
Figu a 5.9:Modelio: Modelo de Da os del TFG an e io
50
Capí ulo 6
Implemen ación
Ley de Alzheime de la p og amación: si lees un código que esc ibis e
hace más de dos semanas es como si lo ie as po p ime a ez
Dan Hu i z
T as lle a a cabo la limpieza del código uen e ela i o al an e io TFG, se pasó a im-
plemen a las is as eque idas en el p esen e p oyec o y que al aban en el an e io TFG
[4], elacionadas con las o e as, las demandas y los pa ena iados. Pa a ello, u imos que
ap ende Angula , amewo k de Ja aSc ip , que equie e un as o conocimien o pa a el de-
sa ollo de las is as, ya que, es as se componen de dos pa es: los obje os que se encuen an
en el componen e pa a almacena y ges iona los da os de la is a y la isualización que se
encuen a en la plan illa.
La implemen ación lle ada a cabo en el p esen e p oyec o mejo a y comple a el sub-
sis ema de o e as-demandas. Con espec o al subsis ema de p oyec os-ac i os no se pudo
implemen a nada.
6.1. Página de lis ado de o e as
La p ime a página que implemen amos ue la del lis ado de o e as, ya que necesi ábamos
una o ma de pode isualiza las o e as c eadas po los p o eso es y almacena las en la
aplicación. Al p incipio se implemen ó una abla pa a mos a odos los da os ela i os a las
51
o e as, pe o se e minó cambiando, debido a que el o ma o de la misma no nos e minó de
con ence . Se decidió sus i ui la po un diseño usando las ca ds de Boo s ap. Es as a je as
es án o madas po una cabece a donde apa ece el í ulo de la o e a co espondien e, en el
cue po se encuen a pa e de la desc ipción y en el pie se encuen a un bo ón pa a mos a
la in o mación de allada de esa o e a. Además, es a página posee a su izquie da una zona
de il ado, median e la cual un usua io pod á il a las o e as según su í ulo, el p o eso
esponsable de la misma, los ags gene ados en la o e a, el á ea de implemen ación a la que
pe enece y, po úl imo, el cua imes e y año académico obje i o.
Unas imágenes de es a is a se pueden e en las igu as 6.1 y6.2. A con inuación, se
expond á lo elacionado con la is a de la in o mación de allada de una o e a.
6.2. Página de in o mación de allada de una o e a
Es a página se c eó pa a pode mos a oda la in o mación elacionada con una o e a.
Como se ha comen ado an e io men e, al p incipio, an o en la is a del lis ado de o e as
como en la de demandas, había una abla que se decidió sus i ui po las ca ds de Boo s ap.
En cada ca d se añadió un bo ón que edi ige a la página que a amos en es e apa ado.
En es a is a, mos amos el í ulo y la desc ipción comple a de la o e a, el cua imes e
obje i o y año académico. También apa ecen dos echas más: la de c eación de esa o e a
conc e a y su echa lími e, además de los da os del p o eso c eado de la o e a y un campo
pa a posibles obse aciones a ene en cuen a. Una imagen de es a página puede e se en la
igu a 6.3.
6.3. Página de lis ado de demandas
En segundo luga se implemen ó la página que mues a las demandas de se icio. En
ella se puede obse a un lis ado de odas las demandas de se icio ac i as en la aplicación
Es a is a, al igual que la del lis ado de o e as, posee a su izquie da una zona con il os
median e los cuales el usua io pod á il a las demandas según el í ulo de la misma, la
52
necesidad social que sa is ace la demanda, el á ea de se icio en la que se implemen a la
demanda y, inalmen e, según la en idad demandan e. Se puede obse a una imagen de es a
is a en la igu a 6.4
6.4. Página de in o mación de allada de una demanda
Es a página se implemen ó pa a mos a oda la in o mación elacionada con una deman-
da conc e a. Esa in o mación es á compues a po el í ulo de la demanda y su desc ipción
de allada, el cua imes e y año académico obje i o, la comunidad bene icia ia de la deman-
da y el obje i o de la misma. Además de es os da os, ambién se mues an las echas de
inicio y in pa a la de inición de la demanda y las de ejecución de la misma. Po úl imo, se
pueden obse a los da os del socio comuni a io c eado de esa demanda y un campo con
posibles obse aciones.
6.5. Página de c eación de pa ena iado
Es a is a se implemen ó pa a pode c ea pa ena iados a a és de una o e a y una
demanda.
Cuando un socio comuni a io, acep a una o e a de se icio, se debe no i ica al p o eso
esponsable de esa o e a, pa a que de esa o ma el p o eso puede c ea el pa ena iado.
Pa a que es o se p oduzca, el socio comuni a io.......
Al accede a la is a de in o mación de allada de una de e minada o e a de se icio
apa ece un bo ón C ea pa ena iado ( e igu a 6.5) que lle a a la is a de c eación de
demandas, como se puede obse a en las igu as 6.6,6.7,6.8.
6.6. Página pe sonal de cada usua io
Se decidió c ea es a página po que se ió la necesidad de c ea una is a que aglu ina a
oda la in o mación de un usua io conc e o. Pa a accede a es a is a, es necesa io pulsa
en el bo ón Resumen den o del desplegable gene ado al pulsa el nomb e de usua io ( e
53
igu a 6.9). En es a is a de esumen, según el ipo de usua io, apa ece una de e minada
in o mación.
En el caso de se un p o eso in e no se pueden suge i o e as de se icio, además de
dispone de la in o mación sob e los pa ena iados en los que es á in oluc ado y las
o e as de se icio c eadas.
En el caso de se un socio comuni a io, apa ece la in o mación de sus demandas de
se icio.
Las imágenes de es a página se pueden obse a en las igu as 6.10,6.11 y6.12.
54
Figu a 6.1:Página lis ado de o e as
55
Figu a 6.2:Página lis ado de o e as (con inuación)
56
Figu a 6.9:Página pe sonal de usua io pa e 1
63
Figu a 6.10:Página pe sonal de usua io pa e 2
64
Figu a 6.11:Página pe sonal de usua io pa e 3
65
Figu a 6.12:Página pe sonal de usua io pa e 4
66
6.7. C eación de la in aes uc u a
Decidimos mon a una in aes uc u a basada en con enedo es de Docke . Es á decisión
se debió a la expe iencia del equipo usando es a ecnología. Es a in aes uc u a aba ca ía
desde la base de da os, has a una ins alación de Sona Qube pa a moni o iza la calidad del
código. Los de alles de es a in aes uc u a se desc ibi án en los siguien es pun os.
6.7.1. Po aine
Hemos u ilizado es a he amien a an o pa a la moni o ización de los di e en es con e-
nedo es de Docke , como pa a algunos despliegues pun uales den o de la p opia in e az
g á ica que nos p opo ciona es a he amien a. De es a mane a hemos podido ealiza desde
p uebas manuales con o o ipo de base de da os, has a elanza las ins ancias que han
su ido algún ipo de pe cance.
Panel de es adís icas (Po aine )
67
6.7.2. Ma iaDB
El p oyec o u iliza u iliza una base de da os Ma iaDB po de ec o. Es o puede modi ica se
ya que u iliza in e namen e el paque e node Knex, el cual pe mi e que la base de da os
des ino de los DAO sea independien e a las consul as u ilizadas en el desa ollo. Cabe esal a
que en e las posibilidades es án Pos g eSQL, MySQL, Cock oachDB, MSSQL, SQLi e3 y
O acle.
6.7.3. PHPmyadmin
Hemos inco po ado es e ges o de base de da os debido a que el equipo enía una mayo
des eza en el uso de es a aplicación. En el anscu so del desa ollo encon amos una al-
e na i a bas an e in e esan e llamada DBea e Cloud, la cual p opo cionaba una in e az
bas an e amigable y la capacidad de da oles a los usua ios que accedan median e es a
pla a o ma. Pese a es o, inalmen e, se con inuó con el uso de PHPmyadmin.
6.7.4. Jenkins
Pa a la in eg ación con inúa, nos decan amos po Jenkins debido a las posibilidades que
nos b inda. Aunque en el lujo ac ual del despliegue no se es á ap o echando al cien po cien,
conside amos que ene lo ya añadido como pa e de la in aes uc u a, apo a una mayo
obus ez en la aplicación y pe mi i á mejo a no ablemen e la calidad del so wa e, así como
e i a los despliegues de e siones que no cumplan con los es s espec i os.
6.7.5. Sona qube
Es á he amien a nos ha pe mi ido el análisis de la calidad del código a medida que iba-
mos a anzando en el p oyec o. Con la con igu ación ac ual e a bas an e sencillo comp oba
que no eníamos una mayo duplicidad de código a la encon ada cuando se inició el p oyec o
de es a mane a. Hemos in en ado man ene una calidad de código legible y eu ilizable.
68
Capí ulo 7
Conclusiones y abajo u u o
Los inales no son algo malo. Simplemen e signi ican
que algo más es á po comenza .
C. JoyBell C.
En es a sección se comen a á la si uación ac ual del p oyec o y sus obje i os, además
del posible abajo u u o a ealiza .
7.1. Obje i os cumplidos
A con inuación se epasa án los obje i os de es e abajo y su comple i ud:
Eliminación de odas las e e encias a las inicia i as, debido a que ya no se u ilizan en
el p esen e TFG. Se han eliminado odas las dependencias que se enían con el modelo
inicia i as. En algunos casos no bas aba con elimina las, sino que se u o que adap a
el modelo o e as.
Limpieza del código uen e e e ido a MongoDB, sis ema de base de da os no u ilizado
en es e p oyec o. En e siones an e io es del p oyec o se añadió es a base de da os
no elacional en la aplicación. Se han eliminado es as e e encias y se ha co egido
edi igiendo es a da a en la base de da os co ec a.
69
Implemen ación de las is as pa a el lis ado de o e as y demandas. Se comple a on
sa is ac o iamen e los lis ados de las o e as y demandas, an o en la pa e on -end
como la co ección en back-end de las pe iciones.
Implemen ación de il os pa a las is as mencionadas an e io men e. Los il os po
cada uno de los a ibu os han sido añadidos, incluso se añadió la capacidad de il ado
median e ags los cuales se gene an de o ma au oma ica, ex ayéndose de las desc ip-
ciones de las o e as y las demandas du an e su c eación.
C eación de las is as de in o mación de allada, an o pa a o e a como pa a demanda.
Se comple a on es as is as y se eu iliza on pa a la edición de es as mismas en idades.
Implemen ación del o mula io pa a la c eación de pa ena iados a a és de una o e -
a y una demanda. Se comple ó el desa ollo del o mula io pa a la c eación de los
pa ena iados dependiendo de una o e as y una demanda, los cuales si no exis en se
c ea án dinamicamen e.
Implemen ación in aes uc u a. Se ha mon ado oda la in aes uc u a (en o no pa a
ges iona y ope a el so wa e), lo cuál pe mi i á ene una mejo calidad de codigo y
hace despliegues más con olados en p oducción.
Co ección de bugs encon ados en el an e io TFG. Una ez que nos aden amos en
el código, nos pe ca amos que había algunos pun os que no es aban del odo cla os
en los desa ollos p e ios, lo cual nos lle o a sol en a los p oblemas que nos ibamos
encon ando a medida que a anzaba el desa ollo.
Ampliación del modelo de dominio y modelo de da os. Hemos enido que ealiza al-
gunas modi icaciones en las ablas, ya que, como indicamos an e io men e, algunos
campos hacían e e encia a la base de da os MongoDB o a campos inexis en es en el
sis ema.
70
De inición de ciclo de ida de un p oyec o. Se han ealizado dos diag amas BPMN de
un ciclo de ida de un p oyec o desde su c eación has a que es e se cie a o e mina,
apa e de los diag amas BPMN de los subp ocesos.
7.2. P oblemas encon ados
A con inuación, se desc ibi án los p oblemas y di icul ades encon adas du an e la eali-
zación del p oyec o.
El p incipal p oblema ha sido la complejidad de abaja con Angula debido a la po-
ca expe iencia del equipo con es a ecnología. El equipo empezó a amilia iza se con es a
ecnología an es del inicio del cu so pe o, aún así, al se una ecnología compleja, su gie on
con a iempos du an e el desa ollo del p oyec o. A pesa de es a di icul ad, se ha consegui-
do ap ende a usa esa ecnología. Se ha llegado a la conclusión de que Angula es una g an
elección a la ho a de implemen a Single-page Applica ions.
O o p oblema encon ado ue el hallazgo de código e e ido a MongoDB que se debía
elimina , debido a que no se u iliza es e sis ema de base de da os en el p oyec o, lo que hizo
que se e asa án las a eas eque idas en es e p oyec o.
Po o a pa e, o o p oblema su gido a mi ad del p oyec o ue el abandono de una
compañe a del p oyec o.
7.3. T abajo u u o
A pesa de que se han comple ado la mayo ía de los obje i os p opues os pa a es e
p oyec o, a con inuación se lis an posibles mejo as a ealiza de ca a a un u u o:
Implemen ación de p oyec os. Es a uncionalidad es aba bloqueada has a e mina la
c eación de pa ena iados. En el abajo u u o, al ene lis a la c eación de pa ena-
iados, se pod á comenza con es e desa ollo.
71
C eación de es s uni a ios, in eg ación y acep ación. La pa e de c eación de es s
es undamen al pa a ene una aplicación obus a, po lo que oda la in aes uc u a
c eada al ededo de la aplicación ayuda á a que es os es s se ap o echen an o en la
in eg ación con inua, como cuando se hagan las comp obaciones de calidad de so wa e
median e Sona qube.
Implemen ación de no i icaciones den o de la aplicación. En nues a in es igación,
pa a encon a una al e na i a que cumpla con los eque imien os solici ados, conside-
amos que Rocke cha pe mi e cub i es a uncionalidad, al se una solución ya desa-
ollada, ag egándole que es de código abie o. El abajo consis i á en la con igu ación
de la in eg ación median e webhooks (un webhook es un sis ema de sinc onización e
in e cambio de da os en e aplicaciones. Básicamen e, los webhooks son e ollamadas
HTTP de clien e). En Rocke Cha , hay dos ipos de in eg aciones las en an es y las
salien es. En las p ime as se hace una llamada a una u l in e na de Rocke Cha , se
ejecu a un sc ip . El segundo caso, se p oduce cuando se ealiza un pe ición ex e na a
Rocke Cha .
Página pe sonal pa a cada usua io. Es a uncionalidad no se pudo e mina , debido
a que necesi ábamos la implemen ación de la uncionalidad ela i a a los p oyec os.
Aunque la pa e on end se encuen a medianamen e desa ollada pa a cada uno de
los oles de la aplicación, el desa ollo del backend se encuen a pendien e.
E aluación del p oyec o. La e aluación de un p oyec o ApS es una pa e muy impo -
an e del mismo. En es a e aluación se alo a el p oyec o como p oduc o inal o se icio
p opo cionado. Al inaliza la ealización del p oyec o odos los miemb os del mismo,
(o los seleccionados po el p o eso esponsable), ealizan una e aluación del p oyec o
a pa i de una úb ica que se de inió en el momen o de la c eación del p oyec o.
Rúb ica del p oyec o. La úb ica del p oyec o se es ablece en el pun o de c eación del
p oyec o en e odos los in eg an es del p oyec o en ese momen o (p o eso es, socio
72
as. Es e o mula io e a necesa io desde un p incipio, ya que, necesi ábamos alguna o ma
de isualiza las o e as disponibles en la aplicación. Pa a ello, Se gio c eó el componen e
o e as, al hace es o se c ea on los iche os o e as.componen .h ml,o e as.componen .scss,
o e as.componen .spec. s yo e as.componen . s. Al hace es o, ambién se u o que modi-
ica el iche o de u as, pa a añadi la nue a u a. Pa a pode accede a las o e as de la
base de da os, Se gio modi icó el se icio O e aSe ice pa a c ea los mé odos de acceso a
la base de da os al igual que el iche o o e as.js en la pa e back-end. En la is a del lis ado
de o e as, Se gio ambién se enca gó del il ado po á ea de se icio pa a lo que c eó una
lis a desplegable con odas las á eas de se icio disponibles. Es o, al igual que an es, lle ó a
c ea su co espondien e mé odo en el iche o o e as.componen . s haciendo uso del se icio
mencionado an e io men e añadiendo el co espondien e mé odo y ha modi ica el back-end,
c eando los mé odos co espondien es en el DAO.
Como se ha comen ado an e io men e en la memo ia, es a is a al p incipio, con enía una
abla con la in o mación de las o e as pe o se decidió cambia a las ca ds de Boo s ap, Se gio
se enca gó de ello, c eándolas di ec amen e en la is a. Finalmen e, se decidió con e i las
ca ds en un componen e p opiamen e dicho pa a mejo a la eusabilidad, de eso se enca gó
Da id.
Después de es o, Se gio pasó a implemen a el lis ado de demandas, c eando el com-
ponen e demandas, es o lle o a la c eación de los iche os demandas.componen . s,deman-
das.componen .h ml,demandas.componen .scss ydemandas.componen . s. En es a is a, se
implemen a on los il os po necesidad social yá ea de implemen ación, pa a ello se siguie-
on los pasos ealizados en los il os de las o e as.
Al inaliza los lis ados, se decidie on c ea los o mula ios pa a mos a la in o mación
de allada de las o e as y las demandas. Las ca ds que se habían c eado an e io men e
con enían el í ulo de cada o e a/demanda y la desc ipción co espondien e. Se decidió
mos a solo un agmen o de la desc ipción pa a así mos a la o alidad de la misma
acompañada del es o de da os en un o mula io po sepa ado. Es po es a azón, que se
79
c ea on los o mula ios pa a mos a la in o mación de allada de cada o e a y demanda,
pa a accede a los mismos se añadió un bo ón en el pie de la ca d.
Se gio se enca gó de la c eación de ambos o mula ios pa a ello c eó los espec i os
componen es o e as- e ydemandas- e .
Finalmen e, Se gio ambién se enca gó de elimina las e e encias a las inicia i as, ya
que, es as ya no se iban a u iliza en es e p oyec o.
9.2. Y ing Da id Conde Cubas
La p ime a ase del p oyec o ue una ase de in es igación de es e ipo de p oyec os
Ap endizaje Se icio pa a conoce a ni el usua io que es lo que se necesi aba y como a on-
a lo a medida que se a anzaba en el desa ollo.
En la segunda ase nos cen amos en ealiza p uebas manuales y en log a que el p oyec-
o se ejecu a á co ec amen e, ya que no disponiamos de una guía que nos p opo ciona á las
e siones necesa ias pa a el despliegue en local, asi como los pasos a segui pa a pode con-
inua el desa ollo. A medida que ibamos a anzando en es e aspec o, encon amos algunos
bugs los cuales se soluciona on en ese momen o o se c eó la a ea en T ello pa a soluciona lo
en un u u o.
En la e ce a ase, nos enca gamos del ap endizaje de Angula ya que no eníamos
expe iencia con es a ecnología. Luego de que Da id hicie a di e en es cu sos y leye a la
documen ación o icial de Angula , se cen ó en la pa e de la c eación de los ags en o e as.
Es a uncionalidad en un p ime momen o se iba a ealiza median e un inpu , en el cual
los usua ios debían llena manualmen e es a in o mación pe o nos pe ca amos que es o e a
demasiado engo oso, po lo que Da id in es igo que al e na i as eniamos al espec o y
encon ó un paque e llamado keywo d-ex ac o que pe mi e ex ae palab as cla e de un
ex o en especi ico, po lo que la in eg ó en nues a solución, de es a mane a al usua io solo
le bas a con añadi los campos con in o mación ele an e (desc ipción, í ulo) y la p opia
aplicación gene a es os ags en is a y pos e io men e se gua dan en nue as ablas c eadas
80
pa a es e p oposi o. Es a nue a uncionalidad ocasionó un cambio en la es uc u a de la
base de da os ya que se u o que c ea nue as ablas ( ags, o e a_ ags, demanda_ ags) y
c ea las cons ain s necesa ías pa a man ene una cong uencia en la in o mación ecibida.
Luego de ello, se cen ó en la uncionalidad de los il os, aunque pa e del il ado es aba
desa ollado no es aba e minado, ya que se pasaba un json con la in o mación de algunos de
los il os, pe o es os nos uncionaban co ec amen e po dos mo i os sea debido a que el los
desplegables desde donde se omaban los da os no es aban e minados o que exis ian campos
que no exis ian en la base de da os. Da id se cen ó en limpia y co egi es os p oblemas,
añadiendo el il o po ags que e a una de las nue as uncionalidades solici adas.
Pa a inaliza Da id se cen ó en la c eación de esumenes po oles aúnque no e mino
odo el desa ollo es án c eados los componen es necesa ios pa a su co ec o uncionamien o,
ambién se enca gó de qui a las dependencias que exis ían con una base de da os MongoDB
pa a la o o de pe il de los usua ios, es o lo solucionó añadiendo un nue o campo en la abla
pe sona(nomb e del a chi o) y modi icando la ubicación donde se gua da es a imagen, es e
cambió ocasionó modi ica an o la pa e on ed como backend, ya que el on al hacía
e e ence a un bucke AWS S3.
9.3. Ad ian Do a Yagüe
En la p ime a ase del p oyec o Ad ián ha es ado in es igando ace ca del ApS pa iendo
de la memo ia del TFG del año an e io [4].
En la segunda ase del p oyec o Ad ián ha ealizado los modelos de dominio y de da os
pa a ep esen a el subsis ema p oyec os-ac i os. El modelo de Dominio ealizado compa e
algunas en idades del modelo de Dominio del TFG del año pasado [4] debido a que ambién
e an ele an es en el subsis ema p oyec os-ac i os. Pa a ealiza el modelo de da os Ad ián
ha buscado e e encias en aplicaciones como Mic oso Teams oE e do pa a de ini las
nue as en idades que apa ecen en el modelo de dominio, E en o yObje i o. El modelo de
81
dominio esul an e es la igu a 5.6. El modelo de Da os esul an e es la igu a 5.8.
En la e ce a ase Ad ián se ha enca gado de ealiza los diag amas BPMN de c eación de
p oyec os. Pa a ello ep esen ó las es si uaciones que se pueden da a la ho a de c ea se un
p oyec o, igu a 5.1, y ambién ep esen ó los subp ocesos c eación de pa ena iado ( igu a
5.2) y ap obación de c eación de pa ena iado( igu a 5.3). Pa a ealiza el diag ama 5.1 u o
que in o ma se ace ca del es ánda BPMN sob e cómo ep esen a a eas de cowo king en
el mismo. T as busca in o mación se añadie on dos a eas en dis in as swimlanes indicando
en la pue a pa alela que se a a de una acción de cowo king [2]
Se an a da si uaciones de a eas de cowo king en dis in os momen os de ida del
p oyec o, po ejemplo al p incipio del p oyec o cuando es e es á en es ado EN CREACION
los p o eso es pe enecien es al p oyec o, el socio comuni a io y/o los bene icia ios ienen
que abaja jun os en busca que ipo de se icio necesi an y como se puede ap o echa al
máximo el p oyec o ApS. O o caso es en el momen o en el que se es á abajando en el
p oyec o ya que, la e aluación del alumno se a ealizando a medida que se abaja en el
p oyec o, como si de una e aluación con inua se a ase. Es os dos casos pueden obse a
en el diag ama de ciclo de ida de un p oyec o ApS. T as ealiza el diag ama de c eación
de p oyec os Ad ián ambién ealizó el diag ama del ciclo de ida de un p oyec o ApS en
un diag ama BPMN. Pa a ealiza el diag ama se han comp obado las ases del p oyec o
de inidas en el TFG del año pasado [4]. El modelo del ciclo de ida esul an e es la igu a
5.4 en el cual se de ine un p oyec o desde que es á en es ado EN_CREACION has a que
pasa a es ado CERRADO o FINALIZADO. El subp oceso es la igu a 5.1.2 y ep esen a
la alo ación de en ada de los usua ios den o del p oyec o po pa e del p o eso una ez
en ían la solici ud de pa icipación. Du an e la ealización del diag ama de ciclo de ida
de un p oyec o ApS se incluyó la en idad Bene icia io como una composición de Socio
Comuni a io y siendo una subclase de usua io ya que un Socio comuni a io puede que no
sea el des ina a io del se icio y solamen e ep esen e una en idad social. Se ac ualizó los
diag amas de Da os y de Dominio con es a nue a en idad.
82
T as habe ealizado los diag amas po al a de iempo Ad ián que comenzó a busca
in o mación ace ca de L
A
TEXpa a edac a la memo ia, po acilidad de abaja en común
decidí u iliza la he amien a O e lea pa a comenza el p oyec o de la memo ia pa a ami-
lia iza me con el en o no y con el lenguaje.
83
Capí ulo 10
Ins alación
En es e apa ado se de alla á la ins alación de la aplicación an o en un en o no local pa a
el desa ollo de las nue as uncionalidades, asi como en un en o no cloud pa a el despligue
en p oducción.
En la siguien e lis a se de alla á las e siones de las ecnologías u ilizadas en el p oyec o:
Node 14.18.2
Npm 6.14.15
Angula CLI 13.0.4
Visual S udio Code 1.67.2
10.1. Local (Desa ollo)
Los pasos a segui pa a el despliegue en local son los siguien es:
1. Ins ala clien e gi , la o ma de ins alación a ia á dependiendo del sis ema ope a-
i o ins alado en el equipo. En la pagina o icial se encuen an las guías de alladas de
cada una de las casos h ps://gi -scm.com.
2. Ins ala docke y docke -compose, la o ma de ins alación a ia á dependiendo del
sis ema ope a i o ins alado en el equipo. En la pagina o icial se encuen an las guías de-
alladas de cada una de las casos h ps://h ps://docs.docke .com/engine/ins all.
84
3. Desca ga los eposi o ios en local, los eposi o ios son h ps://gi hub.com/ucm-
g/ g-aps-con igu a ion (a chi os de con igu ación) y h ps://gi hub.com/ucm- g/ g-
aps (co e de la aplicación), es o lo ealiza emos con el comando gi clone.
4. Ab imos las ca pe as en un IDE, en es e caso yo he usado Visual S udio Code
(VSCode) ya que me sien o mas cómodo con el, en cualquie caso se puede usa
cualquie o o IDE.
Pan alla p incipal VSCode
5. A ancamos la base de da os, es o se pod ía ealiza manualmen e en local me-
dian e la ins alación de xampp, phpmyadmin u o as al e na i as. Pe o en nues o caso
enemos c eado un a chi o docke -compose el cuál ejecu a á es os docke s en segundo
plano e i ando ene aplicaicones ex e nas di ec amen e ins aladas en nues o equipo.
Pa a ello bas a con i al eposi o io g-aps-con igu a ion que ya enemos clonado en
local y ejecu a el siguien e comando docke -compose up -d den o de la ca pe a
85
local-con igu a ion. Con el comando docke ps podemos comp oba que es an co-
iendo co ec amen e.
Ejecu ando Ma iaDB median e docke -compose
6. Con igu amos las c edenciales, en la aiz del p oyec o debemos c ea un a chi o
llamado .en , con los siguien es pa ame os (los alo es que se obse an son los po
de ec o) :
JWT_SECRET=1234, //JSON Web Token
PORT=8080, //Pue o se ido backend
MYSQL_IP=localhos , //U l de la base de da os
MYSQL_PORT=3306, //Pue o de la base de da os
MYSQL_USER=aps, //Usua io de la base de da os
MYSQL_PASSWORD=aps, //Con aseña de la base de da os
MYSQL_DATABASE=aps //Nomb e de la base de da os
7. Ejecu amos la pa e backend, u ilizando el comando npm un s a . Es o oca-
siona á que el se ido backend se ejecu e en el pue o 8080 po de ec o.
86
8. Ejecu amos la pa e on ed, u ilizando el comando ng se e. Con es e paso
inalizamos la pa e del despliegue en local, la pa e del on al se ejecu a en el
pue o 4200.
10.2. Cloud (P oducción)
Pa a el despliegue a p oducción, pa e de los pasos se án simila es a desa olla lo en
local pe o nues o docke -compose, asi como la in aes uc u a que odea la aplicación es
bas an e mas amplia. En es e caso usa emos un se ido Debian 11 y con las p es aciones
que se obse a en la siguien e imagen.
Se ido He zne
A con inuación se mues a el p ocedimien o a segui :
1. Ins ala clien e gi , podemos ins ala gi en debian 11 con el siguien e comando
ap -ge ins all gi .
2. Ins ala docke y docke -compose, en la pagina o icial encon amos la guía de a-
llada, adjun o el link h ps://docs.docke .com/engine/ins all/debian.
3. Desca gamos el eposi o io h ps://gi hub.com/ucm- g/ g-aps-con igu a ion,
es o lo ealiza emos con el comando gi clone.
4. Ejecu amos el a chi o docke -compose, una ez engamos desca gado el epo-
si o io podemos i a el y den o de la ca pe a con igu a ion ejecu a el comando
docke -compose up -d. U ilizando el comando docke ps pod emos e que odo
es a co iendo co ec amen e.
87
5. Modi icación de dominio (Opcional), es e se ido cloud e b inda una ip es á ica
la cual nos pe mi e accede di ec amen e median e los pue os a los docke s desple-
gados, si enemos un dominio nues o podemos edi igi lo a es e se ido y median e
ae ik elaciona cada uno de los subdominios con su espec i o pue o(es o se ealiza
desde el a chi o docke -compose que ejecu amos an e io men e).
6. Se icios desplegados
Ma iaDB, la base de da os no iene asociada una u l ex e na debido a que el
uso exclusi o es median e la ed in e na de los docke s.
PhpMyAdmin, es a asociada a la u l h ps://aps-phpmyadmin.moyone o.com
Jenkins, es a asociada a la u l h ps://aps-jenkins.moyone o.com
Heimdall, es a asociada a la u l h ps://aps-dashboa d.moyone o.com
Sona qube, es a asociada a la u l h ps://aps-sona .moyone o.com
App, es a asociada a la u l h ps://aps.moyone o.com
Todas las c edenciales pa a es os se icios se encuen an den o del a chi o docke -
compose an e io men e mencionado.
88