School Management System in Java

Our School Management System is designed to manage students, teachers, and courses within a school. It allows for adding new members to each category, displaying the list of members, and managing course assignments. This system uses core Java concepts, making it an excellent project for beginners looking to apply their knowledge in a real-world scenario.

System Design 

The system comprises three main components: Student, Teacher, and Course, each represented by a Java class with attributes reflecting their real-world counterparts. For instance, the Student class includes id, name, and grade attributes, while the Teacher and Course classes contain attributes suitable for their specific roles within the school system. 

Core Features 

Add New Members: The system supports adding new students, teachers, and courses via user input.

Display Lists: It can display comprehensive lists of students, teachers, and courses, providing a quick overview of the school's current roster. 

Interactive User Input: The system utilizes Java's Scanner class to prompt users to enter details for new students, teachers, and courses, making data entry interactive and straightforward.


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Student {
    int id;
    String name;
    int grade;

    Student(int id, String name, int grade) { = id; = name;
        this.grade = grade;

    public String toString() {
        return "Student ID: " + id + ", Name: " + name + ", Grade: " + grade;

class Teacher {
    int id;
    String name;

    Teacher(int id, String name) { = id; = name;

    public String toString() {
        return "Teacher ID: " + id + ", Name: " + name;

class Course {
    int id;
    String name;

    Course(int id, String name) { = id; = name;

    public String toString() {
        return "Course ID: " + id + ", Name: " + name;

public class SchoolManagementSystem {
    List<Student> students = new ArrayList<>();
    List<Teacher> teachers = new ArrayList<>();
    List<Course> courses = new ArrayList<>();

    Scanner scanner = new Scanner(;

    public void addStudent() {
        System.out.println("Enter Student ID, Name, and Grade:");
        int id = scanner.nextInt();
        String name =;
        int grade = scanner.nextInt();
        students.add(new Student(id, name, grade));

    public void addTeacher() {
        System.out.println("Enter Teacher ID and Name:");
        int id = scanner.nextInt();
        String name =;
        teachers.add(new Teacher(id, name));

    public void addCourse() {
        System.out.println("Enter Course ID and Name:");
        int id = scanner.nextInt();
        String name =;
        courses.add(new Course(id, name));

    public void printStudents() {

    public void printTeachers() {

    public void printCourses() {

    public static void main(String[] args) {
        SchoolManagementSystem system = new SchoolManagementSystem();

        // Taking input from the user
        system.addStudent(); // Add at least one student
        system.addTeacher(); // Add at least one teacher
        system.addCourse(); // Add at least one course

        // Printing the entities

Implementation Highlights

Model Classes

Each entity in the school management system is modeled as a Java class (Student, Teacher, and Course). These classes are designed with simplicity in mind, containing attributes and constructors necessary for creating new instances.

Adding New Members

The system's capability to add new members is facilitated by methods like addStudent(), addTeacher(), and addCourse(), which read user inputs and store the new instances in respective ArrayLists.

Displaying Information

Methods such as printStudents(), printTeachers(), and printCourses() iterate over their respective ArrayLists, displaying each member's details using the toString() method overridden in each model class.


  1. Compile the Java program. 
  2. Run the compiled program. 
  3. The program will prompt you to enter details for a student, a teacher, and a course. Input the details as prompted. 
  4. For names with spaces, you might need to adjust the input method or input data without spaces. 
  5. The program will then print the details of the students, teachers, and courses you entered.

Example Input and Output


1 Rajesh 10
1 Mrs. Sharma
1 Mathematics


Student ID: 1, Name: Rajesh, Grade: 10

Teacher ID: 1, Name: Mrs. Sharma

Course ID: 1, Name: Mathematics