Skip to content

Aplicación de navegación GPS 3D multiplataforma (PWA, iOS, Android) construida con Ionic/Angular y un backend inteligente en Node.js para procesamiento de datos en tiempo real, map-matching con Valhalla y optimización con PostgreSQL y Memcached.

Notifications You must be signed in to change notification settings

litoxperaloca/iron-street

Repository files navigation

Iron Street: "Todos somos parte del tránsito, seamos todos parte de la solución" Aplicación de navegación GPS híbrida y progresiva (PWA) de última generación.

LANDPAGE DEL PROYECTO

VERSION WEB FUNCIONANDO PARA LANZAMIENTO EN URUGUAY

ANALISIS Y REPORTE TECNICO SOBRE ESTA APP

Problema que intenta resolver: tránsito y seguridad vial. Disminuir los accidentes de tránsito

Solución innovadora:

aportar a SEGURIDAD VIAL incentivando la conducción responsable mediante recompensas mensuales monetarias (a quienes logran la meta mensual sin registrar faltas en la app)

Su MVP:

app que monitorea la conduccion del usuario,

detecta faltas y malos hábitos de conducción

exceso de velocidad, 
	
sentido contrario, 
	
señales de pare, 
	
uso de dispositivo mientras conduce

acumula km recorridos sin cometer esas faltas

al finalizar el mes recompenza a los conductores responsables con transferencias monetarias reales (de un pozo que se acumula con % de las suscripciones).

Sus funciones añadidas son:

la visualización de mapas en 3D en tiempo real, ofreciendo una experiencia de conducción inmersiva y rica en información.

Proporciona navegación asistida con instrucciones y alertas de voz para permitir concentrar la visión en la conducción y las manos en el volante.

Busquedas userfriendly de lugares, direcciones e intersecciones, puntos de interés.

Personalización de mapa y de marcador 3D del vehículo

Multilenguaje

UI con mejoras de accesibilidad

Gestión de compra de ticket de estacionamiento urbano

La aplicación está construida con Ionic/Angular y Capacitor, lo que le permite ser desplegada en la web, iOS y Android desde una única base de código.

🚀 Características Principales

Navegación 3D en Tiempo Real: Visualiza tu posición, vehículos y elementos del mapa en un entorno 3D dinámico.

Multiplataforma: Una sola base de código para PWA, iOS y Android.

Backend Inteligente: Un servidor Node.js procesa datos en tiempo real para detectar excesos de velocidad, cámaras cercanas y predecir tu ruta.

Arquitectura Optimizada: Uso de PostgreSQL para almacenamiento de datos, y Memcached para un cacheo de alto rendimiento.

Cálculo de Rutas Avanzado: Integración con el motor de enrutamiento Valhalla.

Datos de OpenStreetMap (OSM): Acceso directo a la rica base de datos de OSM para información detallada.

Interfaz de Usuario Moderna: Componentes modulares y una experiencia de usuario limpia. Soporte Multilingüe: Preparada para una audiencia global.

🛠️ Stack Tecnológico

La aplicación utiliza un stack moderno y robusto para ofrecer una experiencia fluida y potente.

Categoría: Tecnología

Framework Principal: Ionic 8 / Angular 18

Integración Nativa: Capacitor 7

Lenguaje: TypeScript (Frontend), JavaScript/Node.js (Backend)

Cartografía y 3D: Mapbox GL JS, Threebox.js / Three.js

Backend: Node.js, WebSocket, PostgreSQL, Memcached, Turf.js

APIs Externas: Valhalla (Map Matching), Traccar, OpenStreetMap

Pruebas: Karma, Jasmine

🏗️ Arquitectura

El proyecto sigue una arquitectura cliente-servidor desacoplada que promueve la separación de responsabilidades.

Frontend (Ionic/Angular): Gestiona la interfaz de usuario y la experiencia del cliente. Se comunica con el hardware a través de Capacitor y con el backend mediante un servicio WebSocket.

Puente Nativo (Capacitor): Proporciona acceso a las funcionalidades del dispositivo como GPS y sensores.

Backend (API Central en Node.js):

-Es el cerebro de la aplicación. Mantiene una conexión persistente con el cliente a través de WebSockets y es responsable de:
	
-Procesar datos de geolocalización en tiempo real.    
	
-Realizar map-matching con Valhalla para ajustar la ubicación del usuario a la red de carreteras.
	
-Consultar la base de datos PostgreSQL para obtener límites de velocidad y datos de calles.
	
-Utilizar Memcached para cachear consultas frecuentes y acelerar las respuestas.
	
-Calcular infracciones de velocidad, kilómetros recorridos y alertas.
	
-Enviar datos de seguimiento al sistema de administración Traccar.

Base de Datos (PostgreSQL): Almacena todos los datos persistentes, incluyendo posiciones de usuarios, infracciones, recompensas y datos geoespaciales importados de OSM.

🏁 Cómo Empezar

Sigue estos pasos para configurar el proyecto en tu entorno de desarrollo local.

Prerrequisitos Node.js (versión 18.x o superior) NPM o Yarn Ionic CLI (npm install -g @ionic/cli) PostgreSQL, Memcached, Valhalla y Traccar corriendo localmente.

Instalación Clona el repositorio: git clone https://github.com/tu-usuario/iron-street.git cd iron-street

Instala las dependencias (frontend): npm install Nota: Asegúrate de instalar también las dependencias del backend (npm install en la carpeta de la API).

Ejecuta la aplicación en modo de desarrollo: Para ver la aplicación en el navegador con recarga en vivo. ionic serve

📦 Builds para Producción

  • Aplicación Web Progresiva (PWA) npm run build El resultado se encontrará en la carpeta www/.

Android Añadir la plataforma Android: ionic capacitor add android Sincronizar el proyecto: ionic capacitor sync android Abrir en Android Studio: ionic capacitor open android Desde Android Studio, puedes generar el APK o AAB.

iOS Añadir la plataforma iOS: ionic capacitor add ios Sincronizar el proyecto: ionic capacitor sync ios Abrir en Xcode: ionic capacitor open ios Desde Xcode, puedes compilar y ejecutar la aplicación en un simulador o dispositivo físico.

📂 Estructura del Proyecto

El código fuente está organizado de manera intuitiva para facilitar la navegación y el desarrollo.

/src ├── /app │ ├── /pages # Componentes de página (vistas principales) │ ├── /services # Lógica de negocio y comunicación con APIs │ ├── /modals # Componentes para diálogos y pop-ups │ ├── /custom-components # Componentes reutilizables (ej. velocímetro) │ ├── app-routing.module.ts # Definición de rutas │ └── app.module.ts # Módulo principal de Angular │ ├── /assets # Recursos estáticos (imágenes, modelos 3D, i18n) │ └── ... # Archivos de configuración y de entrada

About

Aplicación de navegación GPS 3D multiplataforma (PWA, iOS, Android) construida con Ionic/Angular y un backend inteligente en Node.js para procesamiento de datos en tiempo real, map-matching con Valhalla y optimización con PostgreSQL y Memcached.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published