Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
961b69e
file setup
rwickyvd Mar 10, 2021
bd4a8cf
csv files
rwickyvd Mar 10, 2021
81a51e9
csv files
rwickyvd Mar 10, 2021
5156779
scatters for military + social (line pending)
MollyWirtz Mar 10, 2021
9b42274
added some css styling
Mar 11, 2021
4ae3f1a
bar graph
MollyWirtz Mar 12, 2021
f444c42
added bar chart just need to fix labels
Mar 12, 2021
cb42e84
added axes labels
Mar 12, 2021
6c66062
comment cleanup
Mar 12, 2021
1cdbd51
added some labelz
Mar 12, 2021
a28e844
change to unique variable names
MollyWirtz Mar 12, 2021
046e96b
hover interaction
MollyWirtz Mar 12, 2021
f7cf530
add text
MollyWirtz Mar 13, 2021
995f36c
added labels
Mar 13, 2021
c5e2991
hover label isnt working
Mar 13, 2021
18b9f3b
got labels working
Mar 13, 2021
a0918ae
merge in danya
MollyWirtz Mar 13, 2021
ded4852
more text
MollyWirtz Mar 14, 2021
99524ae
Merge pull request #1 from romanwicky/molly
MollyWirtz Mar 14, 2021
b5ddbc8
Update README.md
MollyWirtz Mar 14, 2021
cacbf21
Update README.md
MollyWirtz Mar 14, 2021
9b8f1bc
Update README.md
MollyWirtz Mar 14, 2021
41061ad
working dark/light toggle
MollyWirtz Mar 14, 2021
508fe86
update
MollyWirtz Mar 15, 2021
41ea824
Merge pull request #2 from romanwicky/light/dark
MollyWirtz Mar 15, 2021
0502aec
Update README.md
MollyWirtz Mar 15, 2021
27a648d
Update README.md
MollyWirtz Mar 15, 2021
f6556ed
social updates
MollyWirtz Mar 15, 2021
c6f50eb
Merge branch 'main' of https://github.com/romanwicky/final into main
MollyWirtz Mar 15, 2021
fa4df21
add images to readme
MollyWirtz Mar 15, 2021
4673f1f
Update README.md
MollyWirtz Mar 15, 2021
2f49edd
Update README.md
rwickyvd Mar 15, 2021
542985d
change csv to json
MollyWirtz Mar 15, 2021
e8ae3a1
added text
Mar 15, 2021
925426b
Add files via upload
rwickyvd Mar 15, 2021
5591895
Update backend.js
rwickyvd Mar 15, 2021
57cf754
merge conflict
Mar 15, 2021
d424b80
Update index.html
rwickyvd Mar 15, 2021
c00ae07
merge conflict
Mar 15, 2021
c9e1c10
Update index.html
rwickyvd Mar 15, 2021
c177da4
Update backend.js
rwickyvd Mar 15, 2021
4c6c021
Update index.html
rwickyvd Mar 15, 2021
8b709a0
Update backend.js
rwickyvd Mar 15, 2021
87628d5
Update index.html
rwickyvd Mar 15, 2021
a3507d6
Update index.html
rwickyvd Mar 15, 2021
f1d0279
Add files via upload
rwickyvd Mar 15, 2021
3105fa1
Update backend.js
rwickyvd Mar 15, 2021
7838522
save
MollyWirtz Mar 15, 2021
a4c8faf
Merge branch 'main' of https://github.com/romanwicky/final into main
MollyWirtz Mar 15, 2021
77843f9
center vises
MollyWirtz Mar 15, 2021
eb04f07
button styles
MollyWirtz Mar 15, 2021
498210c
style
rwickyvd Mar 15, 2021
d4085fa
style
rwickyvd Mar 15, 2021
4f42c54
style
rwickyvd Mar 15, 2021
7c22d29
Update README.md
MollyWirtz Mar 16, 2021
aa2e1ca
add social text, standardize spacing
MollyWirtz Mar 17, 2021
4985f71
typo in index.html
rwickyvd Mar 17, 2021
66d847c
fixed errors in stylesheet
rwickyvd Mar 17, 2021
15c7508
typo in index.html
rwickyvd Mar 17, 2021
48afcc4
Update README.md
Mar 17, 2021
b8d9bc3
Update README.md
Mar 17, 2021
115817d
added process book
Mar 17, 2021
7885222
readme
rwickyvd Mar 17, 2021
a1bb4cf
Update README.md
rwickyvd Mar 17, 2021
af53622
final
rwickyvd Mar 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/final.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added CS480x Final Project Process Book.pdf
Binary file not shown.
137 changes: 53 additions & 84 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,115 +1,84 @@
Final Project - Interactive Data Visualization
===
# Final Project - Interactive Data Visualization
#### Danya Baron, Roman Wicky van Doyer, Molly Wirtz

