Open ShaunSHamilton opened 2 weeks ago
With the current logic, I don't see much of a need for it. Except to just have more information in case it becomes useful. Seems like the only thing it tells us is how long it took someone to complete the exam I guess? And when they finished.
A couple questions. So there's no actual submit button I take it? It just auto submits after they answer all the questions or the time limit is reached? Can users go back and change answers? If I answer the first 10 questions, can I go back and change the answer for the first one?
It does feel a little weird that my exam will be submitted for me automatically without me saying, "I'm finished" (submitting) - but not really that big of a deal. If there was a submit button, and we used that to set the submission time, we would know that they intentionally answered all the questions and clicked submit. Not sure if that would be useful at all though.
So there's no actual submit button I take it?
Technically, we have a End Exam
button, but it does nothing except navigate to the landing page.
It just auto submits after they answer all the questions or the time limit is reached?
No auto-submission. Every time a Camper clicks Submit Question
, their answer is recorded. The only thing is, if a Camper submits an answer for every question, the api records the submissionTimeInMS
.
Can users go back and change answers? If I answer the first 10 questions, can I go back and change the answer for the first one?
Yes. If there is time left on the attempt, Campers can change answers.
It does feel a little weird that my exam will be submitted for me automatically without me saying, "I'm finished"
To clarify: No auto-submission. If all questions have an answer, then the api adds submissionTimeInMS
. Thereafter, if the Camper changes one of the answers, then the api still updates submissionTimeInMS
.
If there was a submit button, and we used that to set the submission time, we would know that they intentionally answered all the questions and clicked submit. Not sure if that would be useful at all though.
The only issue is, because we want Campers to always be able to get back into an exam if they have time left over. That said, we could definitely add something like a "submit and quit" which would prevent them from coming back (changing answers). even if they had time.
I am just not sure we want/need that.
Currently, an exam attempt looks like:
https://github.com/freeCodeCamp/freeCodeCamp/blob/b08a023c4c432d3c5f0d642e4c62fa1bb4c0e3b7/api/prisma/schema.prisma#L261-L283
And the logic for
submissionTimeInMS
is:https://github.com/freeCodeCamp/freeCodeCamp/blob/b08a023c4c432d3c5f0d642e4c62fa1bb4c0e3b7/api/src/exam-environment/routes/exam-environment.ts#L531-L532
However, I cannot think of a reason to keep the field around. Should we just remove it?
Context for field
Currently, we allow Campers to start where they left-off in an exam, if there is still time left on the exam. This helps with situations like the app closing/crashing, or their pc doing the same. Then, Campers have the ability to continue with their exam. Why a Camper would want to submit a multiple choice exam without answering (at least guessing) all questions? I am unsure. That said, we could always have a proper "SUBMIT" button which sets the `submissionTimeInMS` field, and, if that field is set, prevents further submissions. Why do this? I am unsure.