An advanced, high-performance web application designed to help students generate optimal, non-overlapping study schedules. This project was developed as a core laboratory project for the Analysis of Algorithms (AoA) course in the 4th Semester of Software Engineering.
The system maps the problem of overlapping study slots with varying importance to the classic Weighted Interval Scheduling Problem, solving it efficiently using Dynamic Programming and Binary Search to bypass inefficient brute-force approaches.
Unlike the standard Interval Scheduling Problem which can be solved using a Greedy approach (sorting by finish times to maximize the count), this project deals with Priorities (Weights). Because academic subjects hold different credits or urgency, a Greedy choice does not yield an optimal solution.
- Sorting Phase: The input study sessions are sorted chronologically based on their end times.
-
Dynamic Programming Lookup: We define a DP array
dp[]wheredp[i]stores the maximum achievable priority using the firstisessions. -
Binary Search Acceleration: To find the latest non-overlapping session before the current one, a standard candidate-assignment Binary Search is implemented instead of a linear search. This drops the step complexity from
$O(n)$ to$O(\log n)$ . -
Backtracking: Once the maximum weight is calculated at
dp[n], the engine backtracks to extract the exact chronological path of selected sessions.
| Metric | Naive/Brute-Force Approach | Our DP + Binary Search Implementation |
|---|---|---|
| Time Complexity |
|
|
| Space Complexity |
- Zero-Dependency Backend: Built natively on Java's core lightweight
HttpServerwithout heavy frameworks (like Spring Boot), ensuring instantaneous startup and low memory footprint. - High-Performance JSON Parser: Bypasses reflection-heavy libraries (like Jackson/Gson) by utilizing highly optimized native Regex tokenizers for processing network payloads.
- Optimal Schedule Generation: Solves multi-variant resource conflicts seamlessly.
- Secure Authentication Layer: Micro-storage implementation for User Signups and Logins with synchronized multi-threaded file persistence.
- Full CORS Capability: Ready to handle pre-flight
OPTIONSrouting securely.
- Frontend: HTML5, CSS3 (Modern Glassmorphic UI), Vanilla JavaScript (Fetch API)
- Backend: Java 17+ (Core Networking & Concurrency Utilities)
- Database: Flat File Architecture (
users.txtwith synchronized data stream layers)
Secure entryway allowing students to isolate and persist their dedicated study configurations.
| Sign Up Page | Login Page |
|---|---|
![]() |
![]() |
The core visualization of the Analysis of Algorithms project in action.
Students input overlapping exams and study routines, showing messy timeline clashes.

The algorithm instantly processes the schedule, eliminates all overlapping blocks, and serves the maximum priority roadmap.

- Java Development Kit (JDK 17 or higher)
- A modern web browser
-
Clone the repository:
git clone https://github.com/vinodkumarjaipal/smart-study-scheduler.git cd smart-study-scheduler
-
Compile and Run the Backend Server: Locate your main Java application file and execute:
javac Main.java java Main
The console will display: Advanced AoA Backend Server running on port 8080*
3. Launch the Frontend:
Simply open the login.html or index.html file in any modern browser to interact with the system.
- Vinod Kumar Jaipal - GitHub Profile
- Course: Software Engineering (4th Semester)
- Subject: Analysis of Algorithms (AoA)

