A Java-based mobility system that manages vehicles, stations, and users for a shared mobility service.
src/
├── controller/
│ └── MobilitySystem.java # Main system controller
├── model/
│ ├── locations/
│ │ ├── Location.java # Base location class
│ │ └── Station.java # Station class for vehicle docking
│ ├── people/
│ │ ├── Person.java # Base person class
│ │ ├── PeopleManager.java # Manages all people in the system
│ │ ├── admin/
│ │ │ └── Admin.java # Admin user class
│ │ ├── members/
│ │ │ └── Member.java # Member user class
│ │ └── workers/
│ │ ├── Worker.java # Base worker class
│ │ ├── Mechanic.java # Mechanic worker class
│ │ └── FieldOperator.java # Field operator worker class
│ ├── prices/
│ │ └── Pricing.java # Pricing rules and calculations
│ ├── trips/
│ │ ├── Trip.java # Trip class
│ │ └── TripsManager.java # Manages all trips
│ └── vehicles/
│ ├── Vehicle.java # Base vehicle class
│ ├── VehiclesManager.java # Manages all vehicles
│ ├── Bicycle.java # Bicycle vehicle class
│ ├── Scooter.java # Scooter vehicle class
│ ├── SmallMotorcycle.java # Small motorcycle class
│ └── BigMotorcycle.java # Big motorcycle class
├── utils/
│ └── MockGenerator.java # Generates mock data for testing
├── view/
│ ├── VAdmin.java # Admin view
│ ├── VInitial.java # Initial view/menu
│ ├── VMember.java # Member view
│ └── VWorker.java # Worker view
└── movilidad.java # Main application entry point
- Support for different vehicle types (Bicycles, Scooters, Motorcycles)
- Vehicle status tracking (battery, repair needs, location)
- Vehicle assignment to workers
- Station capacity management
- Location tracking
- Support for different vehicle types
- Different user roles (Admin, Member, Worker)
- Worker types (Mechanic, Field Operator)
- Balance management for members
- Trip creation and tracking
- Cost calculation based on duration and vehicle type
- Location validation
- Balance checks
- Vehicle repair
- Vehicle movement
- Assignment management
- Trip booking
- Balance management
- Vehicle issue reporting
- Compile the project:
javac -d bin src/**/*.java src/movilidad.java- Run the application:
java -cp bin src/movilidad- Login as:
- Admin: Manage system, view reports
- Worker: Handle vehicle maintenance and movement
- Member: Book trips and manage account
- User Management (Standard and Premium users)
- Vehicle Rental System
- Station Management
- Battery Management
- Trip Tracking
- Premium User Benefits
- Mock Data Generation for Testing
-
Compile the Java files:
javac -d bin src/model/*.java src/controller/*.java movilidad.java
-
Run the application:
java -cp bin movilidad
- Login
- Generate Mock Data
- Save Data
- Exit
- View available vehicles
- Rent a vehicle
- End trip
- View trip history
- View balance
- Add balance
- Report vehicle issues
- Find nearest vehicle
- 20% discount on trips
- Vehicle reservation
- Lower battery level requirements
- Priority access to vehicles
- Electric Motorcycle
- Battery consumption: 0.5% per unit of distance
- Can be left anywhere within city limits
- Minimum battery level: 20% (Standard), 10% (Premium)
- The city is represented as a grid with coordinates (x, y)
- Default city limits: 100x100 units
- Electric motorcycles can operate anywhere within city limits
- Other vehicles must start and end at stations
- Standard users can only rent vehicles with battery level ≥ 20%
- Premium users can rent vehicles with battery level ≥ 10%
- Battery consumption varies by vehicle type
- Vehicles can be charged at stations
- Monetary values are in Euros (€)
- Mock data includes sample stations, vehicles, and users
- Vehicle locations are tracked in real-time
- Stations have limited capacity for vehicle storage