Author: [Ahmed Al-Mashraie / ahmash11]
Mapping out university prerequisites shouldn't feel like deciphering an ancient scroll. I built Lumitrack as a full-stack web application to instantly visualize course dependencies and mathematically catch prerequisite loops before they ruin a graduation plan.
I developed this project to solve a real-world data structure problem. By modeling a university curriculum as a Directed Acyclic Graph (DAG), I implemented Kahn's Algorithm (Topological Sorting) on the backend to validate degree tracks. If a student tries to create an impossible schedule (e.g., Course A requires B, but B requires A), my backend detects the cycle and prevents the error.
- Algorithmic Validation: Uses topological sorting to guarantee a valid, cycle-free graduation path.
-
Interactive Visualization: Smooth, draggable network nodes powered by
vis.js. -
High Performance: The Python engine processes rules in
$O(V+E)$ time, easily handling complex degree tracks in milliseconds. - Zero-Bloat UI: Clean, vanilla HTML/JS frontend without the overhead of heavy frameworks.
- Backend: Python, Flask, Flask-CORS
- Frontend: HTML, CSS, JavaScript, vis-network
-
Concepts: Graph Theory, DAGs, Kahn's Algorithm, Big-O Optimization (
$O(1)$ lookups via hash maps)
1. Start the Backend Make sure you have Python installed, then run the following in your terminal:
pip install flask flask-cors
python app.py
(The API will spin up on http://127.0.0.1:5000)
2. Launch the UI
No complex dev servers needed. Just double-click the index.html file to open it directly in your browser, and you are ready to map your courses!