Command Palette

Search for a command to run...

NJIT Auto Schedule Builder

A Python + Flask service that transforms NJIT's complex course catalog into a clean, accessible API for students to build optimal schedules.

The Challenge

NJIT students faced a frustrating course registration experience:

Technical Approach

Backend Architecture

Built a robust Flask service that handles the entire data pipeline:

Tech Stack

Python Flask REST API Web Scraping

Data Processing Pipeline:

  1. Scraping Layer - Automated extraction of course data from NJIT's catalog
  2. Parser Engine - Converts messy JavaScript payloads to clean JSON
  3. REST API - Serves structured course and section data
  4. Combinatorial Solver - Generates clash-free schedule combinations

Frontend Experience

Created an intuitive interface for schedule building:

Tech Stack

HTML5 CSS3 Vanilla JavaScript Responsive Design

Key Features:

Algorithm Design

The core scheduling algorithm uses constraint satisfaction:

def generate_schedules(courses, constraints):
    """
    Generate all possible conflict-free schedules
    given course requirements and user constraints
    """
    valid_schedules = []
    
    for combination in itertools.product(*course_sections):
        if not has_time_conflicts(combination):
            if meets_constraints(combination, constraints):
                valid_schedules.append(combination)
    
    return sorted(valid_schedules, key=schedule_score)

Impact & Results

Student Experience:

Technical Achievements:

What I Learned

This project taught me valuable lessons about:

Next Steps

If I were to continue this project, I would:


This project demonstrates my ability to build full-stack solutions that solve real-world problems, from data processing to user experience.