Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

LearnTrack - Student & Course Management System

LearnTrack is a console-based Student & Course Management System developed using Core Java. It allows administrators to manage students, courses, and enrollments through a menu-driven console interface.

The primary objective of this project is to practice Java fundamentals including Object-Oriented Programming, Collections, Exception Handling, and clean code organization.


Features

Student Management

  • Add a new student
  • View all students
  • Search student by ID
  • Deactivate a student

Course Management

  • Add a new course
  • View all courses
  • Search course by ID
  • Deactivate a course

Enrollment Management

  • Enroll a student into a course
  • View all enrollments
  • Cancel an enrollment

Project Structure

src/
└── com/
    └── airtribe/
        └── learntrack/
            ├── entity/
            ├── repository/
            ├── service/
            ├── util/
            ├── enums/
            ├── exception/
            └── Main.java

docs/
    Setup_Instructions.md
    JVM_Basics.md
    Design_Notes.md

Class Diagram

                    Person
                       ▲
                       │
                   Student

StudentService ---------> StudentRepository ---------> ArrayList<Student>

CourseService ----------> CourseRepository ----------> ArrayList<Course>

EnrollmentService -----> EnrollmentRepository -------> ArrayList<Enrollment>

EnrollmentService
       │
       ├────────► StudentService
       │
       └────────► CourseService

Technologies Used

  • Java
  • IntelliJ IDEA
  • Core Java Collections (ArrayList)
  • Object-Oriented Programming

OOP Concepts Demonstrated

Encapsulation

  • Private fields with public getters and setters.

Inheritance

  • Student extends Person.

Constructor Overloading

  • Multiple constructors in entity classes.

Polymorphism

  • Method overriding (toString()).

Static Members

  • IdGenerator uses static counters to generate unique IDs.

Project Architecture

The application follows a layered architecture.

Console UI (Main)
        │
        ▼
Service Layer
        │
        ▼
Repository Layer
        │
        ▼
In-Memory Storage (ArrayList)

Entity Layer

Represents the business objects.

  • Student
  • Course
  • Enrollment
  • Person

Repository Layer

Responsible for storing and retrieving data from memory.

Service Layer

Contains business logic and validation.

Main

Handles user interaction and menu navigation.


Exception Handling

The application uses a custom exception:

  • EntityNotFoundException

It is used whenever an invalid Student, Course, or Enrollment ID is requested.


How to Run

  1. Clone the repository.
git clone <your-github-repository-url>
  1. Open the project in IntelliJ IDEA.

  2. Configure the JDK (Java 17 or later).

  3. Run Main.java.


Future Improvements

  • Persistent database support (MySQL/PostgreSQL)
  • Spring Boot REST APIs
  • Authentication & Authorization
  • Duplicate enrollment validation
  • Unit Testing (JUnit)
  • Logging
  • Input validation

Learning Outcomes

This project helped in understanding:

  • Java classes and objects
  • Packages
  • Encapsulation
  • Inheritance
  • Constructor overloading
  • Collections using ArrayList
  • Exception Handling
  • Layered Architecture
  • Separation of Concerns
  • Static members and utility classes

About

Console-based Student & Course Management System built using Core Java

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors