scieee Open visual document viewer

Alimenticia, una aplicación web para organizar tus recetas y compras en un solo lugar

Domínguez Gutiérrez, David; Vélez Ayuso, Jesús

Abstract

En la actualidad la gente no tiene tiempo para poder desarrollar sus actividades diarias adecuadamente, ya sea por el trabajo o sus necesidades personales, y en un contexto de dificultad económica para muchas personas hemos ideado con este proyecto proponer una posible solución a estos problemas. Nuestro trabajo de fin de grado propone una herramienta para comparar precios de supermercados, hacer listas de la compra para optimizar el presupuesto, consultar la información nutricional de diferentes alimentos y podrá calcular las calorías que deberá consumir, saber qué productos están de temporada e incluso tener un recetario online y compartir recetas con la comunidad. Una parte fundamental de este proyecto es el uso de web scraping, donde a partir de esta técnica extraemos de forma automatizada datos de páginas web. En nuestro caso, se ha utilizado JavaScript para la extracción de los precios y diferentes datos de los supermercados. En la aplicación tenemos 2 roles diferentes, el usuario autenticado y el usuario anónimo. El usuario autenticado, además de contar con su propio perfil podrá guardar listas de recetas favoritas, crear recetas y listas de la compra virtuales con el precio de los alimentos. En definitiva, el usuario registrado tendrá más privilegios que un usuario anónimo. Dicho esto, la funcionalidad principal de nuestra aplicación que es la consulta de precios y comparativa de supermercados estará disponible para cualquier usuario.

Full text