The key learning experience of this course is the final project.
You will design a web site and interactive visualizations that answer questions you have or provide an exploratory interface to some topic of your own choosing.
You will acquire the data, design your visualizations, implement them, and critically evaluate the results.

The path to a good visualization is going to involve mistakes and wrong turns.
It is therefore important to recognize that mistakes are valuable in finding the path to a solution, to broadly explore the design space, and to iterate designs to improve possible solutions.
To help you explore the design space, we will hold events such as feedback sessions in which you propose your idea and initial designs and receive feedback from the class and staff.
### Project Website

Proposal
---
https://romanwicky.github.io/final/index.html

Submit project proposals using [this Google Form](https://docs.google.com/forms/d/e/1FAIpQLSc9DFlcClPArC1RKNFsXzfJfauZA57ksU85kT0hX2OEEDlxqw/viewform?usp=sf_link).
You may submit more than one proposal.
1-3 folks per team.
### Screencast Video

Final Project Materials
---
For your final project you must hand in the following items.
https://www.youtube.com/watch?v=L1SBH-aUo68

### Process Book
Background
---

An important part of your project is your process book. Your process book details your steps in developing your solution, including the alternative designs you tried, and the insights you got. Develop your process book out of the project proposal. Equally important to your final results is how you got there! Your process book is the place you describe and document the space of possibilities you explored at each step of your project. It is not, however, a journal or lab notebook that describes every detail - you should think carefully about the important decisions you made and insights you gained and present your reasoning in a concise way.
### Objective
Given the unprecedented economic upheaval of the past year brought on by the pandemic, our team wanted to choose a project focusing on the financial spending of the government: specifically the difference between how the U.S. spends money on military endeavors versus social programs.

We strongly advise you to include many figures in your process book, including photos of your sketches of potential designs, screen shots from different visualization tools you explored, inspirations of visualizations you found online, etc. Several images illustrating changes in your design or focus over time will be far more informative than text describing those changes. Instead, use text to describe the rationale behind the evolution of your project.
### Data
We sifted through multiple databases and other data sources to find the information necessary for our project. We changed courses a few times based on much data was available, how specific it was, and the points we were trying to convey to our reader. Although not all of the following data sources are represented in our final version, all of them were helpful in our research and understanding of this topic.

Your process book should include the following topics. Depending on your project type the amount of discussion you devote to each of them will vary:

- Overview and Motivation: Provide an overview of the project goals and the motivation for it. Consider that this will be read by people who did not see your project proposal.
- Related Work: Anything that inspired you, such as a paper, a web site, visualizations we discussed in class, etc.
- Questions: What questions are you trying to answer? How did these questions evolve over the course of the project? What new questions did you consider in the course of your analysis?
- Data: Source, scraping method, cleanup, etc.
- Exploratory Data Analysis: What visualizations did you use to initially look at your data? What insights did you gain? How did these insights inform your design?
- Design Evolution: What are the different visualizations you considered? Justify the design decisions you made using the perceptual and design principles you learned in the course. Did you deviate from your proposal?
- Implementation: Describe the intent and functionality of the interactive visualizations you implemented. Provide clear and well-referenced images showing the key design and interaction elements.
- Evaluation: What did you learn about the data by using your visualizations? How did you answer your questions? How well does your visualization work, and how could you further improve it?
<a href="https://www.sipri.org/databases/milex">SIPRI</a><br>
<a href="https://www.oecd.org/social/expenditure.htm">OECD</a><br>
<a href="https://www.thebalance.com/u-s-military-budget-components-challenges-growth-3306320">The Balance</a><br>
<a href="https://www.usgovernmentrevenue.com/download">US Government Revenue</a><br>

As this will be your only chance to describe your project in detail make sure that your process book is a standalone document that fully describes your results and the final design.
[Here](http://dataviscourse.net/2015/assets/process_books/bansal_cao_hou.pdf) are a [few examples](http://dataviscourse.net/2015/assets/process_books/walsh_trevino_bett.pdf) of process books from a similar course final.
For most of our data we had to employ some about of cleaning. This involving downloading spreadsheets or CSV files, selecting the data we wished to use, and converting into our desired format (JSON).

### Project Website

You will create a public website for your project using GitHub pages or any other web hosting service of your choice.
The web site should contain your interactive visualization, summarize the main results of the project, and tell a story.
Consider your audience (the site should be public public) and keep the level of discussion at the appropriate level.
Your process book and data should be linked from the web site as well.
Also embed your interactive visualization and your screen-cast in your website.
If you are not able to publish your work (e.g., due to confidential data) please let us know in your project proposal.
Visualizations
---
Our project website contains multiple sections. First, we felt it was important to convey our objectives for this project, as well as provide explanations of our visualizations and additional research to our user. This is shown at the top of our page in the form of an introduction.

### Project Screen-Cast
Next we have our section on U.S. military spending, featuring a bar chart. The bar chart shows data on the total military spending from 2003 - 2021 (2021 projected). Important events, such of the start or end of wars, are denoted to give the user an informed idea of global events that impacted spending. To clarify and emphasize the y-values, the cost of each year is displayed under the x-axis when that bar is hovered on.

Each team will create a two minute screen-cast with narration showing a demo of your visualization and/or some slides.
You can use any screencast tool of your choice, such as Camtasia.
Please make sure that the sound quality of your video is good - it may be worthwhile to invest in an external USB microphone.
Upload the video to an online video-platform such as YouTube or Vimeo and embed it into your project web page.
We will show some of the best videos in class.
<img src="./assets/military_bar.png" alt="military bar graph">

We will strictly enforce the two minute time limit for the video, so please make sure you are not running longer.
Use principles of good storytelling and presentations to get your key points across. Focus the majority of your screencast on your main contributions rather than on technical details.
What do you feel is the best part of your project?
What insights did you gain?
What is the single most important thing you would like your audience to take away? Make sure it is front and center rather than at the end.
Our next section focuses on U.S. social spending, and like the military section, also contains a bar graph. The bar chart shows the total spending of the U.S. government on social programs, such as social security, education, and healthcare. Events that significantly impacted Americans financial state, such as the 2008 stock market crash, have been donated above the years they occur, similarly to our other bar graph. This graph also made to be interactive by changing color and showing the cost per year of the bar when hovered on.

Outside Libraries/References
---
<img src="./assets/social_bar.png" alt="social bar graph">

For this project you *do not* have to write everything from scratch.
The next section features a treemap with an accompanying pie chart showing the spread of military spending from the years 2017 to 2019 in comparison to other countries. Users can select a year, and it will update the pie chart and treemap accordingly. These visualizations are important because they give a reference to the amount the US spends compared to several other top-spending countries, putting the data shown in the above bar charts into perspective for the user.

You may *reference* demo programs from books or the web, and *include* popular web libraries like Bootstrap, JQuery, Backbone, React, Meteor, etcetera.
<img src="./assets/treemappie.png" alt="treemap and pie chart">

Please *do not* use libraries on top of d3, however. Libraries like nvd3.js look tempting, but such libraries often have poor defaults and result in poor visualizations.
Instead, draw from the numerous existing d3 examples on the web.
The final section features a line graph of the U.S. military spending by year from 2000 to 2019. This is a variation on the first bar chart, with an animated line emphasizing the climb of military spending over the past two decades. Clicking "Reset" will restart the animation.

If you use outside sources please provide a References section with links at the end of your Readme.
<img src="./assets/animatedline.png" alt="social bar graph">

Resources
Code
---
The "[Data is Plural](https://tinyletter.com/data-is-plural/archive)" weekly letter often contains interesting datasets.
The majority of our code can be found in our backend.js file, which is commented and organized by graph and feature.

Think of something you're interested in, go find data on it! Include data processing as part of your work on this project.
### Libraries
We did not use any additional libraries for this project, apart from d3 and Google Fonts.

Requirements
---

Store the following in your GitHub repository:
### Additional Features
As an additional feature, we have an optional light / dark theme, which users can toggle using the switch in the upper right corner. These themes, which are true to our color palette, allow the user to interact with our site in a unique way, and includes a gentle CSS transition. All parts of this page comply to selected theme, including the d3 elements. Below are examples of this light/dark option.
<img src="./assets/light.png" alt="light theme" style="width: 48%">
<img src="./assets/dark.png" alt="dark theme" style="width: 48%">

- Code - All web site files and libraries assuming they are not too big to include
- Data - Include all the data that you used in your project. If the data is too large for github store it on a cloud storage provider, such as Dropbox or Yousendit.
- Process Book- Your Process Book in PDF format.
- README - The README file must give an overview of what you are handing in: which parts are your code, which parts are libraries, and so on. The README must contain URLs to your project websites and screencast videos. The README must also explain any non-obvious features of your interface.

GitHub Details
Achievements
---
### Design
- Consistently used a color scheme appropriate to the subject matter, as researched with resource 1
<img src="./assets/color.png" alt="color scheme">

- Fork the repo. You now have a copy associated with your username.
- Make changes to index.html to fulfill the project requirements.
- Make sure your "master" branch matches your "gh-pages" branch. See the GitHub Guides referenced above if you need help.
- Edit the README.md with a link to your gh-pages or other external site: for example http://YourUsernameGoesHere.github.io/DataVisFinal/index.html
- To submit, make a [Pull Request](https://help.github.com/articles/using-pull-requests/) on the original repository.

Grading
---
### Technical
- Implemented a light / dark theme option using CSS and a stylized input checkbox located in the top right corner of the page (further detail and images are included in the features section)
- Created interactive bar charts, changing colors of bars and including the amounts on each hover
- Made a treemap to display the scale of how much more the U.S. spends
- Made a Treemap and Pie chart that is updated from a selection dropdown
- Created an animated line graph that resets when "Reset" button is clicked

- Process Book - Are you following a design process that is well documented in your process book?
- Solution - Is your visualization effective in answering your intended questions? Was it designed following visualization principles?
- Implementation - What is the quality of your implementation? Is it appropriately polished, robust, and reliable?
- Presentation - Are your web site and screencast clear, engaging, and effective?
Your individual project score will also be influenced by your peer evaluations.

References
Resources
---

- This final project is adapted from https://www.dataviscourse.net/2020/project/
[1] https://visme.co/blog/how-to-choose-a-color-scheme/ <br>
[2] https://www.w3schools.com/howto/howto_css_switch.asp <br>
[3] https://www.sipri.org/databases/milex<br>
[4] https://www.oecd.org/social/expenditure.htm><br>
[5] https://www.thebalance.com/u-s-military-budget-components-challenges-growth-3306320<br>
[6] https://www.usgovernmentrevenue.com/downloadbr>
Binary file added assets/animatedline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/color.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/military_bar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/social_bar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/treemappie.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading