Crunch time! Your interactive webpage prototype needs to be ready for user testing by the end of this week.
By the end of this week, your app should be completely finished and functional in terms of interactions (don't worry about finalizing visual layout and styles). If you're not on track to finishing, it's time to step up the pace.
Your app should now be able to save data inputted by the user in JavaScript variables within your Node.js server app, which serves as a fake-'database'. (This data will be persistent only until the Node server restarts, so there is no need to set up a real database.) Note that you can use a real database if you want, but it is not a requirement for this course.
Your app should also have a working account and login system if it requires user accounts (but it can be simple, so don't go overboard with complexity here since it's not the most interesting part of your app ... e.g., if you want to put fake usernames/passwords in your data.json file, that's fine).
Your app should have several pages where users can submit and view data (stored in JavaScript variables within Node.js or as JSON files such as data.json -- see Lab 5, or in a real database). Use the feedback you received in studio to help determine what changes or improvements to implement. Remember, we are not at the "making it pretty" phase yet, so don't spend time on aesthetics unless all other components are already complete. Your user testing results next week will be much less insightful if your interface is still half-finished and buggy. So focus on finishing the interactions.
If you are creating a mobile web app, now is also the time to make sure your app fits into a mobile form factor, use Google device mode to help with this , or test on your own mobile devices.
For A7, you will be testing your app with real users. In preparation for next week, you will develop a protocol for testing your app. You will be using this protocol to do user testing throughout next week.
Protocols, or "usability scripts," help keep tests consistent across testers and facilitators. It gives exact, step-by-step instructions on how to test a user, often down to the exact words that the facilitator will say. Write a user testing protocol that covers:
Your protocol should be ~1-2 pages.
Follow the development plan you created last week, and update it as you go. Mark tasks that have been completed and add new ones if you need to. Make sure that your next week is planned out with goals and who is responsible for each task. Be sure to add tasks for future weeks as well.
Here are some examples of development plans. If you want, use File -> Make a copy... to copy over the formatting for each spreadsheet to form the basis for your own plan.
GradeSource++: This example project from last year abstracts GradeSource for you and works with the data to show you where you are in a class.
Balancr: This app helps people balance their time between work and play. They have done a wonderful job making the app functional-- you can create a sign-up, add activities, and see it reflected on the pie chart.
For both examples above, the data that undergirds the functionality of the apps are pre-populated and updated from JSON. For instance, login information should be stored as JSON. You should have a pre-canned user that is persistent, and the ability for creating a new user whose credentials will be stored in JSON for the duration of the session. Look to Lab 6 for the necessary machinery to implement this.
For this assignment, ONE person will submit the assignment for their team, listing every team member's name and student ID number (PID) in the assignment submission.
Your write-up will contain the following in one single PDF:
Note: since we may grade your assignment up to a few days after submission, per the honor code, we expect that the prototype URL show the state of your prototype at the time of submission. You will very likely be updating your prototype after submission, but please do so on a separate URL.
Submit your single formatted PDF in Gradescope.
The rubric below contains criteria that are worth one point each and will be graded independently and in a binary fashion.
During studio, click here to self-assess your team's work as a collective unit.
During studio, click here to assess how each of your teammates contributed to this assignment.