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.
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