Project 2 - Don't Sleep in the Subway

Group membership due 2/22 at 8:59 pm Chicago time
Application due 3/12 at 8:59 pm Chicago time
Documentation due 3/14 at 8:59 pm Chicago time



Project 2 can be either an individual project or a 2-person group project. The project will give people more practice with writing a web-based application that visualizes the data in multiple ways using R and Shiny and leaflet.

This project will focus on using R to expand on the visualizations in Project 1 to add in a geographic component, so we can see how the location of the stations in the city may affect what we were seeing in Project 1.

The original data is available from the same location as in Project 1, though the City of Chicago may have added more 2021 data by this point, so be sure to download the latest version. For this project we will be using the data from all of the L stops not just the 3 from Project 1.

The Chicago Data Portal also has a file on CTA L stations including their latitude and longitude:
https://data.cityofchicago.org/Transportation/CTA-System-Information-List-of-L-Stops/8pix-ypme
as a 48KB file called CTA_-_System_Information_-_List_of__L__Stops.csv

As usual I would suggest first taking a look at the raw data file in a text editor to get an idea what it contains, and then try out different types of manipulations and visualizations in either R-Studio or Jupyter to work out what you are going to need to do to integrate this data with your data on L ridership.

For this project you can also use plotly for your charts, but be aware that adding more controls is not always a good thing and can be a complexity trap for your users. You should use leaflet for your mapping. If you use another library without permission you will lose points.

Again, you will be writing your code to be served from
shinyapps.io and this time it should run full screen (i.e. 2x as wide as Project 1) as a touch screen application through google chrome on the classroom wall with no scrolling.

Be sure to make a copy of your Project 1 code before you make any changes, upload it to a new shiny location, and upload it to a new GitHub location so you are not writing over any of your work from Project 1.

Some potential gotchas:
    - The main information we need from the System Information file is the latitude and longitude data and both files do have an ID field in common.
    - CTA stations do open / close / combine over time and you will find that a handful of stations have closed over the years and are not listed in the latest set of lat/lon locations. These stations (Randolph/Wabash, Madison/Wabash, Washington/State, Homan) do however have Wikipedia pages that give their latitude and longitude as well as other useful information about the stations.




For 50% you need to:


For an additional 30% you need to also


For an additional 20% you need to also

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, fast updates, and that they effectively reveal the truth about the data to the user.  The application should load within 30 seconds, and definitively not time out.

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 three due dates for the project.

The first date is to tell andy that you want to be in a 2 person group for the project.

Then the source code and application are due.

For this project you should host your solution using shinyapps.io. For Project 3 we may move to a local server.

Your code should be turned in and made available on GitHub 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.

Many of the routines you write for this project will be used again and expanded upon in the upcoming projects - e.g. all of the projects will need graphs, so it is a good idea to write your code in a way that it is reusable so you can modify it rather than totally rewriting it later.

Chrome's Developer Tools allow you to emulate screens of different sizes (view / developer / developer tools / settings / devices).

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


The second deadline is for the documentation.

You should create a public web page with multiple sections (visible to anyone for at least the duration of the course) that describes your work on the project. You can host your web page at UIC (http://people.uic.edu), GitHub, or the provider of your choice, as long as it remains publicly available to all. You can use any publicly available templates as long as you cite them, or create your own.

Note that the documentation requirements are per project, not per person. The documentation requirements are the same for a 2 person project as a 1 person project.

This page should have several sections including:

  • link to your visualization solution on shinyapps.io
  • 1+ page worth of text of an introduction and a description of how to use your application and the things you can do with it. This should be written for someone who knows nothing about this course or this assignment.
  • 1+ page worth of text on the data you used, including where you got it, what manipulations you did to it. This should be detailed enough to allow any reasonably computer literate person to reproduce what you did
  • link to your project on GitHub giving access to your well commented source code, any necessary data files, and any instructions necessary to run it. These instructions should start from the assumption that the reader has a web browser on their computer and tells the user everything else he/she needs to know and do to get it running using R-studio, including installing correct versions of all the required software.
  • 1+ page worth of text on what interesting things you found about the data using your application with a focus on station location.
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 in the classroom, 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 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 p2.<your_last_name>.<your_first_name>.jpg and be roughly 1920 pixels wide

Once you have your web page done, send the URL to Andy 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.

See the course notes for week 10 for more details on the presentations.


#
Student Name(s)
GitHub
Shiny
Web Page
Video
Representative Image
1
Kodithyala &
Mullenkuzhiyil Sunny
link link link link
2
Martin &
Jakvani
link link link link
3
Genova &
Kao
link link link link
4
Saxena &
Awan
link link link link
5
Omar &
Magnadia
link link link link
6
Elliot &
Arica
link
link link link
7
Zeng &
Qi
link link link link
8
Herrera &
Fernandez Lezama
link link link link
9
Chintakunta &
Jogi
link link link link
10
Sivaraman &
Ranganathan
link link link link
11
Parovyi &
Yelyubayeva
link link link link
13
Handowo
link link link link
14
Hussain
link link link link
15
Kmita
link link link link
16
Kushwah
link link link link
17
Lau
link link link link
18
Mehta
link link link link
19
Nath
link link link link
20
Nunez
link link link link
22
Patel
link link link link
#
Student Name(s)
GitHub
Shiny
Web Page
Video
Representative Image



last revision 3/14/2022 - added in project links
3/9/2022 - updated project groups
2/24/2022 - added more info on closed CTA stations
2/23/2022 - added more groups
2/18/2022 - clarified documentation requirements are the same for individual projects and group projects
2/16/2022 - more clear what 'full screen' on the classroom wall means