Key Features

Django
To startup the project I used the popular python framework Django. Django uses the Model-View-Controller architecture to structure a typical web application.

Fabric / Paramiko
To connect and run shell commands remotely over ssh, I used the Python framework Paramiko and the wrapper Fabric.

AJAX
I used AJAX to communicate between server and client and update the page in real time. A message design pattern with a router was used here to dynamically find the according Python file on the server responsible for handling the command (like fetching IP addresses again) that would be inside the JSON message and sending back the results to the corresponding JavaScript file that displays the results

Bootstrap
Bootstrap was used to make the site look pretty without mutch setup required

Setup Pages
Each of the five labs uses a different network configuration and different config files are required. To setup the monitor to match the Lab, setup pages were created. Here you can specify which configs should be shown when clicking on a node ect.

Unit Testing and GitLab CD/CI pipeline
The App was designed from the get go to rely on interfaces and the Dependency Injection design pattern to make mocking and unit testing easier. On top of a small test suite, I wrote a GitLab CD/CI pipeline with a runner that would run my tests when changes get pushed.

Documentary
Using Sphinx I created a web documentary simply by commenting my code.
Goals and Motivation
Finish my bachelor, help tutors out, learn Python and Django.
#Python
#Django
#Bootstrap
#Paramiko
#Fabric
#AJAX
#js
#pytest
#GitLab-CD/CI
#Sphinx