A full-stack Client–Server parking management platform built with Java, JavaFX, and MySQL
BPARK is an automated parking management system developed as a semester project. The system manages an automated parking facility end-to-end — vehicle drop-off and pickup, subscriber management, advance reservations, real-time capacity tracking, and operational reporting — all through an intuitive desktop interface.
- Registration of new subscribers via a parking attendant
- Unique subscriber ID and quick-access code generation
- Profile viewing and editing for subscribers
- Automatic account deactivation after 3 late pickups
- Identification via terminal or tag reader (simulated)
- Automatic parking code and confirmation code generation
- Default parking time with in-session extension options
- Lost parking code recovery via email notification
- Late pickup tracking with delay history
- Advance reservations from 24 hours up to 7 days ahead
- Reservation allowed only when ≥ 40% capacity is available
- Automatic cancellation if the user does not arrive on time (checked every 10 minutes)
- Monthly parking duration reports
- Subscriber activity and usage statistics
- Free space tracking and capacity monitoring
- Administrative dashboard for parking managers
┌─────────────────────────────────────────────────────────┐
│ BPARK System │
│ │
│ ┌──────────────┐ TCP/IP (OCSF) ┌──────────────┐ │
│ │ │◄──────────────────►│ │ │
│ │ JavaFX │ Port 5555 │ Java │ │
│ │ Client │ │ Server │ │
│ │ (Desktop) │ │ (Backend) │ │
│ │ │ │ │ │
│ └──────────────┘ └──────┬───────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ MySQL 8.0 │ │
│ │ Database │ │
│ │ (bpark) │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────┘
| Layer | Technology | Description |
|---|---|---|
| Frontend | JavaFX + FXML | 23 screens with modern styled UI |
| Networking | OCSF Framework | TCP/IP client–server communication |
| Backend | Java | Business logic, scheduling, validation |
| Database | MySQL 8.0 | Relational storage with transaction support |
| Jakarta Mail | SMTP notifications via Gmail |
| Role | Access Level | Key Capabilities |
|---|---|---|
| Subscriber | Standard | Drop-off, pickup, reservations, profile management |
| Attendant | Staff | Register new subscribers, assist with operations |
| Manager | Admin | View reports, monitor system usage, manage subscribers |
BPARK-main/
│
├── G14_Server/ # Server module
│ └── src/
│ ├── server/
│ │ ├── BParkServer.java # Main server — business logic (1,700+ lines)
│ │ ├── EmailSender.java # Gmail SMTP email service
│ │ └── ServerUI.java # Server launch & display
│ └── common/
│ ├── ClientRequest.java # 22 request type definitions
│ └── ChatIF.java # Communication interface
│
├── G14_Clien/ # Client module
│ └── src/
│ ├── client/
│ │ ├── BParkClient.java # OCSF client handler
│ │ └── ClientUI.java # Client initialization
│ ├── clientGui/ # 46 UI files (23 FXML + 23 Controllers)
│ │ ├── BparkHome.fxml # Main entry screen
│ │ ├── ClientDropOff.fxml # Vehicle drop-off
│ │ ├── ClientPickUp.fxml # Vehicle pickup
│ │ ├── ClientReservationUi.fxml # Reservations
│ │ ├── ParkingTimeReport.fxml # Reports
│ │ └── ... # Additional screens
│ └── common/ # Shared data models
│ ├── User.java # User account model
│ ├── Subscriber.java # Subscription model
│ ├── Parking.java # Parking session model
│ ├── Reservation.java # Reservation model
│ ├── ParkingSpace.java # Parking space model
│ └── ... # Additional models
│
├── G14_client.jar # Compiled client (ready to run)
├── G14_server.jar # Compiled server (ready to run)
└── G14__Assignment2.vpp # UML diagrams (Visual Paradigm)
| Table | Purpose |
|---|---|
user |
Account credentials, personal details, and role assignment |
subscriber |
Subscription codes, quick-access codes, registration dates, delay tracking |
parking |
Active and past parking sessions, confirmation codes, extensions |
parking_space |
Lot layout, space numbering, occupancy status |
reservation |
Advance bookings with time windows, status, and confirmation |
message |
System notifications and alerts |
- Java JDK 8+ with JavaFX support
- MySQL 8.0 server running locally
- Eclipse IDE (recommended) or any Java IDE
- Create the database:
CREATE DATABASE bpark;
- Configure the connection in
BParkServer.java(default:localhost:3306, userroot)
Option A — Using pre-built JARs:
# Start the server
java -jar G14_server.jar
# Start the client (in a separate terminal)
java -jar G14_client.jarOption B — From source (Eclipse):
- Import
G14_ServerandG14_Clienas existing Eclipse projects - Add
mysql-connector-java-8.0.13.jarfromlib/to the build path - Run
ServerUI.javato start the server - Run
ClientUI.javato start the client - Connect the client to
localhoston port5555
| Category | Technology |
|---|---|
| Language | Java |
| UI Framework | JavaFX + FXML |
| Network Layer | OCSF (Object Client-Server Framework) |
| Database | MySQL 8.0 |
| DB Connector | mysql-connector-java 8.0.13 |
| Email Service | Jakarta Mail 2.0.1 (Gmail SMTP) |
| IDE | Eclipse |
| Design & UML | Visual Paradigm |
Developed as a semester project • Client–Server Architecture • Designed for future web & mobile expansion