Smart City Route Management System (C++)

A smart city road-network simulator that models intersections as nodes and roads as weighted edges, computes optimal routes with Dijkstra’s algorithm, and adds AI-inspired congestion prediction + explainable decision steps (XAI).

Built to strengthen my algorithms, data structures, and system modeling skills for software engineering internship roles.

Project Overview

This C++ console application simulates a city’s transportation network and finds optimal routes based on distance, travel time, and cost. It also introduces an AI-inspired congestion model that adjusts travel time during peak hours, and provides a step-by-step explanation of how the route was chosen (XAI).

C++ Graphs Dijkstra Adjacency List Priority Queue XAI

Why I Built This Project

I built this project to practice designing a realistic routing system like the ones used in navigation and smart-city planning. I wanted to go beyond “shortest distance” and include real constraints (time, cost, congestion), while also improving how systems explain decisions.

This helped me strengthen both algorithmic thinking and software structure—especially modeling networks, managing weights, and reconstructing paths cleanly.

Problem Statement

Cities face congestion and route inefficiencies that increase travel time and cost. Navigation systems also often behave like “black boxes,” giving routes without showing why they’re optimal.

This project addresses these problems by simulating smart route selection using graph algorithms and providing transparent step-by-step reasoning for the final path (Explainable AI).

Technologies Used

Key Features

My Role in the Project

Challenges Faced

What I Learned

Project Access

The complete source code is hosted on GitHub:

This is a C++ console application and can be compiled locally using a standard C++ compiler.

How to Run the Project

git clone https://github.com/Phumudzo2006/Smart-City-Route-Management-System.git
cd Smart-City-Route-Management-System

g++ main.cpp -o smart_city
./smart_city
      

If your compiler requires it, add -std=c++17: g++ -std=c++17 main.cpp -o smart_city

Sample Output

SMART CITY ROUTE MANAGEMENT SYSTEM
----------------------------------
Step 1: Exploring node Downtown
  --> Found path to University via Main_Street

Step 2: Exploring node University
  --> Better path to Harbor via Coastal_Drive

Optimal Path:
Downtown → University → Harbor → Stadium

Total Distance: 27.5 km
Total Time: 42 minutes
Total Cost: $20.50
      

Future Improvements

← Back to Portfolio