Skip to content

Repository files navigation



Introducción

Explora es una aplicación móvil desarrollada para transformar la manera en que los usuarios descubren, guardan y comparten lugares de interés mediante una experiencia social inmersiva basada en geolocalización en tiempo real e inteligencia artificial.

La plataforma integra funcionalidades modernas como:

  • Geolocalización GPS
  • Visualización interactiva en mapas
  • Registro multimedia de ubicaciones
  • Reseñas, resumenes, edicion y analisis inteligente impulsado por IA
  • Chat en tiempo real
  • Grupos y comunidades
  • Feed social colaborativo
  • Sistema de guardados y favoritos

El objetivo principal de la aplicación es centralizar la experiencia de exploración urbana y social en un único ecosistema digital, permitiendo que los usuarios documenten experiencias, interactúen con comunidades y descubran contenido contextual basado en ubicación y asistido por IA.


Propuesta de Valor

Explora redefine la forma en que interactuamos con nuestro entorno mediante la convergencia de geolocalización inteligente y un sistema social integrado, permitiendo un descubrimiento contextual de lugares con interacción comunitaria en tiempo real. Gracias a su capacidad de registro multimedia, los usuarios disfrutan de experiencias visuales enriquecidas bajo una arquitectura móvil moderna que garantiza fluidez, escalabilidad y una experiencia de usuario optimizada a través de una interfaz intuitiva.


Pitch Visual


Vista Mapa: Flujo de Registro Inteligente

El núcleo de Explora es la capacidad de transformar coordenadas geográficas en historias visuales con el mínimo esfuerzo del usuario. A continuación, se detalla el flujo de trabajo integrado en la vista de mapa:

1. Ubicación y Contexto

El usuario interactúa con un mapa de alta precisión (estética minimalista) para identificar su posición actual o un punto de interés. Al seleccionar una ubicación, el sistema activa el botón dinámico de "Registrar Ubicación", capturando las coordenadas exactas de forma automática.

2. Formulario Dinámico con BlurView

Al iniciar el registro, se despliega una interfaz de usuario optimizada mediante una tarjeta con efecto de desenfoque (glassmorphism). Este panel organiza la información técnica y los campos creativos:

  • Nombre y Descripción: Espacios para la personalización del usuario.
  • Gestión Multimedia: Selector de imágenes para documentar la experiencia.
  • Control de Privacidad: Interruptor nativo para decidir la visibilidad de la publicación.

3. Autocompletado con IA (Multimodal)

Mediante la integración con Gemini AI, el sistema ofrece un análisis automático de las fotografías:

  • Visión Computacional: Identificación de elementos clave (paisajes, flora, monumentos).
  • Generación de Contenido: Redacción automática de nombres creativos y descripciones detalladas.
  • Clasificación Inteligente: Generación de #Hashtags para facilitar la búsqueda y escalabilidad.

4. Publicación y Sincronización

Una vez validado, el registro se sincroniza con Firebase Firestore, apareciendo instantáneamente en el feed social y en la bitácora personal, garantizando fluidez bajo una arquitectura móvil moderna.



Vista Explorar: Descubrimiento y Conexión Comunitaria

La sección Explorar actúa como el motor de descubrimiento de la plataforma, permitiendo a los usuarios conectar con experiencias compartidas por la comunidad a través de herramientas de búsqueda avanzada y análisis semántico. A continuación, se detalla el flujo de exploración:

1. Búsqueda y Filtrado Inteligente

La interfaz presenta un buscador global optimizado para nombres, categorías o etiquetas. Se implementa un sistema de filtros rápidos (Chips) que permiten segmentar resultados de forma instantánea: desde ubicaciones "Cerca de mí" hasta categorías específicas como #Naturaleza o #Cascada, facilitando una navegación fluida entre miles de registros.

2. Visualización de Resultados Dinámica

Los resultados se despliegan en una lista de tarjetas interactivas que priorizan el contenido visual. Cada tarjeta ofrece un resumen ejecutivo del lugar: nombre del autor, imagen destacada y hashtags principales. Esta arquitectura permite al usuario evaluar rápidamente los puntos de interés antes de profundizar en los detalles.

3. Análisis Semántico con IA (Gemini AI)

Al seleccionar un lugar, Explora utiliza Inteligencia Artificial para procesar el sentimiento colectivo. La funcionalidad "¿Qué dice la comunidad? (IA)" analiza todas las reseñas de los usuarios para generar un resumen inteligente, extrayendo los puntos positivos y las advertencias relevantes, ahorrando al usuario la lectura de decenas de comentarios individuales.

4. Interacción y Reseñas Multimodales

La vista detallada permite al usuario iniciar navegación directa (botón "Ir") o compartir el hallazgo con amigos. El sistema de Reseñas permite una interacción bidireccional donde los usuarios califican con estrellas y texto, contando además con asistencia de IA para "Sugerir opinión", optimizando la participación social dentro del ecosistema.



Vista Guardados: Gestión y Organización Personal

La sección Guardados constituye la bitácora personal del usuario, ofreciendo una interfaz robusta para administrar el historial de exploraciones, personalizar la privacidad y organizar los hallazgos mediante herramientas de gestión avanzada.

1. Organización y Filtrado de Bitácora

El usuario dispone de una biblioteca centralizada con todas sus ubicaciones registradas. Se implementa un sistema de filtros inteligentes (Recientes, Favoritos, Nombre, Zona) que permite localizar entradas específicas de forma ágil, permitiendo al explorador tener un control total sobre su patrimonio de viajes.

2. Acceso Rápido y Menú Contextual

Mediante una pulsación prolongada (Long Press), se despliega un menú de Opciones Rápidas con efecto de desenfoque. Desde aquí, el usuario puede alternar instantáneamente entre estados de "Destacado", modificar la visibilidad (Público/Privado), enviar el lugar a un amigo o realizar una exportación compartida externa.

3. Interacciones por Deslizamiento (Swipe Actions)

Optimizando la experiencia en dispositivos móviles, se han integrado Swipe Actions intuitivos en cada tarjeta. Deslizar hacia la izquierda revela botones de acción directa: un acceso rápido para Editar los detalles del lugar y un botón de Eliminar con confirmación, permitiendo una limpieza de bitácora rápida y fluida.

4. Edición Avanzada con Soporte de IA

La vista de edición permite modificar la galería de fotos y actualizar la narrativa de la entrada. Se mantiene la integración con Gemini AI mediante el botón "Auto-completar", permitiendo al usuario regenerar o pulir la descripción y hashtags del lugar basándose en las imágenes actuales, asegurando que cada registro mantenga una calidad profesional.



Vista Social: Ecosistema Colaborativo y Comunidad

La sección Social constituye el núcleo de interacción de la plataforma. Está diseñada bajo una arquitectura de pestañas dinámicas que facilita la gestión de grupos, la comunicación directa y la personalización de la identidad digital del explorador.

1. Feed Comunitario e Interacción

El Feed presenta una línea de tiempo fluida con las recomendaciones de la comunidad. Cada publicación integra un motor de interacción social que permite reaccionar, comentar y compartir. Se incluye un acceso directo de Geolocalización ("Ir a ubicación") que vincula el contenido social con el mapa interactivo, cerrando el ciclo de descubrimiento.

2. Gestión de Grupos y Comunidades

El módulo de Grupos permite a los usuarios unirse a comunidades existentes o fundar nuevas. Se implementa un sistema de validación donde el botón de acción cambia dinámicamente de "Unirse" a "Abrir" según el estado de pertenencia. Cada comunidad cuenta con un identificador único (Cód.) para facilitar el crecimiento orgánico mediante invitaciones directas.

3. Centro de Mensajería y Conexiones

La pestaña de Chat centraliza la comunicación privada y grupal. Se organiza en dos niveles: una fila superior de Acceso Rápido a Grupos para una navegación ágil y una lista vertical de Conexiones Personales. La interfaz utiliza indicadores visuales de estado y previsualizaciones de mensajes para mejorar la retención y el engagement.

4. Identidad Visual y Perfil de Usuario

La sección de Perfil ofrece un panel de configuración estética y técnica. Los usuarios pueden personalizar su avatar, banner de encabezado y biografía. Además, se integra un generador de Código de Amigo Único con función de copiado rápido, permitiendo que la red social se expanda mediante la vinculación directa entre exploradores.



Arquitectura Funcional del Sistema


La arquitectura de Explora está diseñada bajo un modelo de Capas de Servicios Coordinados asíncronamente. Este enfoque garantiza la fluidez de la interfaz de usuario al desplazar los procesos de cómputo intensivo (como la inferencia de IA) fuera del hilo principal.

1. Adquisición y Validado de Eventos Crudos (Device Layer)

Los sensores nativos (GPS y Cámara) capturan datos de entrada. Antes del despacho, el sistema gestiona permisos y optimiza recursos —como el redimensionamiento de imágenes en el Frontend— para minimizar la latencia y el consumo de datos.

2. Despacho Asíncrono y Enriquecimiento Semántico (Cognitive Layer)

Los activos multimedia se envían de forma asíncrona al motor de Gemini 2.5 Flash. La IA realiza un análisis multimodal, devolviendo metadatos enriquecidos (descripciones narrativas, nombres creativos y hashtags) que dotan de contexto semántico al registro original.

3. Persistencia Reactiva y Difusión en Tiempo Real (Data Layer)

La información procesada se consolida en Firebase Firestore bajo reglas de seguridad robustas. La base de datos dispara actualizaciones reactivas mediante listeners de tiempo real, manteniendo los feeds y chats sincronizados globalmente en milisegundos.

4. Inyección Contextual y Vínculo Geográfico (Application Layer)

Cada interacción social conserva una referencia inyectada a sus coordenadas de origen. Esto permite una navegación contextual directa, vinculando orgánicamente el ecosistema social con el mapa interactivo de la plataforma.


Pipeline de Procesamiento e Inferencia Multimodal

Figura: Pipeline de Procesamiento e Inferencia Multimodal



Características y Capacidades

Inteligencia Artificial (Gemini AI)

Capacidades

  • Interpretación avanzada de imágenes para comprender el contexto del lugar.
  • Redacción automática de nombres creativos y descripciones detalladas.
  • Resúmenes inteligentes del sentimiento de la comunidad.
  • Sugerencia de reseñas y respuestas automáticas.

Funcionalidades técnicas

  • Integración con el SDK de Google Generative AI.
  • Procesamiento de Prompts optimizados para modelos Gemini 1.5 Flash.
  • Análisis de metadatos multimedia para extracción de etiquetas (#Hashtags).
  • Sincronización de respuestas generadas con estados de React.

Sistema de Geolocalización GPS

Capacidades

  • Obtención de ubicación en tiempo real
  • Detección de coordenadas geográficas
  • Registro automático de lugares
  • Visualización de mapas interactivos
  • Navegación contextual basada en proximidad

Funcionalidades técnicas

  • Integración con servicios de localización del dispositivo
  • Manejo de permisos GPS
  • Actualización dinámica de coordenadas
  • Renderizado de marcadores geográficos

Módulo de Mapas Interactivos

Capacidades

  • Visualización geoespacial de lugares
  • Marcadores personalizados
  • Navegación visual contextual
  • Interacción táctil avanzada

Funcionalidades técnicas

  • Renderizado de mapas dinámicos
  • Sincronización con datos de ubicación
  • Gestión de capas geográficas
  • Actualización en tiempo rea

Integración con Cámara

Capacidades

  • Captura de imágenes desde la aplicación
  • Registro visual de ubicaciones
  • Publicación multimedia

Funcionalidades técnicas

  • Acceso nativo a cámara
  • Manejo de permisos multimedia
  • Procesamiento de imágenes
  • Asociación de contenido visual con ubicaciones

Sistema de Chat en Tiempo Real

Capacidades

  • Comunicación instantánea
  • Conversaciones privadas y grupales
  • Sincronización en tiempo real

Funcionalidades técnicas

  • Renderizado dinámico de mensajes
  • Gestión de sesiones de usuario
  • Actualización reactiva de conversaciones
  • Arquitectura basada en eventos

Sistema Social y Comunidades

Capacidades

  • Creación de grupos
  • Feed social colaborativo
  • Publicaciones sociales
  • Interacciones comunitarias

Funcionalidades técnicas

  • Gestión de relaciones sociales
  • Persistencia de publicaciones
  • Actualización dinámica de feeds
  • Arquitectura modular social

Sistema de Guardados

Capacidades

  • Guardar ubicaciones favoritas
  • Organización personalizada
  • Acceso rápido a contenido

Funcionalidades técnicas

  • Persistencia local/remota
  • Sincronización de favoritos
  • Gestión de estados

Sistema de Autenticación

Capacidades

  • Registro de usuarios
  • Inicio de sesión
  • Gestión de perfiles

Funcionalidades técnicas

  • Manejo seguro de credenciales
  • Persistencia de sesión
  • Validaciones de autenticación

Stack Tecnológico

Tecnologías Principales


Categoría Tecnología Propósito
Lenguaje TypeScript Tipado seguro y escalabilidad
Framework Mobile React Native Desarrollo móvil multiplataforma
Framework Expo Simplificación del ecosistema móvil
Inteligencia Artificial Gemini 2.5 Flash Inferencia multimodal y enriquecimiento de datos
Navegación Expo Router Routing modular y navegación
Backend Services Firebase Persistencia y sincronización
Base de Datos Firestore Base de datos en tiempo real
Autenticación Firebase Auth Gestión de usuarios
Geolocalización Expo Location Servicios GPS
Cámara Expo Camera Captura multimedia
Mapas React Native Maps Visualización geográfica
Estado React Hooks / Context API Manejo global de estado
Iconografía Expo Vector Icons Componentes visuales
Estilos StyleSheet API / BlurView Diseño responsive y efectos Glassmorphism


Justificación Tecnológica

React Native + Expo

Seleccionados por:

  • Desarrollo cross-platform
  • Alto rendimiento móvil
  • Ecosistema maduro
  • Iteración rápida
  • Integración sencilla con APIs nativas

Firebase

Elegido por:

  • Arquitectura serverless
  • Sincronización en tiempo real
  • Escalabilidad inmediata
  • Integración rápida con apps móviles
  • Autenticación integrada

TypeScript

Implementado para:

  • Mayor mantenibilidad
  • Reducción de errores
  • Escalabilidad empresarial
  • Tipado estático

Showcase y Demos

Demostración de la App

Acceso y Perfil

Vista Login Vista Registro Vista Acceso
registro-perfil-login.mp4

Exploración y Mapa

Vista Explorar Vista Guardados Vista Mapa
explorar.mp4
Guardados.mp4
mapa.mp4

Sección Social

Chat en Vivo Feed de Noticias Grupos Comunitarios
Social-Chat.mp4
social-feed.mp4
social-grupos.mp4

Especificaciones Técnicas

Requisitos del Sistema


Requisito Especificación
Sistema Operativo Android / iOS (Multiplataforma)
RAM Recomendada 4 GB o superior
GPS Requerido (Servicios de ubicación activos)
Cámara Requerida (Para registro multimedia e IA Vision)
Conectividad Internet (Requerido para sincronización en tiempo real e IA)
Sensores Geolocalización activa y acelerómetro
Permisos del Sistema Cámara, ubicación, notificaciones y almacenamiento


Integraciones de Hardware

GPS

Utilizado para:

  • Detección geográfica
  • Navegación contextual
  • Registro de ubicaciones

Cámara

Utilizada para:

  • Captura multimedia
  • Registro visual
  • Publicaciones sociales

Estructura General del Proyecto

Explora/
├── app/                       # Directorio principal de rutas (Expo Router)
│   ├── (auth)/                # Flujos de autenticación (Login, Registro)
│   ├── (tabs)/                # Navegación principal por pestañas
│   │   ├── biblioteca.tsx     # Gestión de lugares guardados
│   │   ├── buscar.tsx         # Motor de exploración y comunidad
│   │   ├── comunidad.tsx      # Gestión de grupos y chat social
│   │   └── mapa.tsx           # Vista interactiva principal
│   ├── api/                   # Backend de la App (Serverless Functions)
│   │   ├── analizar-imagen+api.ts # Endpoint para integración con Gemini 2.5
│   │   └── registro+api.ts    # Lógica de registro en base de datos
│   ├── _layout.tsx            # Configuración de Temas y Providers globales
│   ├── index.tsx              # Punto de entrada lógico
│   └── onboarding.tsx         # Pantallas de bienvenida e introducción
│
├── assets/                    # Recursos estáticos
│   ├── fonts/                 # Tipografías personalizadas
│   └── images/                # Assets visuales y recursos para el README
│
├── components/                # Componentes atómicos y modulares
│   ├── biblioteca/            # UI específica para la gestión de archivos
│   ├── buscar/                # UI para filtros y listas de exploración
│   ├── loginRegister/         # Componentes de entrada y botones de acceso
│   ├── mapa/                  # Formularios y tarjetas detalladas del mapa
│   └── Shared/                # Componentes reutilizables (Modales, TabItems)
│
├── constants/                 # Valores globales y configuración de diseño
│   └── theme.ts               # Paleta de colores y estilos globales
│
├── hooks/                     # Lógica de estado y utilidades personalizadas
│   ├── useBiblioteca.ts       # Hook para gestión de datos de usuario
│   └── use-theme-color.ts     # Hook para soporte de Dark/Light mode
│
├── scripts/                   # Scripts de mantenimiento y configuración
│   └── reset-project.js       # Utilidad para limpieza de boilerplate
│
├── firebaseConfig.ts          # Configuración e inicialización de Firebase
├── app.json                   # Configuración nativa de Expo
├── package.json               # Dependencias y scripts de ejecución
└── tsconfig.json              # Configuración de TypeScript

Instalación y Uso

Sigue estos pasos para configurar el entorno de desarrollo y ejecutar la aplicación localmente.

1. Prerrequisitos

Es necesario contar con las siguientes herramientas:

  • Node.js (Versión LTS recomendada).
  • Expo Go instalado en un dispositivo móvil o un emulador de iOS/Android.
  • Proyecto configurado en Firebase Console.
  • API Key de Google AI Studio (para el motor Gemini).

2. Clonación e Instalación

# Clonar el repositorio
git clone [https://github.com/Yourchh/Explora.git](https://github.com/Yourchh/Explora.git)

# Acceder al directorio
cd Explora

# Instalar dependencias
npm install

3. Configuración de Entorno

Crea un archivo .env en la raíz del proyecto con las siguientes variables (puedes basarte en el archivo .env.example):

EXPO_PUBLIC_FIREBASE_API_KEY=tu_api_key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=tu_dominio.firebaseapp.com
EXPO_PUBLIC_FIREBASE_PROJECT_ID=tu_proyecto_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=tu_bucket.appspot.com
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=tu_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=tu_app_id
EXPO_PUBLIC_GEMINI_API_KEY=tu_clave_de_google_ai_studio

4. Despliegue

Inicia el servidor de desarrollo de Expo:

npx expo start

Escanea el código QR generado con la aplicación Expo Go para visualizar la app en tiempo real.


Autor

Jorge Hernandez

Jorge Andres Hernandez Pelayo
Estudiante de Ingeniería en Sistemas Computacionales

Github Badge

Explora fue conceptualizado y desarrollado íntegramente por mí como proyecto integrador para la materia de Desarrollo Híbrido para Móviles, impartida por el profesor Omar Gerardo Pérez Morales. En este proyecto se aplicaron arquitecturas de software modernas, gestión asíncrona de datos y modelos de Inteligencia Artificial de última generación para ofrecer una experiencia de usuario fluida y de alto impacto tecnológico.


About

Bitácora de Viajes Inteligente

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages