Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial
El propósito de este proyecto fue desarrollar una aplicación móvil para el sistema operativo Android que permita realizar la búsqueda de recetas por medio de cuatro alternativas diferentes, asimismo que pudiera recomendar recetas basadas en el historial particular de cada usuario, esto se logró util...
- Autores:
-
Castellanos Becerra, José Daniel
Niño Parada, Emerson Giovanni
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2021
- Institución:
- Universidad Autónoma de Bucaramanga - UNAB
- Repositorio:
- Repositorio UNAB
- Idioma:
- spa
- OAI Identifier:
- oai:repository.unab.edu.co:20.500.12749/16258
- Acceso en línea:
- http://hdl.handle.net/20.500.12749/16258
- Palabra clave:
- Systems engineer
Technological innovations
Feeding
Cook
Prescriptions
Mobile app
Artificial intelligence
Prototype development
Algorithms
Simulation methods
Programming language
Ingeniería de sistemas
Innovaciones tecnológicas
Desarrollo de prototipos
Algoritmos
Métodos de simulación
Lenguaje de programación
Alimentación
Cocinar
Recetas
Aplicación móvil
API REST
Inteligencia artificial
- Rights
- License
- http://creativecommons.org/licenses/by-nc-nd/2.5/co/
id |
UNAB2_112f94474c3e03d31b4aada72c72e84f |
---|---|
oai_identifier_str |
oai:repository.unab.edu.co:20.500.12749/16258 |
network_acronym_str |
UNAB2 |
network_name_str |
Repositorio UNAB |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
dc.title.translated.spa.fl_str_mv |
Mobile application prototype for the suggestion of culinary recipes using artificial intelligence algorithms |
title |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
spellingShingle |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial Systems engineer Technological innovations Feeding Cook Prescriptions Mobile app Artificial intelligence Prototype development Algorithms Simulation methods Programming language Ingeniería de sistemas Innovaciones tecnológicas Desarrollo de prototipos Algoritmos Métodos de simulación Lenguaje de programación Alimentación Cocinar Recetas Aplicación móvil API REST Inteligencia artificial |
title_short |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
title_full |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
title_fullStr |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
title_full_unstemmed |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
title_sort |
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial |
dc.creator.fl_str_mv |
Castellanos Becerra, José Daniel Niño Parada, Emerson Giovanni |
dc.contributor.advisor.none.fl_str_mv |
Cárdenas Arenas, Juan Sebastián |
dc.contributor.author.none.fl_str_mv |
Castellanos Becerra, José Daniel Niño Parada, Emerson Giovanni |
dc.contributor.cvlac.spa.fl_str_mv |
Cárdenas Arenas, Juan Sebastián [0001387212] |
dc.contributor.cvlac.none.fl_str_mv |
Cárdenas Arenas, Juan Sebastián [0001387212] |
dc.contributor.linkedin.none.fl_str_mv |
Cárdenas Arenas, Juan Sebastián [juan-sebastián-cárdenas-arenas-58904a186] |
dc.subject.keywords.spa.fl_str_mv |
Systems engineer Technological innovations Feeding Cook Prescriptions Mobile app Artificial intelligence Prototype development Algorithms Simulation methods Programming language |
topic |
Systems engineer Technological innovations Feeding Cook Prescriptions Mobile app Artificial intelligence Prototype development Algorithms Simulation methods Programming language Ingeniería de sistemas Innovaciones tecnológicas Desarrollo de prototipos Algoritmos Métodos de simulación Lenguaje de programación Alimentación Cocinar Recetas Aplicación móvil API REST Inteligencia artificial |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería de sistemas Innovaciones tecnológicas Desarrollo de prototipos Algoritmos Métodos de simulación Lenguaje de programación |
dc.subject.proposal.spa.fl_str_mv |
Alimentación Cocinar Recetas Aplicación móvil API REST Inteligencia artificial |
description |
El propósito de este proyecto fue desarrollar una aplicación móvil para el sistema operativo Android que permita realizar la búsqueda de recetas por medio de cuatro alternativas diferentes, asimismo que pudiera recomendar recetas basadas en el historial particular de cada usuario, esto se logró utilizando algoritmos de inteligencia artificial. Para dar cumplimiento y desarrollar lo planteado anteriormente fue necesario emplear la metodología de desarrollo de cascada que consiste en dividir el desarrollo en cinco fases diferentes que nos permiten definir una serie de actividades para cada fase y así estructurar el desarrollo en el tiempo para cumplir con el alcance definido. Las fases mencionadas previamente son requerimientos de software, diseño, implementación, verificación, y construcción de la documentación. Para la fase de requerimientos se realizaron encuestas y entrevistas a los posibles usuarios de la aplicación para conocer sobre las habilidades culinarias y preferencias de las personas a la hora de buscar nuevas recetas. En la fase de diseño se construyeron los mockups para tener una idea visual de cómo quedaría la aplicación, y todos los diagramas pertinentes y necesarios para tener una idea global del funcionamiento del sistema y de los componentes que la conforman. El desarrollo del sistema estuvo compuesto por la construcción de tres componentes: la aplicación móvil, un API REST para la búsqueda de recetas y otro con el módulo de recomendaciones basado en contenido. La aplicación móvil se desarrolló haciendo uso del IDE Android Studio, siguiendo un patrón de arquitectura basado en MVVM sin el componente View Model. Las API REST se desplegaron en Node.js y Django, la primera se encarga de gestionar las recetas y usuarios almacenados en una base de datos no relacional alojada en MongoDB y la segunda se encarga del algoritmo de recomendaciones. Finalmente, mediante el uso de librerías y algoritmos de inteligencia artificial, el módulo de recomendaciones presenta sugerencias de recetas basándose en el contenido que ve el usuario. |
publishDate |
2021 |
dc.date.issued.none.fl_str_mv |
2021 |
dc.date.accessioned.none.fl_str_mv |
2022-04-22T15:16:39Z |
dc.date.available.none.fl_str_mv |
2022-04-22T15:16:39Z |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.local.spa.fl_str_mv |
Trabajo de Grado |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.redcol.none.fl_str_mv |
http://purl.org/redcol/resource_type/TP |
format |
http://purl.org/coar/resource_type/c_7a1f |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/20.500.12749/16258 |
dc.identifier.instname.spa.fl_str_mv |
instname:Universidad Autónoma de Bucaramanga - UNAB |
dc.identifier.reponame.spa.fl_str_mv |
reponame:Repositorio Institucional UNAB |
dc.identifier.repourl.spa.fl_str_mv |
repourl:https://repository.unab.edu.co |
url |
http://hdl.handle.net/20.500.12749/16258 |
identifier_str_mv |
instname:Universidad Autónoma de Bucaramanga - UNAB reponame:Repositorio Institucional UNAB repourl:https://repository.unab.edu.co |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.relation.references.spa.fl_str_mv |
About: NLTK. (s.f.). Obtenido de DBpedia: https://es.dbpedia.org/page/NLTK Adeva, R. (3 de Marzo de 2021). Qué es Android: todo sobre el sistema operativo de Google. Obtenido de adslzone.net: https://www.adslzone.net/reportajes/software/que-es-android/ Alarcón, J. M. (23 de Octubre de 2017). ¿Qué es la máquina virtual de Java o Java Virtual Machine? Obtenido de campusmvp.es: https://www.campusmvp.es/recursos/post/que-es-la-maquina-virtual-de-j ava-o-java-virtual-machine.aspx Basterra, Bertea, Borello, Castillo, & Venturi. (27 de Septiembre de 2017). Android OS Documentation Release 0.1. Obtenido de readthedocs.org: https://readthedocs.org/projects/androidos/downloads/pdf/latest/ Betarte, L., Machado, R., & Molina, V. (2006). PGMúsica sistema de recomendación de música. Obtenido de Universidad de la República: https://www.colibri.udelar.edu.uy/jspui/bitstream/20.500.12008/3089/1/tg -betarte.pdf Camino Bueno, P. (3 de Agosto de 2018). Qué es Django y por qué usarlo. Obtenido de openwebinars.net: https://openwebinars.net/blog/que-es-django-y-por-que-usarlo/ Casado Losada, A. (10 de Octubre de 2019). Desarrollo de una app para la promoción de hábitos saludables. Obtenido de Universidad Carlos III de Madrid: https://e-archivo.uc3m.es/bitstream/handle/10016/30141/TFG_Adrian_L osada_Casado_2019.pdf Cómo crear listas dinámicas con RecyclerView. (s.f.). Obtenido de Developers Android: https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=es419 Content, R. R. (20 de Abril de 2019). ¿Qué es un lenguaje de programación y qué tipos existen? Obtenido de rockcontent: https://rockcontent.com/es/blog/que-es-un-lenguaje-de-programacion/ Delgado, C. (29 de Marzo de 2021). ¿Qué es un IDE (entorno de desarrollo integrado)? Obtenido de ourcodeworld.co: https://ourcodeworld.co/articulos/leer/1469/que-es-un-ide-entorno-de-de sarrollo-integrado Domínguez, P. (2 de Junio de 2020). En qué consiste el modelo en cascada. Obtenido de https://openclassrooms.com: https://openclassrooms.com/en/courses/4309151-gestiona-tu-proyectode-desarrollo/4538221-en-que-consiste-el-modelo-en-cascada Fernández, Y. (30 de Octubre de 2019). Qué es Github y qué es lo que le ofrece a los desarrolladores. Obtenido de xataka.com: https://www.xataka.com/basics/que-github-que-que-le-ofrece-a-desarroll adores Fragmentos. (s.f.). Obtenido de Developers Android: https://developer.android.com/guide/components/fragments?hl=es Galpin, I. (2019). DenunciApp: Diseño e Implementación de una Aplicación Móvil para la Denuncia de Delitos Ambientales. Obtenido de Universidad Santo Tomás: https://repository.usta.edu.co/bitstream/handle/11634/22061/2019Ixentg alpin.pdf Garrido, D. (2 de Noviembre de 2017). Cultura Colectiva. Obtenido de https://culturacolectiva.com/comida/enfermedades-por-comer-en-la-calle Gil, Y. (17 de Julio de 2017). Foodiefy, más que una app de recetas. Obtenido de Universidad Politécnica de Cataluña: https://upcommons.upc.edu/bitstream/handle/2117/107621/Memoria-TF G_YtarteRoger.pdf Gomez Jaramillo, S., Mora Ruiz, A., & Lema Perez, J. F. (13 de Diciembre de 2018). Desarrollo de sistema de recomendacion basado en conocimiento para apoyar la enseñanza del desarrollo web a traves de recursos educativos abiertos. Obtenido de Tecnológico de Antioquia Institución Universitaria: https://dspace.tdea.edu.co/handle/tda/448 González, A. (s.f.). ¿Qué es Machine Learning? Obtenido de cleverdata.io: https://cleverdata.io/que-es-machine-learning-big-data/ González, A. (s.f.). Sistemas de recomendación de contenido con Machine Learning. Obtenido de cleverdata.io: https://cleverdata.io/sistemas-recomendacion-machine-learning/ Hernández Rojas, N. M. (2019). Recomendación de cursos basada en filtrado colaborativo e información de perfiles sociales y estudiantiles. Obtenido de Universidad de los Andes: https://repositorio.uniandes.edu.co/bitstream/handle/1992/44578/u8307 18.pdf Marin Rios, J. S. (Noviembre de 2019). Aplicación móvil “TecnoWilly”. Obtenido de Corporación Universitaria Minuto de Dios Uniminuto Sede Bello: https://repository.uniminuto.edu/bitstream/handle/10656/11141/T.TI_Marí nRiosJuanSebastian_2019.pdf Martínez Canelo, M. (2 de Noviembre de 2020). ¿Qué es la Programación Orientada a Objetos? Obtenido de profile.es: https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ Núñez Valdéz, E. R. (6 de Julio de 2012). Sistemas de recomendación de contenidos para libros inteligentes. Obtenido de Universidad de Oviedo: https://digibuo.uniovi.es/dspace/handle/10651/13126 Oracle. (s.f.). ¿Qué es la Inteligencia Artificial? Obtenido de oracle.com: https://www.oracle.com/co/artificial-intelligence/what-is-ai/ Orts Romero, J. V. (Julio de 2016). Aplicación Web: Recetarium. Obtenido de Universidad de Alicante: https://rua.ua.es/dspace/bitstream/10045/57066/1/Recetario_Tus_recet as_siempre_contigo_ORTS_ROMERO_JOSE_VICENTE.pdf Pavón Piedra, C. G. (2020). Análisis, diseño y desarrollo de un aplicativo móvil para obtener recetas de cocina en base a ingredientes que se tengan a la mano. Obtenido de Pontificia Universidad Católica del Ecuador: http://repositorio.puce.edu.ec/bitstream/handle/22000/18058/TrabajoDis ertacionCarlosPavon%20%281%29.pdf Pérez, A. (26 de Junio de 2016). ¿Qué son las metodologías de desarrollo de software? Obtenido de obsbusiness.school: https://www.obsbusiness.school/blog/que-son-las-metodologias-de-desa rrollo-de-software Preprocesamiento de datos con sklearn. (s.f.). Obtenido de Universitat Oberta de Catalunya: http://datascience.recursos.uoc.edu/es/preprocesamiento-de-datos-consklearn/ Recomendaciones basado en contenido en Python. (s.f.). Obtenido de Stat Developer: https://www.statdeveloper.com/recomendaciones-basado-en-contenidoen-python/ RedHat. (s.f.). ¿Qué es una API de REST? Obtenido de redhat.com: https://www.redhat.com/es/topics/api/what-is-a-rest-api RedHat. (s.f.). Qué son las API y para qué sirven. Obtenido de redhat.com: https://www.redhat.com/es/topics/api/what-are-application-programminginterfaces Robledano, Á. (23 de Septiembre de 2019). Qué es Python: Características, evolución y futuro. Obtenido de OpenWebinars: https://openwebinars.net/blog/que-es-python/ Rodríguez Sirgado, M. (Agosto de 2011). EAE Business School. Obtenido de https://www.abc.es/gestordocumental/uploads/Sociedad/comida-rapida. pdf Rubio, J. C. (25 de Febrero de 2019). Qué es GIT y para qué sirve. Obtenido de openwebinars.net: https://openwebinars.net/blog/que-es-git-y-para-que-sirve/ Sánchez, A. (4 de Octubre de 2020). La librería Numpy. Obtenido de Aprende con Alf: https://aprendeconalf.es/docencia/python/manual/numpy/ SEAS, E. S. (17 de Julio de 2019). Conoce el lenguaje de programación Java. Obtenido de seas.es: https://www.seas.es/blog/informatica/conoce-el-lenguaje-de-programaci on-java/ Tena, M. (28 de Agosto de 2020). ¿Qué es la metodología 'agile'? Obtenido de bbva.com: https://www.bbva.com/es/metodologia-agile-la-revolucion-las-formas-tra bajo/ Torre, M. (2021). ¿Qué es un framework y para qué se utiliza? Obtenido de ondesarrollo.com: https://ondesarrollo.com/que-es-un-framework-y-para-que-se-utiliza/ Traslaviña Amador, D. C. (12 de Abril de 2019). America Retail. Obtenido de https://www.america-retail.com/colombia/colombia-colombianos-cada-ve z-comen-mas-fuera-de-casa/ Trecet, J. (28 de Agosto de 2018). El blog de Aegon. Obtenido de https://blog.aegon.es/ahorro/cuanto-ahorras-de-verdad-cocinando-en-ca sa/ Uso de CountVectorizer para extraer características de texto. (s.f.). Obtenido de Acervo Lima: https://es.acervolima.com/2021/02/09/uso-de-countvectorizer-para-extra er-caracteristicas-de-texto/ Vásquez Pluas, D. P. (2020). Desarrollo de un prototipo mooc para el análisis de preferencia, predicción y progresos de usuarios, mediante sistemas de recomendación basados en deep learning. Obtenido de Repositorio Institucional de la Universidad de Guayaquil: http://repositorio.ug.edu.ec/bitstream/redug/49550/1/B-CISC-PTG-18012020%20Vásquez%20Pluas%2c%20Douglas%20Paul.pdf Villanueva Mejía, G. J., Sánchez Corea, D. M., & Frank, M. T. (2019). Desarrollo de una app móvil para dispositivos con sistema operativo Android, que servirá como diccionario digital español-mayangna. Obtenido de Universidad Nacional Autónoma de Nicaragua: http://riul.unanleon.edu.ni:8080/jspui/bitstream/123456789/7088/1/2420 54.pdf |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/co/ |
dc.rights.local.spa.fl_str_mv |
Abierto (Texto Completo) |
dc.rights.creativecommons.*.fl_str_mv |
Atribución-NoComercial-SinDerivadas 2.5 Colombia |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/co/ Abierto (Texto Completo) Atribución-NoComercial-SinDerivadas 2.5 Colombia http://purl.org/coar/access_right/c_abf2 |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.coverage.spatial.spa.fl_str_mv |
Colombia |
dc.coverage.campus.spa.fl_str_mv |
UNAB Campus Bucaramanga |
dc.publisher.grantor.spa.fl_str_mv |
Universidad Autónoma de Bucaramanga UNAB |
dc.publisher.faculty.spa.fl_str_mv |
Facultad Ingeniería |
dc.publisher.program.spa.fl_str_mv |
Pregrado Ingeniería de Sistemas |
institution |
Universidad Autónoma de Bucaramanga - UNAB |
bitstream.url.fl_str_mv |
https://repository.unab.edu.co/bitstream/20.500.12749/16258/1/2021_Tesis_Jose_Daniel_Castellanos.pdf https://repository.unab.edu.co/bitstream/20.500.12749/16258/2/2021_Licencia_Jose_Daniel_Castellanos.pdf https://repository.unab.edu.co/bitstream/20.500.12749/16258/3/license.txt https://repository.unab.edu.co/bitstream/20.500.12749/16258/4/2021_Tesis_Jose_Daniel_Castellanos.pdf.jpg https://repository.unab.edu.co/bitstream/20.500.12749/16258/5/2021_Licencia_Jose_Daniel_Castellanos.pdf.jpg |
bitstream.checksum.fl_str_mv |
f03021d5262f4512e1c3e264155cd3d4 d1bf6cb7347bb6f10c59e00f29bd60ad 3755c0cfdb77e29f2b9125d7a45dd316 0bc3bd6bcef3c02022fa38495bc8788f 8dff12447a01013394410c0c9595119d |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional | Universidad Autónoma de Bucaramanga - UNAB |
repository.mail.fl_str_mv |
repositorio@unab.edu.co |
_version_ |
1814277277757734912 |
spelling |
Cárdenas Arenas, Juan Sebastián85b92033-6404-462a-be44-02b7acff61c6Castellanos Becerra, José Danielfbc1b391-9f39-4a06-970e-4cb9b57c2a56Niño Parada, Emerson Giovannie64d139b-ecc6-44fb-9588-9001b51bd98bCárdenas Arenas, Juan Sebastián [0001387212]Cárdenas Arenas, Juan Sebastián [0001387212]Cárdenas Arenas, Juan Sebastián [juan-sebastián-cárdenas-arenas-58904a186]ColombiaUNAB Campus Bucaramanga2022-04-22T15:16:39Z2022-04-22T15:16:39Z2021http://hdl.handle.net/20.500.12749/16258instname:Universidad Autónoma de Bucaramanga - UNABreponame:Repositorio Institucional UNABrepourl:https://repository.unab.edu.coEl propósito de este proyecto fue desarrollar una aplicación móvil para el sistema operativo Android que permita realizar la búsqueda de recetas por medio de cuatro alternativas diferentes, asimismo que pudiera recomendar recetas basadas en el historial particular de cada usuario, esto se logró utilizando algoritmos de inteligencia artificial. Para dar cumplimiento y desarrollar lo planteado anteriormente fue necesario emplear la metodología de desarrollo de cascada que consiste en dividir el desarrollo en cinco fases diferentes que nos permiten definir una serie de actividades para cada fase y así estructurar el desarrollo en el tiempo para cumplir con el alcance definido. Las fases mencionadas previamente son requerimientos de software, diseño, implementación, verificación, y construcción de la documentación. Para la fase de requerimientos se realizaron encuestas y entrevistas a los posibles usuarios de la aplicación para conocer sobre las habilidades culinarias y preferencias de las personas a la hora de buscar nuevas recetas. En la fase de diseño se construyeron los mockups para tener una idea visual de cómo quedaría la aplicación, y todos los diagramas pertinentes y necesarios para tener una idea global del funcionamiento del sistema y de los componentes que la conforman. El desarrollo del sistema estuvo compuesto por la construcción de tres componentes: la aplicación móvil, un API REST para la búsqueda de recetas y otro con el módulo de recomendaciones basado en contenido. La aplicación móvil se desarrolló haciendo uso del IDE Android Studio, siguiendo un patrón de arquitectura basado en MVVM sin el componente View Model. Las API REST se desplegaron en Node.js y Django, la primera se encarga de gestionar las recetas y usuarios almacenados en una base de datos no relacional alojada en MongoDB y la segunda se encarga del algoritmo de recomendaciones. Finalmente, mediante el uso de librerías y algoritmos de inteligencia artificial, el módulo de recomendaciones presenta sugerencias de recetas basándose en el contenido que ve el usuario.LISTA DE TABLAS 6 LISTA DE FIGURAS 7 LISTA DE ANEXOS 10 RESUMEN 11 INTRODUCCIÓN 12 CAPÍTULO 1: MARCO REFERENCIAL 13 MARCO CONCEPTUAL 13 Lenguaje de programación 13 POO 14 Python 16 Java 17 JVM (Java Virtual Machine) 18 Framework 19 Django 20 API (Application programing interface) 20 API REST 21 Entorno de desarrollo integrado (IDE) 22 Android Studio 22 Android 23 Arquitectura de Android 24 Versiones de Android 26 Inteligencia Artificial 27 Machine learning 28 Sistema de recomendación 28 Los filtros colaborativos 29 Los filtros basados en contenido 29 Metodología de desarrollo de software 29 Git 30 GitHub 30 ESTADO DEL ARTE 32 CAPÍTULO 2: METODOLOGÍA DE DESARROLLO Y ACTIVIDADES 38 METODOLOGÍA DE DESARROLLO 38 ACTIVIDADES 40 CAPÍTULO 3: DESARROLLO DE LA SOLUCIÓN TECNOLÓGICA 43 FASE 1: REQUISITOS DEL SOFTWARE 43 Definición de las preguntas de la encuesta 43 Definición de las preguntas de la entrevista 44 Clasificación de los resultados obtenidos 45 Redacción del acta de requerimientos 46 FASE 2: DISEÑO DE LA APLICACIÓN 46 Realización los mockups de todas las vistas de la aplicación. 46 Construcción del modelo relacional del software. 47 Construcción del modelo de casos de uso. 48 Construcción del diagrama de clases. 50 Construcción del documento de arquitectura del software. 50 FASE 3: DESARROLLO DEL SISTEMA 51 Definición del API REST 52 Realizar la conexión al API REST de Spoonacular 61 Desarrollar el módulo de autenticación del API REST 61 Construir las vistas de la aplicación móvil 64 Construir la lógica de la aplicación móvil 79 Creación del módulo de recomendaciones basado en contenido 113 Integrar el módulo de recomendación con la aplicación 117 FASE 4: CONSTRUIR LA DOCUMENTACIÓN 117 Diseñar un manual de instalación del API REST 117 Diseñar un manual de usuario de la aplicación móvil. 126 Construir el documento final de trabajo de grado. 126 CONCLUSIONES 128 RECOMENDACIONES O TRABAJOS FUTUROS 129 REFERENCIAS BIBLIOGRÁFICAS 130 ANEXOS 135PregradoThe purpose of this project was to develop a mobile application for the Android operating system that allows searching for recipes through four different alternatives, as well as being able to recommend recipes based on the particular history of each user, this was achieved using intelligence algorithms. artificial. In order to comply with and develop what was stated above, it was necessary to use the waterfall development methodology, which consists of dividing the development into five different phases that allow us to define a series of activities for each phase and thus structure the development over time to comply with the objective. defined scope. The previously mentioned phases are software requirements, design, implementation, verification, and documentation construction. For the requirements phase, surveys and interviews were conducted with potential users of the application to learn about the culinary skills and preferences of people when looking for new recipes. In the design phase, the mockups were built to have a visual idea of how the application would look like, and all the pertinent and necessary diagrams to have a global idea of the operation of the system and the components that make it up. The development of the system was made up of the construction of three components: the mobile application, a REST API for searching recipes and another with the content-based recommendation module. The mobile application was developed using the Android Studio IDE, following an architecture pattern based on MVVM without the View Model component. The REST APIs were deployed in Node.js and Django, the first one is in charge of managing the recipes and users stored in a non-relational database hosted in MongoDB and the second one is in charge of the recommendation algorithm. Finally, through the use of artificial intelligence libraries and algorithms, the recommendation module presents recipe suggestions based on the content that the user sees.Modalidad Presencialapplication/pdfspahttp://creativecommons.org/licenses/by-nc-nd/2.5/co/Abierto (Texto Completo)Atribución-NoComercial-SinDerivadas 2.5 Colombiahttp://purl.org/coar/access_right/c_abf2Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificialMobile application prototype for the suggestion of culinary recipes using artificial intelligence algorithmsIngeniero de SistemasUniversidad Autónoma de Bucaramanga UNABFacultad IngenieríaPregrado Ingeniería de Sistemasinfo:eu-repo/semantics/bachelorThesisTrabajo de Gradohttp://purl.org/coar/resource_type/c_7a1fhttp://purl.org/redcol/resource_type/TPSystems engineerTechnological innovationsFeedingCookPrescriptionsMobile appArtificial intelligencePrototype developmentAlgorithmsSimulation methodsProgramming languageIngeniería de sistemasInnovaciones tecnológicasDesarrollo de prototiposAlgoritmosMétodos de simulaciónLenguaje de programaciónAlimentaciónCocinarRecetasAplicación móvilAPI RESTInteligencia artificialAbout: NLTK. (s.f.). Obtenido de DBpedia: https://es.dbpedia.org/page/NLTKAdeva, R. (3 de Marzo de 2021). Qué es Android: todo sobre el sistema operativo de Google. Obtenido de adslzone.net: https://www.adslzone.net/reportajes/software/que-es-android/Alarcón, J. M. (23 de Octubre de 2017). ¿Qué es la máquina virtual de Java o Java Virtual Machine? Obtenido de campusmvp.es: https://www.campusmvp.es/recursos/post/que-es-la-maquina-virtual-de-j ava-o-java-virtual-machine.aspxBasterra, Bertea, Borello, Castillo, & Venturi. (27 de Septiembre de 2017). Android OS Documentation Release 0.1. Obtenido de readthedocs.org: https://readthedocs.org/projects/androidos/downloads/pdf/latest/Betarte, L., Machado, R., & Molina, V. (2006). PGMúsica sistema de recomendación de música. Obtenido de Universidad de la República: https://www.colibri.udelar.edu.uy/jspui/bitstream/20.500.12008/3089/1/tg -betarte.pdfCamino Bueno, P. (3 de Agosto de 2018). Qué es Django y por qué usarlo. Obtenido de openwebinars.net: https://openwebinars.net/blog/que-es-django-y-por-que-usarlo/Casado Losada, A. (10 de Octubre de 2019). Desarrollo de una app para la promoción de hábitos saludables. Obtenido de Universidad Carlos III de Madrid: https://e-archivo.uc3m.es/bitstream/handle/10016/30141/TFG_Adrian_L osada_Casado_2019.pdfCómo crear listas dinámicas con RecyclerView. (s.f.). Obtenido de Developers Android: https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=es419Content, R. R. (20 de Abril de 2019). ¿Qué es un lenguaje de programación y qué tipos existen? Obtenido de rockcontent: https://rockcontent.com/es/blog/que-es-un-lenguaje-de-programacion/Delgado, C. (29 de Marzo de 2021). ¿Qué es un IDE (entorno de desarrollo integrado)? Obtenido de ourcodeworld.co: https://ourcodeworld.co/articulos/leer/1469/que-es-un-ide-entorno-de-de sarrollo-integradoDomínguez, P. (2 de Junio de 2020). En qué consiste el modelo en cascada. Obtenido de https://openclassrooms.com: https://openclassrooms.com/en/courses/4309151-gestiona-tu-proyectode-desarrollo/4538221-en-que-consiste-el-modelo-en-cascadaFernández, Y. (30 de Octubre de 2019). Qué es Github y qué es lo que le ofrece a los desarrolladores. Obtenido de xataka.com: https://www.xataka.com/basics/que-github-que-que-le-ofrece-a-desarroll adoresFragmentos. (s.f.). Obtenido de Developers Android: https://developer.android.com/guide/components/fragments?hl=esGalpin, I. (2019). DenunciApp: Diseño e Implementación de una Aplicación Móvil para la Denuncia de Delitos Ambientales. Obtenido de Universidad Santo Tomás: https://repository.usta.edu.co/bitstream/handle/11634/22061/2019Ixentg alpin.pdfGarrido, D. (2 de Noviembre de 2017). Cultura Colectiva. Obtenido de https://culturacolectiva.com/comida/enfermedades-por-comer-en-la-calleGil, Y. (17 de Julio de 2017). Foodiefy, más que una app de recetas. Obtenido de Universidad Politécnica de Cataluña: https://upcommons.upc.edu/bitstream/handle/2117/107621/Memoria-TF G_YtarteRoger.pdfGomez Jaramillo, S., Mora Ruiz, A., & Lema Perez, J. F. (13 de Diciembre de 2018). Desarrollo de sistema de recomendacion basado en conocimiento para apoyar la enseñanza del desarrollo web a traves de recursos educativos abiertos. Obtenido de Tecnológico de Antioquia Institución Universitaria: https://dspace.tdea.edu.co/handle/tda/448González, A. (s.f.). ¿Qué es Machine Learning? Obtenido de cleverdata.io: https://cleverdata.io/que-es-machine-learning-big-data/González, A. (s.f.). Sistemas de recomendación de contenido con Machine Learning. Obtenido de cleverdata.io: https://cleverdata.io/sistemas-recomendacion-machine-learning/Hernández Rojas, N. M. (2019). Recomendación de cursos basada en filtrado colaborativo e información de perfiles sociales y estudiantiles. Obtenido de Universidad de los Andes: https://repositorio.uniandes.edu.co/bitstream/handle/1992/44578/u8307 18.pdfMarin Rios, J. S. (Noviembre de 2019). Aplicación móvil “TecnoWilly”. Obtenido de Corporación Universitaria Minuto de Dios Uniminuto Sede Bello: https://repository.uniminuto.edu/bitstream/handle/10656/11141/T.TI_Marí nRiosJuanSebastian_2019.pdfMartínez Canelo, M. (2 de Noviembre de 2020). ¿Qué es la Programación Orientada a Objetos? Obtenido de profile.es: https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/Núñez Valdéz, E. R. (6 de Julio de 2012). Sistemas de recomendación de contenidos para libros inteligentes. Obtenido de Universidad de Oviedo: https://digibuo.uniovi.es/dspace/handle/10651/13126Oracle. (s.f.). ¿Qué es la Inteligencia Artificial? Obtenido de oracle.com: https://www.oracle.com/co/artificial-intelligence/what-is-ai/Orts Romero, J. V. (Julio de 2016). Aplicación Web: Recetarium. Obtenido de Universidad de Alicante: https://rua.ua.es/dspace/bitstream/10045/57066/1/Recetario_Tus_recet as_siempre_contigo_ORTS_ROMERO_JOSE_VICENTE.pdfPavón Piedra, C. G. (2020). Análisis, diseño y desarrollo de un aplicativo móvil para obtener recetas de cocina en base a ingredientes que se tengan a la mano. Obtenido de Pontificia Universidad Católica del Ecuador: http://repositorio.puce.edu.ec/bitstream/handle/22000/18058/TrabajoDis ertacionCarlosPavon%20%281%29.pdfPérez, A. (26 de Junio de 2016). ¿Qué son las metodologías de desarrollo de software? Obtenido de obsbusiness.school: https://www.obsbusiness.school/blog/que-son-las-metodologias-de-desa rrollo-de-softwarePreprocesamiento de datos con sklearn. (s.f.). Obtenido de Universitat Oberta de Catalunya: http://datascience.recursos.uoc.edu/es/preprocesamiento-de-datos-consklearn/Recomendaciones basado en contenido en Python. (s.f.). Obtenido de Stat Developer: https://www.statdeveloper.com/recomendaciones-basado-en-contenidoen-python/RedHat. (s.f.). ¿Qué es una API de REST? Obtenido de redhat.com: https://www.redhat.com/es/topics/api/what-is-a-rest-apiRedHat. (s.f.). Qué son las API y para qué sirven. Obtenido de redhat.com: https://www.redhat.com/es/topics/api/what-are-application-programminginterfacesRobledano, Á. (23 de Septiembre de 2019). Qué es Python: Características, evolución y futuro. Obtenido de OpenWebinars: https://openwebinars.net/blog/que-es-python/Rodríguez Sirgado, M. (Agosto de 2011). EAE Business School. Obtenido de https://www.abc.es/gestordocumental/uploads/Sociedad/comida-rapida. pdfRubio, J. C. (25 de Febrero de 2019). Qué es GIT y para qué sirve. Obtenido de openwebinars.net: https://openwebinars.net/blog/que-es-git-y-para-que-sirve/Sánchez, A. (4 de Octubre de 2020). La librería Numpy. Obtenido de Aprende con Alf: https://aprendeconalf.es/docencia/python/manual/numpy/SEAS, E. S. (17 de Julio de 2019). Conoce el lenguaje de programación Java. Obtenido de seas.es: https://www.seas.es/blog/informatica/conoce-el-lenguaje-de-programaci on-java/Tena, M. (28 de Agosto de 2020). ¿Qué es la metodología 'agile'? Obtenido de bbva.com: https://www.bbva.com/es/metodologia-agile-la-revolucion-las-formas-tra bajo/Torre, M. (2021). ¿Qué es un framework y para qué se utiliza? Obtenido de ondesarrollo.com: https://ondesarrollo.com/que-es-un-framework-y-para-que-se-utiliza/Traslaviña Amador, D. C. (12 de Abril de 2019). America Retail. Obtenido de https://www.america-retail.com/colombia/colombia-colombianos-cada-ve z-comen-mas-fuera-de-casa/Trecet, J. (28 de Agosto de 2018). El blog de Aegon. Obtenido de https://blog.aegon.es/ahorro/cuanto-ahorras-de-verdad-cocinando-en-ca sa/Uso de CountVectorizer para extraer características de texto. (s.f.). Obtenido de Acervo Lima: https://es.acervolima.com/2021/02/09/uso-de-countvectorizer-para-extra er-caracteristicas-de-texto/Vásquez Pluas, D. P. (2020). Desarrollo de un prototipo mooc para el análisis de preferencia, predicción y progresos de usuarios, mediante sistemas de recomendación basados en deep learning. Obtenido de Repositorio Institucional de la Universidad de Guayaquil: http://repositorio.ug.edu.ec/bitstream/redug/49550/1/B-CISC-PTG-18012020%20Vásquez%20Pluas%2c%20Douglas%20Paul.pdfVillanueva Mejía, G. J., Sánchez Corea, D. M., & Frank, M. T. (2019). Desarrollo de una app móvil para dispositivos con sistema operativo Android, que servirá como diccionario digital español-mayangna. Obtenido de Universidad Nacional Autónoma de Nicaragua: http://riul.unanleon.edu.ni:8080/jspui/bitstream/123456789/7088/1/2420 54.pdfORIGINAL2021_Tesis_Jose_Daniel_Castellanos.pdf2021_Tesis_Jose_Daniel_Castellanos.pdfTesisapplication/pdf18105032https://repository.unab.edu.co/bitstream/20.500.12749/16258/1/2021_Tesis_Jose_Daniel_Castellanos.pdff03021d5262f4512e1c3e264155cd3d4MD51open access2021_Licencia_Jose_Daniel_Castellanos.pdf2021_Licencia_Jose_Daniel_Castellanos.pdfLicenciaapplication/pdf401977https://repository.unab.edu.co/bitstream/20.500.12749/16258/2/2021_Licencia_Jose_Daniel_Castellanos.pdfd1bf6cb7347bb6f10c59e00f29bd60adMD52metadata only accessLICENSElicense.txtlicense.txttext/plain; charset=utf-8829https://repository.unab.edu.co/bitstream/20.500.12749/16258/3/license.txt3755c0cfdb77e29f2b9125d7a45dd316MD53open accessTHUMBNAIL2021_Tesis_Jose_Daniel_Castellanos.pdf.jpg2021_Tesis_Jose_Daniel_Castellanos.pdf.jpgIM Thumbnailimage/jpeg4587https://repository.unab.edu.co/bitstream/20.500.12749/16258/4/2021_Tesis_Jose_Daniel_Castellanos.pdf.jpg0bc3bd6bcef3c02022fa38495bc8788fMD54open access2021_Licencia_Jose_Daniel_Castellanos.pdf.jpg2021_Licencia_Jose_Daniel_Castellanos.pdf.jpgIM Thumbnailimage/jpeg10191https://repository.unab.edu.co/bitstream/20.500.12749/16258/5/2021_Licencia_Jose_Daniel_Castellanos.pdf.jpg8dff12447a01013394410c0c9595119dMD55metadata only access20.500.12749/16258oai:repository.unab.edu.co:20.500.12749/162582024-01-19 09:33:32.959open accessRepositorio Institucional | Universidad Autónoma de Bucaramanga - UNABrepositorio@unab.edu.coRUwoTE9TKSBBVVRPUihFUyksIG1hbmlmaWVzdGEobWFuaWZlc3RhbW9zKSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuCgpFbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbi4gRWwgQVVUT1IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVTkFCIGFjdMO6YSBjb21vIHVuIHRlcmNlcm8gZGUgYnVlbmEgZmUuCgpFbCBBVVRPUiBhdXRvcml6YSBhIGxhIFVuaXZlcnNpZGFkIEF1dMOzbm9tYSBkZSBCdWNhcmFtYW5nYSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24uCg== |