Problem studio: write and validate problems in the browser
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, nextjs, nodejs, python
- Ambito
- developer-experience, testing, tooling
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.jsand 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>.jsonand 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 testandnode scripts/check-boundary.jspass.
- Lingua principale
- JavaScript
- Stelle
- 0
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sennaicodes/codearena
-
Add issue and pull request templatesForse di nuovo libera @franciscorodr26 l’ha presa 17 giorni fa e non c’è nessuna pull request aperta. Apertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
sennaicodes/codearena#13 · 1 commento ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
sennaicodes/codearena#31 ·
Tutte le issue di sennaicodes/codearena
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
AOSSIE-Org/BabyNest#284 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
seek4science/seek#2762 ·
I maintainer di solito rispondono entro 5 giorni
-
feedback simulation workshop
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
githubnext/gh-aw-workshop#5009 ·
I maintainer di solito rispondono entro 1 giorno
-
Clinic sharing: fast sync refusal message suggests Delete Data, which only developer builds haveApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
avniproject/avni-client#2228 ·
-
Add: K+ Sport 2 LogoApertacheck:passed logos:add
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 6 giorni