There are a large number of people who share positive petitions through social media platforms like Facebook, Instagram, and Youtube. We believe that there should be one centralized site for sharing petitions and obtaining proper information on who to contact to make an impact.

What it does

Our project allows users to create an account as a representative or citizen (if representative is chosen they will be asked for verification). Both users are asked for their zip code so we can determine what county they are in and what petitions they should have access to. Civilian users will be able to create petitions and tag a representative on that petition, explore petitions other users in their county have created, and vote "for" or "against" petitions. Representative users will be getting an SMS Twilio message whenever they get tagged for a petition.

How we built it

We used Python, MongoDB, FastAPI, and PyMongo for the backend. For the frontend we used JavaScript, React, TailWindCSS, and Bootstrap.

Challenges we ran into

We ran into a lot of trouble when connecting the fastAPI endpoints to the MongoDB database. The issue was that since we had two users with different data fields, there were a lot of overlap and caused bugs in our code. We fixed this by structuring our methods that were called by our endpoints to be data specific (i.e. create_petition() dealing with petitioner only methods) and by creating one main user class that our Representative class inherited from. The implementation of class inheritance allowed for similar base features per user, but still have separate datapoints.

Accomplishments that we're proud of

We are proud that we were able to make a platform that makes it easier for people, especially minorities, to be involved in the decisions that affect their daily life so much. Furthermore, we are proud that we added majority of the features we originally planned.

What we learned

We learned to carefully plan out our project plan in the beginning to see the general structure of how it will all come together.

What's next for UKnow

We would love to add other positive features that could promote more discussions about petitions by adding support for scheduling events and the ability for tagged representatives to provide petitions with progress and updates.

Built With

Share this project: