This covers the whole course. Take it after the last module.
Final quiz
Practical assessment: Build a searchable contact list
Without using hints, write a page holding a list of contacts as an array of objects, with a search box that filters the list as the person types and a form that adds a new contact.
The list is always drawn from the data by one render function
Typing in the search box filters by name, ignoring capital letters
The form trims its input, refuses a blank name and does not reload the page
A single click listener on the list deletes a contact
No text from the user is ever inserted with innerHTML
Final project
An expense tracker: Build a page where a person can record spending, see totals for each category, delete mistakes, and find everything still there when they come back.
How it is evaluated
Correctness: the program does what every requirement says, including on unusual input
Code quality: small functions, clear names, and no repeated logic
Robustness: errors and bad data are handled and explained to the user
Safety and accessibility: user text is never parsed as HTML, and the page works from the keyboard
To complete this course
Score at least 70% on the final quiz
Solve the beginner and intermediate exercises in every lesson
Finish the final project and check it against the evaluation criteria