source-academy / backend

Backend of Source Academy @ NUS, LMS extension of Source Academy (Elixir, Ecto, Phoenix, PostgreSQL)
https://sourceacademy.nus.edu.sg
Apache License 2.0
38 stars 50 forks source link

Exam mode for courses #1029

Open martin-henz opened 11 months ago

martin-henz commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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

RichDom2185 commented 11 months ago

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):

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

RichDom2185 commented 11 months ago

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 commented 11 months ago

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