Campus Course & Records Manager (CCRM)
A lightweight Java application to manage students, courses, enrollments, grades, and transcripts. CCRM includes both a graphical user interface (GUI) and a command‑line interface (CLI).
- Features
- Requirements
- Getting Started
- Build
- Run (GUI)
- Run (CLI)
- Data & Persistence
- Project Structure
- Troubleshooting
- Contributing
- Student Management: add , edit, list, and search student records
- Course Management: create and modify courses, set enrollment capacity
- Enrollment: register and manage student enrollments per course
- Grade Management: assign grades to enrolled students
- Transcripts: generate per‑student transcripts and GPA
- File Utilities: import/export and backup data
- Reports & Statistics: totals , counts, and GPA summaries
- Java 8+ (JDK)
- Windows, macOS or Linux (tested primarily on Windows)
From the project root, compile the sources :
javac *.javaThis will produce .class files alongside the sources.
Launch the GUI application :
java CCRMAppLaunch the text‑based menu system:
java CCRMApp --cli- Working data is stored under
data/(for example,data/students,data/students.csv). - Automatic/manual backups may be placed under
backups/(for example,backups/students_*.dat,backups/courses_*.dat) - Ensure the app has read/write access to these directories when running
CCRMApp.java: Application entry point, decides GUI vs CLI based on argumentsCCRMGui.java: Swing‑based GUI with tabbed views and tablesCCRMSystem.java: CLI flow, menus, and user input handlingCourse.java: Course domain model and enrollment logicStudent.java: Student domain model, grades, and transcript utilitiesFileManager.java: Save/load utilities for persistence and backupsdata/: Runtime data files (CSV and/or serialized data)- backups/: Timestamped backup snapshots
- "java is not recognized": Install the JDK and ensure
javaandjavacare on your Path. - Classes not found after editing code: Rebuild with
javac *.javabefore running - Permission issues on save/load: Verify your user has write access to
data/andbackups/. - Corrupted data: Restore from a file in
backups/by copying it into data/
- Keep code readable and consistent with existing style.
- Prefer clear, descriptive names for classes, methods, and variables.
- Test both GUI and CLI flows for changes that affect shared logic.
Have fun using CCRM!