A simple Java-based study management system that helps students organize their courses, track topics, and generate a personalized weekly study plan.
This project demonstrates Object-Oriented Programming (OOP) principles in Java, including classes, enums, encapsulation, and collections.
-
👨🎓 Student Management
- Create students with unique IDs
- Enroll in or drop courses
- View enrolled courses
-
📚 Course Management
- Add and remove topics
- Track overall course progress (percentage completed)
- Generate a weekly study plan based on topic difficulty
-
📝 Topic Tracking
- Difficulty levels:
EASY
,MEDIUM
,HARD
- Estimated study times
- Mark topics as completed or pending
- Difficulty levels:
-
📊 Difficulty-based Scheduling
- Easy topics → early in the week
- Medium topics → midweek
- Hard topics → weekend
- Max 2 topics per day
Smart Study Assistant/ ├── Student.java # Represents a student, enrolled courses, course management ├── Course.java # Represents a course, manages topics and weekly plan ├── Topic.java # Represents a study topic with difficulty and completion status ├── Difficulty.java # Enum for EASY, MEDIUM, HARD + estimated study time
javac *.java
### 2. Run the program(you will need a Main.java with a main() method to test functionality)
public class Main {
public static void main(String[] args) {
Student s1 = new Student("Alice", "S001");
Course c1 = new Course("CS101", "Intro to Programming");
Topic t1 = new Topic("Variables", Difficulty.EASY);
Topic t2 = new Topic("Loops", Difficulty.MEDIUM);
Topic t3 = new Topic("OOP", Difficulty.HARD);
c1.addTopic(t1);
c1.addTopic(t2);
c1.addTopic(t3);
s1.enrollInCourse(c1);
System.out.println(c1.getWeeklyStudyPlan());
}
}
javac Main.java
java Main
Auther:
Developed by Ramukumba Gundo
Check out more of my projects here: https://github.com/Gundo-Codes