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