Course: Advanced Java Programming assignment
Tech Stack I Use: Java 21 · JavaFX 21 · JDBC · Supabase (PostgreSQL)
Type: Desktop GUI Application
A JavaFX-based desktop application that allows students to register for courses through a graphical form. User input is validated and stored in a PostgreSQL database hosted on Supabase using plain JDBC.
This project started as a course assignment and was extended for hands-on learning with real database connectivity.
- JavaFX-based desktop UI: Interactive and responsive user interface.
- CSS-styled modern interface: Custom styling for a professional look and feel.
- Client-side form validation: Ensures data integrity before database submission.
- JDBC database connectivity: Direct communication with the database using standard drivers.
- PostgreSQL backend via Supabase: Managed cloud database for reliable storage.
- Submit and reset workflows: Complete lifecycle management for user input with feedback.
| Layer | Technology | Language/Version |
|---|---|---|
| Language | Java | 21 |
| UI | JavaFX | 21 |
| Styling | JavaFX CSS | - |
| Database | PostgreSQL | Supabase |
| Connectivity | JDBC | - |
| Build | Bash script | - |
student-registration/
├── run.sh # Execution and build script
├── src/
│ ├── Main.java # Application entry point
│ ├── RegistrationForm.java # UI + event handling logic
│ ├── DatabaseHandler.java # JDBC & database connection logic
│ └── style.css # UI styling and themes
├── lib/
│ └── javafx-sdk-21.0.2/ # External JavaFX libraries
└── out/ # Compiled project files
- Make sure the PostgreSQL JDBC driver is downloaded and available on the classpath.
- Ensure JDK 21 is installed and properly configured (
javaandjavacavailable in$PATH). - Verify that the JavaFX SDK path in
run.shmatches your local installation. - You may need to edit the build script (
run.sh) to:- Update JavaFX library paths
- Add the PostgreSQL JDBC JAR to the classpath
- Adjust paths for your operating system
Failure to configure these correctly will result in build or runtime errors.
- JDK 21 or higher
- JavaFX SDK 21.0.2
To run the application, navigate to the project root and execute the following commands in your terminal:
chmod +x run.sh
./run.sh- This is an educational project, not a production-ready system.
- Security, scalability, and configuration management were intentionally kept minimal.
- The project focuses on understanding JavaFX + JDBC + PostgreSQL integration rather than enterprise-level architecture.
- Supabase is used as a convenient hosted PostgreSQL backend for rapid development and testing.