Project 3 - We've Got the Power

Application due 4/24 at 8:59 pm Chicago time
Documentation due 4/26 at 8:59 pm Chicago time



Project 3 will be an individual project to give people some more practice with writing a web-based application that visualizes data in multiple ways using R and Shiny and ggplot2 and mapview. In this project we will focus on data at the census block and census tract level to look at data at the block, neighborhood, and city level.

This project will focus on using R to visualize data on electrical power usage in Chicago in 2010, and use shiny to give people an interactive interface to create those visualizations. In Project 1 we looked at the US as a whole and at different states to see how they were different in their energy mixes. In Project 2 we looked at individual power plants. Here we are going to look at data on electricity and gas usage by census block in the city of Chicago to see how neighborhoods, types of buildings, age of buildings can affect how much power is used throughout the year. This project can also serve as a model for looking at other kinds of census data related to the Chicago (or other areas of the US).

The original data is available from https://www.kaggle.com/chicago/chicago-energy-usage-2010
and also available at https://data.cityofchicago.org/Environment-Sustainable-Development/Energy-Usage-2010/8yq3-m6wp

The file contains information per census block, conveniently including the Chicago Community area that block belongs to, which will make it easier to create subsets of the dataset. Each census block may have multiple lines where each line is for a different building type or building subtype. For each line we get the electricity usage per month and the gas usage per month, the total population, average number of stories for the buildings and the average age of the buildings, among other things. As with many files of real data there are missing values. There are also summary lines for each Chicago Community Area.

For this assignment you can make changes to the data files before you load them into R, and you very likely should make some changes to shrink the size of the data file. You need to clearly document how you modify the files in your website to the extent that someone following your instructions could recreate your files from the originals. Note that some lines have duplicate census block #s with different types of building in the same census block.


Once you convert the raw data files into the files you plan to use I would again suggest playing with the data in RStudio or Jupyter to try out various manipulations and visualizations before creating the user interface in Shiny.

We will be using mapview for the mapping this time as it works particularly well with census data. You should install the tigris and mapview packages into R.

Again you will be writing your code to run full screen in a web browser at 1920 x 1080 resolution and it should run on all current browsers (Chrome, Safari, Firefox, Explorer, Edge, etc.). The fonts and visualization primitives you create should be work effectively at that scale. The user should never to scroll the window, ever, so you should experiment with different ways to organize the information and controls to find the most effective combinations. Users will be using a mouse / trackpad to interact so make sure your controls are reachable and at an appropriate size.





For 40% you need to:


For an additional 30% you need to the ability to compare two Community Areas


For an additional 30% you need to allow the user to see all of Chicago

Graduate Students need to add:


In all of these case you need to make sure that your visualizations are well constructed with good color and font choices, proper labeling, and that they effectively reveal the truth about the data to the user.

Note that as part of the web page part of the grade you will need to use your interface to show your findings, so make sure that the way your interface displays information is clear.



Turning in the Project

There are two due dates for the project.

The source code and application are due first.

Again you should host your solution using Shinyapps.io. For this project you do not need to have your solution running on Shinyapps.io but it should be able to run locally in RStudio and in a local browser using Shiny.

Your code should be turned in and made available on GitHub ( https://github.com/) in a public repository for the project. You can keep the repository private while doing your development. I would suggest setting up the GitHub project early and regularly pushing code to it as a backup.

It is important to note that 'getting it to work' is just a prerequisite to using the application to find answers to your questions. It is that usage that will give you ideas on how to improve your app to make it easier and more intuitive to find those things. Writing the application at the last minute pretty much guarantees that you will not come up with an intuitive interface.

Before the application due date&time please send an email to andy and abeer with the URL of your GitHub site and your Shinyapps site.


The second deadline is for the documentation which should be part of the web page you created at the beginning of the course.


This page should have several sections including:

all of which should have plenty of screenshots with meaningful captions. Web pages like this can be very helpful later on in helping you build up a portfolio of your work when you start looking for a job so please put some effort into it.


You should also create a 5 minute YouTube video showing the use of your application including narration with decent audio quality. That video should be in a very obvious place on your web page. The easiest way to create the video is to use a screen-capture tool while interacting with your application, though you will most likely find its useful to do some editing afterwards to tighten the video up. If you do decide to use your phone or tablet to make the video, then please shoot the video in landscape rather than portrait orientation. Your video should show the capabilities of your tool through a set of specific examples of interesting things you found in the data.


I will be linking your web page to the course notes so please send andy and the TA a nice jpg image of your visualization for the web along with the link to your website before the deadline. The image should be named p3.<your_last_name>.<your_first_name>.jpg and be roughly 1920 x 1080

Once you have your web page done, send the URL to Andy and the TA before the deadline. We will respond to this email as your 'receipt'.



An important part of creating these kinds of applications is getting feedback and using it to improve your design, and learning to give quality feedback to others.

Normally we would be spending time in class for each person to show off their work and get feedback. This term we will be doing this asynchronously. See the course notes for week 15 for more details.


Baez, Brian
GitHub


Bhatt, Vivek
GitHub

Shiny
Web Video
Chen, Yi-Chun
GitHub

Shiny
Web Video
Davidson, Will
GitHub Web
Video

Ghuneim, Matthew
GitHub Web Video
Gonzales, Joshua Luis
GitHub Web

Ibtasar, Rabia
GitHub Web Video
Johnson, Amal
GitHub Web Video
Khandwala, Herrit
GitHub Web Video
Kohli, Paras
GitHub Web Video
Kolakowski, Pat
GitHub
Web Video
Lee, Ting-Shao
GitHub

Shiny
Web Video
Mach, Khang
GitHub Web Video
Mara, Valo
GitHub Web Video
Mendoza-Avila, Hilda
GitHub Web

Mo, Jiajun
GitHub Web Video
Modi, Hiral Mahesh
GitHub Web

Perez-Serna, Jesus
GitHub Web Video
Raza, Syed
GitHub Web Video
Repta, Jonathon
GitHub Web Video
Reyes, Yazmin
GitHub Web Video
Shumway, David
GitHub Web Video
Suraminitkul, Eakasorn
GitHub Web Video
Tapia, Andres
GitHub Web Video



last revision 4/24/2021 - added in GitHub links
4/22/2021 - removed the requirement for the project to run on shinyapps.io