Host competitions students enter, sit and hand in - #392
Merged
Conversation
A hosted group is a batch of competitions declared from a manifest: when it opens, how long the clock runs, whether a student may come back for another go. A student spends one entry per competition, either by sitting it or by giving it up, and the entry carries its own clock so the group's opening does not have to be the student's. Declaring a group is a CLI job rather than an endpoint, since it is authored alongside the problems it names. MathComps.Cli.Competitions reads the manifest, links the rounds, and reports what it created against what it revised. A defense used to be held against a handout environment and nothing else. It now carries one of two targets, the handout environment or an archive problem, so a student can argue a competition problem the same way. The two arms are kept exclusive by check constraints and composite foreign keys rather than by the code that writes them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PatrikBak
enabled auto-merge
August 25, 2026 22:55
The clock hands out hundred-nanosecond ticks and a stored timestamp holds whole microseconds, so an entry's start as the write returned it did not equal the same entry read back. A Mac's clock is already microsecond coarse, which is why only the CI runner ever saw it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A hosted group is a batch of competitions declared from a manifest: when it opens, how long the clock runs, whether a student may come back for another go. A student spends one entry per competition, either by sitting it or by giving it up, and the entry carries its own clock, so the group's opening does not have to be the student's.
Declaring a group is a CLI job rather than an endpoint, since it is authored alongside the problems it names.
MathComps.Cli.Competitionsreads the manifest, links the rounds, and reports what it created against what it revised.A defense used to be held against a handout environment and nothing else. It now carries one of two targets, the handout environment or an archive problem, so a student can argue a competition problem the same way. The two arms are kept exclusive by check constraints and composite foreign keys rather than by the code that writes them.
The competition area on the front end drops its mock services and talks to the real endpoints. What a student still owes before entering (a username, the graduation answer, an email) is read from the backend rather than guessed at, and the e2e suite gains a fake backend so the entry, clock and hand-in flows are covered end to end.
🤖 Generated with Claude Code