# mayralihue131/sistema-uber-javafx architecture

> Architecture diagram of the GitHub repository mayralihue131/sistema-uber-javafx, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mayralihue131/sistema-uber-javafx
- Repository: https://github.com/mayralihue131/sistema-uber-javafx

## Overview

MovilidadDigital is the ride-and-delivery domain service: users register as clients or drivers, request and match trips, and manage trip state through completion or cancellation. The JavaFX application provides customer and driver screens; routing and driver-location support are distinct capabilities. Persistence is selectable across memory, text-file, and database DAOs. The README is empty, so capability coverage is based on the source tree and sampled references; several UI, routing-service, and persistence implementations were not sampled, so their connections are shown only where the source index supports them.

Main entry points: [`src/main/java/movilidad/aplicacion/AplicacionUberFX.java`](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/aplicacion/AplicacionUberFX.java) (JavaFX application), [`src/main/java/movilidad/dao/DAOLoader.java`](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/DAOLoader.java) (DAO selection), [`src/main/java/movilidad/logica/MovilidadDigital.java`](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/logica/MovilidadDigital.java) (Mobility service), [`src/main/java/movilidad/ui/UberController.java`](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/UberController.java) (Ride screens)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["JavaFX application"]
  node_uber_ui["Ride screens"]
  node_map_ui["Map controller"]
  node_session["Session state<br/>[SesionUber.java]"]
  node_fx_app["JavaFX application"]
  node_consult_app["Consultation app"]
end

subgraph group_domain["Mobility domain"]
  node_mobility["Mobility service"]
  node_trip["Trip lifecycle<br/>[Viaje.java]"]
  node_user["User and roles<br/>[Usuario.java]"]
  node_vehicle["Vehicle<br/>[Vehiculo.java]"]
  node_service["Service pricing<br/>[Servicio.java]"]
  node_location["Coordinates<br/>[Ubicacion.java]"]
end

subgraph group_routing["Routing and location"]
  node_route_service["Trip routing service"]
  node_route_planner["Route planner"]
  node_route_factory["GraphHopper factory"]
  node_driver_locations["Driver locations"]
end

subgraph group_persistence["Persistence"]
  node_dao_loader["DAO selection<br/>[DAOLoader.java]"]
  node_dao_factory["DAO contracts<br/>[DAOFactory.java]"]
  node_memory_store["Memory DAOs"]
  node_text_store["Text-file DAOs<br/>[TxtDAOFactory.java]"]
  node_db_store["Database DAOs<br/>[BdDAOFactory.java]"]
  node_db_connection["Database connection<br/>[ConexionBD.java]"]
end

node_rider(("Rider or driver"))
node_db[("Relational database")]

node_rider -->|"uses"| node_uber_ui
node_uber_ui -->|"reads session"| node_session
node_uber_ui -->|"opens views"| node_fx_app
node_uber_ui -->|"requests operations"| node_mobility
node_fx_app -->|"uses map"| node_map_ui
node_fx_app -->|"configures"| node_route_service
node_fx_app -->|"configures"| node_route_planner
node_fx_app -->|"creates routes"| node_route_factory
node_fx_app -->|"uses locations"| node_driver_locations
node_map_ui -->|"displays trip"| node_trip
node_consult_app -->|"queries"| node_mobility
node_consult_app -->|"loads storage"| node_dao_loader
node_mobility -->|"manages users"| node_user
node_mobility -->|"manages trips"| node_trip
node_mobility -->|"manages vehicles"| node_vehicle
node_trip -->|"stores endpoints"| node_location
node_trip -->|"uses service"| node_service
node_route_service -.->|"plans routes"| node_route_planner
node_route_planner -.->|"creates engine"| node_route_factory
node_driver_locations -->|"uses planner"| node_route_planner
node_dao_loader -->|"returns factory"| node_dao_factory
node_dao_loader -->|"selects"| node_memory_store
node_dao_loader -->|"selects"| node_text_store
node_dao_loader -->|"selects"| node_db_store
node_memory_store -->|"implements"| node_dao_factory
node_text_store -->|"implements"| node_dao_factory
node_db_store -.->|"implements"| node_dao_factory
node_db_store -.->|"uses connection"| node_db_connection
node_db_connection -.->|"connects"| node_db

click node_uber_ui "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/UberController.java"
click node_map_ui "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/MapaController.java"
click node_session "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/SesionUber.java"
click node_fx_app "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/aplicacion/AplicacionUberFX.java"
click node_consult_app "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/aplicacion/AplicacionConsultas.java"
click node_mobility "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/logica/MovilidadDigital.java"
click node_trip "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Viaje.java"
click node_user "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Usuario.java"
click node_vehicle "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Vehiculo.java"
click node_service "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Servicio.java"
click node_location "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Ubicacion.java"
click node_route_service "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/ServicioRutasViaje.java"
click node_route_planner "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/PlanificadorGraphHopper.java"
click node_route_factory "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/FabricaGraphHopper.java"
click node_driver_locations "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/UbicacionesConductores.java"
click node_dao_loader "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/DAOLoader.java"
click node_dao_factory "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/DAOFactory.java"
click node_memory_store "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/memoria/MemoriaDAOFactory.java"
click node_text_store "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/txt/TxtDAOFactory.java"
click node_db_store "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/bd/BdDAOFactory.java"
click node_db_connection "https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/bd/ConexionBD.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_uber_ui,node_map_ui,node_session,node_fx_app,node_consult_app toneBlue
class node_mobility,node_trip,node_user,node_vehicle,node_service,node_location,node_db toneAmber
class node_route_service,node_route_planner,node_route_factory,node_driver_locations toneMint
class node_dao_loader,node_dao_factory,node_memory_store,node_text_store,node_db_store,node_db_connection toneRose
class node_rider toneIndigo
```

## Components

### JavaFX application

- [Ride screens](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/UberController.java): `src/main/java/movilidad/ui/UberController.java`
- [Map controller](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/MapaController.java): `src/main/java/movilidad/ui/MapaController.java`
- [Session state](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/ui/SesionUber.java): `src/main/java/movilidad/ui/SesionUber.java`
- [JavaFX application](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/aplicacion/AplicacionUberFX.java): `src/main/java/movilidad/aplicacion/AplicacionUberFX.java`
- [Consultation app](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/aplicacion/AplicacionConsultas.java): `src/main/java/movilidad/aplicacion/AplicacionConsultas.java`

### Mobility domain

- [Mobility service](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/logica/MovilidadDigital.java): `src/main/java/movilidad/logica/MovilidadDigital.java`
- [Trip lifecycle](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Viaje.java): `src/main/java/movilidad/modelo/Viaje.java`
- [User and roles](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Usuario.java): `src/main/java/movilidad/modelo/Usuario.java`
- [Vehicle](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Vehiculo.java): `src/main/java/movilidad/modelo/Vehiculo.java`
- [Service pricing](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Servicio.java): `src/main/java/movilidad/modelo/Servicio.java`
- [Coordinates](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/modelo/Ubicacion.java): `src/main/java/movilidad/modelo/Ubicacion.java`

### Routing and location

- [Trip routing service](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/ServicioRutasViaje.java): `src/main/java/movilidad/rutas/ServicioRutasViaje.java`
- [Route planner](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/PlanificadorGraphHopper.java): `src/main/java/movilidad/rutas/PlanificadorGraphHopper.java`
- [GraphHopper factory](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/FabricaGraphHopper.java): `src/main/java/movilidad/rutas/FabricaGraphHopper.java`
- [Driver locations](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/rutas/UbicacionesConductores.java): `src/main/java/movilidad/rutas/UbicacionesConductores.java`

### Persistence

- [DAO selection](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/DAOLoader.java): `src/main/java/movilidad/dao/DAOLoader.java`
- [DAO contracts](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/DAOFactory.java): `src/main/java/movilidad/dao/DAOFactory.java`
- [Memory DAOs](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/memoria/MemoriaDAOFactory.java): `src/main/java/movilidad/dao/memoria/MemoriaDAOFactory.java`
- [Text-file DAOs](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/txt/TxtDAOFactory.java): `src/main/java/movilidad/dao/txt/TxtDAOFactory.java`
- [Database DAOs](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/bd/BdDAOFactory.java): `src/main/java/movilidad/dao/bd/BdDAOFactory.java`
- [Database connection](https://github.com/mayralihue131/sistema-uber-javafx/blob/main/src/main/java/movilidad/dao/bd/ConexionBD.java): `src/main/java/movilidad/dao/bd/ConexionBD.java`

### Other components

- **Rider or driver**
- **Relational database**

## Connections

- Rider or driver → Ride screens: uses (evidence: `src/main/java/movilidad/ui/UberController.java`)
- Ride screens → Session state: reads session (evidence: `src/main/java/movilidad/ui/UberController.java`)
- Ride screens → JavaFX application: opens views (evidence: `src/main/java/movilidad/ui/UberController.java`)
- Ride screens → Mobility service: requests operations (evidence: `src/main/java/movilidad/ui/UberController.java`)
- JavaFX application → Map controller: uses map (evidence: `src/main/java/movilidad/aplicacion/AplicacionUberFX.java`)
- JavaFX application → Trip routing service: configures (evidence: `src/main/java/movilidad/aplicacion/AplicacionUberFX.java`)
- JavaFX application → Route planner: configures (evidence: `src/main/java/movilidad/aplicacion/AplicacionUberFX.java`)
- JavaFX application → GraphHopper factory: creates routes (evidence: `src/main/java/movilidad/aplicacion/AplicacionUberFX.java`)
- JavaFX application → Driver locations: uses locations (evidence: `src/main/java/movilidad/aplicacion/AplicacionUberFX.java`)
- Map controller → Trip lifecycle: displays trip (evidence: `src/main/java/movilidad/ui/MapaController.java`)
- Consultation app → Mobility service: queries (evidence: `src/main/java/movilidad/aplicacion/AplicacionConsultas.java`)
- Consultation app → DAO selection: loads storage (evidence: `src/main/java/movilidad/aplicacion/AplicacionConsultas.java`)
- Mobility service → User and roles: manages users (evidence: `src/main/java/movilidad/logica/MovilidadDigital.java`)
- Mobility service → Trip lifecycle: manages trips (evidence: `src/main/java/movilidad/logica/MovilidadDigital.java`)
- Mobility service → Vehicle: manages vehicles (evidence: `src/main/java/movilidad/logica/MovilidadDigital.java`)
- Trip lifecycle → Coordinates: stores endpoints (evidence: `src/main/java/movilidad/modelo/Viaje.java`)
- Trip lifecycle → Service pricing: uses service (evidence: `src/main/java/movilidad/modelo/Viaje.java`)
- Trip routing service → Route planner: plans routes
- Route planner → GraphHopper factory: creates engine
- Driver locations → Route planner: uses planner (evidence: `src/main/java/movilidad/rutas/UbicacionesConductores.java`)
- DAO selection → DAO contracts: returns factory (evidence: `src/main/java/movilidad/dao/DAOLoader.java`)
- DAO selection → Memory DAOs: selects (evidence: `src/main/java/movilidad/dao/DAOLoader.java`)
- DAO selection → Text-file DAOs: selects (evidence: `src/main/java/movilidad/dao/DAOLoader.java`)
- DAO selection → Database DAOs: selects (evidence: `src/main/java/movilidad/dao/DAOLoader.java`)
- Memory DAOs → DAO contracts: implements (evidence: `src/main/java/movilidad/dao/memoria/MemoriaDAOFactory.java`)
- Text-file DAOs → DAO contracts: implements (evidence: `src/main/java/movilidad/dao/DAOFactory.java`)
- Database DAOs → DAO contracts: implements
- Database DAOs → Database connection: uses connection
- Database connection → Relational database: connects
