Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Student Management System

A console-based College Student Management System built in Java demonstrating core Object-Oriented Programming concepts: Abstraction, Encapsulation, Inheritance, and Polymorphism.


OOP Concepts Used

Concept Where
Abstraction Person abstract class + Repository<T,ID> interface
Encapsulation Private fields with getters/setters across all model classes
Inheritance Student and Faculty extend Person
Polymorphism getRole() overridden in Student and Faculty; Grade.fromScore() logic
Generics Repository<T, ID> — one interface, three implementations
Custom Exceptions StudentNotFoundException, DuplicateEntryException, InvalidDataException
Enums Grade with associated grade points

Project Structure

src/
├── main/java/sms/
│   ├── Main.java                  ← entry point
│   ├── model/
│   │   ├── Person.java            ← abstract base class
│   │   ├── Student.java           ← extends Person
│   │   ├── Faculty.java           ← extends Person
│   │   ├── Subject.java
│   │   ├── Result.java
│   │   └── Grade.java             ← enum with grade points
│   ├── repository/
│   │   ├── Repository.java        ← generic CRUD interface
│   │   ├── StudentRepository.java
│   │   ├── FacultyRepository.java
│   │   └── SubjectRepository.java
│   ├── service/
│   │   ├── StudentService.java
│   │   ├── FacultyService.java
│   │   ├── SubjectService.java
│   │   └── ReportService.java
│   ├── exception/
│   │   ├── StudentNotFoundException.java
│   │   ├── FacultyNotFoundException.java
│   │   ├── DuplicateEntryException.java
│   │   └── InvalidDataException.java
│   ├── util/
│   │   ├── Validator.java
│   │   ├── IDGenerator.java
│   │   └── TablePrinter.java
│   └── ui/
│       └── ConsoleMenu.java
└── test/java/sms/
    ├── StudentServiceTest.java
    └── GradeTest.java

Features

  • Enroll, update, and delete students
  • Add faculty and assign subjects to them
  • Record marks and auto-compute grades + CGPA (credit-weighted)
  • Track attendance percentage
  • Generate academic reports, merit lists, and attendance defaulter lists
  • Input validation with descriptive error messages

How to Run

Prerequisites

  • Java 17+
  • Maven 3.8+

Build & Run

# Compile and run tests
mvn clean test

# Package
mvn clean package

# Run the application
java -jar target/sms.jar

Without Maven (compile manually)

find src/main/java -name "*.java" > sources.txt
javac -d out @sources.txt
java -cp out sms.Main

Sample Workflow

  1. Add subjects (Subject Management → Add Subject)
  2. Enroll students (Student Management → Enroll)
  3. Add marks for enrolled students using subject codes
  4. Generate reports (Reports → Student academic report / Merit list)

Tech Stack

  • Java 17
  • Maven (build + dependency management)
  • JUnit 5 (unit tests)
  • No external frameworks — pure Java OOP

About

Student Management System | Java OOP — Console-based college management app covering student enrollment, faculty, subjects, marks, CGPA calculation, and attendance tracking. Demonstrates Abstraction, Encapsulation, Inheritance, Polymorphism, Generics, and Custom Exceptions. Built with Maven + JUnit 5.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages