google / google/codeworld

Requirements: Sticky mode

Open
#779 0 comments 0 reactions 0 assignees View on GitHub
discussion
Dominant language
Haskell
Stars
1.3k
Forks
201
PR merge metrics
No merged PRs in 30d

Description

Currently, the requirements checker operates on comments embedded in the source code. This is fine for now, but students sometimes accidentally (or "accidentally") delete the comments and stop getting requirement checks.

Instead, we could allow the requirements to be added to the CodeWorld URL, where they are part of the link and will stick around as long as the window does. We could also save them alongside a project, so that the project still has its requirements when reopened. When the user clicks "New", we'd ask them if they want the new project to check the same requirements. Requirements would be embedded in any generated Share URLs. Probably, there should be an explicit button (with confirmation) to remove the requirements from the current document.

If this is done, I would suggest we leave the current system in place, but just also add a notion of "pinning" the requirements that enables this mode where they survive deleting the source code.

Contributor guide

Open the contributing guide

Research direction

Start by locating the requirements checker and the code handling CodeWorld URLs, saved projects, New, and Share URLs. Clarify how pinned requirements should persist after source deletion, project reopening, creating a new project, and sharing, including the confirmation flow for removal. Done means the behavior is specified across each of these cases and verified consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.