Interactive Narrator
Developed @ Utrecht University
Visualize your user stories to improve understanding of the project, inspect system functionality
and improve communication among stakeholders.
Please visit this page to start using the application.
This application uses the Visual Narrator (https://github.com/marcelrobeer/visualnarrator) to generate a conceptual model which is then
visualized using Vis.js and is presented to the user in the browser from where the visualization can be adapted to cater to the
user's needs.
License
This product is free to use for commercial and non-commercial purposes.
How To Start Developing
- create a ubuntu virtual machine
open a terminal in /Documents and run:
- apt install python-pip
- apt-get install python3-dev
- apt install virtualenv
- virtualenv -p python3 inarrator (this will create a separate dev. environment with the name inarrator)
- in the newly created directory open a terminal and activate
the virtual enironment with
source bin/activate
(do this everytime you need to install/update something)
- pip install git
- pip install -r requirements.txt (this will install all the required packages)
- python -m spacy download en_core_web_md (download the spacy NLP language model)
Telling Python interpreter where to look for packages
Open a Linux terminal and navigate to your root directory with ~
and then type sudo nano .profile
which should open a file with some lines after which you add to the bottom of this file:
export PYTHONPATH=$PYTHONPATH:/home/path/on/your/computer/yourvirtualenvironment/:/home/path/on/your/computer/yourvirtualenvironment/VisualNarrator
If after this Python throws import errors it might not be able to find the packages.
A workaround is to add this line after line 22 in app.py and after line 6 in post.py:
sys.path.append('/path/on/your/computer/yourvirtualenvironment/VisualNarrator')
and
Add after line 6 in app.py:
# sys.path.append('/home/path/on/your/computer/inarrator')
To tell Python where to look for de VisualNarrator package on your computer.
Notes:
- the project has been prepared for using Flask-Security but isn doing so yet. This is why
some commented code is present.
- message flashing is not working, although some code to start working with it is present
- deleting per sprint is ready to be implemented (see method in app.py) but needs looking into as currently
deleting entities from one sprint also deletes them while they are actually in other sprints too.
solution: only delete entity (concept) when it is in a use story that is in only one sprints
- downloading the PNG of the network now gives a transparent image. This should be reworked to contain a white
background. Some experimental code exists in visualization.js
- various print statements exist to help logging during development
TO DO LIST:
- improve rendering performance on mobile devices (change settings for algorithm)
- add clustering (method already in place)
- increase security for users (flask_security module already in place but not in use)
- enable delete per sprint (code already present, just needs tweaking. see app.py delete_sprint())
- add progress bar and hide rendering of the visualization until it's done
- add ceiling AND bottom to the weight filter
- add support for themes and epics
- improve support for touch events
- add more succes confirmations
- add a tutorial
- enable drawing on the visualization on touch devices
- enable downloading of the reports VN generates.
- add detection mechanism for redundencies/inconsistencies/dependencies such as color alerts