ETC5523: Communicating with Data

Assignment 4: Creating an interactive data product

Author

Michael Lydeamore

Published

19 October 2026

Objectives

Create an interactive data product for a clearly defined user and question. The product will include:

  • a reproducibly prepared dataset;
  • a Shiny app that supports meaningful exploration;
  • an installable and documented R package; and
  • a published pkgdown website.
Important

This is an individual assignment.

Output format

  • An installable R package on GitHub
  • A published documentation website, using pkgdown
  • A recorded screen-and-voice technical walkthrough
  • An AI-use declaration in the repository README

Instructions

In this assessment, you will create an R package containing data, at least one useful data-processing or summary function, and a Shiny app. You will document the package using roxygen2 and publish its documentation using pkgdown.

Important

You must join the GitHub Classroom assignment here: https://classroom50.org/ETC5523-2026/etc5523/assignments/assignment-4/accept. If you cannot find your name in the list of students, please contact the lecturer directly before accepting the assignment.

Choosing data and a purpose

Choose one of the following:

  • a dataset used in the unit materials;
  • a public dataset related to the topic of your Assignment 2 report; or
  • another suitable public dataset.

You are not required to obtain the original data from the article used in Assignment 2 or reproduce that article’s analysis. Clearly identify the source of your chosen data and comply with any licence or attribution requirements.

Define an intended user and a specific question that your app will help that user investigate. The purpose is not to add as many controls or outputs as possible. The interactions should help the intended user explore the data and reach an informed interpretation.

AI-use declaration

Include a short AI-use declaration in your repository README, whether or not you used generative AI while preparing the assignment. The declaration must cover any AI assistance with planning, writing, code, debugging, analysis, figures, styling or documentation.

If you did not use generative AI, write:

Generative AI declaration: I did not use generative AI tools in preparing this assignment.

If you did use generative AI, name the tool or tools and describe the specific tasks for which you used them. For example:

Generative AI declaration: I used ChatGPT to suggest alternatives for validating an empty selection and to help diagnose a package installation error. I checked and revised all generated code and text.

You remain responsible for understanding, checking and revising all submitted work. Do not include private, confidential or restricted material in prompts. The declaration is a submission requirement but does not attract separate marks.

Part A: The R package (11 marks)

The template provided in GitHub Classroom is blank. You will need to set up the relevant structure for a package either manually or using the usethis package. The final repository must have:

  • A README that explains the package’s purpose, data, installation and how to launch the app (1 mark)
  • A licence and a completed DESCRIPTION file, including your name, package name, description and dependencies (1 mark)
  • An R package that can be installed from GitHub and for which devtools::check() reports no errors (2 marks)
  • Reproducible scripts in data-raw that import and prepare the data included in the package (2 marks)
  • A Shiny app inside the inst folder and an exported function that launches it (1 mark)
  • At least one meaningful exported data-processing or summary function, in addition to the app-launching function, that is used by the app or vignette (2 marks)
  • Clear roxygen2 documentation for all exported functions and included data objects (2 marks)

Part B: The Shiny app (11 marks)

Create a Shiny app that helps the intended user investigate the question you have defined. The app must:

  • Clearly identify its intended user and question (1 mark)
  • Use data included in the installed package rather than reading a CSV or other external data file when the app runs (1 mark)
  • Use one or more inputs to change the displayed output in a way that meaningfully supports the question (3 marks)
  • Explain the fields and how to use the available controls (2 marks)
  • Explain how to interpret the outputs and connect them to the app’s question (2 marks)
  • Handle at least one empty, invalid or otherwise weak state with an informative message (1 mark)
  • Use purposeful styling that improves readability beyond the default appearance (1 mark)

Remember, don’t include interactivity for its own sake. It should add something that the intended user could not obtain as effectively from a static display.

Tip

You are free to use whatever Shiny templates you like (such as shinydashboard), or just the default. Note that simply including shinydashboard will not get you full styling marks!

Part C: The pkgdown site (3 marks)

Publish a pkgdown site that makes the package understandable and usable by someone encountering it for the first time. It must have:

  • A working public URL linked from the repository README (1 mark)
  • Working reference pages for the package’s functions and data (1 mark)
  • At least one vignette, visible on the site, that shows how to install the package, launch and use the app, and interpret its outputs (1 mark)

Part D: Recorded technical walkthrough (7 marks)

Record an individual 5–7 minute screen-and-voice walkthrough of your submitted package and app. The recording should be a single continuous take. Show the actual package, code and running app rather than using a separate slide deck.

Upload the recording as a video file with your assignment submission on Moodle.

Your walkthrough must:

  • load the package and launch the app successfully (1 mark);
  • identify the intended user and question, then demonstrate how an input changes an output to help investigate that question (1 mark);
  • trace one input through the relevant reactive code to the displayed output (2 marks);
  • explain either your meaningful exported function or your reproducible data-preparation pipeline (1 mark);
  • demonstrate one empty, invalid or otherwise weak state and explain how the app handles it (1 mark); and
  • interpret one finding from the app and identify one important limitation (1 mark).

The walkthrough should be logically organised, clearly explained and within the time limit.

Maximum grade: 11 + 11 + 3 + 7 = 32 marks