Skip to content

A simple GUI for stratification when selecting a citizens' assembly.

License

Notifications You must be signed in to change notification settings

sortitionfoundation/stratification-app

Repository files navigation

Strat App

Build Status

A simple GUI for stratification for sortition/citizens' assemblies.

About

Random stratified selection software

Development

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.

Install for development

First you need to have the following installed:

  • git
  • python 3.6
  • pipenv
  • a recent version of Chrome or Chromium

Running in development

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.

Releasing

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.