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.
- Add a new student
- View all students
- Search student by ID
- Deactivate a student
- Add a new course
- View all courses
- Search course by ID
- Deactivate a course
- Enroll a student into a course
- View all enrollments
- Cancel an enrollment
src/
└── com/
└── airtribe/
└── learntrack/
├── entity/
├── repository/
├── service/
├── util/
├── enums/
├── exception/
└── Main.java
docs/
Setup_Instructions.md
JVM_Basics.md
Design_Notes.md
Person
▲
│
Student
StudentService ---------> StudentRepository ---------> ArrayList<Student>
CourseService ----------> CourseRepository ----------> ArrayList<Course>
EnrollmentService -----> EnrollmentRepository -------> ArrayList<Enrollment>
EnrollmentService
│
├────────► StudentService
│
└────────► CourseService
- Java
- IntelliJ IDEA
- Core Java Collections (ArrayList)
- Object-Oriented Programming
- Private fields with public getters and setters.
StudentextendsPerson.
- Multiple constructors in entity classes.
- Method overriding (
toString()).
IdGeneratoruses static counters to generate unique IDs.
The application follows a layered architecture.
Console UI (Main)
│
▼
Service Layer
│
▼
Repository Layer
│
▼
In-Memory Storage (ArrayList)
Represents the business objects.
- Student
- Course
- Enrollment
- Person
Responsible for storing and retrieving data from memory.
Contains business logic and validation.
Handles user interaction and menu navigation.
The application uses a custom exception:
- EntityNotFoundException
It is used whenever an invalid Student, Course, or Enrollment ID is requested.
- Clone the repository.
git clone <your-github-repository-url>-
Open the project in IntelliJ IDEA.
-
Configure the JDK (Java 17 or later).
-
Run
Main.java.
- Persistent database support (MySQL/PostgreSQL)
- Spring Boot REST APIs
- Authentication & Authorization
- Duplicate enrollment validation
- Unit Testing (JUnit)
- Logging
- Input validation
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