CSc 445 Assignment 4

Testing 1, 2, 3

Assigned
Due

Nov 13
75 pts
Dec 12

Repeat Assignment 3 with login and registration.

  1. The exam name will no longer be part of the URL. Instead, the initial page will be a form allowing entry for the exam name, and account name, and a password, and buttons for login and register
  2. A list of available exams and titles would be wonderful here, but there's only so much time left, so this will not be a requirement.
  3. A successful login will display the exam page. Errors will be displayed an an error area at the bottom of the page, while staying at the initial page. Errors would include:
    1. Bad user name or password.
    2. Bad exam name, including any system failure to find the exam.
  4. Once reaching the exam page, behavior will be similar to Assignment 3, except there should be no entry blank for the name, or errors related to not sending it. Display the human name from the account registration in place of an entry blank.
  5. Make sure a user who is not logged in cannot display any exam.
  6. The registration button will reach a registration page, which allows the user to enter an account name, human name, and password, twice. It will have create and cancel buttons.
  7. Cancel will return to the login page, and have no other effect.
  8. The register button will make checks. In case of failure, put an error message at the bottom of the page and remain at registration. On success, create the account and return to the login page. Errors include:
    1. Account exists
    2. Password fails complexity checks
    3. Passwords don't match.
  9. Maintain a database of users, and database of scores by user and exam name.
  10. Retain passwords with the standard hash method.
  11. There are a thousand and one fine things that could be done to display this database, but there are no requirements here, just to keep a reasonable scope.

Use Flask on the server side, Javascript and jQuery on the client. Any division of labor you like.

The final counter example has much stealable Flask code for accounts creation.

When you're ready, post your page, then go here and enter the URL of the page. Post on Sandbox so I can access all the source. (HTML and CSS I can download from anywhere.)