scieee Open visual document viewer

Aplicación web de soporte al Aprendizaje-Servicio

Arroyo Galán, Sergio; Conde Cubas, Yrving David; Dorta Yagüe, Adrián

Abstract

El Aprendizaje-Servicio es una práctica académica que combina procesos de aprendizaje con servicios en favor de la comunidad para así, ayudar al alumnado a implicarse en proyectos y actividades de su entorno. La experiencia de los profesores que han llevado a cabo, o intentado llevar a cabo, iniciativas de tipo ApS en España, muestra que muchos proyectos potenciales no llegan a realizarse por la dificultad en casar la oferta con la demanda, es decir, cuadrar las necesidades didácticas, organizativas, etc. de la institución educativa que quiere prestar un servicio, con las necesidades y disponibilidad de la organización o comunidad que quiere recibir un servicio. Un buen soporte informático podría ser de gran ayuda en la tarea de casar la oferta y la demanda de ApS. Gracias a este soporte se facilitarían la identificación de potenciales partenariados así como la colaboración entre el prestador y el receptor potenciales del servicio en la tarea de refinar una idea inicial y convertirla en un propuesta de proyecto realista que cumple las necesidades de ambas partes. Durante los últimos cursos académicos se ha ido desarrollando una aplicación web que ofrezca este tipo de soporte a los proyectos ApS. Este TFG tiene como objetivo la extensión de dicha aplicación. Partiendo del TFG del curso pasado, los objetivos a desarrollar fueron la creación de nuevos formularios como los de listado de ofertas y demandas, los de información detallada para una oferta o demanda concreta y el de creación de partenariados, la implementación de filtros para las ofertas y las demandas, la integración de un chat en la aplicación, la ampliación del modelo de dominio y el de datos. El presente TFG ha sido desarrollado utilizando tecnologías como Angular, Express.js, JavaScript, Node.js y MySQL.

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