Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Problem studio: write and validate problems in the browser

Open
#28 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active

Research direction

Start by reading backend/arena/scripts/validate-problems.js and the existing files under backend/arena/problems/ to understand validation and the problem/solution formats. Then trace how development-only pages and API routes are registered, and check their production behavior. Done means the studio meets the listed feature requirements, round-trips all 45 problems without diffs, includes one new problem, and passes npm test and node scripts/check-boundary.js.

Written by the indexing model from the issue text.

Description

enhancement help wanted

Adding a problem means hand-writing JSON, two reference solutions and tests, then running npm run validate:problems and reading the output. It works, but it is the main friction for the contribution we want most.

Goal

A local problem studio, a page available only in development (/dev/problem-studio), for writing and validating a problem in one place.

Features

  • A form for title, difficulty, tags and the function signature, with types picked from the supported list (see #3).
  • A Markdown editor for the description with a live preview that matches how the problem renders in battles.
  • Editors for the JavaScript and Python references side by side.
  • A table of examples and tests. Adding a row type-checks the input against the signature.
  • "Validate" runs the same checks as backend/arena/scripts/validate-problems.js and shows failures inline on the offending row.
  • "Generate expected outputs" fills expected values from the JavaScript reference, then confirms the Python reference agrees.
  • "Save" writes backend/arena/problems/<id>.json and the two solution files in exactly the format a hand-written problem uses.

Rules

  • The page and its API routes refuse to load when NODE_ENV=production, with a test proving it.
  • Validation must call the existing validator, not a copy of it, so the two can never drift.

Definition of done

  • Write one real new problem with the studio and include it in the pull request.
  • Round trip: loading an existing problem into the studio and saving it produces no diff, for all 45 problems.
  • npm test and node scripts/check-boundary.js pass.
Dominant language
JavaScript
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sennaicodes/codearena

All issues in sennaicodes/codearena

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.