Requirements: Sticky mode
- 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
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