Skip to main content

The NomNom Hugo Awards voting package

Project description

NomNom

Contributor Covenant Documentation

A Hugo Awards ballot and nomination management system.

Developed for the Glasgow in 2024 Worldcon.

What this Is

The Hugo Awards are "science fiction’s most prestigious award. The Hugo Awards are voted on by members of the World Science Fiction Convention (“Worldcon”), which is also responsible for administering them."

NomNom is a system for collecting the nominations for the award from members of the current Worldcon to assemble a ballot of finalists, and for voting on those finalists #27.

It additionally will have (these are TODO in the next few months):

  • Support for authenticated access to the Hugo packet, if the convention is providing one
  • Support for normalizing the nominees into a collection of potential finalists #86
  • Support for applying a counting algorithm to select a ballot of finalists from the raw nominees, according to the current process defined in Section 3.8 of the WSFS constitution (EPH, for those following along at home)
  • Support for tallying the final votes for the Hugo Awards

Installation

Production

Development

See the developer docs.

Configuration

To configure the system for your side, you need to take a couple of extra steps beyond just "build the docker image and go".

Docker Build

Your docker file should refer to the nomnom one, but build on top of it:

FROM ghcr.io/worldconvotingsystems/nomnom:latest

WORKDIR /system

RUN . venv/bin/activate && \
    pip install <your-app>

Environment

The environment is the heart of the configuration; it needs to include both the services you will interact with, and references to the site customization.

Here's an example file:

NOM_DEBUG=False

NOM_CONVENTION_APP=yourconvention
NOM_CONVENTION_STYLE_STYLESHEET=css/yourconvention.css
NOM_CONVENTION_STYLE_FONT_URL=https://fonts.googleapis.com/css2?family=Roboto&family=Roboto+Slab&family=Gruppo&display=swap
NOM_CONVENTION_HUGO_HELP_EMAIL=nominations@nomnom.nom

NOM_SECRET_KEY=random-string-that-you-generate
NOM_DB_NAME=nominate
NOM_DB_USER=postgres
NOM_DB_PASSWORD=random-string-that-you-generate
NOM_DB_HOST=db
NOM_DB_PORT=5432

NOM_REDIS_HOST=redis

NOM_EMAIL_HOST_USER=nominations@nomnom.nom
NOM_EMAIL_HOST_PASSWORD=random-string-that-you-generate
NOM_EMAIL_HOST=mail.nomnom.nom
NOM_EMAIL_PORT=587

NOM_ALLOWED_HOSTS=nominations.nomnom.nom

NOM_OAUTH_KEY=provided-by-your-oauth-vendor
NOM_OAUTH_SECRET=provided-by-your-oauth-vendor

TIME_ZONE=America/Los_Angeles

CELERY_FLOWER_USER=admin
CELERY_FLOWER_PASSWORD=random-string-that-you-generate

Settings

All settings customization is through the environment, or through a settings_override.py that can be installed in /app/nomnom/settings_override.py; that file will be loaded after the main site settings have been configured from the environment and can overwrite any settings in the application.

Administration

Customization

To customize NomNom, you create an application with your templates and supporting classes. The original convention that used this system was Glasgow in 2024, whose customizations are directly in this repository, but yours should be a separate installable package.

Your main customizations should be CSS and template overrides. CSS should be in $APP/static/css/ and you'll reference it by changing the NOMNOM_SITE_STYLESHEET setting.

Build Status

Python application Docker Documentation

Project details


Download files

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

Source Distribution

nomnom_hugoawards-0.1.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

nomnom_hugoawards-0.1.0-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file nomnom_hugoawards-0.1.0.tar.gz.

File metadata

  • Download URL: nomnom_hugoawards-0.1.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.4

File hashes

Hashes for nomnom_hugoawards-0.1.0.tar.gz
Algorithm Hash digest
SHA256 66d5ebb54e1b5e111e5ca26470723a71ba213cfebc5baae28ae93955eed0f176
MD5 84831d777f9bfe14348414139723ea9f
BLAKE2b-256 a95506eafc7effe9a975f84c8191d4fe988605cf6b1a0b626977080e73e9dcfa

See more details on using hashes here.

File details

Details for the file nomnom_hugoawards-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nomnom_hugoawards-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f60dab98645feeec38d3f75353bb34bad7c10f3ba1145d1643321cb235162e1
MD5 3023b44a19981fb2fc69dca7fc72a70b
BLAKE2b-256 82fa308296430e16339c9dc0770a11087f934ea5f38c6955189ccf576422f87c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page