The purpose of the quarter-long project is to give you hands-on experience with building a full-stack web application with at least the following basic components:
(We will not place as much emphasis on the concepts in the What will we not cover in this course? section at the bottom of the course description page.)
First read these requirements for forming teams.
The project theme that we will focus on this quarter is designing for people very different from yourselves.
We often design products for ourselves or for people like us, which has the benefit of being able to use our friends for needfinding and user testing. However, some of the most interesting project ideas come from designing for those who are very different from us. These kinds of projects will really help your design portfolio stand out when applying for jobs.
This theme is purposely broad to give you lots of flexibility in coming up with project ideas. Think as different and out-of-the-box as you can. But here are some other constraints:
If you're unsure of whether your topic is in scope, please message the instructors on Piazza.
You cannot create the following kinds of projects, since they have been done too frequently for HCI / web programming courses:
If you want to use your course project as part of your design portfolio for future jobs, you want to avoid these topics anyhow since they won't make your portfolio stand out.
Note that you may include some of these ideas (e.g., real-time chat) as components in your project, but your project can't be primarily focused on these topics (e.g., it can't just be a chat app). Check with your TA for final approval.
See course schedule for all due dates.
Example API and Real-World Data Sources
For your COGS120/CSE170 projects, it was often OK to use mock (fake) data since you were prototyping basic interactions. However, for this course, we want you to use real-world data for your project. This can either be via connecting to APIs or by importing datasets (e.g., .csv files) directly into your database. Here are example APIs and sources of data. You're not obligated to use any of them; you can choose any real-world API or data source appropriate for your project, as long as your TA approves.
Frequently Asked Questions