Metadata-Version: 2.4
Name: nomnom-hugoawards
Version: 2026.2.4
Summary: The NomNom Hugo Awards voting package
Author-email: Chris Rose <offline@offby1.net>
Maintainer-email: Chris Rose <offline@offby1.net>
License: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.13.0
Requires-Dist: boto3-stubs[s3]~=1.34
Requires-Dist: boto3~=1.34
Requires-Dist: botocore-stubs~=1.34
Requires-Dist: bs4~=0.0
Requires-Dist: celery~=5.3
Requires-Dist: django-admin-action-forms~=2.0
Requires-Dist: django-admin-autocomplete-filter~=0.7
Requires-Dist: django-bootstrap-static>=5.3.3
Requires-Dist: django-bootstrap5<27.0,>=23.3
Requires-Dist: django-browser-reload~=1.12
Requires-Dist: django-celery-beat~=2.5
Requires-Dist: django-celery-results~=2.5
Requires-Dist: django-click~=2.3
Requires-Dist: django-cors-headers~=4.3
Requires-Dist: django-extensions<5.0,>=3.2
Requires-Dist: django-fsm~=2.8
Requires-Dist: django-google-fonts>=0.0.3
Requires-Dist: django-htmx~=1.17
Requires-Dist: django-ipware~=7.0
Requires-Dist: django-logentry-admin~=1.1
Requires-Dist: django-markdownfield~=0.11
Requires-Dist: django-markdownify~=0.9
Requires-Dist: django-model-utils~=5.0
Requires-Dist: django-oauth-toolkit~=3.0
Requires-Dist: django-render-block~=0.9
Requires-Dist: django-seed~=0.3
Requires-Dist: django-svcs~=0.3
Requires-Dist: django-watchman~=1.3
Requires-Dist: django<6.0,>=5.2.11
Requires-Dist: environ-config~=24.1
Requires-Dist: faker>=37.6.0
Requires-Dist: flower~=2.0
Requires-Dist: fontawesomefree~=6.5
Requires-Dist: inflect>=7.5.0
Requires-Dist: jinja2~=3.1
Requires-Dist: psycopg[binary]
Requires-Dist: pyrankvote~=2.0
Requires-Dist: redis<8,>=5
Requires-Dist: rich>=13.9.4
Requires-Dist: sentry-sdk[celery,django]~=2.19
Requires-Dist: social-auth-core~=4.5
Requires-Dist: svcs<26.0,>=24.1
Requires-Dist: whitenoise~=6.6
Description-Content-Type: text/markdown

# NomNom

[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://nomnom.fans/code_of_conduct.html)
[![Documentation](https://img.shields.io/badge/Documentation-34D058)](https://nomnom.fans/)

A Hugo Awards ballot and nomination management system.

Developed for the Glasgow in 2024 Worldcon.

## What this Is

The [Hugo Awards](https://www.thehugoawards.org/about/) 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](https://github.com/WorldconVotingSystems/nomnom/issues/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](https://github.com/WorldconVotingSystems/nomnom/issues/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

Production installations are more complex than development, but the easiest way is probably with Docker. The template project will have a suitable Dockerfile included in it, which you can use to build the web and worker images. An example production docker-compose can be found in the `WorldconVotingSystems/nomnom-g24/` repository.

### Development

See [the developer docs](docs/docs/dev/index.md).

For setting up test data, NomNom includes comprehensive [seeding commands](docs/docs/dev/bootstrap.md#manual-seeding-commands) that can generate realistic elections, nominations, and votes. Use `just bootstrap` for a complete development environment, or see the documentation for individual commands.

## Build Status

[![Python application](https://github.com/WorldconVotingSystems/nomnom/actions/workflows/python-app.yml/badge.svg)](https://github.com/WorldconVotingSystems/nomnom/actions/workflows/python-app.yml)
[![Docker](https://github.com/WorldconVotingSystems/nomnom/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/WorldconVotingSystems/nomnom/actions/workflows/docker-publish.yml)
[![Documentation](https://github.com/WorldconVotingSystems/nomnom/actions/workflows/docs.yml/badge.svg)](https://github.com/WorldconVotingSystems/nomnom/actions/workflows/docs.yml)
