A fully worked example project for the Object-Oriented Computing 2 (OOC2) module at Atlantic Technological University (ATU), demonstrating a JavaFX desktop application with serialization and CSV file I/O.
This Student Manager application showcases the key OOC2 concepts in a single cohesive project. It provides a graphical interface for managing a list of students, with the ability to add, remove, search, and persist student records to both CSV and binary (serialized) files. The project serves as a reference implementation for students completing their own OOC2 assignments.
- JavaFX GUI -- GridPane-based interface with buttons, text fields, and a text area for output
- Add / Remove Students -- Create and delete student records with input validation
- Data Validation -- Student ID format checking (G00XXXXXX), name and age validation
- CSV Import / Export -- Read and write student data to CSV files using buffered streams
- Binary Serialization -- Serialize and deserialize the entire student list to
.serfiles - File Chooser Dialogs -- Native OS file picker for loading and saving data
- Command-Line Arguments -- Optional window title via command-line arguments
- Cloud IDE Support -- Pre-configured for GitHub Codespaces with Dev Containers
- Java 21 or later with JavaFX support (Zulu JDK FX recommended)
- A Java IDE (VS Code with Java Extension Pack, IntelliJ IDEA, or Eclipse)
- Git
git clone https://github.com/danielcregg/ooc2-project-example.git
cd ooc2-project-exampleCompile and run the application:
javac -d bin src/ie/atu/studentmanagerpackage/*.java
java -cp bin ie.atu.studentmanagerpackage.MainOr open the project in your IDE and run Main.java directly.
Using the application:
- Click Add students from bin file to load an existing
.serfile - Enter a Student ID (format: G00XXXXXX), first name, and age, then click Add Student
- Click Show Student List to display all students
- Enter a Student ID and click Remove Student to delete a record
- Click Save List to binary file to persist the current list
- Language: Java 21
- GUI Framework: JavaFX
- Data Persistence: Java Serialization, CSV (BufferedReader / BufferedWriter)
- Build Environment: GitHub Codespaces (Dev Containers)
This project is licensed under the MIT License. See the LICENSE file for details.