RedRoute is a conceptual network simulation tool designed to visualize and compute the shortest path between two hosts in a complex network topology. Built using Python, NetworkX, Tkinter, and Matplotlib, RedRoute helps users better understand network routing by visualizing paths, nodes, and their interconnections.
Table of contents
Open Table of contents
Actions
๐ Features
- Interactive GUI built with Tkinter, allowing users to select source and destination hosts.
- Shortest Path Calculation using NetworkXโs graph algorithms to find the optimal route between any two hosts.
- Dynamic Visualization of the network topology with Matplotlib, displaying nodes (hosts and switches) and edges (connections) clearly.
- Red-themed Design for an intuitive and aesthetically pleasing user interface.
๐ Installation
1. Clone the repository
git clone https://github.com/s-m-quadri/redroute.git
cd redroute
2. Install dependencies
Make sure Python 3.12.9 is installed. Then, install the necessary packages:
pip install -r requirements.txt
requirements.txt
should include:
networkx
matplotlib
tkinter
๐ Usage
-
Launch the application by running
main.py
:python main.py
-
Select Source and Destination:
- Use the dropdown menus to choose the source and destination hosts.
-
Find the Shortest Path:
- Click the โ๐ Find Shortest Pathโ button to calculate the path.
- The shortest path will be visualized on the network graph, with red edges highlighting the selected path.
-
View Status:
- The status bar will update to show the progress of the calculation (e.g., โFinding shortest pathโฆโ or โPath found: H0 โ S0 โ S4 โ H7โ).
๐ PyInstaller Executable
You can also download the RedRoute executable built with PyInstaller. The .exe
file, packaged using setup.spec
, is available in the Releases section of this repository.
๐ Network Topology
The network topology is based on a series of interconnected switches with hosts distributed in a circular pattern. Switches are placed in a structured grid layout to ensure a variety of routing possibilities, which allows the app to find meaningful routing paths between any selected hosts.
๐ License
This project is licensed under the GNU General Public License (GPL) - see the LICENSE file for details.
๐ Contact Support
For any issues or support, please contact: Email: dev.smq@gmail.com