Overview. You’re almost there! The last stage of your final project is to complete your implementation and document your revised design.

Tasks

Final design and code. Following your beta release, and in response to the user testing you conducted, you have an opportunity to make final design changes and to implement them. You should also review carefully what functionality remains to implemented, and schedule the coding carefully so that if you don’t get as much done as you’d hoped, you’ll still end up with a well-rounded project.

Design revision. List the changes you have made to your design since the changes of the beta version. For each change, provide a brief (~3 sentence) rationale for making it, referring back to the user testing observations when appropriate.

Demo video. Make a brief video (no more than 2 minutes in length) demonstrating your final project app. Focus on a few interesting aspects (so don’t take time creating accounts or logging in!), and make sure to have the app populated so the demo seems realistic.

Advice for future students. As a team, think about what went well and what didn’t go so well in your final project, and what you wish you had known at the start. Summarize your insights as a brief blog post addressed to future students in the class. The teaching staff will read these posts with great interest, for lessons about how we can improve the class, and for advice we can give to future students.

Deliverables

Include your design revisions, blog post and video as separate documents in your portfolios.

Submit your deliverables using this form once for your whole team by the deadline. The form will ask you to include links to your working deployment and the Git repo you are deploying from, to your video, and to one of your portfolios for the additional documents.

Rubric

Component Excellent Satisfactory Poor
Functional Completeness Functionality matches revised design and largely delivers on the initial aspirations of the project Functionality matches revised design but only partly delivers on the initial aspirations of the project Functionality is limited, or key features are missing
Robustness App operates smoothly. Where appropriate, client-side or backend validation anticipate malformed or erroneous input, or access violations, and show or return informative error messages App usually operates smoothly, but some missed opportunities for client-side or backend validation to handle erroneous input. User-friendliness of error messages could be improved. App suffers from non-trivial robustness issues when malformed or erroneous data is input. Error messages are missing or opaque.
User interface design User interface gives a pleasant and intuitive user experience User interface gives an intuitive user experience, but occasional rough edges undermine cohesion User interface is only minimally designed, and fails to provide a usable experience
Design revision Design revision is clear and comprehensible, and rationales for changes are succinct and well argued, and respond to observations from user testing Design revision is clear and comprehensible but rationales for changes need more explanation or are too wordy Design revision is unclear and rationales are hard to follow
Populated data Deployed app is populated with plausible data that gives a good impression of realistic use Deployed app is populated with plausible data but of insufficient quality or volume to give a good impression of realistic use Deployed app is populated with insufficient or implausible data that makes it look like a toy
Demo video Video conveys gist of app and is fun to watch Video conveys gist of app but seems routine Video doesn’t convey app in an understandable way
Advice blog post Thoughtful and helpful advice with some atypical insights Thoughtful and helpful advice but no unusual insights Generic or unclear, too wordy or lacking content