Make voting great again!
Tell Me More

"Nobody will ever deprive the American people of the right to vote except the American people themselves and the only way they could do this is by not voting" - FDR

Media Bias

Many sources for campaign news can be incredibly biased, especially when a candidate’s campaign is being funded by the news organization.

Voter Population

Uninformed voters could be miscasting their vote to a candidate that doesn't align with their views.

Turnout

Low voter turnout has been common in many past elections when compared with other countries, specifically in the younger generations.

Learn more about relevant political issues and see which candidates align with your views the most.

More Info

Political Issues

Learn more and rate political issues

Political Profile

Learn more about candidates' views

Submit Issues

Submit content that you want others to learn more about

Download

Available for Android.

Developers

See our Github Repository for the latest development source.
You can also grab our source code for the latest release from the download section.

Information related to the layout of your directory structure, how to install, build, and test the project can be found in the project's README.md.

Miscellaneous Information:

- Automated tests are run on every push to the repo with results mailed to checkyourbias@u.washington.edu

- Issues are tacked through Github's issue tracker

- New releases can be made or examined using Github's release feature

- Check out our development blog

Design Patterns

One of the major design patterns we decided to follow as a team was using the Facade pattern with Firebase. The Facade pattern allows us to make Firebase more readable by including Typescript classes which can be used with the frontend code. For example, we have our user class which provides a simplified and easier to use/understand interface than connecting to Firebase alone and using the data as a JSON object. Other examples can be found in our common folder in our source code.

A second major design pattern that we utilized was the Observer pattern. This pattern occurs when an object, referred to as the subject, keeps a list of other objects (known as observers) that are called when a specific event occurs within the subject. Using Javascript and React, this occurs in almost every module. A great example of this can be found within our crowdsourcing code. In this piece of code, we pass handleCandidateMap and handleContent, which are functions, to a form component. These are then called when a candidate has been updated, which can be found here. This lets the observer (CrowdsourcingSubmitContentComponent) know when a change has occurred in the subject (CrowdsourcingQuoteComponent or CrowdsourcingGeneralComponent).

Meet the Team

Sonja Khan

Project Manager

Ryan Drapeau

Full Stack Engineer

Aaron Nech

Front End Engineer

Roee Avnon

Front End Engineer

Geoffrey Liu

Front End Engineer

Nick Huynh

Back End Engineer

Todd Maegerle

Back End Engineer

Riley Wilk

Back End Engineer

Bug Reports

A good bug report is

Reproducible: If the developers can't see it or conclusively prove that it exists, they will probably stamp it "WORKSFORME" or "INVALID", and move on to the next bug. Provide step-by-step instructions for reproducing the bug, and we'll be able to find and destroy it.

Specific: Try and figure out exactly what causes the crash. If you find an email that crashes Check Your Bias, good. If you find what parts of the message make things go wrong, even better.

Unique: Before you report a bug, try to make sure it hasn't been reported before. If you have new information about an existing bug, please post a comment on the first bug.

Current: Before filing a bug, make sure you've installed the latest version of the program. That will minimize the chance of reporting a bug that has already been fixed.

Report a bug