this is an extension of multiple previous assignments.
implement the address book you've been working on with the ability to add, edit, delete and search all within a single page using ajax.
this is an extension of assignment 18.1.
add authentication and the ability to change the user's password to your address book program. ensure you use hashed passwords.
this is an extension of assignment 17.2 and uses the wordlist from assignment 12.3.
add authentication, signup, email verification, password recovery and a leaderboard to your hangman game.
using the wordlist you've already used before, select a random word within length guidelines -- let the user choose a minimum and maximum length.
your leaderboard should display the longest word a user has guessed as well as their place in wins/losses.
build a true/false quiz platform where a teacher can create quizzes of any length then add a list of student names and emails.
students should be able to login with randomly-generated passwords they're assigned (you can choose the password scheme but a six-digit number is a good place to start). they should be able to generate new passwords that are then sent to them by email. there's no need to hash these but you should hash the teacher's password and allow them to change or reset it by email.
once students have logged in, they should be able to see a list of quizzes they haven't done or haven't finished. they should be able to finish quizzes they've started but not change their existing answers.
only when quizzes are done, they should be able to see their results and the correct answers.
in the list of quizzes, the ones that are completed should show with their scores beside them and they should be provided with an average of all their quiz scores if they've taken more than one. (assume each quiz is weighted the same way for this exercise.)
make sure you have a logout button because this will likely be used on shared student computers.
the teacher should be able to see results by quiz, by student or a table of everything. quiz and student results should provide averages. the table of everything should have row and column averages.
assume incomplete doesn't count toward averages and represent it using a * on table results.