Skip to main content

Spinning property workflows. Taking requests.

Project description

Propjockey helps you queue up workflows and dynamically change their priorities for running;
it's like having a [slipmat]( for scientific computing.

Propjockey is a tool for staff managing scientific computing
resources to facilitate a user community voting to prioritize
calculation of properties across a database of known entities. For
example, across a database of entities corresponding to known
crystalline materials, the full elastic tensor may not already be
calculated for each material because such a calculation is
computationally expensive, not of interest for all materials, etc.

The staff managing the growth and dissemination of this database of
material structures and properties wishes to empower the community of
users consuming the data to help prioritize computational jobs in a
way that will dovetail with in-house priorities. Propjockey helps with
this, connecting users to details of running workflows and providing
email notification when property calculations complete.

* Former name: Interactive Leaderboard for Property Requests and Notification (ILPRN).

Example deployment:

[Science Gateways 2016]( conference: [extended abstract](docs/gateways2016-extended-abstract.pdf) and [talk slides](docs/gateways2016-talk-slides.pdf).

## Development

In a fresh virtualenv:

pip install -e .
export FLASK_APP=propjockey
export FLASK_DEBUG=1
flask run

There is a provided `` to serve as a template
for your ``, which if stored at the root level will
be `.gitignore`d.

Ensure local settings are appropriate for your use case. Function
definitions are part of the settings. Hopefully, many of the various
settings, including some of the functions, will not need to change for
you to get started.

## Testing

You can make a test database derived from your real, live data. The
database will be located at mongodb://localhost:27017/propjockey_test and
have entries, votes, and workflows collections. All user emails in
your real data will be aliased to protect user identities. To drop any
existing test database and generate a new one using your data:

flask make_test_db

Then, to test the code against the test database:

python test

The `USE_TEST_CLIENTS` local setting enables you to use your test
database during development and not just when running automated
tests. This is nice when lacking a reliable/fast network connection.

To save your test database to a file for backup/sharing:

mongodump --db=propjockey_test --gzip --archive=propjockey_test.gz

and to restore it during development / on a testing server:

mongorestore --drop db=propjockey_test --gzip --archive=propjockey_test.gz

## Deployment

There are many officially documented
[options]( for deploying a
Flask app such as this, for example [gunicorn](
behind an [nginx]( proxy, e.g.

# activate the virtualenv
gunicorn -w 4 -b propjockey:app
# and ensure your nginx configuration `proxy_pass`es to

An example proxy setup is described at the official Flask

## Running Email Notification as a Cron Job

# activate the virtualenv
# cd to directory with
# Ensure `USE_TEST_CLIENTS` local setting is False
python -m propjockey.notify

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for propjockey, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size propjockey-0.1.0-py2.7.egg (35.2 kB) File type Egg Python version 2.7 Upload date Hashes View
Filename, size propjockey-0.1.0-py2-none-any.whl (21.3 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size propjockey-0.1.0.tar.gz (17.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page