This is the Defence Digital Foundry demo app for the DSEI 21 event. This is a completely dumb demonstration for the DSEI event. There is no real-life application for this tool and it is not demonstrative of any existing or intended capability.
[FIXME] Please see the site how to https://defencedigital.github.io/dsei-demo/howto/
The scenario here is one in which there is a team "on the ground" using a command and control (C2) tool to manage an on-going conflict/operation. The tool is relatively new, so there are a few bugs in place and optimisations that could be made. The demonstration shows how bugs and optimisations identified "on the ground" can be conveyed back to a development team, prioritised, implemented, and then made available back to the original team, in a reasonably quick time.
There are several built-in steps here that demonstrate this. They must be demonstrated in the following order, and reset to number 1 at the end.
- Basic build. This is the basic build of the tool with no improvements made. This is the starting point for the demo and the presenter should reset to this at the end of the demo.
- Menu fix. There is a slightly annoying bug that exists, wherein the "Dashboard" item in the left-hand navigation shows as "active", even when you're looking at the "Live map view". This branch/fix changes this so that the page you have navigated to is the one that shows as "active".
- Pin colours. This is a more useful change: the basic build shows all map pins as blue, irrespective of them being friendly or enemy. This change makes enemy pins red, making it easier to differentiate.
- Pin icons. A similar optimisation to the last, this makes it even easier to see what's going on, by changing the defaul pin icons to being item-specific (i.e. tanks have a tank icon, jets a jet icon, troops a people icon).
main
branch is the basic build with no improvements mademenu-fix
branch builds onmain
but fixes theactive
class on the navigation barpin-colours
branch builds onmenu-fix
branch and makes enemy pins redpin-icons
branch builds onpin-colours
branch and uses meaningful icons instead of generic pins
To get set up locally, with the app running, follow the following steps (if you're running Windows, you're on your own if this doesn't work):
-
Clone this repository and change directory into the top-level folder
-
[Optional but recommended] Set up a virtual environment
python3 -m venv venv
- Install requirements
pip install --upgrade pip
(optional)
pip install -r requirements.txt
- Run the server (and then navigate to the localhost port it provides)
export FLASK_APP=app.py
export FLASK_ENV=development
(optional, if you want debug mode on)
flask run
As any Python app, you can press ctrl + c
to end the processs / stop the server.
If you want to add, remove or edit pins or other parts of the map, you'll need to edit maps.py
. This file uses a library called folium, whose docs explain how to use it.
Once you edited that file, you'll need to run python maps.py
to generate a new maps.html
file locally (this will be done automatically by the deployment pipeline, in case you forget). This html file is what's presented by the Flask app when you go to the "map view" page.
TODO
TODO