Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Campus Course & Records Manager (CCRM)

Java

📋 Project Overview

The Campus Course & Records Manager (CCRM) is a robust console-based Java application designed to streamline academic data management for colleges and universities. Built with modern Java principles, this project showcases Object-Oriented Programming (OOP), advanced I/O operations, exception handling, and design patterns.

CCRM offers a user-friendly menu-driven command-line interface (CLI) for managing students, courses, enrollments, and grades. It includes powerful file utilities for data import/export and automated backups.

✨ Features

🎓 Student Management

  • Add, list, update, and deactivate student records
  • Track student details: ID, registration number, full name, email, and enrollment status

📚 Course Management

  • Create, update, and deactivate courses
  • Manage course information: code, title, credits, instructor, semester, and department

📝 Enrollment & Grading

  • Enroll/unenroll students from courses
  • Record grades and compute GPA
  • Utilizes enums for Semester and Grade

💾 File Operations

  • Import student and course data from CSV-like text files
  • Export current data to files
  • Automated backup system with timestamped folders
  • Recursive utility to calculate backup directory size

Technical Highlights

  • OOP Principles: Encapsulation, Inheritance, Abstraction, and Polymorphism
  • Advanced Java Concepts:
    • I/O: NIO.2 Path and Files APIs with Java Streams
    • Data Structures: Arrays, Collections, and Streams for data manipulation
    • Exception Handling: Custom exceptions like DuplicateEnrollmentException and MaxCreditLimitExceededException
    • Design Patterns: Singleton (AppConfig) and Builder (Course)
    • Date/Time API: Modern handling of timestamps and dates

Installation & Setup

Prerequisites

  • Java Development Kit (JDK) 17 or higher installed on your system
  • Git for cloning the repository

Clone the Repository

git clone https://github.com/yourusername/ccrm.git
cd ccrm

Compile and Run

You can run the project using your IDE (e.g., IntelliJ IDEA, Eclipse) by executing the main class, or use the command line:

# Compile the project
javac -d bin src/edu/ccrm/**/*.java

# Run the application
java -cp bin edu.ccrm.cli.MainMenu

To enable assertions for debugging:

java -ea -cp bin edu.ccrm.cli.MainMenu

📁 Project Structure

CCRM_Project/
├── src/
│   └── edu/ccrm/
│       ├── cli/           # Command-line interface menus
│       ├── config/        # Application configuration
│       ├── domain/        # Core business entities
│       ├── exception/     # Custom exceptions
│       ├── io/            # File I/O services
│       ├── service/       # Business logic services
│       │   └── interfaces/ # Service interfaces
│       └── util/          # Utility classes
├── test-data/             # Sample CSV data files
├── CCRM_Project.iml       # IntelliJ IDEA project file
└── README.md

🧪 Testing

Sample data files are provided in the test-data/ directory:

  • students.csv: Sample student data
  • courses.csv: Sample course data

Import these files through the CLI to populate the system with test data.

📊 Java Editions Comparison

Feature Java SE (Standard Edition) Java EE (Enterprise Edition) Java ME (Micro Edition)
Purpose Desktop, console, and applets Large-scale enterprise applications Mobile and embedded devices
Key APIs Core libraries (Language, util, I/O) Servlets, EJB, JPA, etc. Small-footprint APIs
Platform Standalone applications Server-side runtimes Device-specific JVMs

🔧 JDK, JRE, and JVM

  • JDK (Java Development Kit): Development tools including compiler (javac) and debugger
  • JRE (Java Runtime Environment): Runtime environment with JVM and class libraries
  • JVM (Java Virtual Machine): Executes Java bytecode, enabling "write once, run anywhere"

📚 Syllabus Topic Mapping

Syllabus Topic Implementation
OOP Concepts Person.java, Student.java, Instructor.java, Course.java
File I/O (NIO.2) FileService.java, BackupService.java
Exceptions DuplicateEnrollmentException.java, MaxCreditLimitExceededException.java
Design Patterns AppConfig.java (Singleton), Course.Builder (Builder)
Java Streams API CourseService.java, ReportService.java

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Built with using Java

About

A Java CLI application that streamlines university administration with features for user management, course cataloging, enrollment, and grade tracking.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages