Intro to HCI (MSAI)

CS 330: Winter 2021

Intro to HCI (MSAI)

Final Project Components

This page contains a list of potential interaction components you may choose to implement. Please don’t limit yourselves to just the components listed. These examples are only intended to give you a sense of how to scope your interactions, and to get you thinking about other possibilities.

Data Collection Form

You may want to explore ways of easy ways of gathering data from your users. If you go this route, you will need to consider how you would:

  1. Design and implement a REST API endpoint for the data you’re collecting.
  2. Design and implement a web form.
  3. Ensure that you’re supporting data validation, error handling, and appropriate user feedback.

Examples

Tutorials

Data Visualization

Depending on the problem your project aims to solve, it may be appropriate for your website to communicate data to users through a data visualization. For example, you may want to display a line graph that shows how a user’s mood has changed over time using data that the user inputted through a form. Or you may way to display a map that shows the locations of community organizations in a given area. Data visualizations allow you to share information with users in an easy-to-understand format that highlights connects the users might not otherwise notice. Things to consider here:

Examples

Tutorials

(tables, charts, and graphs)

User Profiles

By supporting user profiles, your interface can provide personalized content for each user. Profiles are sometimes utilized to allow users to store information, such as preferences or personal information like address and credit card number. Profiles can also be used to provide different classes of users with access to different features. For example, a website owner may want to add or edit content, but a website customer should not have access to these features. User profiles allow you to personalize your application to most effectively meet the needs of different users. If you go this route, please ensure that the following functionality is supported:

Examples

Tutorials

External Data Integration

Depending on the problem your project aims to solve, it may be appropriate for your website to allow users to interact with content from external providers. For example, you may want to view streams of relevant content that have been posted to sites like Twitter, Instagram, YouTube, etc. Many of these companies provide support for web developers to integrate their content into external websites in user-friendly ways. This would involve:

Interactive Data Filter

Data filters provide a simple way for users to view a subset of a larger data set based on provided criteria. For example, when viewing a list of restaurants in a particular neighborhood, a user might want to filter the list to only view restaurants that are cheap or open right now. Data filters allow users to easily personalize their view of the data by providing access to criteria that they might care about, such as restaurant price or hours. Building a data filter would involve:

Examples

Tutorials

Social Interactions

Web applications that support social interactions between users provide valuable connective and informational experiences that bring people back to their sites again and again. Social interaction can be provided through public comments on website content or private chat interfaces that allow two or more users to share messages. When appropriate, these types of social interactions deeply engage your users and help them build communities around your web application content. Building a social component would involve:

Examples

Tutorials / Libraries

Note: You don’t have to use an existing widget or library for implementing commenting or chat! You can write commenting functionality in HTML and JavaScript relatively easily, and will then have full control over the design and interactions. However, these libraries and widgets may be helpful depending on your design.

Gamification / Rewards

Rewards can be a way to encourage users to interact on your system in particular ways. In web and mobile applications, rewards are often given in the form of points and badges which are given out in response to specific user actions of behaviors. Since points and badges are elements that have been adopted from video games, including these types of rewards in an application is often called “gamification”. However, rewards can take other forms as well; users could be rewarded with money or coupons, or could even set their own goals. For example, a user could decide that if she exercises every day this week, she will reward herself by going out to dinner. Building a gamification / rewards component would involve:

Examples

Tutorials / Libraries

For tutorials on implementing rewards / gamification, see:

Custom Calendar

A custom calendar could provide a way for users to visualize temporal data in an interesting way, or to communicate upcoming events in a community. Your custom calendar could adapt either how events are created, or the way in which they are displayed to users. Building a custom calendar would involve:

Examples

Tutorials

For tutorials on implementing custom calendars, see: