This was our project in the Analysis & Design of Algorithms Course, it supports loading map graphs, running shortest-path queries, theming (light/dark), and interactive visualization.
The goal of this project was to design and implement a system that:
- Loads a graph representing a map (nodes + edges).
- Accepts queries (start point, end point, max walking distance).
- Computes the shortest path using graph algorithms.
- Displays results with interactive visualization.
👉 Full problem statement can be found here: MapRoutingProjectDescription
- Language & Framework: C++17 with Qt6 (Qt Widgets)
- Core Components:
MapGraph→ Handles graph storage, shortest-path algorithms, and queriesMapVisualizer→ Custom widget for rendering map, path, and selectionsMainWindow→ UI logic, query navigation, and file handling
- Algorithms: Multisource Bidirectional Dijkstra’s algorithm (optimized with a priority queue)
- UI Features:
- Zoom / Pan map navigation
- Start/End point selection (mouse or manual input)
- Theming with
.qssfiles (light & dark) - Query navigation (
Prev,Next, Jump to index)
You can directly install the application using the provided installer:
App Installer
(Go into the App installer/ folder and run the setup executable - works for windows only -)
- Qt 6.10.0 (Widgets module)
- CMake 3.16+
- C++17 compiler
git clone https://github.com/YousefElbooz/MapRoutingApp.git
cd MapRoutingApp
mkdir build && cd build
cmake ..
cmake --build . --config ReleaseThis was only made to satisfy the requirements of the project, but it's not a full app for all cases as it has some limitations:
- Currently supports only one map and one query file at a time
- File format is custom and not yet standardized (e.g., GPX/KML not supported)
- Exporting results is limited to text files
However, if you want to try the app you can use the test cases provided in this folder: TEST CASES

