A Java desktop application for course registration — students, teachers, and administrators, built on an MVC architecture with JDBC and design patterns.
Built for Programming Patterns (420-301-VA) at Vanier College.
The School Registration System simplifies course management for three roles — students, teachers, and administrators. It's a practical application of object-oriented design, data structures, and software design patterns, built on an MVC architecture with a JDBC-backed SQLite database and a bilingual (English / French) interface.
- Register for and drop courses with real-time seat availability
- View current and upcoming semester schedules
- View course details, student lists, and schedules
- Add, update, or delete courses
- Manage student enrollment
- Generate reports on courses and students
- MVC architecture with clear model/view/controller separation
- Design patterns — e.g. Factory and Singleton
- JDBC CRUD against an SQLite database
- Internationalization (I18N/L10N) with
ResourceBundle+Locale - Collections & Stream processing with lambdas
- Unit tests following a test-driven approach
| ER Diagram | Class Diagram |
|---|---|
![]() |
![]() |
| Area | Tools |
|---|---|
| Language | Java |
| Database | SQLite via JDBC |
| UI | Swing (GUI desktop) |
| Patterns | MVC, Factory, Singleton |
| i18n | ResourceBundle, Locale |
git clone https://github.com/MatthewMacri/Programming-Patterns-Project.git
cd Programming-Patterns-ProjectOpen the project in your IDE (IntelliJ IDEA / Eclipse), ensure the SQLite JDBC driver is on the classpath, and run the main application class. A runnable JAR is included in the final deliverable.
.
├── Deliverable_1/ # Project description + ER & Class diagrams
├── Deliverable_2/ # Core implementation
├── Deliverable_3/ # Final application & report
└── ProjectDescription.md


