Mostrar el registro sencillo del ítem
Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial
dc.contributor.advisor | Cárdenas Arenas, Juan Sebastián | |
dc.contributor.author | Castellanos Becerra, José Daniel | |
dc.contributor.author | Niño Parada, Emerson Giovanni | |
dc.coverage.spatial | Colombia | spa |
dc.date.accessioned | 2022-04-22T15:16:39Z | |
dc.date.available | 2022-04-22T15:16:39Z | |
dc.date.issued | 2021 | |
dc.identifier.uri | http://hdl.handle.net/20.500.12749/16258 | |
dc.description.abstract | 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. | spa |
dc.description.tableofcontents | 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 135 | spa |
dc.format.mimetype | application/pdf | spa |
dc.language.iso | spa | spa |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/2.5/co/ | * |
dc.title | Prototipo de aplicación móvil para la sugerencia de recetas culinarias utilizando algoritmos de inteligencia artificial | spa |
dc.title.translated | Mobile application prototype for the suggestion of culinary recipes using artificial intelligence algorithms | spa |
dc.degree.name | Ingeniero de Sistemas | spa |
dc.publisher.grantor | Universidad Autónoma de Bucaramanga UNAB | spa |
dc.rights.local | Abierto (Texto Completo) | spa |
dc.publisher.faculty | Facultad Ingeniería | spa |
dc.publisher.program | Pregrado Ingeniería de Sistemas | spa |
dc.description.degreelevel | Pregrado | spa |
dc.type.driver | info:eu-repo/semantics/bachelorThesis | |
dc.type.local | Trabajo de Grado | spa |
dc.type.coar | http://purl.org/coar/resource_type/c_7a1f | |
dc.subject.keywords | Systems engineer | spa |
dc.subject.keywords | Technological innovations | spa |
dc.subject.keywords | Feeding | spa |
dc.subject.keywords | Cook | spa |
dc.subject.keywords | Prescriptions | spa |
dc.subject.keywords | Mobile app | spa |
dc.subject.keywords | Artificial intelligence | spa |
dc.subject.keywords | Prototype development | spa |
dc.subject.keywords | Algorithms | spa |
dc.subject.keywords | Simulation methods | spa |
dc.subject.keywords | Programming language | spa |
dc.identifier.instname | instname:Universidad Autónoma de Bucaramanga - UNAB | spa |
dc.identifier.reponame | reponame:Repositorio Institucional UNAB | spa |
dc.type.hasversion | info:eu-repo/semantics/acceptedVersion | |
dc.rights.accessrights | info:eu-repo/semantics/openAccess | spa |
dc.relation.references | About: NLTK. (s.f.). Obtenido de DBpedia: https://es.dbpedia.org/page/NLTK | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | Fragmentos. (s.f.). Obtenido de Developers Android: https://developer.android.com/guide/components/fragments?hl=es | spa |
dc.relation.references | 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 | spa |
dc.relation.references | Garrido, D. (2 de Noviembre de 2017). Cultura Colectiva. Obtenido de https://culturacolectiva.com/comida/enfermedades-por-comer-en-la-calle | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | González, A. (s.f.). ¿Qué es Machine Learning? Obtenido de cleverdata.io: https://cleverdata.io/que-es-machine-learning-big-data/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | Oracle. (s.f.). ¿Qué es la Inteligencia Artificial? Obtenido de oracle.com: https://www.oracle.com/co/artificial-intelligence/what-is-ai/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | Preprocesamiento de datos con sklearn. (s.f.). Obtenido de Universitat Oberta de Catalunya: http://datascience.recursos.uoc.edu/es/preprocesamiento-de-datos-consklearn/ | spa |
dc.relation.references | Recomendaciones basado en contenido en Python. (s.f.). Obtenido de Stat Developer: https://www.statdeveloper.com/recomendaciones-basado-en-contenidoen-python/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | Rodríguez Sirgado, M. (Agosto de 2011). EAE Business School. Obtenido de https://www.abc.es/gestordocumental/uploads/Sociedad/comida-rapida. pdf | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | Sánchez, A. (4 de Octubre de 2020). La librería Numpy. Obtenido de Aprende con Alf: https://aprendeconalf.es/docencia/python/manual/numpy/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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/ | spa |
dc.relation.references | 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 | spa |
dc.relation.references | 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 | spa |
dc.contributor.cvlac | Cárdenas Arenas, Juan Sebastián [0001387212] | spa |
dc.contributor.cvlac | Cárdenas Arenas, Juan Sebastián [0001387212] | |
dc.subject.lemb | Ingeniería de sistemas | spa |
dc.subject.lemb | Innovaciones tecnológicas | spa |
dc.subject.lemb | Desarrollo de prototipos | spa |
dc.subject.lemb | Algoritmos | spa |
dc.subject.lemb | Métodos de simulación | spa |
dc.subject.lemb | Lenguaje de programación | spa |
dc.identifier.repourl | repourl:https://repository.unab.edu.co | spa |
dc.description.abstractenglish | The 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. | spa |
dc.subject.proposal | Alimentación | spa |
dc.subject.proposal | Cocinar | spa |
dc.subject.proposal | Recetas | spa |
dc.subject.proposal | Aplicación móvil | spa |
dc.subject.proposal | API REST | spa |
dc.subject.proposal | Inteligencia artificial | spa |
dc.type.redcol | http://purl.org/redcol/resource_type/TP | |
dc.rights.creativecommons | Atribución-NoComercial-SinDerivadas 2.5 Colombia | * |
dc.coverage.campus | UNAB Campus Bucaramanga | spa |
dc.description.learningmodality | Modalidad Presencial | spa |
dc.contributor.linkedin | Cárdenas Arenas, Juan Sebastián [juan-sebastián-cárdenas-arenas-58904a186] |
Ficheros en el ítem
Este ítem aparece en la(s) siguiente(s) colección(ones)
-
Ingeniería de Sistemas [374]