Skip to main content
Propjockey helps you queue up workflows and dynamically change their priorities for running;
it's like having a [slipmat](https://en.wikipedia.org/wiki/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: http://elastic.pj.materialsproject.org/.

[Science Gateways 2016](http://sciencegateways.org/gateways2016/) 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
export PROPJOCKEY_SETTINGS=$(pwd)/local_settings.py
flask run
```

There is a provided `local_settings.example.py` to serve as a template
for your `local_settings.py`, 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 setup.py 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](http://flask.pocoo.org/docs/0.11/deploying/) for deploying a
Flask app such as this, for example [gunicorn](http://gunicorn.org/)
behind an [nginx](https://nginx.org/en/) proxy, e.g.

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

An example proxy setup is described at the official Flask
documentation
[here](http://flask.pocoo.org/docs/0.11/deploying/wsgi-standalone/#proxy-setups).

## Running Email Notification as a Cron Job

```
# activate the virtualenv
# cd to directory with local_settings.py
# Ensure `USE_TEST_CLIENTS` local setting is False
export PROPJOCKEY_SETTINGS=$(pwd)/local_settings.py
python -m propjockey.notify
```

Metadata

Release files for propjockey 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for propjockey 0.1.0
File Size Uploaded
propjockey-0.1.0.tar.gz 17.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for propjockey 0.1.0
File Interpreter ABI Platform
propjockey-0.1.0-py2.7.egg Legacy Egg format - - Details
propjockey-0.1.0-py2-none-any.whl Python 2 none any Details

Total release size: 73.8 kB

Release files / propjockey-0.1.0.tar.gz

Download URL propjockey-0.1.0.tar.gz
Size 17.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ce78858cab4e62560745e59a452edfd8be1271a993dd3ac7bae89a0124f02b42
BLAKE2b-256 checksum
How to use checksums
01566edd6531c4cd5800d1bb3603ca24733ca48373a5665b5a2f10c60e9978ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / propjockey-0.1.0-py2.7.egg

Download URL propjockey-0.1.0-py2.7.egg
Size 35.2 kB
Tags Egg
SHA-256 checksum
How to use checksums
89b85a61beb9e84d2c4ff3be0ca2e906a7511e473958eb9421602ea7915b0571
BLAKE2b-256 checksum
How to use checksums
cc7c4329a99dd6e4dee32aa1629e7e4ec066090695a31256800261bd7d64a023
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / propjockey-0.1.0-py2-none-any.whl

Download URL propjockey-0.1.0-py2-none-any.whl
Size 21.3 kB
Tags Python 2
SHA-256 checksum
How to use checksums
353d1857d34699fc9feb40684fcd132cbc4fe557533243e5bec6017ffff42485
BLAKE2b-256 checksum
How to use checksums
771ea8adff0d6cafa2c3fc6f4ca23e82d10d4a7d9c08f96c7952a1b0fc89b554
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.0 This release

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page