~Project Description~
Gerrymandering poses a threat to our democracy; it has the potential to make voting obsolete. Representatives manipulate district lines to control the voting outcome using two popular strategies; packing and cracking. Packing involves grouping like-minded individuals into one district as a way to keep them "contained". Cracking is used to split like-minded individuals up in order to dilute their votes, thus making them ineffective.
Our proposed solution is to create an unbiased, user friendly algorithm by utilizing census data. The goal is to make voting districts that are compact, preventing the dilution or concentration of specific demographics. Different social and economic communities will be considered, ensuring that their voices are represented. We plan to make our algorithm accessible and easy to use by implementing a GUI that will provide a visual representation of our proposed voting districts.
The initial concept for this project was provided by our sponsor, in the form of a Capstone project proposal.
To visit the initial capstone project proposal, click Here
~Project Overview~
Requirements
District Drawing Algorithm
A critical component of FairyMander lies in its ability to fairly draw voting districts, necessitating the development of an algorithm that, when given a state, can fairly draw voting district lines. To ensure the quality of this algorithm, research, expert opinion, and varying factors between states will be used to develop the most fair redistricting policy possible. It is anticipated that this will be the most significant component of the project in terms of development time, as it requires a great deal of thoughtful analysis to create and implement in a way that is fair and applicable to all 50 states.
Before and After Comparison For an Individual State
To illustrate the capabilities of FairyMander, a user will be able to compare a state's voting district lines before and after our algorithm is applied to it. This will provide both a visual aid for the aforementioned algorithm and a method of communicating how fair districts can be drawn to the user.
Interactive U.S. Map
As a comprehensive display of what FairyMander can do, an interactive map will be used to enable users to select a particular state and observe how the algorithm applies to said state. This will not only allow users to easily find state(s) of interest, but will also display the effectiveness and widespread application of the redistricting algorithm.
Solution
Our envisioned capstone solution is to create an algorithm that redraws the voting districts in states with major gerrymandering. This algorithm needs to be fair and unbiased; to achieve this we will utilize census data, geographic information systems, and adhere to specific criteria. One of the first criteria that needs to be satisfied is compactness. Compactness ensures that the algorithm avoids drawing districts as sprawling shapes that would dilute or concentrate specific demographics. The districts must also be contiguous, meaning that all parts of the district must be in contact with each other; this will prevent the splitting of a district. The next thing that the algorithm is looking for are communities of interest; districts should consider underrepresented communities in respect to race, ethnicity, origin, etc. The community of interest provides an idea of what that population is like. Our algorithm will ensure an equal population within each district and will respect existing political boundaries. There are lines already made, the algorithm is just moving the lines, not moving districts completely.
~Technology~
Front-end
The main element of our project will be an interactive website that allows users to view different district maps of various states. In order to do this, we will be implementing HTML/CSS/Javascript to create a cohesive experience that is user-friendly and intuitive.
Back-end
Python will be the main computational power our algorithm will run through. Due to the nature of the language, this will allow us to create the most human-readable code that can be accessed by most anyone who wants to inspect it.
An SQL database will store the information generated by our Python algorithm. Since Census data only comes around once every 10 years, the database will hold the results of our redistricting algorithm until new Census data comes out.
As a bridge between our SQL database and the website to keep information dynamic. PHP will allow us to grab information from our database and present it to users of our website.
Other
Github/Git for Version control
United States Census Bureau API created by the United States government allowing for access to the most recent census data. Available here, this API allows us to implement real-world data into our algorithm and accounts for the demographical information of all 50 states!
As a comprehensive display of what FairyMander can do, an interactive map will be used to enable users to select a particular state and observe how the algorithm applies to said state. This will not only allow users to easily find state(s) of interest, but will also display the effectiveness and widespread application of the redistricting algorithm.