1
Admin registers the LMS as a platform
In Autoproctor, the admin adds the LMS's issuer URL, client_id, JWKS endpoint, and OIDC auth endpoint. Autoproctor publishes its own JWKS at /api/public/lti/jwks for the LMS to trust.
2
Student launches the exam from the LMS
Inside exambenefit.com, the student clicks the proctored exam link. The LMS hits /api/public/lti/login (OIDC third-party initiated login) and redirects to /api/public/lti/launch with a signed JWT.
3
Autoproctor verifies the launch & creates an attempt
We validate the LMS's JWT against its JWKS, match the resource_link to an exam, create a candidate + exam_attempt, and redirect the student into /exam/launch/:id to begin the secure session.
4
Live proctoring + AI trust score
Snapshots, screen recordings, and signals (tab switch, multi-face, audio anomalies) stream into attempt_events. The trust_score updates live via Supabase Realtime, so the proctor sees risk drop the moment it happens.
5
AI review on submission
On submit, Gemini 3 Flash (via Lovable AI Gateway) compares the captured ID with snapshots, summarizes flagged events, and writes a risk verdict to the attempt.
6
Grade & verdict pushed back to the LMS
Final score + proctoring verdict are sent back to exambenefit.com over LTI AGS. The LMS treats Autoproctor as the trusted source of truth for that attempt.
LTI endpoints (for the LMS admin)
- Login (OIDC init):
/api/public/lti/login - Launch (tool URL):
/api/public/lti/launch - JWKS (public keys):
/api/public/lti/jwks
→ Full technical spec for LMS partners: /help/lms-integration