Django app for graph visualisation.
Supports visualisation and data source plugins.
Contributors:
- Aleksa Vukomanović SV66/2021
- Teodor Đurić SV67/2021
- Dragoslav Tamindžija SV47/2021
- Boris Markov SV73/2021
- Darko Svilar SV50/2021
This is a pluggable web application for parsing various data sources into a graph data structure and visualising it.
The application consists of 5 parts:
- Django Core - main web application which provides the user interface for parsing and visualising graphs
- Platform - orchestrates the interaction between plugins
- API - provides the interface which new plugins must use to provide their services
- Data Source Plugins - parse provided resources into the graph data structure
- Visualiser Plugins - visualise graph structures
In order to plug a new plugin into the application, you would need to provide a new interface if it deviates from
the available ones. All interfaces should extend the base service interface. In order for the application to be
able to recognise the plugin, the plugin must be a valid Python package. The modern way of creating Python packages
is by using toml. Specifically, a pyproject.toml file is needed, where you would provide metadata such as the
package name, version, dependencies...
Other than that, for the platform to be able to recognise your plugin, you would need to set up an entry point into
your plugin. Data source and visualiser entry points are separated by groups defined in the platform. In our
application, these groups are:
- graph.load - for data source plugins
- graph.visualize - for visualiser plugins
These entry points should be defined in the package configuration file.
- Clone the repository in which this project is located
- (Optional) Create a virtual environment in which all the packages concerning the application will be installed
- Install the essential packages needed for running the application via
pip install -r requirements.txt - In order to install all the available plugins and required application packages, in your favourite bash shell,
position yourself to the project directory and run:
./build.sh
To run the application, follow these steps:
- In your favourite shell, execute the following:
./run.sh - Open the following page in your web browser:
http://127.0.0.1:8000/