ALIMENTICIA, UNA APLICACIÓN WEB PARA ORGANIZAR TUS RECETAS Y COMPRAS EN UN SOLO LUGAR ALIMENTICIA, A WEB APPLICATION TO ORGANIZE YOUR RECIPES AND PURCHASES IN ONE PLACE. TRABAJO FIN DE GRADO CURSO 2023-2024 AUTORES DAVID DOMÍNGUEZ GUTIÉRREZ JESÚS VÉLEZ AYUSO DIRECTOR RAMÓN GONZALEZ DEL CAMPO RODRIGUEZ BARBERO GRADO EN INGENIERÍA DE SOFTWARE FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID ALIMENTICIA, UNA APLICACIÓN WEB PARA ORGANIZAR TUS RECETAS Y COMPRAS EN UN SOLO LUGAR ALIMENTICIA, A WEB APPLICATION TO ORGANIZE YOUR RECIPES AND PURCHASES IN ONE PLACE. TRABAJO DE FIN DE GRADO EN INGENIERÍA INFORMÁTICA DEL SOFTWARE AUTORES DAVID DOMÍNGUEZ GUTIÉRREZ JESÚS VÉLEZ AYUSO DIRECTOR RAMÓN GONZALEZ DEL CAMPO RODRIGUEZ BARBERO CONVOCATORIA: JUNIO 2024 GRADO EN INGENIERÍA DE SOFTWARE FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID 27 DE MAYO DE 2024 2 DEDICATORIA Da id: P incipalmen e a mis pad es con el g an apoyo y paciencia que han enido. A mi no ia Sa a, que me apoyada en odo momen o y sob e odo me ha ayudado a acla a la cabeza en momen os de duda. Jesús: A las 3 muje es que me han hecho, me hacen y me ha án eliz en la ida. Mi mad e po odo el su imien o acumulado es os años de ai enes en mis es udios, mi pa eja po odas esas noches en ela y mi u u a hija que es a á con noso os en sep iemb e. 3 AGRADECIMIENTOS En pa icula ag adecemos los dos a Ramón González Del Campo, nues o u o , po su amabilidad y o al disponibilidad. Da id: A mis pad es que siemp e me han apoyado en odo y siemp e me han ayudado. A mi no ia Sa a, que siemp e me ha animado en odo lo que me he p opues o, el apoyo que ecibo de ella. Jesús: A mi pa eja, Raquel, po odo el apoyo y ánimo. Sin i no hab ía sido posible. A mis pad es po su paciencia y no desis i en los ánimos. A mi je e, Juanen, po su o al apoyo y con ianza an o labo almen e como pe sonalmen e, animándome a e mina los es udios de la mejo mane a posible. 4 RESUMEN Alimen icia, una aplicación web pa a o ganiza us ece as y comp as en un solo luga . En la ac ualidad la gen e no iene iempo pa a pode desa olla sus ac i idades dia ias adecuadamen e, ya sea po el abajo o sus necesidades pe sonales, y en un con ex o de di icul ad económica pa a muchas pe sonas hemos ideado con es e p oyec o p opone una posible solución a es os p oblemas. Nues o abajo de in de g ado p opone una he amien a pa a compa a p ecios de supe me cados, hace lis as de la comp a pa a op imiza el p esupues o, consul a la in o mación nu icional de di e en es alimen os y pod á calcula las calo ías que debe á consumi , sabe qué p oduc os es án de empo ada e incluso ene un ece a io online y compa i ece as con la comunidad. Una pa e undamen al de es e p oyec o es el uso de web sc aping, donde a pa i de es a écnica ex aemos de o ma au oma izada da os de páginas web. En nues o caso, se ha u ilizado Ja aSc ip pa a la ex acción de los p ecios y di e en es da os de los supe me cados. En la aplicación enemos 2 oles di e en es, el usua io au en icado y el usua io anónimo. El usua io au en icado, además de con a con su p opio pe il pod á gua da lis as de ece as a o i as, c ea ece as y lis as de la comp a i uales con el p ecio de los alimen os. En de ini i a, el usua io egis ado end á más p i ilegios que un usua io anónimo. Dicho es o, la uncionalidad p incipal de nues a aplicación que es la consul a de p ecios y compa a i a de supe me cados es a á disponible pa a cualquie usua io. Palab as cla e Aplicación web, Web sc aping, MySQL, Api, Compa ado , Rece a io, Alimen ación, die é ica, aho o. 5 ABSTRACT Alimen icia, a web applica ion o o ganize you ecipes and pu chases in one place. A p esen , people don’ ha e ime o ca y ou hei daily ac i i ies p ope ly, whe he due o wo k o pe sonal needs. In a con ex o economic di icul y o many indi iduals, we ha e de ised his p ojec o p opose a po en ial solu ion o hese p oblems. Ou inal deg ee p ojec p oposes a ool o compa ing supe ma ke p ices, c ea ing shopping lis s o op imize budge s, checking he nu i ional in o ma ion o di e en oods, and calcula ing he calo ies one should consume. I also allows use s o know which p oduc s a e in season and p o ides an online ecipe book o sha ing ecipes wi h he communi y. A undamen al pa o his p ojec in ol es web sc aping, whe e we au oma ically ex ac da a om web pages using his echnique. In ou case, Ja aSc ip has been used o ex ac ing p ices and o he supe ma ke - ela ed da a. Wi hin he applica ion, we ha e wo di e en oles: au hen ica ed use s and anonymous use s. Au hen ica ed use s, in addi ion o ha ing hei own p o ile, can sa e a o i e ecipe lis s, c ea e ecipes, and i ual shopping lis s wi h ood p ices. Ul ima ely, egis e ed use s will ha e mo e p i ileges han anonymous use s. Tha said, he main unc ionali y o ou applica ion—p ice compa ison and supe ma ke compa ison—will be a ailable o any use . Keywo ds Web applica ion, Web sc aping, MySQL, APIs, Compa a o , Recipe book, Nu i ion, Die e ics, Sa ings. 6 ÍNDICE DE CONTENIDOS Con enido In oducción ...................................................................................................................... 1 Mo i ación ............................................................................................................ 1 Obje i os ............................................................................................................... 2 Plan de abajo ..................................................................................................... 3 Es ado de la cues ión ....................................................................................................... 5 Aplicaciones Simila es .......................................................................................... 5 Soysupe ................................................................................................................ 5 Aho o me cado ................................................................................................... 6 Supe más ba a o ................................................................................................. 6 Nu icien a ............................................................................................................ 7 OCU ....................................................................................................................... 8 Soy de empo ada ............................................................................................... 9 Valo de nues a aplicación ................................................................................ 9 Fundamen os eó icos y ecnológicos ..........................................................................11 Tecnologías u ilizadas .........................................................................................11 Backend ...............................................................................................................11 F on end ...............................................................................................................13 7 Tecnologías Gene ales .......................................................................................15 Fundamen os de desa ollo web u ilizados ......................................................18 Sc aping ...............................................................................................................23 Selección de supe me cados: ...........................................................................23 Funcionalidad de la aplicación .....................................................................................25 Ac o es .................................................................................................................25 Ges ión de usua ios .............................................................................................25 Regis o .................................................................................................................26 Inicio de sesión ....................................................................................................27 Pe il de usua io ...................................................................................................28 Elimina pe il ........................................................................................................29 Ce a sesión ........................................................................................................30 Ges ión del compa ado ....................................................................................31 Selección de supe me cado .............................................................................32 Buscado ..............................................................................................................34 Ca i o ...................................................................................................................36 Ca i os gua dados .............................................................................................37 Compa ado ........................................................................................................38 Ges ión de ece as ..............................................................................................40 Lis ados Rece as ..................................................................................................41 De alle de la ece a ............................................................................................44 Adminis a ece a ...............................................................................................45 In e acción ece as ( a o i os y pun uación + comen a io) ...........................50 Ges ión de die é ica ...........................................................................................52 8 Ges ión de alimen os de empo ada ................................................................56 A qui ec u a de la aplicación Web ...............................................................................60 Desa ollo local y despliegue .............................................................................60 Es uc u a del on end .......................................................................................62 Di ec o ios ............................................................................................................62 Es uc u a del backend ......................................................................................65 Compa ación de p oduc os ..............................................................................65 Au en icación po Token ....................................................................................66 Di ec o ios ............................................................................................................68 Es uc u a del Sc aping. ......................................................................................69 Es uc u a de la base de da os de la aplicación web ................................................73 Base de da os: Alimen icia .................................................................................73 Alimen o: ..............................................................................................................74 Almacenaje: ........................................................................................................75 Bene icio: .............................................................................................................75 Seleccion: ............................................................................................................75 Tempo ada: .........................................................................................................76 Rece as ................................................................................................................76 Ca ego ia_ ece a: ..............................................................................................77 Rece as_ a o i as: ...............................................................................................77 Usua ios: ................................................................................................................78 Valo acion: ...................................................................................................78 Comp a: .......................................................................................................79 P oduc o: ......................................................................................................79 15 1 In oducción Hoy po hoy la si uación económica en la que i imos ha gene ado la necesidad en muchas amilias de aho a en sus gas os dia ios. El hecho de muchas eces no ene iempo pa a o ganiza se lle a muchas eces a ese consumo excesi o y gas o innecesa io. Muchas amilias han enido que ajus a sus p esupues os, busca soluciones que pe mi an educi el gas o y op imiza las comp as de mane a más e icien e. De es a mane a su ge la idea de desa olla una aplicación web que acili e a las pe sonas es as a eas. Ilus ación 1-1 Logo Alimen icia En es e documen o desa olla emos como ha sido el es udio p e io y que alo apo a nues a aplicación (Capí ulo 2), cuáles han sido las he amien as y ecnologías u ilizadas (Capi ulo 3) pa a el desa ollo del p oyec o, así como la uncionalidad y a qui ec u a de los componen es de la aplicación (Capí ulo 4, 5 y 6). Po úl imo, elabo ado es unas conclusiones, así como unas líneas a segui en el u u o (Capí ulo 7) Mo i ación ¿Nos hemos pa ado alguna ez en consul a dis in os p ecios de un mismo p oduc o en a ios supe me cados? Habi ualmen e nos ocu e que es amos comp ando y pensamos si ese p oduc o se ía más ba a o en o o supe me cado o si end ía alguna o e a. Alimen icia se á u g an aliado a la ho a de ealiza u comp a o de as ea dis in os p oduc os en busca de las mejo es o e as. 2 También cuando ealizamos alguna ece a o la emos en alguna pla a o ma, e is a o ele isión, nos p egun amos cuán o nos cos a ía esa ece a. Alimen icia ambién e o ece la posibilidad de añadi los ing edien es que iene una ece a y en base a ello calcula el p ecio que e cos a ía. Además, muchas eces que acudimos al supe me cado no sabemos qué p oduc os son de empo ada po lo que a eces comp amos alimen os que, aunque es án en el supe me cado es án a un p ecio más al o que o os meses al pun o. Alimen icia eúne u as y e du as donde se mues a en qué mes es á de empo ada o en qué meses ha salido o es á en ando de empo ada. Obje i os El obje i o p incipal de es e p oyec o es el desa ollo de una aplicación web que si a de ayuda pa a los usua ios de una mane a ácil y cómoda en la ob ención de los p ecios de p oduc os de supe me cados sin ene que accede a cada página co espondien e y así pode ealiza compa a i as de p oduc os y decidi en cuál hace la comp a. La aplicación ambién p opo ciona la c eación de un ece a io p opio o compa ido con la comunidad y pode ob ene el p ecio o al de la ece a. O o de los obje i os plan eados en es e p oyec o es la ob ención de en qué meses es án de empo ada los p incipales alimen os que consumimos. De es a mane a pa a lle a a cabo el p oyec o se han c eado una se ie de obje i os a segui : ● Análisis de o as aplicaciones que gua den elación con la nues a. ● Es udio y aplicación de écnicas de web sc aping pa a la ex acción de mane a au omá ica de da os y p ecios de p oduc os de páginas de supe me cados. ● U ilización de da os y APIs públicas pa a en iquece la uncionalidad de la aplicación en la medida de lo posible. 3 ● Desa ollo e implemen aciones de uncionalidades, como el egis o de usua ios algo i mos de compa ación, ges ión de base de da os pa a un buen uncionamien o de la pla a o ma, au en icación po oken. ● C eación de una documen ación donde se explica el p oceso de c eación y desa olla la aplicación. Plan de abajo Pa a log a los obje i os del p oyec o nos hemos o ganizado en una se ie de ases adap adas pa a in en a alcanza los obje i os p opues os en cada una de ellas. En el desa ollo web, y en o os ipos de p oyec o, se suelen de ini unas e apas pa a el desa ollo global del p oyec o y es el plan de abajo que hemos ealizado. [1] ● In es igación y análisis: ○ Se ealiza una in es igación y análisis de las p incipales ías pa a el desa ollo de la aplicación. ○ Se lle a a cabo un es udio de los se icios o he amien as que necesi a emos pa a el desa ollo y la in eg ación con las ecnologías a usa ○ Búsqueda de uen es de da os públicos. (Base de da os de alimen os, nu ición, e c., logos, bancos de imágenes, iconos) ○ In es igación de web sc aping ○ Es udio de o as aplicaciones simila es ● Diseño y es uc u a ○ Elabo ación de las is as de la aplicación ○ Elabo ación de los modelos de la aplicación ● Desa ollo e implemen ación: ○ Realización del Web sc aping e in eg ación de los da os con nues a base de da os ○ Desa ollo de los casos de uso p opues os. ● P uebas, documen ación y en ega: ○ Elabo ación de la memo ia con odos los aspec os del p oceso de desa ollo 5 Es ado de la cues ión En es a sección, se mos a á un análisis ac ual de la si uación, ealizando una compa ación con las aplicaciones simila es exis en es, apo ando soluciones disponibles y sus ca ac e ís icas. Concluimos con el alo añadido de nues a aplicación sob e el es o. Aplicaciones Simila es Soysupe Soy Supe , es una aplicación que pe mi e a los usua ios compa a los p ecios de los alimen os en supe me cados. También puedes ealiza la lis a de la comp a, con la opción de en ia la lis a a la web del supe me cado, pa a pode ealiza la comp a online. Una aplicación muy comple a que nos si ió de inspi ación pa a la pa e de compa ado de nues o p oyec o. ● Pun os ue es: Amplia gama de supe me cados. En ia la ces a al supe me cado pa a ealiza la comp a online. ● Pun os débiles: A eces las compa aciones de p oduc os no son exac as. Ilus ación 2-1 Pan alla Soy Supe 6 Aho o me cado Aho a me cado, es una aplicación simila a soySupe . Pe mi e busca p oduc os de supe me cado y e mues a una lis a con el p ecio y los supe me cados en los que es á disponible el p oduc o. ● Pun os ue es: Amplia gama de p oduc os. ● Pun os débiles: Las búsquedas son un poco inexac as. Necesi as egis a e pa a la mayo ía de las uncionalidades y hace la página poco in ui i a. Ilus ación 2-2 Pan alla Aho o Me cado Supe más ba a o Supe más ba a o es un buscado de p oduc os de supe me cado. Puedes selecciona los supe me cados y e mues a un lis ado de los p oduc os, mos ando el p ecio del p oduc o, pe o no puedes hace nada más. ● Pun os ue es: Amplia gama de supe me cados. ● Pun os débiles: In o mación simple del p oduc o sin nada más que pode ealiza . 7 Ilus ación 2-3 Pan alla Supe Más Ba a o Nu icien a Nu icien a, es un po al de nu ición y ece as. Es a página o ece a los usua ios ece as, in o mación nu icional de los alimen os y cu sos pa a comenza con una nu ición más saludable bas an e comple a. ● Pun os ue es: In o mación nu icional comple ísima de las ece as. La web es á ealizada y man enida po un equipo p o esional que abaja en el ámbi o de la nu ición lo que hace que la web sea muy comple a nu icionalmen e hablando. Con iene un apa ado de no icias sob e nu ición que ambién le apo a mucho alo . ● Pun os débiles: Hay una sob eca ga de in o mación que no la hace amigable. 8 Ilus ación 2-4 Pan alla Nu icien a OCU La o ganización de consumido es y usua ios p opo ciona un calenda io de u as y e du as de empo ada en España. Puedes desca ga el calenda io en pd o isi a las páginas del calenda io. ● Pun os ue es: Dispone de un buscado de alimen os. ● Pun os débiles: No dispone de mucha in o mación del alimen o. Ilus ación 2-5 Pan alla Ocu 9 Soy de empo ada Soy de empo ada, es un p oyec o web que se inició como un es udio de los alimen os en España, con análisis de da os an o de los minis e ios de ag icul u a como de las asociaciones del país pa a cla i ica y euni los calenda ios de los alimen os de empo ada del país. ● Pun os ue es: Dispone de un ue e análisis de los meses en los que un alimen o es de empo ada. ● Pun os débiles: La in o mación del p oduc o es pob e nu icionalmen e hablando. Mues a ca ac e ís icas del cul i o. Ilus ación 2-6 Pan alla Soy De Tempo ada Valo de nues a aplicación Hemos que ido euni muchas uncionalidades que ya exis en de una mane a pa ecida en una sola web, eniendo un acceso único. De odo lo desc i o en el 16 MySQL wo kbench Es una he amien a pa a el diseño de las bases de da os, pa a el sis ema de base de da os MYSQL. Hemos u ilizado es a he amien a pa a el desa ollo local como clien e MySQL. [10] Ilus ación 3-8 Logo MYSql Wo kbench Gi Hub Es una pla a o ma pa a el desa ollo colabo a i o, que u iliza un sis ema de e siones. En es a pla a o ma hemos c eado es eposi o ios públicos alimen icia- backend, alimen icia- on end y alimen icia-sc aping pa a pode almacena y ges iona el código de la aplicación, lo que nos ha acili ado a la ho a de hace un seguimien o de los cambios ealizados. [11] Hemos decidido sepa a los poque en el análisis p e io del despliegue de la aplicación e a ecomendable ene los sepa ados. 17 Ilus ación 3-9 Logo Gi hub Visual S udio Code Es un en o no de desa ollo de código abie o de Mic oso . Es li iano, ágil y se adap a muy bien a es e ipo de desa ollos web o eciendo muchas lib e ías de ayuda. [12] Ilus ación 3-10 Logo Visual S udio Code Api de Google Maps y Places Es un se icio que p opo ciona Google pa a ob ene ubicaciones o localizaciones. La hemos u ilizado pa a ob ene la lis a de supe me cados a a és del código pos al. En un p ime luga ob enemos un a io del código pos al que nos lo p opo ciona la api de Maps y con las coo denadas ob eníamos el lis ado de supe me cados a a és de Places. [13] 18 Ilus ación 3-11 Logo Google Maps APIs Open ood Fac s Es una aplicación donde puedes consul a la in o mación nu icional de cualquie alimen o o p oduc o, iene una api pública que hemos u ilizado pa a nues a sección de nu ición. [14] Ilus ación 3-12 Logo Open Food Fac s Fundamen os de desa ollo web u ilizados Den o del desa ollo web exis en di e en es undamen os que hacen que una aplicación o página web ma que la di e encia y que hemos seguido en la mayo medida: • Uso de imágenes e iconos pa a comunica . Hemos usado muchas imágenes de bancos de imágenes g a ui os e iconos pa a simpli ica ex os y que el usua io a golpe de is a sepa que es lo que es á haciendo o iendo como mos amos en las siguien es ilus aciones. 19 Ilus ación 3-13 Iconos de las ca ac e ís icas de un alimen o de empo ada Ilus ación 3-14 Iconos que ep esen an ca ac e ís icas de una ece a • Colo como elemen o de diseño. Cuando c eamos el logo ipo pa a la aplicación, elegimos el e de po se un colo ep esen a i o de las e du as y la alimen ación sana. Con él hemos c eado una pale a de colo es p ima ia pa a oda la aplicación. Ilus ación 3-15 Pale a de colo es p ima ios Alimen icia Así los elemen os p incipales de la aplicación como los bo ones, inpu s, bo des, enlaces… lle an el colo “co po a i o”. 20 Ilus ación 3-16 Colo p ima io” co po a i o” • Diseño esponsi e: Mobile i s design Uno de los p incipales p incipios en el desa ollo web es el diseño esponsi e. Un mayo po cen aje de isualización de webs se hace ía mó il po lo que hemos que ido desa olla la aplicación bajo es e p incipio. Mobile i s design consis e en elabo a el diseño p ime o pa a mó il y hace lo ex ensible pa a las demás in e aces como able as o pc. En ese sen ido p ime o elabo ábamos los es ilos en el mó il y adap ábamos pa a los demás. Mos amos un ejemplo de código en la siguien e ilus ación donde se en odas las clases p ime o adap adas al mó il y a con inuación una que y que ma ca la isualización a pa i de las able s. 21 Ilus ación 3-17 Código Fi s Mobile (1) Ilus ación 3-18 Código Fi s Mobile (2) Aquí mos amos alguna cap u a con el diseño pa a mó il compa ado con pc: 22 Ilus ación 3-19 Buscado en mó il (1) Ilus ación 3-20 Buscado en mó il (2) Ilus ación 3-21 Buscado en PC 23 • Simpli icación del diseño O o elemen o impo an e ha sido la búsqueda en un diseño sencillo y simple. Haciendo uso de las he amien as y componen es que nos p opo cionaba Angula Ma e ial [15] hemos elabo ado in e aces simples. Sc aping El sc aping es una écnica pa a ealiza la ex acción de da os en las páginas web. Es a ex acción de da os en nues o caso iene como obje i o la ecopilación de los p oduc os de los supe me cados. Con ello ealizamos un es udio del me cado compa ando sus p ecios. Selección de supe me cados: Pa a el desa ollo de la aplicación Alimen icia, se ealizó un es udio p e io pa a la elección de los supe me cados que se inclui ían en la aplicación. El es udio se ealizó en base de a ios c i e ios con el in de ansmi i una expe iencia g a i ican e al usua io. Los supe me cados elegidos son: Alcampo, Aho amas, Dia y E oski. El ac o p incipal pa a de e mina la inclusión de los supe me cados ha sido la acili El ac o p incipal pa a de e mina la inclusión de los supe me cados ha sido la acilidad y accesibilidad en la o ma de pode accede a los p ecios, nomb e del p oduc o, la imagen y si con iene o e a. Todos es os da os es án expues os de mane a pública en sus espec i as páginas web Se es udió la posibilidad de inclui Me cadona, al se uno de los supe me cados con mayo cuo a de me cado, pe o decidimos que es a e sión no inclui la ya que equie e un egis o p e io y es o pod ía supone una di icul ad añadida a la ho a de hace el sc aping. Ilus ación 3-22 Logo Supe me cados 24 En endemos que con es os 4 supe me cados se cub e la necesidad de uno de los obje i os p incipales del p oyec o que es p opo ciona una compa a i a de p ecios de di e en es p oduc os de supe me cado. Añadi más supe me cados ha supues o siemp e una pequeña complicación, no en la ex acción de da os si no en el pos e io a amien o pa a los algo i mos de compa ación. La di e encia de c i e io de los supe me cados en cuan o a la asignación de los nomb es pa a los p oduc os y la asignación de los ni eles de las ca ego ías ha supues o que u ié amos que ealiza un a amien o a los da os ex aídos. Po ejemplo, Al pack de la as los supe me cados los nomb an de di e en e o ma: ● Dia: Re esco de cola clásica Coca-Cola la a 12 x 33 cl. ● Aho amas: Re esco cola Coca-Cola la a pack 12 33 cl. ● E oski: Re esco de cola COCA COLA, pack 12x33 cl. ● Alcampo: COCA COLA ZERO Re esco de cola Ze o azúca pack 12 Uds. x 33 cl. Es o ha eque ido una e o mulación de los nomb es ya que el algo i mo de compa ación no espondía como que íamos así que como comen aban amos an e io men e hemos a ado los da os y se han uni icado nomb es, medidas, con i iendo a minúsculas las ma cas… mejo ando conside ablemen e las compa aciones de ex o. 25 Funcionalidad de la aplicación En es e capí ulo ealiza emos una explicación sob e la uncionalidad de la aplicación, haciendo uso de los di e en es casos de uso gene ales que con o man la aplicación. ● Ges ión de Usua ios ● Ges ión de Compa ado ● Ges ión de Rece as ● Ges ión de Die é ica ● Ges ión de Alimen os de Tempo ada De cada uno de ellos se a a explica cómo se in e p e a cada caso de uso en la aplicación. Ac o es Debemos dis ingui dos ipos de usua ios, el usua io egis ado que en los diag amas de caso de uso end á el nomb e de ac o , y el caso de los usua ios no egis ados que end á el nomb e de anónimo Ges ión de usua ios Ilus ación 4-1 Caso de Uso Ges ión de Usua io(No Regis ado) Ilus ación 4-2 Caso de Uso Ges ión de Usua io(Regis ado) 32 Los usua ios pueden accede al compa ado a a és del menú p incipal de na egación. Ilus ación 4-14 Menú Compa ado Selección de supe me cado Pa a pode ealiza una búsqueda de p oduc o debe á se seleccionado un supe me cado. Exis en dos mane as de elección del supe me cado dependiendo del ipo de usua io: ● Usua io egis ado: Al comple a el egis o, apa ece á una en ana modal pa a elegi el supe me cado il ado po los más ce canos según el código pos al in oducido en el egis o. Si no exis e algún supe me cado de los de inidos en la aplicación po la zona del código pos al, és e pod á se elegido igualmen e. Ilus ación 4-15 Selección Supe me cado Usua io Regis ado ● Usua io no egis ado: Cuando el usua io no egis ado accede al buscado de p oduc os, apa ece á la en ana modal de los supe me cados. En es e caso sin la in o mación de p oximidad. 33 Ilus ación 4-16 Selección Supe me cado Usua io No Regis ado Los usua ios pod án cambia el supe me cado elegido po de ec o en la misma pan alla del supe me cado. El usua io egis ado ambién pod á cambia lo en el menú de na egación, así como el código pos al. Ilus ación 4-17 Pan alla de Búsqueda en el Supe me cado 34 Buscado El usua io pod á ealiza una búsqueda de p oduc os in oduciendo un é mino en el o mula io de búsqueda. Si la búsqueda o ece esul ados se mos a án il os po ca ego ías y subca ego ías de los p oduc os. Ilus ación 4-18 Búsqueda P oduc os Compa ado El usua io pod á añadi p oduc os a un ca i o i ual o ealiza una búsqueda de p oduc os simila es en las opciones de la icha del p oduc o. 35 Ilus ación 4-19 Bo ón Añadi P oduc o y Bo ón P oduc o Simila Si el usua io elige la opción de p oduc o simila , se le p opo ciona a un esul ado de los di e en es supe me cados con el p ecio de ese p oduc o, pa a que pueda e la di e encia. Si el p ecio es una o e a sald á en ojo. 36 Ilus ación 4-20 Resul ado P oduc o Simila Ca i o En el ca i o sald án los p oduc os añadidos y el usua io pod á ealiza di e en es acciones: ● El usua io pod á elimina p oduc os del ca i o pulsando sob e la X que apa ece colocada a la de echa del p oduc o. ● El usua io pod á acia el ca i o pulsando el bo ón con el icono de la papele a, si uado abajo a la de echa. ● El usua io end á la opción de compa a dicha lis a en o os supe me cados pulsando el bo ón “compa ado ”. 37 ● El usua io pod á gua da el ca i o pulsando el bo ón de gua dado. Es a opción es a á habili ada pa a usua ios egis ados. Ilus ación 4-21 Bo ones del Ca i o Ca i os gua dados El usua io pod á accede a sus lis as de ca i os gua dados, median e el menú de usua io o el p opio pe il de usua io comen ado an e io men e, en la ges ión de usua ios. En el lis ado end á la opción de elimina o desca ga la lis a en o ma o pd . 38 Ilus ación 4-22 Ca i os Gua dados Compa ado En la página del compa ado se mos a án las lis as de los supe me cados con los p oduc os simila es a los que haya en el ca i o. El p ecio se mos a á en e de si es el más ba a o y en ojo si es el más ca o 39 Ilus ación 4-23 Compa ado de Lis as 40 Ilus ación 4-25 Caso de Uso Rece as Usua io No Regis ado Ges ión de ece as Los usua ios end án acceso a di e en es lis ados de ece as y aquellos que es én egis ados end án el p i ilegio de pode c ea ece as y ealiza o aciones. Ilus ación 4-26 Menú Rece as Ilus ación 4-24 Caso de Uso Rece as Usua io Regis ado 41 Lis ados Rece as Exis i án a ios lis ados de ece as, la página p incipal donde se mos a án odas las ece as y di e en es lis ados de ece as a o i as, c eadas po el usua io ac i o, de ca ego ías, de usua io. Ilus ación 4-27 Lis ado Rece as Po De ec o A los usua ios egis ados se les mos a á un menú de acceso a lis ados y c eación de ece as. 48 Se ha c eado un es ado de publicación pa a la ece a. La ece a pod á se publicada si iene an o ing edien es como pasos, si no, no pod á se publicada. Ilus ación 4-37 Bo ón Publicación Rece a La ece a puede ene el es ado de no publicada las cuales no les sald án a los demás usua ios, pe o sí al au o de la ece a en o o colo ( e de cla i o) di e en e a las ece as publicadas. 49 Ilus ación 4-38 Rece a No Publicada 50 Modi ica ece a / elimina ece a Los usua ios que han c eado una ece a end án la opción de pode edi a la ep esen ada po el icono de un lápiz y/ o de elimina la ep esen ada con un icono de papele a. Ilus ación 4-39 Bo ones de Elimina y Modi ica Rece a In e acción ece as ( a o i os y pun uación + comen a io) El usua io au en icado end á opción de in e ac ua con las ece as dando a o i o, pun uando la ece a y/o añadiendo un comen a io. Pa a añadi o qui a de a o i os una ece a el usua io pod á hace lo en las a je as de la ece a de los lis ados pulsando el icono del co azón. 51 Ilus ación 4-40 Bo ón Fa o i os Rece a El usua io au en icado pod á o a la ece a accediendo al de alle de la misma, pod á alo a la ece a y añadi un comen a io que no es obliga o io. Si el usua io ya ha o ado la ece a le sald á su o ación y no pod á ol e a o a . 52 Ilus ación 4-41Vo aciones Rece a Ges ión de die é ica Ilus ación 4-42 Caso de Uso Die é ica Usua io Regis ado/ Usua io No egis ado El apa ado de die é ica cons a de una página de in o mación nu icional y o a de una calculado a de calo ías ecomendadas. Podemos accede a dichas páginas a a és del menú p incipal. 53 Busca In o mación nu icional Ilus ación 4-43 Menú Die é ica-In o mación Nu icional El usua io ealiza á una búsqueda in oduciendo un é mino en el o mula io, si iene éxi o se mos a á los esul ados elacionados con esa búsqueda. Los lis ados de los p oduc os end án dos opciones: ● La in o mación del p oduc o, así como su alo nu icional Ilus ación 4-44 Valo Nu icional ● La in o mación nu icional del p oduc o 54 Ilus ación 4-45 In o mación Nu icional Calculado a Calo ías Ilus ación 4-46 Menú Die é ica-Calculado a de calo ías El usua io pod á ealiza un cálculo de las calo ías que debe á consumi con o me a di e sos ac o es, como su sexo, al u a, edad, peso y ecuencia de ac i idad ísica. Se ealiza á un cálculo y se in o ma án de las calo ías que debe á consumi . 55 Ilus ación 4-47 Calculado a de Calo ías 56 Ges ión de alimen os de empo ada Ilus ación 4-48 Caso de uso Alimen os de Tempo ada Usua io Regis ado/ Usua io No Regis ado Los usua ios end án acceso a un apa ado de alimen os de empo ada a a és del menú de na egación. Ilus ación 4-49 Menú Alimen os de Tempo ada 57 Lis ado Se mos a á un lis ado con odos los p oduc os donde se mos a án con colo los alimen os que es én en empo ada, semi anspa en es los alimen os que es án en ando o saliendo de empo ada y en g is los alimen os que no es án de empo ada. El usua io pod á il a los alimen os po meses o po ca ego ía. La página siemp e se inicia con el mes ac ual. Ilus ación 4-50 Lis ado Alimen os Tempo ada 64 Ilus ación 5-5 Es uc u a de ca pe as del módulo de Componen es ○ gua ds: Los gua ds [19] en Angula son un elemen o de segu idad y p o ección de is as que p opo ciona angula . En nues o caso las u ilizamos pa a da o no acceso a los usua ios dependiendo si son anónimos o au en icados. ○ in e aces: Es e di ec o io con iene las di e en es in e aces comunes independien es a los módulos que pueden de ini algún modelo necesa io pa a la aplicación. ○ pipes: Las pipes [20] de Angula son uncionalidad pa a ans o ma da os. En nues o caso de inimos algunos pipes cus om pa a el a amien o de cadenas de ex o que no p opo cionaba el co e de Angula . ○ se ice: Di ec o io con se icios gene ales. Po ejemplo, un se icio que hemos de inido pa a p opo ciona el lis ado po de aul de los supe me cados o de las ca ego ías de di icul ad de la ece a. ○ sha ed: En es e di ec o io se in oducen di ec i as [21] comunes a la aplicación. ○ componen e app: Es el componen e aíz y p incipal de la aplicación donde es á de inido el ou e ou le de angula . El ou e ou le es el 65 componen e donde se inyec an los demás componen es de la aplicación. ● asse s: Con iene las imágenes de la aplicación y a chi os necesa ios. ● En i onmen s: Se encuen an las con igu aciones y a iables de en o no. ● a icon: El a chi o del icono del p oyec o. ● index.h ml: A chi o de la página p incipal del p oyec o. ● main. s: Es el a chi o TypeSc ip inicial del p oyec o donde aplican las con igu aciones globales del p oyec o. Los demás a chi os son p opios del p oyec o y donde se ealizan con igu aciones an o del edi o , de gi , la con igu ación de angula e c. Es uc u a del backend En el desa ollo local se ha desplegado el se ido en el pue o 3007 den o del con enedo Docke . Se ha seguido el pa ón modelo-con olado con una sepa ación de esponsabilidades. Explica emos con inuación dos de las uncionalidades cla e que ealizamos en el se ido : la compa ación de p oduc os y la au en icación po oken. Compa ación de p oduc os La compa ación de p oduc os de supe me cado comienza con la c eación de un modelo “P oduc o” donde gua damos la in o mación de los da os sacados de los supe me cados. En el siguien e apa ado de las bases de da os se explica cómo es á cons uida la abla con iene los campos del modelo. Dos de esos campos son cla e pa a el p oceso de compa ación: la ma ca y el nomb e. Pa a en ende el p oceso p ime o explica emos cómo unciona algo i mo de compa ación. Apoyados en la lib e ía s ing-simila i y lo que hacemos es compa a el nomb e del p oduc o palab a po palab a has a encon a cadenas simila es de ol iendo un nume o en e 0 y 1. Cuan o más ce ca del uno, más palab as iguales hab á encon ado en e dos cadenas de palab as dadas, en nues o caso los nomb es. 66 El hecho de ene que modi ica las cadenas de los supe me cados y adap a las en e cada uno de ellos ue en pa e po es e ipo de algo i mo po que se daba el caso que palab as muy pa ecidas las hacía ma ch y el esul ado no e a el espe ado. Explicado el uncionamien o de como encon a nomb es simila es, pa a aco a más las posibilidades de éxi o lo que hacemos p ime o es compa a las ma cas. Si el p oduc o iene la misma ma ca, buscamos en ese sen ido y las posibilidades aumen an. Si no, di ec amen e compa amos el nomb e. Pod íamos in oluc a las p opias ca ego ías de los p oduc os, pe o ol e íamos al mismo p oblema comen ado con los nomb es, end íamos que uni ica c i e ios. Hemos es ablecido un mínimo pa a cuando se hace ma ch con la ma ca de 0.55 lo cual es un al o po cen aje, di e en e de cuando no es la misma ma ca que lo bajamos a 0.45 ya que así podemos encon a p oduc os más a iados, pe o con el hándicap de que a eces nos encon amos p oduc os que no ienen nada que e . Vamos gua dando el alo más al o encon ado an o del p oduc o con la misma ma ca, si lo iene, como del p oduc o con dis in a ma ca. A con inuación, mos amos pa e del código donde se e lo explicado an e io men e. Ilus ación 5-6 Pa e del código de compa ación de p oduc os Au en icación po Token Como hemos comen ado an e io men e hemos ealizado una au en icación po oken (JWT). Es o consis e en p opo ciona un oken al usua io al inicia sesión pa a 67 pe mi i ealiza solici udes al se ido desde el on end y se de uel an los da os. En es a pa e, si las cabece as de la pe ición aen el oken, a a és de un middlewa e, pe mi i á el acceso a la pe ición. Aquí mos amos pa es del código del se ido in oluc adas en es a uncionalidad: Ilus ación 5-7 Login de usua io y gene ación de oken Ilus ación 5-8 Ve i icación del oken 68 Ilus ación 5-9 Middlewa e de au en icación de un usua io Di ec o ios A con inuación, mos amos los di ec o ios del backend Ilus ación 5-10 Es uc u a de ca pe as Backend 69 ● con olle s: Di ec o io con los con olado es de la aplicación donde se ealiza la lógica. ● dis : Di ec o io donde se albe ga la build de la aplicación. ● models: Di ec o io donde de inimos los modelos con Sequelize. ● node_modules: Con iene odas las dependencias de nues o p oyec o. ● public: Di ec o io con los a chi os públicos del se ido . Donde se suben las imágenes, a chi os, e c. ● ou e s: Di ec o io que con iene las u as de la aplicación. ● u ils: A chi o con middlewa es gene ales, se icios y a chi os de con igu ación. En la aíz del backend nos podemos encon a con a chi os de con igu ación, el a chi o de las a iables de en o no y dos a chi os impo an es: ● app.js: Es e es el a chi o p incipal de la aplicación. El en y poin donde se inicia el se ido , dónde se impo an las lib e ías p incipales y se decla an las u as. ● con ig.js: En ese a chi o se ealiza la conexión a la base de da os. Es uc u a del Sc aping. ● Sc aping: en es a ca pe a es e con enido la lógica pa a hace el Web Sc aping en los di e en es supe me cados. Ilus ación 5-11 Es uc u a de ca pe as Sc aping Pa a desa olla los sc ip s de los sc aping, ealizamos un b e e es udio de cómo es aban es uc u adas las di e en es webs, de los supe me cados que a amos. Con ese 70 p e io es udio, iden i icamos si las webs con ienen ca gas dinámicas o no, y como se es uc u an los da os que que emos ob ene . Pa a el desa ollo de los sc ip s de sc aping, se c ea un axio que es una he amien a de Ja aSc ip , pa a en ia solici udes HTTP, en el c eamos una cabece a de na egado pa a pode en ia pe iciones a las webs de los supe me cados pa a e i a se iden i icados como un obo . Ilus ación 5-12 F agmen o Código Sc aping Axios Cada sc ip iene un o ma o di e en e, ya que cada web iene las e ique as de los nomb es, p ecios, imágenes, ca ego ías de los p oduc os, iden i icadas de di e en e o ma. En algunos casos hemos c eado una unción que imi a el sc oll que se ha ía en una web como en los casos de Dia, E oski y Alcampo, es e úl imo iden i icamos que los p oduc os se ca gan de o ma dinámica y lo que ealizamos es den o de la unción del sc oll la ecopilación de da os, ya que iden i icamos que cuando se hace sc oll en la página desapa ecen los da os con o me la isualización que se mos aba. 71 Ilus ación 5-13 F agmen o de Código sc aping Au oSc oll También en uno de los sc ip s enemos la in e p e ación de pulsa el bo ón de mos a más esul ados, en es e caso pa a el Aho amas. Se ealiza a a és del que ySelec o que lo que ealiza es busca en la página el bo ón de más esul ado, que iene la e ique a: show-mo e bu on-mo e. Ilus ación 5-14 F agmen o de Código “Bo ón Mas Resul ados” 72 Todos esos sc ip s una ez que han ecopilado los da os los an inse ando en una base de da os. Cuando se han ealizado las inse ciones en dicha base de da os, odos esos da os se expo an a la base de da os de alimen icia, pe o con una p e ia modi icación. Es a p e ia modi icación consis e en que, los nomb es de los p oduc os ex aídos de los supe me cados son di e en es, aunque se a e del mismo p oduc o, con ello nos dimos cuen a de que al ealiza la compa ación no lo hacía co ec amen e. Po an o, ealizamos una maque ación p e ia de los nomb es como se mues a en la siguien e imagen. Ilus ación 5-9 F agmen o de Código sc aping Au oSc oll An es de inse a los en la base de da os de Alimen icia, ab e iamos odas las unidades de medida que pueda habe , las sepa amos de sus dígi os, uni icamos odos los decímales y uni icamos la mane a de nomb a los packs. 73 Es uc u a de la base de da os de la aplicación web En es e apa ado explica emos cómo es á es uc u ada la base de da os de nues a aplicación pun o explica emos las dos bases de da os de las que disponemos una pa a el sc aping y o a pa a la aplicación gene al. Pa a la aplicación gene al, Alimen icia. És a con end á oda la in o mación de la aplicación pa a ealiza su co ec o uncionamien o, como los usua ios, las ece as, los alimen os de empo ada y los p oduc os modi icados de los supe me cados. La o a base de da os llamada Sc appingAlimen icia, con end á odos los p oduc os de los supe me cados en b u o. Base de da os: Alimen icia Pa a la c eación de las ablas de Alimen icia nos hemos apoyado en la lib e ía Sequelize pa a NodeJs que como hemos explicado an e io men e es un ORM pa a base de da os elacionales. Hemos de inido los siguien es modelos: ● Alimen o ● Almacenaje ● Bene icio ● Ca ego iaAlimen o ● Ca ego iaRece a ● Comp a ● P oduc o ● Valo acion ● Rece a ● Seleccion ● Tempo ada ● Usua io 80 Sc appingAlimen icia Ilus ación 6-3 Es uc u a Base de Da os sc aping Alimen icia Es a á compues a po cua o ablas con los siguien es nomb es, es as ablas con end án los p oduc os de los supe me cados: ● p oduc os_dia: con end á los p oduc os pe enecien es al supe me cado día. ● p oduc os_aho amas: con end á los p oduc os pe enecien es al supe me cado Aho amas. ● p oduc os_e oski: con end á los p oduc os pe enecien es al supe me cado E oski. ● p oduc os_alcampo: con end á los p oduc os pe enecien es al supe me cado Alcampo. Todas es as ablas con ienen es a es uc u a: ● id: cla e p ima ia de las ablas an e io es. ● id_p oduc o: iden i icado de cada uno de los p oduc os de los supe me cados. ● También con iene la in o mación del nomb e y la imagen. ● p ecioNo mal: es del ipo decimal, con iene el p ecio que iene el p oduc o. 81 ● p ecioO e a: es del ipo decimal, con iene el p ecio en o e a que iene el p oduc o. ● ma ca: Indica la ma ca del p oduc o. ● supe me cado: Indica el supe me cado que pe enece el p oduc o, si es del E oski, Aho amas, día o Alcampo ● También con ine es os a ibu os ca ego iaSupe 1, ca ego iaSupe 2 y ca ego iaSupe 3, que gua dan la ca ego ía p incipal del p oduc o, su subca ego ía p incipal y si iene subca ego ías. 82 83 Conclusiones y abajos u u os Conclusiones del abajo La ealización del p oyec o nos ha pe mi ido e oluciona en el desa ollo web. Los dos in eg an es del equipo abajamos en es e ámbi o y habe plan eado la ealización del p oyec o con unas ecnologías que no usamos en el día a día como puede se Angula y NodeJs, pa a noso os ha sido de una lección en adap abilidad y ap endizaje, además de una mo i ación pa a ap ende di e en es ecnologías. Se ha podido cumpli con las expec a i as ma cadas al p incipio, ealizando un análisis y abajo minucioso de Web sc aping, con odas las complicaciones que ello ha lle ado y alen izando en ocasiones el desa ollo, como el cambio de web en el supe me cado día una ez ealizado el p ime sc apeado eniendo que ol e a desa olla lo. Aun así, hemos conseguido inalmen e una compa ación de p oduc os en e supe me cados con un al o po cen aje de acie o y ese e a uno de nues os p incipales obje i os. Además, hemos ealizado una aplicación in ui i a y ápida aunando mucha uncionalidad que pensamos que es muy p o echosa pa a la gen e. Podemos conclui que hemos cumplido con el obje i o p opues o inicialmen e en el p oyec o, apo ando un alo di e encial con las di e en es aplicaciones que puede habe online, como es la compa a i a de p oduc os de supe me cado. Nos queda la espina de no habe podido ealiza al comple o el apa ado de die as, ya que una de las ideas iniciales es que los usua ios pudie an ealiza die as en base a p oduc os. Limi aciones En un ámbi o en el que se depende de e ce os como son p oduc os de supe me cados y no dispone de Apis públicas o de pago, el man enimien o de la aplicación es bas an e impo an e de ca a al u u o de la aplicación. El hecho de 84 depende de sc apea páginas y que es ás pudie an cambia , como así ha pasado du an e el p oyec o, exige da se icio cons an e. Líneas de abajo u u o. Du an e el desa ollo del p oyec o hemos ido iendo di e en es á eas que pueden po encia nues a aplicación, como po ejemplo de usa in eligencia a i icial en nues os algo i mos de compa ación que no pod ía ayuda en llega a un 100% de acie o y da un mejo esul ado. Algunas líneas pa a implemen a en un u u o son la c eación de a eas au omá icas, como el sc apeado de da os y su pos e io ans o mación. Es o nos ayuda ía en una co ec a ac ualización de da os de o ma au omá ica. También una de las ideas que nos su gie on du an e el p oyec o es da sopo e de susc ipción a los alimen os de empo ada. La gen e ecibi ía ale as en los cambios de mes, pudiendo obse a que p oduc os es án de empo ada. Compa i ece as po edes sociales, Wha sApp o co eo elec ónico es o a de las líneas que nos gus a ía implemen a pa a o ece al usua io uncionalidades ac uales de compa i . 85 In oduc ion Today, he economic si ua ion we li e in has c ea ed he need o many amilies o sa e on hei daily expenses. The ac ha he e is o en no enough ime o o ganize leads o excessi e consump ion and unnecessa y spending. Many amilies ha e had o adjus hei budge s and seek solu ions o educe expenses and op imize shopping mo e e icien ly. In his con ex , he idea o de eloping a web applica ion ha acili a es hese asks o people has eme ged. The documen will co e he p elimina y s udy and he alue ou applica ion p o ides (Chap e 2), he ools and echnologies used (Chap e 3) o p ojec de elopmen , as well as he unc ionali y and a chi ec u e o he applica ion componen s (Chap e s 4, 5, and 6). Finally, we will p esen conclusions and u u e di ec ions (Chap e 7). Mo i a ion Ha e we e e s opped o compa e di e en p ices o he same p oduc ac oss a ious supe ma ke s? O en, while shopping, we wonde i a p oduc would be cheape in ano he supe ma ke o i i ’s on sale. Alimen icia can be you g ea ally when making pu chases o acking di e en p oduc s o ind he bes deals. Addi ionally, when we p epa e a ecipe o come ac oss one in a pla o m, magazine, o ele ision, we o en wonde how much ha ecipe would cos . Alimen icia also p o ides he op ion o add he ing edien s om a ecipe and calcula e he cos based on ha . Fu he mo e, when we isi he supe ma ke , we some imes don’ know which p oduc s a e in season. As a esul , we may end up buying oods ha , al hough a ailable in he supe ma ke , a e p iced highe han du ing o he mon hs. Alimen icia ga he s in o ma ion abou ui s and ege ables, indica ing which mon hs hey a e in season o when hey a e going in o ou o season 86 Goals The main objec i e o his p ojec is o de elop a web applica ion ha assis s use s in easily and con enien ly ob aining supe ma ke p oduc p ices wi hou ha ing o access each co esponding page indi idually. This allows use s o compa e p oduc s and decide whe e o make hei pu chases. The applica ion also p o ides ea u es such as c ea ing a pe sonal o communi y ecipe book and calcula ing he o al p ice o a ecipe. Ano he goal o his p ojec is o de e mine which mon hs he main oods we consume a e in season. To achie e hese objec i es, he ollowing s eps ha e been aken: • Analyzing o he applica ions ela ed o ou s. • S udying and applying web sc aping echniques o au oma ic ex ac ion o da a and p oduc p ices om supe ma ke pages. • U ilizing public da a and APIs o enhance he applica ion’s unc ionali y as much as possible. • De eloping and implemen ing ea u es, including use egis a ion, compa ison algo i hms, and da abase managemen o smoo h pla o m ope a ion. • C ea ing documen a ion ha explains he c ea ion p ocess and de elopmen o he applica ion. Wo k plan To achie e he p ojec objec i es, we ha e o ganized he p ocess in o se e al phases, each adap ed o help us each ou p oposed goals: • Resea ch and Analysis: o In es iga e and analyze he main app oaches o applica ion de elopmen . o S udy he se ices o ools needed o de elopmen and in eg a ion wi h he chosen echnologies. 87 o Sea ch o publicly a ailable da a sou ces (such as ood da abases, nu i ion in o ma ion, logos, image banks, and icons). o Resea ch web sc aping echniques. o Examine o he simila applica ions. • Design and S uc u e: o C ea e he applica ion’s iews (use in e aces). o De ine he applica ion’s models (da a s uc u es). • De elopmen and Implemen a ion: o Pe o m web sc aping and in eg a e he da a wi h ou da abase. o Implemen he p oposed use cases. • Tes ing, Documen a ion, and Deli e y: o P epa e comp ehensi e documen a ion co e ing all aspec s o he de elopmen p ocess. Conclusions and u u e wo k Conclusions The comple ion o he p ojec has allowed us o e ol e in web de elopmen . Bo h eam membe s wo k in his ield, and p oposing he p ojec using echnologies we don’ use in ou day- o-day wo k, such as Angula and Node.js, has been a lesson in adap abili y and lea ning o us. I has also mo i a ed us o explo e di e en echnologies. We managed o mee he expec a ions se a he beginning by conduc ing ho ough web sc aping analysis and wo k. Despi e he complica ions and occasional slowdowns due o changes in supe ma ke websi es (such as he need o ede elop a e he ini ial sc aping), we ul ima ely achie ed a success ul p oduc compa ison be ween supe ma ke s, which was one o ou main objec i es. 88 Addi ionally, we c ea ed an in ui i e and as applica ion ha combines many use ul ea u es o use s. In summa y, we ul illed he ini ial p ojec objec i e, p o iding a unique alue compa ed o o he online applica ions, such as supe ma ke p oduc compa ison. Howe e , we eg e no being able o ully implemen he die a y sec ion. One o ou ini ial ideas was o allow use s o c ea e die s based on p oduc s. Limi a ions In a con ex whe e one elies on hi d-pa y p oduc s such as supe ma ke i ems and does no ha e access o public o paid APIs, main aining he applica ion is qui e impo an o i s u u e. Depending on web sc aping and he possibili y o pages changing, as has happened du ing he p ojec , equi es cons an se ice. Fu u e Wo k Du ing he p ojec de elopmen , we ha e iden i ied di e en a eas ha could enhance ou applica ion. Fo example, using a i icial in elligence in ou compa ison algo i hms could help achie e be e accu acy and esul s. Some u u e implemen a ion ideas include c ea ing au oma ed asks, such as da a sc aping and ans o ma ion, o ensu e p ope da a upda es au oma ically. Addi ionally, p o iding subsc ip ion suppo o seasonal oods, whe e use s ecei e ale s du ing mon h changes o see which p oduc s a e in season, is ano he ea u e we’d like o implemen . Sha ing ecipes ia social media, Wha sApp, o email is also on ou lis o o e use s cu en sha ing capabili ies. 89 Con ibuciones Pe sonales Pa a la ealización de es e p oyec o nos hemos o ganizado de o ma con inua en la mayo ía del iempo que ha du ado el p oyec o. El p ime e cio cada uno hizo un análisis de odo el p oyec o y de los casos que conside amos impo an es ( ecnologías, web sc aping, aplicaciones del me cado). Conjun amen e in es igamos cómo y dónde pod íamos desplega la aplicación en la web. También hicimos la búsqueda de in o mación de los alimen os de empo ada, así como los asse s de mane a conjun a sin ene en cuen a la can idad que cada uno ecogía. Una ez comenzamos con el desa ollo, nos euníamos pa a analiza el caso de uso y empeza el desa ollo conjun amen e. Se puede deci que pa a la mayo ía del desa ollo hemos usado una écnica llamada pai p og aming. [22] A con inuación, explica emos que pa es ha podido ealiza cada alumno de o ma indi idual Jesús Velez Ayuso • Es udio p e io de las ecnologías a u iliza . D upal y La a el siemp e es u ie on en la cabeza po los conocimien os en php que enemos, pe o al inal nos decidimos po Angula , ya que no necesi ábamos un CMS an po en e pa a desa olla la aplicación y Angula suponía un desa ío pa a noso os al ene que desa olla una aplicación di e en e y al inal nos decidimos po Angula , in i ió el iempo en conoce es e lenguaje de p og amación, aunque Da id ya disponía de cie os conocimien os. También In es igó como mon a un Docke con MySQL, angula y node pa a el desa ollo local. • Web Sc aping Análisis de los nomb es de los supe me cados, así como sus ca ego ías pa a su 96 Ilus ación B-0-3 De alle alimen o buscado 97 Ilus ación B-0-4 Lis ado ece a 98 Ilus ación B-0-5 De alle de la ece a 99 Ilus ación B-0-6 In o mación nu icional de alimen o 100 Ilus ación B-0-7 Calculado a de calo ías 101 Ilus ación B-0-8 Alimen os de empo ada 102 Ilus ación B-0-9 Alimen o de empo ada Adjun amos ambién un pd a un d i e donde comple amos odas las in e aces que hicimos inicialmen e: • h ps://d i e.google.com/ ile/d/1VK2IS43mWeqkZ0 NRzWNgiUYbyY P1xZ/ iew?usp=sha ing 103 Apéndice C - Bibliog a ía alimen os de empo ada Adjun amos un pd con las páginas web donde uimos ecopilando oda la in o mación de los alimen os que apa ecen en el apa ado de alimen os de empo ada (No hemos que ido mos a los enlaces en la memo ia po que son 15 páginas de enlaces) Adjun amos cap u as y el enlace al d i e p i ado accesible con enlace: • h ps://d i e.google.com/ ile/d/1HkRiL1e8FFckh3x LUi6oh8jS8mZsKVE/ iew ?usp=sha ing Ilus ación C-0-10 Bibliog a ía de alimen os de empo ada