# Surprise countdown This is a web application for revealing a surprise at a given time. ![Surprise countdown](recording.gif "Surprise countdown") Two pages are served: 1. `/` - The index page polls the backend every second and displays the image asset corresponding to the state of the surprise with a countdown if applicable. 2. `/set-surprise` - Select and POST the surprise to the backend (password protected). The surprise can have the following states: - `_null` - The surprise is not set. - `_secret` - The surprise is set but not yet revealed. - `` - The surprise is set and revealed. ## Configuration Environment variables: - `SURPRISE_TITLE` - Page title - `SURPRISE_STORE_FILE` - File name to store surprise value. - `SURPRISE_SECRET` - Password for setting the surprise. - `SURPRISE_ASSET_DIR` - Directory of image assets that corresponds to surprise state/values. The set of possible surprise values are parsed from the basename of the asset files. The `_null` and `_secret` states may be overridden. - `SURPRISE_REVEAL_DATETIME` - Datetime for reveal. ## Build ```bash $ docker build -t surprise-countdown . ``` ## Run gender reveal example ```bash $ docker run -e SURPRISE_SECRET=hunter2 -p 5000:5000 -v $(pwd)/surprise-assets/gender-reveal:/assets:ro surprise-countdown ``` Then browse to [localhost:5000](localhost:5000).