A simple GUI for stratification for sortition/citizens' assemblies.
Random stratified selection software
The app is built using eel - a framework that allows the GUI to be defined in HTML and CSS, but then some basic JavaScript can call Python and I can do the heavy lifting in Python.
First you need to have the following installed:
- git
- python 3.6
- pipenv
- a recent version of Chrome or Chromium
After cloning this repo, open a terminal in the root of the repo and run:
pipenv install --dev
pipenv shell
python script.py
At which point you should have a window pop up and be able to interact with it.
To make a single file executable, we use PyInstaller. The following command, run in the root of the repo, creates a single file executable at dist/script
- you can rename it to whatever you want. You can then give it to someone running on the same platform as you, and they can run it immediately
The command is:
git pull
pipenv shell
python -m eel script.py web --additional-hooks-dir=. --onefile --noconsole
Platform means Windows, Mac OS X or Linux. So if you run the above command on Linux, you can give the file to someone else running Linux. So if the person who wants the app is running Windows, you need to run the above command on Windows.
Note that on Windows you need to install an extra package:
pip install pypiwin32
This should be done by pipenv install
but I may have got the syntax wrong.