Este repositorio contiene el código fuente de Eco City Tours, una aplicación móvil que propone rutas turísticas generadas con tecnologías GIS, enriquecidas mediante modelos de lenguaje (LLM). La aplicación promueve rutas no motorizadas optimizadas para ciclistas y peatones, contribuyendo a los Objetivos de Desarrollo Sostenible (ODS11).
Este proyecto forma parte del Trabajo de Fin de Grado (TFG) de Ingeniería Informática bajo la supervisión de:
- Carlos López Nozal
Departamento de Ingeniería Informática, Universidad de Burgos
- Contacto: clopezno@ubu.es
- Promoción de Rutas No Motorizadas: Fomentar el uso de rutas sostenibles.
- Enriquecimiento de Datos: Uso de LLM y Google Places para información turística detallada.
- ODS11: Apoyo a la creación de ciudades y comunidades sostenibles.
- Flutter & Dart: Desarrollo de la interfaz y lógica de la aplicación.
- Modelos de Lenguaje (LLM): Enriquecimiento de datos y generación de información turística.
- Servicios Google: API de Maps, Places y Directions para optimización y visualización de rutas.
- Firebase: Gestión de base de datos y análisis de errores.
- Generación de rutas personalizadas para ciclistas y peatones.
- Información enriquecida sobre puntos de interés turístico.
- Optimización de rutas con datos GIS.
- Integración con Firebase para almacenamiento y monitoreo de errores.
- Asegúrate de tener Git instalado.
- Clona el repositorio ejecutando:
git clone https://github.com/fps1001/TFGII_FPisot.git
- Cambia al directorio del proyecto:
cd TFGII_FPisot/project-app/project_app
- Regístrate en Google Cloud Platform y crea un proyecto.
- Activa las siguientes APIs desde la consola:
- Maps SDK for Android
- Places API
- Directions API
- Generative AI API (Gemini)
- Genera claves API para cada servicio y colócalas en un archivo
.enven la raíz del proyecto con el formato:GOOGLE_API_KEY=<TU_CLAVE> GEMINI_API_KEY=<TU_CLAVE> GOOGLE_DIRECTIONS_API_KEY=<TU_CLAVE> GOOGLE_PLACES_API_KEY=<TU_CLAVE>
- Regístrate en Firebase Console y crea un proyecto llamado
eco-city-tour. - Configura los servicios:
- Cloud Firestore: Habilita Firestore en modo "Producción".
- Crashlytics: Integra Crashlytics siguiendo las instrucciones en Firebase Console.
- Descarga el archivo
google-services.jsony colócalo en/android/app/. - Agrega las siguientes variables al archivo
.env:FIREBASE_API_KEY=<TU_CLAVE> FIREBASE_APP_ID=<TU_CLAVE> FIREBASE_MESSAGING_SENDER_ID=<TU_CLAVE> FIREBASE_PROJECT_ID=eco-city-tour FIREBASE_STORAGE_BUCKET=eco-city-tour.appspot.com FIREBASE_PACKAGE_NAME=com.example.project_app FIREBASE_PROJECT_NUMBER=<TU_NUMERO> MOBILESDK_APP_ID=<TU_CLAVE>
- Asegúrate de que el archivo
.envestá configurado correctamente. - Instala las dependencias:
flutter pub get
- Ejecuta la aplicación en un emulador o dispositivo:
flutter run
El sistema fue sometido a diversas pruebas para garantizar su calidad y funcionalidad:
- Pruebas Unitarias: Validación de componentes individuales.
- Pruebas de Integración: Verificación de interacción entre módulos.
- Pruebas de Usuario: Feedback recopilado de usuarios finales.
¡Contribuciones son bienvenidas! Sigue estos pasos para colaborar:
- Realiza un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad). - Realiza los cambios y haz commit (
git commit -am 'Descripción del cambio'). - Empuja tus cambios (
git push origin feature/nueva-funcionalidad). - Abre un Pull Request.
Este proyecto está licenciado bajo los términos de la GNU General Public License v3.0. Consulta el archivo LICENSE para más detalles o a través del siguiente enlace:
https://www.gnu.org/licenses/gpl-3.0.txt.
Si tienes preguntas o necesitas más información, no dudes en contactarme:
- Correo Electrónico: fpisot@gmail.com / fps1001@alu.ubu.es
- LinkedIn: Fernando Pisot
¡Gracias por tu interés en este proyecto! 💡