Skip to content

Platform improvements: scoring, flag dismissal, WAT timestamps, analytics#10

Merged
jvcByte merged 2 commits intomainfrom
preview
Apr 27, 2026
Merged

Platform improvements: scoring, flag dismissal, WAT timestamps, analytics#10
jvcByte merged 2 commits intomainfrom
preview

Conversation

@jvcByte
Copy link
Copy Markdown
Owner

@jvcByte jvcByte commented Apr 27, 2026

  • Paste detector: capture exact pasted text via Monaco getValueInRange, store in paste_events.pasted_text
  • Auto-grading: score = (final_submissions/total_questions)100 - active_flag_reasonsFLAG_PENALTY, stored on sessions.score
  • Pass/fail constraints per exercise: pass_mark, min_questions_required, flag_fails, max_paste_chars, max_focus_loss, min_edit_events, min_response_length
  • Flag dismissal: instructors can dismiss/restore individual flag reasons with audit trail (dismissed_flags JSONB on submissions)
  • Score recalculation: bulk recalculate-scores endpoint re-evaluates flags and scores for all sessions in an exercise
  • Submit Final Answer button on last question; session auto-closes and scores on finalisation
  • WAT timezone: lib/format.ts with formatWAT/formatDateWAT/formatTimeWAT (Africa/Lagos, 12hr), applied across all instructor UI timestamps
  • Submissions table: aggregated per-participant view with expandable question rows, progress, score, pass/fail, flags
  • Participant dashboard: score badge with pass/fail indicator and specific fail reasons per exercise
  • Cohort analytics on instructor dashboard: summary tiles + per-exercise table with table/chart toggle (recharts bar charts for pass/fail/flagged and avg score)
  • Migration 0008: adds pasted_text, pass_mark, min_questions_required, flag_fails, max_paste_chars, max_focus_loss, min_edit_events, min_response_length, score, passed, dismissed_flags columns

…tics

- Paste detector: capture exact pasted text via Monaco getValueInRange, store in paste_events.pasted_text
- Auto-grading: score = (final_submissions/total_questions)*100 - active_flag_reasons*FLAG_PENALTY, stored on sessions.score
- Pass/fail constraints per exercise: pass_mark, min_questions_required, flag_fails, max_paste_chars, max_focus_loss, min_edit_events, min_response_length
- Flag dismissal: instructors can dismiss/restore individual flag reasons with audit trail (dismissed_flags JSONB on submissions)
- Score recalculation: bulk recalculate-scores endpoint re-evaluates flags and scores for all sessions in an exercise
- Submit Final Answer button on last question; session auto-closes and scores on finalisation
- WAT timezone: lib/format.ts with formatWAT/formatDateWAT/formatTimeWAT (Africa/Lagos, 12hr), applied across all instructor UI timestamps
- Submissions table: aggregated per-participant view with expandable question rows, progress, score, pass/fail, flags
- Participant dashboard: score badge with pass/fail indicator and specific fail reasons per exercise
- Cohort analytics on instructor dashboard: summary tiles + per-exercise table with table/chart toggle (recharts bar charts for pass/fail/flagged and avg score)
- Migration 0008: adds pasted_text, pass_mark, min_questions_required, flag_fails, max_paste_chars, max_focus_loss, min_edit_events, min_response_length, score, passed, dismissed_flags columns
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
recoding Ready Ready Preview, Comment Apr 27, 2026 1:34pm

@jvcByte jvcByte merged commit e7f2719 into main Apr 27, 2026
7 checks passed
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