Creating a Problem
How to add a new coding problem through the admin UI.
Problems are created through the admin UI, not the database directly. You'll
need the problem:create:admin permission — if "New Problem" isn't visible
under Admin → Problems, ask someone with the admin role to grant it.
Creating a draft
Go to Admin → Problems → New. Fill in the title, the question/prompt text, a difficulty score, time/memory limits, a track, and any tags, then click Create draft. This creates the problem in a draft state and takes you to its detail page, where you'll add the pieces that make it playable:
- Problem setups — one per supported language, each with starter code and the actual test cases used to judge submissions.
- Required languages, if the problem should only be solvable in specific languages.
A problem won't be served to players until it has at least one complete setup and is published from its detail page.
Importing instead of filling the form
If you already have a problem definition as JSON (for example, exported from another problem or generated by a script), use the Upload JSON button next to the form instead of typing everything in by hand. It creates the same kind of draft, pre-filled from the file.
Where this fits
This guide covers the UI workflow only. For the data model behind problems, submissions, and test results, see Architecture Overview.