Final project

Due by 6:00 PM on Monday, May 6, 2019


Develop a Shiny app based on any data-related topic. himym


This is up to your group. You may use a dataset from the design contest (the same or a different data set) or select your own. Warning, don’t overthink selecting your dataset. I will request you make a decision on your data set by April 8, 2019 (send me by email). This is the most important step to start with.

Want ideas? Check out these resources.

Design process:

Very similar to design contest, answer the following questions in your design process:

However unlike the design contest, the expectation for this system will be a shiny-enabled app (e.g., could be a shiny app, shinydashboard, flexdashboard with shiny enabled).

You will have three deliverables:

Shiny app

Your app. You can submit it as:

  1. Ideal (but not required): a GitHub repo with the link on the README for the deployed app. Could include a RStudio cloud project too.

  2. Alternative: a RStudio cloud project link (submit to me via email or on your slides).

  3. Worst case: upload a zip folder on canvas where your shiny app can be fully reproduced! (i.e., self-contained folder that includes any data).

You do not need to deploy your app on shinyapps given some great packages may have issues deploying; however, it is highly recommended to deploy to


Prepare a 7-8 minutes presentation to introduce your dataset, scenario, design process, and your system.

Highly recommended hands-on demo for your app. kid

If you used the same data set as the design contest, you can sum up your presentation in 1-2 slides (remind dataset, scenario, and basic design). Then go into a hands-on scenario (e.g., what if scenario) to demonstrate the value of your app.

The presentations will be given on May 6 during our final exam period. Teams will be randomly assigned order in presenting.

Final Report

Prepare a final report to outline your Shiny app and its relevant objective (task).

This will be written in RMarkdown. See any of the document formats (html, doc, even tufte style). You’re welcome to explore Bookdown if you want to be adventurous (not required). You can create either an html-based RMarkdown file that you publish (e.g., or upload on Canvas a pdf document.

The report should have six sections:

  1. Introduction: Domain problem characterization

  2. Data/operation abstraction design

  3. Encoding/Interaction design

  4. Algorithic design

  5. User evaluation

  6. Future work

  7. Appendix (optional)This is for any exploratory work that didn’t make it into your app or process. You can highlight packages you may have tried.

Sections 1-4 align with Munzner’s paper.“A Nested Model for Visualization Design and Validation”

Section 5 is an outline for how you could (hypothetically) evaluate whether youFor this part, be sure to read Mazza’s chapter on evaluating interfaces

Length: Each section can be about 2-5 paragraphs. Figures are always helpful. Maybe a table or two. When in doubt, put things in the appendix to keep the report concise.


The instructor grades the design after your presentation according to the following criteria:

Presentation (10 points):

Reproducibility & Code (10 points):

Shiny App (10 points):

Final Report (10 points):


Here’s a perfect example of a great shiny app (cranwhale) by Joe Cheng.Granted, Joe did create shiny.

It shows how you don’t need the most interactive features - an excellent (narrow) question and task can enable a simple interface, a clear user task, which then enable clear user testing for deploymentBe sure to see the async versions which are optimized for performance.

Bonus Points: Shiny App Awards

Based on class vote, we’ll award extra credit for the team voted: bis

1. Best app (+4 points)

2. Best documented (+2 points):

3. Best scenario design / most practical (+2 points):

4. Human-centered machine learning (+2 points)

5. Most creative (+2 points):