Introduction

Shiny is an R package that makes it easy to build interactive web apps straight from R. You can host standalone apps on a webpage or embed them in R Markdown documents or build dashboards. You can also extend your Shiny apps with CSS themes, htmlwidgets, and JavaScript actions.

Some examples of well-polished Shiny apps are available at https://shiny.rstudio.com/gallery/.


RShiny app

For this assignment, your team will develop an RShiny app. You have the freedom to create an app that has any functionality and uses any data set (or maybe does not use a data set at all). There are a few requirements detailed below with regards to the user interface design and server function. The more creativity and time you put into development, the higher the grade your group will earn.

User interface

Requirements

To earn a full score on the user interface you must

  • have at least 3 inputs, with at least 2 of them being different,

  • have at least 2 different outputs,

  • not use the most basic layout,

  • have instructions written within the app on how your app works.

Server

Requirements

To earn a full score on the server function you must

  • have at least one reactive expression with function reactive(),

  • use tidyverse code when applicable,

  • use at least 2 different render functions.

Essential details

Deadline and submission

The deadline to submit Homework 4 is 11:59pm on Monday, April 29. Publish your team’s work on https://www.shinyapps.io/. The account should contain your project team’s name. Upload a text file of the code for your app to Google Classroom along with a link to your published app. Late work will not be accepted except under certain extraordinary circumstances.

Help

  • Post your questions in the #hw4 channel on Slack. If posting on Slack, explain your error in detail or give a reproducible example that generates the same error. Make use of the code snippet option available in Slack.

  • Work through challenges together as a group, but questions are always welcome and encouraged.

  • Visit Scott or I in office hours or make an appointment.
    • Shawn’s office hours: Wednesdays 9:00 - 10:30am & Fridays 1:30 - 3:00pm, C409 Wells Hall
    • Scott’s office hours: Thursdays 11:00 - 12:00pm, C511 Wells Hall

  • Scott or I will not answer any questions within the first 24 hours of this homework being assigned, and we will not answer any questions after 5:00pm on Friday, April 26.

Academic integrity

This is a group assignment. You should not communicate with another group about your app. As a reminder, below is the policy on sharing and using other’s code from outside sources.

Similar reproducible examples (reprex) exist online that will help you answer many of the questions posed on in-class assignments, pre-class assignments, homework assignments, and midterm exams. Use of these resources is allowed unless it is written explicitly on the assignment. You must always cite any code you copy or use as inspiration. Copied code without citation is plagiarism and will result in a 0 for the assignment.

Grading

Topic Points
User interface requirements 35
Server function requirements 35
App organization and clarity 5
App creativity 5
App complexity 5
Code efficiency 5
Code style 5
Evaluation 1 5
Total 2 100

  1. The evaluation grade is based on each team member submitting an evaluation ranking the top 3 apps. A prize will be given to the best Shiny app as determined by rank choice voting.

  2. All group members will receive the same grade except under certain narrow circumstances.