Inspiration
I learned about ranked choice voting many years ago and I was frustrated that there never seemed to be an accessible way of using it in informal contexts. Ranked choice voting presents a solution for people who feel like they have to vote for polarizing candidates and in the long term can eliminate the two party system.
Making ranked choice voting easy to use and understand can change the way we think about fairness in society.
Our project starts this process through community advocacy, such as small quizzes in schools and decision-making in town halls, and it might even be used to pass policies in large cities and even maybe pass bills in Congress.
What it does
It looks similar to your usual voting web application, but with a unique feature; only implementing ranked choice voting and with an explanation of how the winner is decided through a stacked bar chart displaying each option, making it simple to understand.
How we built it
We built it using the Rust Axum library for the backend and Svelte for the front-end. Our aim was to make it as lightweight as possible to accommodate a large number of participants per ballot. This is especially important should Rankbow scale to larger use cases.
Challenges we ran into
Plumbing together the backend and frontend without a framework was a challenge. Multiple issues surrounding JavaScript types made it difficult to get data to properly show on the chart.
Deploying requires a server and assigning unique IDs to every user, and that makes routing complicated.
Accomplishments that we're proud of
Creating a client-server web application with a non-Javascript backend, and not using AI-generated content anywhere in our code.
What we learned
We learnt how to use HTTP requests in Svelte and Rust. On a general level, we learnt how to communicate effectively, design UI/UX in Figma and code its HTML, and develop a use case and unique value proposition for our project.
What's next for Rankbow
We'll probably add more features, like more creative visualizations for the charts (I'm thinking a treemap or a 3D projection of the candidate percentages), and make sure the UI is accessible to all users.
Built With
- axum
- svelte

Log in or sign up for Devpost to join the conversation.