Skip to content

botishbot/StudentCourseManagement

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Student Course Management System

A clean, modular Java console application for managing academic courses with persistent file storage, recursive searching, and a user-friendly menu-driven interface.

Java Platform License Status


πŸ“– Overview

The Student Course Management System is a lightweight Java console application designed to simplify the management of academic course records.

Users can add new courses, search for existing courses, view all registered courses, calculate the total number of credit units, and save or load course information using a persistent text file.

The application follows a modular architecture that separates the data model, business logic, and user interface, making the codebase easier to understand, maintain, and extend.

Whether you're learning Java, exploring object-oriented programming, or looking for a simple reference implementation of a console-based CRUD application with file persistence, this project provides a practical and easy-to-follow example.


✨ Features

  • βœ… Add new courses
  • βœ… Prevent duplicate course codes
  • βœ… View all registered courses
  • βœ… Search courses by code using recursion
  • βœ… Calculate total registered credit units
  • βœ… Save course records to a text file
  • βœ… Load saved course records
  • βœ… Input validation for user entries
  • βœ… Unsaved changes detection before exit
  • βœ… Clean, menu-driven console interface
  • βœ… Modular and maintainable project structure

πŸ–ΌοΈ Screenshots

Main Menu

The application's central dashboard provides quick access to every feature through a simple numbered menu.

Main Menu


Add Course

Register a new course by entering its code, title, and credit units. Duplicate course codes are automatically rejected.

Add Course


View All Courses

Display every registered course in a neatly formatted table showing the course code, title, and credit units.

View Courses


Search Course

Locate any registered course using its course code. This feature is powered by a recursive search algorithm.

Search Course


Calculate Total Units

Instantly calculate the total number of registered courses and the combined credit units.

Total Units


Save Courses

Save all registered courses to persistent storage for future use.

Save Courses


Load Courses

Reload previously saved courses into the application.

Load Courses


Unsaved Changes Detection

Before closing the application, users are prompted to save any unsaved changes, helping prevent accidental data loss.

Unsaved Changes


πŸ› οΈ Technologies

  • Java Development Kit (JDK) 21 or newer
  • Object-Oriented Programming (OOP)
  • Java Collections (ArrayList)
  • File Handling (BufferedReader, BufferedWriter)
  • Exception Handling
  • Recursion
  • IntelliJ IDEA
  • Git & GitHub

πŸš€ Getting Started

This guide will help you set up and run the project on your local machine. Whether you're new to Java or an experienced developer, you should be able to get the application running in just a few minutes.

πŸ“‹ Requirements

Before you begin, ensure you have the following installed:

  • Java Development Kit (JDK) 21 or newer
  • Git (optional, for cloning the repository)
  • A terminal or command prompt
  • (Optional) IntelliJ IDEA Community or Ultimate Edition

To verify that Java is installed correctly, run:

java --version

If Java is installed, your terminal will display the installed JDK version.


πŸ“₯ Download the Project

There are two ways to obtain the project.

Option 1 β€” Clone the Repository

git clone https://github.com/botishbot/StudentCourseManagement.git

Navigate into the project folder:

cd StudentCourseManagement

Option 2 β€” Download ZIP

  1. Open this repository on GitHub.
  2. Click the green Code button.
  3. Select Download ZIP.
  4. Extract the archive.
  5. Open the extracted project folder.

β–Ά Running the Application

Method 1 β€” IntelliJ IDEA

  1. Open IntelliJ IDEA.
  2. Select Open.
  3. Choose the project folder.
  4. Allow IntelliJ to index the project.
  5. Open src/Main.java.
  6. Click Run.

Method 2 β€” Using the Terminal

Compile the project:

javac -d out src/Main.java src/model/*.java src/service/*.java src/ui/*.java

Run the application:

java -cp out Main

Note

Run the application from the project root directory. Running it from inside the out folder may prevent the application from locating the data/courses.txt file.


πŸ’» Using the Application

After launching the program, a menu-driven interface will appear.

Simply choose the corresponding menu number to perform an operation such as:

  • Add a new course
  • View all registered courses
  • Search for a course
  • Calculate total credit units
  • Save courses
  • Load previously saved courses
  • Exit the application

Input prompts guide you through each operation, making the application easy to use without prior experience.


🧠 Design Highlights

The project was designed with simplicity, modularity, and maintainability in mind. Each package has a clearly defined responsibility, making the codebase easier to understand and extend.

Object-Oriented Design

The application follows object-oriented programming principles by separating the data model, business logic, and user interface into independent components.

Modular Architecture

The project is organized into dedicated packages (model, service, and ui) to promote clean code and separation of concerns.

Recursive Search

Course searching is implemented recursively, demonstrating an alternative approach to traversing collections while keeping the implementation concise.

File Persistence

Course records can be saved to and loaded from a text file, allowing data to persist between application sessions.

Input Validation

User input is validated throughout the application to reduce invalid entries and improve the overall user experience.

Unsaved Changes Detection

The application tracks modifications made during runtime and reminds the user to save before exiting, helping prevent accidental data loss.


πŸ“ Project Structure

StudentCourseManagement/
β”‚
β”œβ”€β”€ data/
β”‚   └── courses.txt
β”‚
β”œβ”€β”€ screenshots/
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ model/
β”‚   β”‚   └── Course.java
β”‚   β”‚
β”‚   β”œβ”€β”€ service/
β”‚   β”‚   └── CourseManager.java
β”‚   β”‚
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   └── ConsoleUi.java
β”‚   β”‚
β”‚   └── Main.java
β”‚
β”œβ”€β”€ LICENSE
└── README.md

Package Overview

Package Responsibility
model Defines the Course class and represents application data.
service Contains the business logic, including course management, recursion, and file operations.
ui Implements the console-based user interface and user interaction.
Main Application entry point responsible for starting the program.

🚧 Future Improvements

Possible enhancements include:

  • Edit existing courses
  • Delete registered courses
  • Sort courses by code or title
  • Database integration
  • Graphical User Interface (GUI)
  • Export course data to additional formats

The current architecture was intentionally designed to make these enhancements easier to implement in the future.


🀝 Contributing

Contributions, suggestions, and improvements are welcome.

If you find a bug or have an idea for improving the project, feel free to open an issue or submit a pull request.


πŸ“„ License

This project is licensed under the MIT License.

See the LICENSE file for more information.


πŸ‘€ Author

BotishBot

GitHub: https://github.com/botishbot

If you found this project useful, consider giving it a ⭐ on GitHub.

About

A Java console application for managing student courses using Object-Oriented Programming, recursion, collections, and file handling.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages