Skip to content

feat: add assessment attempt and ranking flow - #287

Draft
Mindev27 wants to merge 1 commit into
developfrom
agent/assessment-attempt-ranking
Draft

feat: add assessment attempt and ranking flow#287
Mindev27 wants to merge 1 commit into
developfrom
agent/assessment-attempt-ranking

Conversation

@Mindev27

Copy link
Copy Markdown
Contributor

What changed

  • Added server-managed assessment attempts with start, active-attempt resume, and attempt-based submission APIs.
  • Enforced the 15-minute answer-input lock and calculated elapsed time from server timestamps.
  • Added first-submission-only official ranking ordered by score descending and elapsed time ascending, including shared ranks for exact ties.
  • Added reattempt support with rankEligible=false for non-first submissions.
  • Added fixed 1–5 multi-select validation for multiple-choice answers and direct-input normalization for short answers.
  • Extended assessment registration responses with assessmentId for the admin PDF/QR workflow.
  • Added the additive production DB migration and runbook.

Why

Printed MathRank assessments need a QR-driven mobile flow where students start an attempt, wait 15 minutes before entering answers, submit for server grading, and see their official rank for that assessment.

Database

The additive migration was applied to the production mathrank database after creating the snapshot database-2-pre-assessment-attempt-20260729. Postflight checks confirmed the new column, table, constraints, and indexes. Existing assessments retain a zero-second delay and the attempt table was empty after migration.

Verification

  • Focused assessment attempt and ranking tests
  • Assessment API response test
  • Assessment API Checkstyle
  • Monolith bootJar
  • git diff --check
  • Live Swagger recheck: production is still v1.0.0-beta.21 with 53 paths / 73 operations and does not yet expose the new attempt APIs

Deployment note

Merging this PR does not deploy production by itself. The repository deployment workflow runs on a new v* tag, so create the next release tag only after review and merge.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 64bf560d-8f21-4286-b525-7f09ccb2946b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant