An interactive web application that visualizes course prerequisites across Rutgers subjects. It helps students understand course relationships and plan their academic journey more effectively.
- Visual prerequisite graphs per subject using Cytoscape.js
- Color-coded nodes by course level (100/200/300/400)
- Sticky toolbar with subject filter and quick actions (Fit, Reset, Clear)
- Loading overlay for feedback on long fetches
- Works entirely from a simple Flask backend endpoint
- Python 3.9+ (3.11 recommended)
- pip
- Clone the repository and enter the project directory.
- Create and activate a virtual environment:
- macOS/Linux:
python3 -m venv venv source venv/bin/activate - Windows (PowerShell):
py -3 -m venv venv venv\Scripts\Activate.ps1
- macOS/Linux:
- Install dependencies:
pip install -r requirements.txt
python server.py- The app starts at
http://localhost:7000. - If you change the port in
server.py, update the URL accordingly.
Use gunicorn to serve the app:
gunicorn -w 2 -b 0.0.0.0:7000 server:app- Use the Filter box to quickly find a subject by name or number (e.g., "Computer" or "198").
- Select a subject and click "Search Subject".
- Node color indicates course level:
- 100: green
- 200: amber
- 300: indigo
- 400: pink
GET /api/graph/<major_number>- Returns JSON
{ nodes: [], edges: [] }for the subject code (e.g.,198for Computer Science) - Each node has
idandlabel - Each edge has
sourceandtarget
- Returns JSON
- The file
rutgers_courses.jsonis used to build graphs. - Update or replace this file to refresh data.
- If you see CORS-related errors, ensure you are accessing via the same origin as the Flask server or enable CORS as needed.
- If
pip installfails, upgrade pip and wheel:python -m pip install --upgrade pip wheel
- If the page is blank, check the browser console and Flask logs for errors.
This project is not affiliated with Rutgers University.