Area: mobieusLearn (audit p8) · Surface: GradingService; admin routes; assessments · Dimension: competitor-gap · Severity: critical
Every competitor LMS with assignments (Moodle, LearnWorlds, Thinkific assignments add-on, Teachable) provides an instructor grading queue: see pending submissions, view the file/essay, assign a score against a rubric, leave feedback. mobieusLearn collects essay and file-upload responses, marks them 'Awaiting manual grade,' and then offers no surface anywhere to actually grade them — the attempt is permanently stuck at score 0 and the learner never gets a result. This makes the two highest-value assessment types non-functional. Why it matters: a learner who submits an essay can never complete a course that requires it.
Evidence
platform/src/Services/Learn/GradingService.php:40-45 — for 'essay' and 'file_upload' returns `['is_correct'=>null,'score'=>0.0,'feedback'=>'Awaiting manual grade.']` with comment 'UI for assigning a manual score is M4b-2'. The AREA route list and `grep -niE 'grade|grading|/submissions' src/routes.php` for learn returns ZERO grading routes. Question kinds include essay+file_upload (database/migrations/2026-06-01-learn-phase1.sql learn_question_bank `kind` ENUM includes 'essay','file_upload') and the AI rubric suggester exists (LearnAI.php:55 FEATURE_RUBRIC) but only generates rubric TEXT — there is no structured rubric scoring or grader UI.
Suggested fix. Ship the deferred 'M4b' grading inbox: a /learn/grading route listing attempt_responses where is_correct IS NULL, with per-response score+feedback entry, optional structured rubric levels, and a re-roll-up to attempt/enrollment completion. Notify the learner when graded.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus