backend icon indicating copy to clipboard operation
backend copied to clipboard

Exam mode for courses

Open martin-henz opened this issue 1 year ago • 5 comments

An admin should be allowed to switch a course to "exam mode" where some features are disabled: share links, sessions, playground local storage, github and google drive.

martin-henz avatar Nov 04 '23 05:11 martin-henz

Can we let admin log out all students? That way they would be forced to log in which might make this feature easier to implement.

martin-henz avatar Nov 04 '23 05:11 martin-henz

Instead of exam mode, we could just give a list of features that admin can enable/disable.

martin-henz avatar Nov 04 '23 05:11 martin-henz

I think it should not be manual, but also configurable on a per-assessment basis (at least, in the long-term – designs for the short-term should keep this in mind). Perhaps we parse additional keys in the XML and update the API between the FE and BE, such that when the student attempts the assessment (of course, subject to the exam configuration):

  • Frontend:
    • Remove features as necessary (e.g. prevent window switching, etc. – similar to Examplify)
    • Detect when there is possibility of exam integrity being compromised and report this to the backend
  • Backend:
    • (Temporarily) updates the access control matrix of the user to revoke access to certain resources/operations (in case the frontend is compromised by way of browser extensions/hacking), until the assessment is submitted

This would require the following revamps/enhancements to our existing system:

  • Migrate user roles to an access-control matrix (more granular permissions framework as opposed to a simple role system)
  • Separate the public, unguarded services (e.g. URL shortener, collaborative editing) from our restricted, SA@NUS deployments
  • ...? (will update as things come to mind)

RichDom2185 avatar Nov 04 '23 06:11 RichDom2185

Can we let admin log out all students? That way they would be forced to log in which might make this feature easier to implement.

I think it's best if the exam mode is done on a per assessment basis instead of a per-deployment basis. E.g. a student might be taking another course/doing last minute revision just before a (synchronous) exam. Or we might want to have a take-home, asynchronous but still secure exam.

Will have to design this feature around multitenancy.

RichDom2185 avatar Nov 04 '23 06:11 RichDom2185

@chownces suggested we bring back the PWA functionality in the frontend as well.

RichDom2185 avatar Nov 04 '23 06:11 RichDom2185