Skip to content

bellingcat/challenge-framework

Repository files navigation

Bellingcat Open Source Challenge

Bellingcat logo: Discover BellingcatDiscord logo: Join our communityHeart icon: Support our work

The site that runs the Bellingcat challenge (without the challenge content).

The key features are:

  • The site is staticly hosted, and is rebuilt as often as needed (currently daily)

  • A challenge is published at a specified date

  • A challenge consists of sequential puzzles

  • Within a challenge, all puzzles after the first can initially be locked

  • A player can unlock a puzzle by answering the previous one, or waiting for it to unlock.

  • Puzzles unlock automatically at a given date

  • Each puzzle is specified in a markdown file

  • The markdown file contains metadata to associate with a particular challenge, unlock date, etc

  • The main body of the file can be encrypted

Usage

To build the public directory of puzzles (./puzzles/) from the raw puzzles (./puzzles_raw/), use:

npm run prebuild

For development, use:

npm run dev

Build with

npm run build

and test the build with

npm run preview

Finally, format with Prettier by using:

npm run format