Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce id verification step for proctored exams #309

Merged
merged 2 commits into from
Oct 4, 2016

Conversation

andy-armstrong
Copy link
Contributor

@andy-armstrong andy-armstrong commented Sep 23, 2016

TNL-5083

Description

This change introduces a new id verification step when rendering a proctored exam that is shown when the user has not yet passed verification. It also updates the subsequent instruction step to remove the unnecessary recommendation to ensure that the learner is verified.

Sandbox

You can use the four test users which are already in the various states:

verified_id_none@example.com
verified_id_failed@example.com
verified_id_pending@example.com
verified@example.com

Testing

- [x] i18n

  • Unit, integration, acceptance tests as appropriate

Reviewers

If you've been tagged for review, please check your corresponding box once you've given the 馃憤.

FYI: @douglashall

Post-review

  • Rebase and squash commits

@andy-armstrong andy-armstrong force-pushed the andya/proctoring-verification-step-2 branch from 4022e67 to 3c21e38 Compare September 23, 2016 01:53
@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling 3c21e38 on andya/proctoring-verification-step-2 into 1faad3a on andya/clean-up-tests.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling 3c21e38 on andya/proctoring-verification-step-2 into 1faad3a on andya/clean-up-tests.

@andy-armstrong
Copy link
Contributor Author

@dianakhuang @robrap here's a new version of this branch that is rebased against the test cleanup work, so it is clearer what has changed. Tomorrow hopefully we can get this working on a sandbox.

@andy-armstrong
Copy link
Contributor Author

@catong this work for proctoring isn't available on a sandbox yet, but it would be great if you could review the documentation strings. They are based on the designs found in the ticket:

https://openedx.atlassian.net/browse/TNL-5083

@robrap
Copy link
Contributor

robrap commented Sep 23, 2016

I'll review in more detail later. I was thinking last night that we'll need a way to disable this for load testing.

@robrap
Copy link
Contributor

robrap commented Sep 23, 2016

@andy-armstrong @dianakhuang: It's possible that we can ignore my earlier comment about verification and load testing, because I think auto_auth was updated to allow for verification. We'll need to confirm.

@robrap
Copy link
Contributor

robrap commented Sep 23, 2016

@andy-armstrong: It looks like it turned out verification_status was already available?

Thanks. All looks good to me. 馃憤

@dianakhuang
Copy link
Contributor

Sandbox is now available! https://dianakhuang.sandbox.edx.org/

@andy-armstrong andy-armstrong force-pushed the andya/proctoring-verification-step-2 branch from 3c21e38 to ab79cd7 Compare September 23, 2016 15:34
@andy-armstrong andy-armstrong changed the base branch from andya/clean-up-tests to master September 23, 2016 15:34
@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling ab79cd7 on andya/proctoring-verification-step-2 into f2c320f on master.

@dianakhuang
Copy link
Contributor

On the sandbox, there are 4 students in various states:

verified_id_none@example.com
verified_id_failed@example.com
verified_id_pending@example.com
verified@example.com

verified@example.com has an approved verification.

<div class="">
<h3>
{% blocktrans %}
Complete verification prior to starting your proctored exam.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Complete your verification before starting the proctored exam."

</h3>
<p>
{% blocktrans %}
In order to start your proctored exam, you must successfully complete identity verification.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You must successfully complete identity verification before you can start the proctored exam."

{% if verification_status == 'pending' %}
<p>
{% blocktrans %}
Your verification is currently pending. You should expect to hear back in 2-3 days
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Your verification is pending. Results should be available 2-3 days after you submit your verification."

{% elif verification_status == 'must_reverify' %}
<p>
{% blocktrans %}
Your verification attempt failed. Please retry verification after reading
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Your verification attempt failed. Please read our guidelines to make sure you understand the requirements for successfully completing verification, then try again."

<p>
{% blocktrans %}
Your verification has expired. Please retry verification after reading
our guidelines to ensure you successfully complete verification.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andy-armstrong The second sentence for the "expired" scenario is identical to that for the "failed" scenario, but I think we might be able to provide more helpful info for this specific case. What does an "expired" verification attempt mean? Previously verified and a certain amount of time has elapsed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@catong Yes, this scenario is for a user who verified too long ago. I'm not entirely sure what the expiration rules are (a year?).

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @andy-armstrong. I don't think we should put a specific time frame in our messaging, but instead of "retry verification", the message should be something like: "Your verification has expired. You must successfully complete a new identity verification before you can start the proctored exam."

@@ -149,6 +151,42 @@ def test_get_honor_view(self):
self.assertIsNone(rendered_response)

@ddt.data(
(None, 'Make sure you have valid photo identification'),
('pending', 'Your verification is currently pending'),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can strike the word "currently": "Your verification is pending"

{% else %}
<p>
{% blocktrans %}
Make sure you have valid photo identification, such as a driver's license
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the page that results after I select "Continue to Verification" there's a prominent banner that proclaims, "You need a computer that has a webcam." Should we add the webcam requirement to the previous message too?
"Make sure you are on a computer with a webcam, and that you have valid photo identification such as a driver's license or passport, before you continue."

@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling 8146226 on andya/proctoring-verification-step-2 into f2c320f on master.

@andy-armstrong
Copy link
Contributor Author

@robrap @dianakhuang @catong @marcotuts this PR is ready for review.

Copy link
Contributor

@dianakhuang dianakhuang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, it looks good! I just had one question/comment. 馃憤

@@ -34,11 +34,6 @@
{% endblocktrans %}
</p>
<p>
{% blocktrans %}
You will be asked to verify your identity before you begin the exam. Make sure you have valid photo identification, such as a driver's license or passport, before you continue.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why you removed this line. I thought this was referring to the fact that the proctoring software asks for photo id again.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dianakhuang Good catch! @andy-armstrong Perhaps we can prevent confusion by changing the wording a bit?
"You will be asked to verify your identity as part of the proctoring exam set up."?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting. Removing this line was in the acceptance criteria:

Once this verification step is added, we can remove the line of text in the Proctoring Exam Instructions that reads: "You will be asked to verify your identity before you begin the exam. Make sure you have valid photo identification, such as a driver's license or passport, before you continue."
This existing step in the process will no longer need to happen within the exam workflow as it will be completed prior to start of the proctoring instructions step.

I'll add it back with the revised wording.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@catong How's this?

    You will be asked to verify your identity as part of the proctoring exam set up.
    Make sure you are on a computer with a webcam, and that you have valid photo identification
    such as a driver's license or passport, before you continue.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds good to me @andy-armstrong

</p>
<div>
<a href="{{ reverify_url }}" class="reverify-url btn-pl-primary">
{% trans "Retry Verification" %}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andy-armstrong The link for expired verifications should probably be "Continue to Verification" rather than "Retry".

Copy link

@catong catong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one comment about the link for expired verifications (should not be "retry"), otherwise this looks great! 馃憤

@andy-armstrong andy-armstrong force-pushed the andya/proctoring-verification-step-2 branch from 8146226 to 16e2f80 Compare September 28, 2016 16:22
@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling 16e2f80 on andya/proctoring-verification-step-2 into 113ba49 on master.

@andy-armstrong
Copy link
Contributor Author

@catong @dianakhuang I've addressed your feedback and squashed so I can hopefully merge this shortly.

@robrap @chris-mike @marcotuts please review today if possible. Thanks.

@andy-armstrong andy-armstrong force-pushed the andya/proctoring-verification-step-2 branch from 16e2f80 to 6ef5eec Compare September 28, 2016 17:29
@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling 6ef5eec on andya/proctoring-verification-step-2 into 113ba49 on master.

@@ -414,6 +414,7 @@ def setUp(self):
self.student_taking_exam = User()
self.student_taking_exam.save()

set_runtime_service('credit', MockCreditService())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andy-armstrong: Where is this used?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this is to deal with credit_state. It seems like this would have been required already for some existing tests, but maybe I'm missing something. Anyway, I don't think this is an issue, I'm just trying to understand.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. These tests call proctoring code that assumes that there's a credit service installed. They work when run as a complete suite because other tests have installed the service and it doesn't get uninstalled. I put this in so that I can run individual suites and/or test methods.

@robrap
Copy link
Contributor

robrap commented Sep 28, 2016

馃憤 Looks good. I had a question, but I don't think you have anything to do. I'm just trying to understand the test code. Thanks.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling a5681bc on andya/proctoring-verification-step-2 into 113ba49 on master.

@andy-armstrong
Copy link
Contributor Author

@marcotuts discovered that I'd put the id verification step in the wrong place in the workflow. It was showing before the user chose to enter a proctored exam, rather than being shown immediately after they make that choice. I've fixed the code and the tests, and I've updated the sandbox. Great catch, @marcotuts!

FYI @dianakhuang @robrap @catong @chris-mike.

@andy-armstrong
Copy link
Contributor Author

I got a verbal 馃憤 from Lauren, so I'm merging this now.

@andy-armstrong andy-armstrong merged commit bd5f634 into master Oct 4, 2016
@andy-armstrong andy-armstrong deleted the andya/proctoring-verification-step-2 branch October 4, 2016 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants