Design Project

You'll DESIGN, BUILD, and TEST your own crowdsourcing / social computing system.

Tips & Info

What do we do?

This is a team-based, semester-long design project, in which you'll create an original social computing application on your own. You'll work in teams of four people. More information about each milestone will be added to this page. Here is the timeline and grading weights for each milestone:

  • Team Formation (week 2): 0%
  • Ideation (week 4): 20%
  • Pitch (week 6): 15%
  • Low-fi Prototype (week 9): 15%
  • High-fi Prototype (week 12): 15%
  • Final Presentation (week 15): 15%
  • Final Paper & Video (week 16): 20%
Please note that all team members will receive the same grade for all the milestones.

Why do this?

Now that you've mastered the arts and skills of social computing, it's important that you apply what you learned to a problem you deeply care about. It's a great way to learn further, and potentially make impact.

Does my project idea qualify?

Projects are open-ended, so please be creative. But here are some requirements:
  • Your project should involve a VOLUNTARY OR INTRINSICALLY MOTIVATED CROWD, which means you cannot use paid crowds (e.g., MTurk, Upwork).
  • Your project should have some user interface. I'm expecting most projects to be a novel crowdsourcing and social computing system that can be tested by others (e.g., a prototype website or a mobile app). Data mining or analysis focused projects are okay, but there needs to be some visualization or analytics dashboard component that is accessible by others to understand your results.
  • Your prototype doesn't need to be a fully implemented platform, menaing that it needs to focus on the core crowdsourcing / social computing concept you're introducing, rather than to build all the database backend, login, etc.
  • Connecting to your own research is encouraged, but please make sure to talk to course staff early about how to make it happen.


Here are the project gallery pages from the 2016 and 2017 versions of the course.

How do we submit?

We'll create an assignment in KLMS for each milestone.

Late Policy

For each milestone deadline, all members of your team will lose 10% for each late day. Submissions will be accepted until three days after the deadline. After then you'll get 0 on that assignment. Please note that late submissions for midterm and final presentations are not allowed.

Team Formation

Milestone 0: Team Formation

Due: 11:59pm on 9/7 (Fri)

What do I do?

You'll need to find teammates to work on an exciting project this semester. Each team should have 4 people by default. In exceptional cases we'll accept 3-person teams.

How do I find teammates?

Here are three methods you can use:

  • You can use Classum to post advertisements for finding teammates.
  • We'll give 5 minutes at the end of two classes for in-person team formation.
  • Use office hours to talk to us about project ideas so that we can make connections, and you can also run into other classmates.
Please try to have diversity in your own team crowd, in terms of skillset, interest, and background.

How do I submit?

Please fill out the design project sign-up form.


Milestone 1: Ideation

Due: 11:59pm on 9/20 (Thu)
20% toward your project grade

What do we do?

In a team, you'll identify a problem that you'd like to tackle with your project, and brainstorm approaches to solving the problem.

Your report

In your report, please answer the following questions:

  1. What is the problem your team is trying to solve? (one sentence)

  2. How do you know this problem exists? Why is this problem important? Include both (1) external references (e.g., academic papers, news articles, or published surveys), as well as (2) internal investigation (e.g., results from making observations, personal experiences, or interviews with target requesters or workers). (maximum one paragraph)

  3. Why use social computing for the problem? Why not use machines or individual experts? (maximum one paragraph)

  4. How Might We (HMW) Questions: For the identified problem, discuss with your teammates what specific challenges exist. State these challenges as "How might we..." (HMW) questions. HMW questions serve as a bridge between the identified problem and solution ideas. They are short questions that should be broad enough to allow for open ideas yet narrow enough to set meaningful boundaries. Report at least 10 HMW questions for your team's problem, and pick top 3 HMW questions. This method card from Stanford should be a useful resource.

  5. Solution Ideas: Solution ideas are your attempts at solving the HMW questions. Report at least 10 solution ideas per each of the top 3 HMW questions, and pick top 3 solution ideas overall. Note that these 3 ideas should be distinct from one another, covering a wide solution space. The best ideas don't necessarily have to represent each HMW; multiple ideas can belong to a single HMW.

  6. Storyboards: Create 3 storyboard sketches, one for each of the top 3 solution ideas. A storyboard is a set of comic-strip-like drawings that visually walks through a concrete scenario and a task that your persona experiences. Show the challenge the persona encounters, what environment the persona is surrounded by, what motivates the persona to use the solution idea you're suggesting, and how your solution idea actually addresses the challenge. The storyboard shouldn't be about specific system features or UI elements. You don't even need to show the detailed screen layout of your UI at this point. Focus on the concept and context, rather than pretty UIs or sophisticated system features.

    Make sure to hand-draw your storyboards, with a thick pen so that sketches are visible when digitally scanned and excessive details are not included. Using a pencil or a thin ball-point pen is not allowed. Here are some good examples (Verbivore and Let's Read), except for the fact that some of them are not drawn with a thick pen. Also, Amal Dar Aziz's guide to storyboarding is a highly recommended resource.

Your Report

  • Final Team Name
  • Problem statement
  • Problem background
  • Motivation (Why social computing?)
  • HMW questions (at least 10)
  • Top 3 HMW questions
  • Solution ideas for your HMW questions (at least 10 x 3 HMWs)
  • Top 3 solution ideas
  • Storyboards (3)


  • Problem (10%)
    • Clearly presented in a sentence?
    • Unique?
    • Non-trivial?
  • Problem Background (15%)
    • Clearly presented in a paragraph?
    • Convincing evidence or references presented?
    • Importance of the problem highlighted?
  • Motivation (15%)
    • Clearly presented in a paragraph?
    • Suitable for social computing?
    • Convincing reasons for using social computing presented?
  • HMW (10%)
    • 10+ HMWs submitted?
    • Scope not too broad or narrow?
    • Distinct, broad, and creative?
    • Selection process clearly described?
  • Solution Ideas (20%)
    • 10+ solution ideas submitted for each HMW?
    • Distinct, broad, and creative?
    • Selection process clearly described?
  • Storyboards (30%)
    • 3 storyboards submitted?
    • Flow easy to follow and understand?
    • Easy to read (thick pen used)?
    • Not solution-driven but user- and scenario-driven?

How do we submit?

One report per team. Your report should be submitted as a zip file. The main report should be written in Markdown (please use the .md extension). Storyboards should be scanned in png or jpg, and need to be in a directory called images. We're going to publish your reports on the course website. Submit your team's report on KLMS.


Milestone 2: Pitch

Due: in class on 10/2 (Tue) and 10/4 (Thu)
15% toward your project grade

What do I do?

Now that you've identified an interesting problem, a set of concrete tasks you want to support, and a set of possible solutions, it's time to turn these into a convincing pitch!

You'll have 10 minutes to do the following:

  • Motivate the problem.
  • Present the identified tasks and explain why they matter.
  • State what your proposed solution is, and why it'll be able to solve the problem and support the tasks well.
  • Share your plan: (1) In your team, who'll be responsible for what? (2) How will you find the crowd or users to use and test your system?

After the pitch, you'll have two minutes for Q and A.

Note #1: We'll enforce a strict 10-minute time limit by cutting off the presentation. Please plan and rehearse.

Note #2: Note that all team members should present at least once between the pitch and the final presentation. This means if your team decides to have only some members present for the pitch, the remaining members should definitely present for the final presentation.


  • Organization (10%): Overall structure and flow of the presentation.
  • Problem (20%): Well defined? Is it a real problem? What's the evidence?
  • Solution (30%): Novel? Feasible? Quality control / aggregation / motivation... thought out?
  • Plan (10%): Who does what and deployment plan.
  • Articulation (10%): Delivery and clarity of the presentation.
  • Visual aids (10%): Design and readability of the slides, use of effective visual aids and examples.
  • Overall (10%): How engaging was the overall talk?

Your report

You'll present in class and submit your slides after the class, which are due 11:59pm on the day of presentation.

How do I submit?

Your team's slides should be submitted as a PDF file, via KLMS.

Low-Fi Prototype

Milestone 3: Low-Fi Prototype

Due: 11:59pm on 10/26 (Fri)
15% toward your project grade

What do we do?

Let's start giving your design idea a digital life by creating a low-fidelity digital prototype. Rather than use HTML and Javascript, you'll first use a prototyping tool to implement the tasks and scenarios. Specifically, we recommend Marvel, InVision, or You can also choose any prototyping tool of your choice.

Functionlity does not need to be fully implemented. Please use hard-coded but realistic data and fake results, so that you can focus on the essential: the user's task, scenario, and UI components to support them rather than the underlying implementation. You need to build a prototype that supports end-to-end scenarios. Your prototype needs to support at least three distinct tasks. This does not mean you need to build three separate prototypes, but rather this means you need to build one complete prototype that is flexible enough to support the three tasks.

Note: During the feedback meeting, we strongly encouraged you to narrow down the scope of the idea and focus on the core social computing aspect of the idea. Supporting three tasks should also be thought as a way to focus, not diverge. You should define concrete tasks that are connected to the core idea, not three completely disjoint tasks that make it work like three separate systems.

After building your digital prototype, find at least three participants to test it. Make sure they are not friends who know about your project already, or classmates. Preferably, try to find participants who are close to your target user group.

Your report

Your report should include:

  • Problem Statement: Re-state the problem you're tackling in your project. Based on what you've learned so far, you can revise your problem statement.
  • Tasks: List three core tasks you've decided to support in your prototype. Again, you can reuse or improve what you had earlier.
  • Prototype:
    • Link to your prototype
    • Prototyping tool: Which tool did you choose? Why? What worked well with the tool? What didn't?
    • Design choices: What did you intentionally choose NOT to implement (e.g., fake or hard-coded data, manual algorithm, etc.), and why?
    • Representative screenshots: Include a few most important screenshots that showcase the uniqueness of your application.
    • Instructions: Your prototype needs to be accessible and executable by anyone with the link. Please include instructions for running your prototype in detail, if needed.
  • Observations: List at least 10 usability problems you discovered. Organize them by high-level task or theme, not by each participant or time. But mention which participant ran into the problem by referring to them as P1, P2, ... (e.g., search results did not show the price information (P1, P3)). For each problem, indicate how critical the problem is: high, medium, and low. Finally, show how you plan to address each of the problems in the later stage of your design process.


  • Problem Statement (5%)
    • Problem statement is clearly written?
    • Lists a problem not a solution?
    Tasks (15%)
    • Tasks align with the problem statement?
    • Three or more tasks?
    • Are the tasks distinct from each other?
    • Are the tasks described concretely and clearly?
    • User-level description not functionality description?
  • Prototype (50%)
    • Tool description and justfication are clear?
    • Design choices are justified?
    • Design choices mention what's not selected by the team?
    • Screenshots are added?
    • Screenshots capture representative moments of the prototype?
    • The prototype captures the three tasks?
    • The prototype is complete in that it supports an end-to-end scenario?
    • The prototype is accessible and executable?
    • Instructions for running the prototype are clear?
  • Observations (30%)
    • 10+ submitted?
    • Are the usability issues described concretely and clearly?
    • Organized by task and theme?
    • Level of criticality included?
    • Is the plan for improvements reasonable and sound?

How do I submit?

One report per team. Your report should be submitted as a zip file. The main report should be written in Markdown (please use the .md extension). We're going to publish your reports on the course website. Submit using KLMS.

High-Fi Prototype

Milestone 4: High-Fi Prototype

Due: 11:59pm on 11/20 (Tue)
15% toward your project grade

What do I do?

Now's the time for a fully functional and interactive prototype that is ready to be tested by your target users. You need to build a prototype that supports end-to-end scenarios captured in your earlier prototypes. Your prototype needs to support at least three distinct tasks. This does not mean you need to build three separate prototypes, but rather this means you need to build one complete prototype that is flexible enough to support the three tasks. You may choose to reuse or revise the tasks and the UI you created in earlier stages. Make sure your tasks are centered around novel social interaction you intend to support. Other features (e.g., detailed my page design, complex login management) can be hard-coded or fed with fake data.

Your report

Your report should include:

  • Project Summary (maximum three sentences): (1) the problem you're addressing, (2) what your solution is, (3) what unique approach you're taking in your solution (how it's different from other similar solutions). This summary will be used as a blurb on the project gallery.
  • Instruction: Give a quick tour of the interface, and also show off some of the highlights of the interface. Note that this should not cover all features you have; focus on the most exciting and important parts. Use screenshots and callouts.
  • URL of your prototype: A live version of the prototype for evalation. Note: the URL must work at least until your assignment is graded. Course staff will run your prototype to do a heuristic evaluation for grading. If the link doesn't work, your team will be penalized. If there are specific requirements (e.g., browser or device settings), include them as well.
  • URL of your Git repository: Make sure to add a README file that briefly describes the code, e.g., main JavaScript file, or where main feature implementations are, etc. Several lines are enough.
  • Libraries and frameworks: List any external dependencies you used for your implementation (e.g., Bootstrap, Semantic UI, etc.).
  • Individual Reflections: Each member should write this part on their own, reflecting on their own experience. Merge all members' mini-reports in the final report. Answer the following questions:
    • Which part of the system did you directly contribute to?
    • What were some of the difficulties you faced?
    • List one useful skill you learned while working on the high-fi prototype.


  • Project Summary (10%)
    • Clear description of the problem?
    • Clear description of the solution?
    • Clear description of the approach?
  • Instruction (20%)
    • Screenshots are added?
    • Is the instruction clear and easy-to-follow?
    • Screenshots capture representative features of the prototype?
  • Prototype (40%)
    • The prototype is complete in that it supports an end-to-end scenario?
    • Heuristic evaluation results: how usable is it?
  • Implementation Notes (15%)
    • Prototype URL is accessible and works properly?
    • Repository URL is accessible and contains README?
    • Libraries and frameworks used are listed?
  • Individual Reflections (15%) -- graded individually
    • Individual contribution clearly specified?
    • Difficulty discussion has enough depth and insight?
    • Non-trivial implementation skill added?

How do I submit?

One report per team. Your report should be submitted as a zip file. The instructions should be written in Markdown (please use the .md extension). Submit using KLMS.