Project Assignment 2

Overview

For the first project assignment, you thought about some rough content for your app and how the user would produce some sort of visualization with it. For this assignment, we will take the next step and think about how we will generate that output on the server side. For this, we need to think concretely about what kind of setup or prework we need to do in the app.R file. Then we need to think about reactivity and how user input will change the output rendered by the app. We also want to think about any helper functions and externally sourced code that we want to include (although this is not imperative in every case).

Step 1: What packages you will need for your app?

Starting with shiny you will need to load packages in the app.R. Likely you will also include ggplot2. What other packages are you going to need? Will you need dplyr to wrangle some data? readr to read in a .csv file? You may find you need other packages as you go along, but list the ones you know about now.

Step 2: How will you wrangle or load data?

What indicators, countries, regions, etc. will the user get to select and how will you wrangle the data so that it is available to them? How will you get your data into the app? Will you wrangle it ahead of time and store it in a .csv file? Or will your app include an API call? If you have an API call, how will you keep it from overwhelming the resources of your server (for example, Shiny.io only allows 1GB of RAM for the free version of its hosting service)?

Step 3: What kinds of lists will you need?

What kinds of lists will you need for your dropdown menus or other input? How will you filter(), select() and pull() from your data frame to create these lists?

Step 4: What is the rough structure of your ui?

What is the rough structure of your ui? For example, how many columns will be occupied by user input fields versus how many columns will be occupied by your visualization? And, crucially, what input functions will you include?

Step 5: What is the rough structure for your server?

What are the reactive functions of your server? Will you have just one reactive function for your plot call? Or will you need multiple reactive functions in order to coordinate different inputs, like dropdown menus that select a country case and a slider that selects a range of years?

Step 6: How will you call your data for your visualization?

What will be the basic variables that you will call in aes()? How specifically do you anticipate grabbing the data in a reactive context?