Skip to content

bhumikaverma05/ccrm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Campus Course & Records Manager (CCRM)

🏫 Overview

This project is a menu-driven Java application that manages students, courses, enrollments, marks, and transcripts.
It demonstrates Object-Oriented Programming, Design Patterns, Exception Handling, Streams & Lambdas, File Handling (NIO.2), and recursive utilities.


🚀 How to Run

  1. Open terminal in the project folder (where CCRMQuick.java is saved).
  2. Compile the program:

📌 Features

  • Add Student / Add Course → Create new records.
  • Enroll Student → Register a student in a course (max 18 credits rule).
  • Record Marks → Enter marks for a student.
  • Print Transcript → Show GPA and grades.
  • Export → Save student & course data as CSV files.
  • Backup & Size → Create timestamped backup and calculate folder size.
  • Search by Instructor → Filter courses using streams/lambdas.
  • Show Sample Data → View seeded students and courses.

🧑‍💻 Java Concepts Used

Concept Where it is used
Abstraction Person is an abstract class.
Encapsulation Student has private fields with controlled methods.
Inheritance Student extends Person.
Polymorphism Overridden toString() and toCSV().
Custom Exception MaxCreditLimitExceededException.
Builder Pattern Course.Builder creates Course objects.
Singleton Pattern DataStore ensures one shared instance.
Streams & Lambdas Search courses by instructor using filter() and collect().
NIO.2 File Handling Export and backup using Files.write(), Files.walk().
Recursive Utility Folder size calculation in computeSizeRecursive().
Inner/Nested Classes Student.ProfilePrinter, Course.Builder.

📂 Project Structure


🖼️ Screenshots (to include)

  1. Program main menu in terminal.
  2. Transcript printed for a student.
  3. exports/ folder with students.csv and courses.csv.
  4. backups/ folder with timestamped backup.

✅ How to Submit

  1. Run the program and capture required screenshots.
  2. Ensure exports/ and backups/ are created.
  3. Zip the project folder:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages