Este proyecto corresponde a la asignatura de Digitalizaci贸n. Su objetivo es simular un sistema de seguimiento de autobuses mediante datos GPS generados y gestionados desde Java.
- Simula el recorrido de 3 autobuses durante una hora, generando un dato por minuto.
- Cada autob煤s tiene 9 paradas simuladas (velocidad = 0), basadas en rutas reales de TUSSAM.
- Guarda los datos en un archivo CSV (
gps_data.csv). - Lee el archivo CSV y permite realizar varias operaciones sobre los datos:
- Ver los 煤ltimos movimientos de cada autob煤s.
- Consultar una l铆nea concreta.
- Filtrar registros entre dos horas determinadas.
- Calcular la velocidad media por autob煤s.
- Contar cu谩ntas veces ha parado cada bus.
- Exportar la 煤ltima posici贸n conocida de cada autob煤s a archivos JSON.
- Gesti贸n de errores y validaciones para evitar fallos por entradas inv谩lidas.
- Men煤 interactivo diferenciado para usuarios y t茅cnicos, con controles para generar, leer, analizar y modificar datos.
Para un detalle m谩s completo sobre las fases del ciclo del dato implementadas, se puede consultar el archivo Resumen_Ciclo_Dato.md. En 茅l se explica paso a paso c贸mo se ha trabajado en cada fase:
- Captura y generaci贸n de datos (ficticios y rutas reales).
- Almacenamiento en formato CSV.
- Procesamiento y filtrado con validaciones.
- An谩lisis b谩sico de velocidad y paradas.
- Distribuci贸n mediante exportaci贸n a JSON.
- Visualizaci贸n en consola con men煤s.
- Depuraci贸n y limpieza del c贸digo.
modelo/GPSData.java
Representa cada registro GPS de un autob煤s (busId, timestamp, lat/lon, velocidad).modelo/Parada.java
Clase que define una parada (nombre y coordenadas).modelo/ParadasInfo.java
Gestiona el listado de paradas reales por l铆nea y las muestra por pantalla.modelo/RutaTussam.java
Genera las rutas reales simuladas de las l铆neas BUS22, BUS5 y BUS27.
util/GeneradorDatosBus.java
Genera datos GPS aleatorios para tres autobuses ficticios (BUS01鈥揃US03).util/ExportadorCSV.java
Exporta una lista deGPSDataa un archivo CSV.util/LectorCSV.java
Carga de disco un CSV deGPSDatay lo convierte en objetos Java.util/ExportadorJSON.java
Crea archivos JSON con la 煤ltima posici贸n de cada autob煤s.util/Depurar.java
M茅todos de validaci贸n y lectura segura de entradas de usuario (men煤s, n煤meros, fechas, coordenadas).util/Archivador.java
Mueve los CSV antiguos a la carpetaarchivados/.
servicio/ProcesadorDatos.java
Funciones de filtrado y modificaci贸n de listas deGPSData(por bus, rango horario, simulaci贸n de cambio de ruta).servicio/AnalizadorDatos.java
M茅todos de an谩lisis (velocidad media, conteo de paradas).
menu/MenuGPS.java
Implementa los men煤s de usuario y t茅cnico, orquesta el flujo de ejecuci贸n.Main.java
Clase principal que arranca la aplicaci贸n.
- El proyecto cubre las fases b谩sicas del ciclo de vida del dato con un programa funcional y probado.
- Para un detalle completo de cada fase, consulta
Resumen_Ciclo_Dato.md. - Se ha logrado una experiencia de usuario coherente y clara mediante men煤s y validaciones.
Como mejoras futuras se contemplan:
- A帽adir una interfaz gr谩fica sencilla para visualizaci贸n.
- Implementar conexi贸n a base de datos real (MySQL u otra).
- Automatizar procesos para mejorar usabilidad.
- A帽adir funcionalidades adicionales de an谩lisis o simulaci贸n.
Nota: Los archivos de salida (
gps_data.csv,bus*_status.json, etc.) se generan en el directorio de trabajo.
Desarrollador: David Guti茅rrez
GitHub: DavidLazaro08
Proyecto desarrollado en Java con IntelliJ IDEA para la asignatura de Digitalizaci贸n.