diff --git a/README.md b/README.md index 286dfe2..3fede95 100644 --- a/README.md +++ b/README.md @@ -1 +1,28 @@ -"# Online-Bus-Booking-Platform" +# Online-Bus-Booking-Platform + +## Prerequisites +- **Java 21 JDK** installed (javac and java in PATH) +- **JavaFX SDK** bundled at `lib/javafx-sdk-21.0.6` +- **MySQL Connector/J** at `lib/mysql-connector-j-9.2.0/mysql-connector-j-9.2.0.jar` +- **jbcrypt** at `lib/jbcrypt-0.4.jar` +- A running **MySQL** server with a database named `bus_booking` + +## Setup +1. Update database credentials in `src/database/DatabaseConnection.java` if needed. +2. Import schema and seed data if you have any SQL: `bus_booking.sql`. + +## Build +```bash +./compile.sh +``` + +## Run +```bash +./run.sh +``` + +The app starts at the login screen (`views/login.fxml`). + +## Notes +- If you are on Wayland or a headless server, JavaFX may require additional flags or a virtual display. +- To change window size, edit `src/Main.java`. \ No newline at end of file diff --git a/compile.sh b/compile.sh new file mode 100755 index 0000000..2340759 --- /dev/null +++ b/compile.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Directories +ROOT_DIR="$(cd "$(dirname "$0")" && pwd)" +SRC_DIR="$ROOT_DIR/src" +OUT_DIR="$ROOT_DIR/out" +JFX_LIB_DIR="$ROOT_DIR/lib/javafx-sdk-21.0.6/lib" +MYSQL_JAR="$ROOT_DIR/lib/mysql-connector-j-9.2.0/mysql-connector-j-9.2.0.jar" +JBCRYPT_JAR="$ROOT_DIR/lib/jbcrypt-0.4.jar" + +mkdir -p "$OUT_DIR" + +# Compile +javac \ + --class-path "$MYSQL_JAR:$JBCRYPT_JAR" \ + --module-path "$JFX_LIB_DIR" \ + --add-modules javafx.controls,javafx.fxml \ + -d "$OUT_DIR" \ + $(find "$SRC_DIR" -name "*.java") + +# Copy non-Java resources (FXML, images, styles) preserving relative paths (no rsync) +( + cd "$SRC_DIR" + find . -type f \( -name "*.fxml" -o -name "*.css" -o -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.gif" \) | while IFS= read -r rel; do + dest_dir="$OUT_DIR/$(dirname "$rel")" + mkdir -p "$dest_dir" + cp "$rel" "$dest_dir/" + done +) + +echo "Compilation successful. Classes in $OUT_DIR" \ No newline at end of file diff --git a/out/Main.class b/out/Main.class new file mode 100644 index 0000000..4d951ca Binary files /dev/null and b/out/Main.class differ diff --git a/out/controllers/AddBusController$1.class b/out/controllers/AddBusController$1.class new file mode 100644 index 0000000..b3330ab Binary files /dev/null and b/out/controllers/AddBusController$1.class differ diff --git a/out/controllers/AddBusController$2.class b/out/controllers/AddBusController$2.class new file mode 100644 index 0000000..9a5287c Binary files /dev/null and b/out/controllers/AddBusController$2.class differ diff --git a/out/controllers/AddBusController$3.class b/out/controllers/AddBusController$3.class new file mode 100644 index 0000000..3c957c5 Binary files /dev/null and b/out/controllers/AddBusController$3.class differ diff --git a/out/controllers/AddBusController$4.class b/out/controllers/AddBusController$4.class new file mode 100644 index 0000000..81ed502 Binary files /dev/null and b/out/controllers/AddBusController$4.class differ diff --git a/out/controllers/AddBusController$5.class b/out/controllers/AddBusController$5.class new file mode 100644 index 0000000..bb0662d Binary files /dev/null and b/out/controllers/AddBusController$5.class differ diff --git a/out/controllers/AddBusController.class b/out/controllers/AddBusController.class new file mode 100644 index 0000000..6f1fef3 Binary files /dev/null and b/out/controllers/AddBusController.class differ diff --git a/out/controllers/AddScheduleController$1.class b/out/controllers/AddScheduleController$1.class new file mode 100644 index 0000000..d54722c Binary files /dev/null and b/out/controllers/AddScheduleController$1.class differ diff --git a/out/controllers/AddScheduleController$2.class b/out/controllers/AddScheduleController$2.class new file mode 100644 index 0000000..71c6f1a Binary files /dev/null and b/out/controllers/AddScheduleController$2.class differ diff --git a/out/controllers/AddScheduleController.class b/out/controllers/AddScheduleController.class new file mode 100644 index 0000000..d50bf60 Binary files /dev/null and b/out/controllers/AddScheduleController.class differ diff --git a/out/controllers/AdminController.class b/out/controllers/AdminController.class new file mode 100644 index 0000000..7e0b69b Binary files /dev/null and b/out/controllers/AdminController.class differ diff --git a/out/controllers/LoginController.class b/out/controllers/LoginController.class new file mode 100644 index 0000000..e793260 Binary files /dev/null and b/out/controllers/LoginController.class differ diff --git a/out/controllers/PaymentController.class b/out/controllers/PaymentController.class new file mode 100644 index 0000000..3e03811 Binary files /dev/null and b/out/controllers/PaymentController.class differ diff --git a/out/controllers/RegisterController.class b/out/controllers/RegisterController.class new file mode 100644 index 0000000..6dc21d6 Binary files /dev/null and b/out/controllers/RegisterController.class differ diff --git a/out/controllers/UserBookingController.class b/out/controllers/UserBookingController.class new file mode 100644 index 0000000..c049885 Binary files /dev/null and b/out/controllers/UserBookingController.class differ diff --git a/out/controllers/UserController.class b/out/controllers/UserController.class new file mode 100644 index 0000000..c95a8b4 Binary files /dev/null and b/out/controllers/UserController.class differ diff --git a/out/database/DatabaseConnection.class b/out/database/DatabaseConnection.class new file mode 100644 index 0000000..722529a Binary files /dev/null and b/out/database/DatabaseConnection.class differ diff --git a/out/models/Bus.class b/out/models/Bus.class new file mode 100644 index 0000000..1f9c35d Binary files /dev/null and b/out/models/Bus.class differ diff --git a/out/models/BusSchedule.class b/out/models/BusSchedule.class new file mode 100644 index 0000000..b70c307 Binary files /dev/null and b/out/models/BusSchedule.class differ diff --git a/out/views/addBus.fxml b/out/views/addBus.fxml new file mode 100644 index 0000000..d206429 --- /dev/null +++ b/out/views/addBus.fxml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/out/views/addSchedule.fxml b/out/views/addSchedule.fxml new file mode 100644 index 0000000..be14ea6 --- /dev/null +++ b/out/views/addSchedule.fxml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/out/views/adminDashboard.fxml b/out/views/adminDashboard.fxml new file mode 100644 index 0000000..0c5c776 --- /dev/null +++ b/out/views/adminDashboard.fxml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/out/views/login.fxml b/out/views/login.fxml new file mode 100644 index 0000000..4733745 --- /dev/null +++ b/out/views/login.fxml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + +