Inspiration

For years, the United States has neglected to address the racial disparity and social injustice in our nation. Americans have fought for equal rights among all, yet racial profiling and gender gaps still exist. With the recent increase in civil rights movements due to the lack of change, it is important, now more than ever, that each person be given a chance to speak up and voice their discontent. RallyConnect is a platform that we hope will help future generations, and our own, inspire change across the country.

RallyConnect can be used to create protests for any issues and it is also unique in the sense that there are currently no major active protest finding websites available to the public. Organizing protests through word of mouth or social media can become tedious, hence the growing need of a better and more effective method, which RallyConnect aims to provide.

What it does

RallyConnect is an online service that allows people to create and join peaceful protests, rallies, and marches throughout the country. Once your account is created by providing an email, username, and password, you are able to create and join these rallies. You may create a new rally by providing a location or join a rally by finding a location near you, and clicking the join button. The number of people participating in a certain rally will be shown to the side of each available event. When you click on a particular event/rally, you are also able to see the location at which it is located via an embedded Google Maps API. You are able to update and delete existing rallies for any reason. You are also able to edit your own account on the website. Part of this account editing process is the ability to verify an account which allows your created rallies to show up first in the event list. Lastly, there is information about getting involved in your community and helping enact change.

How we built it

First, we had to deal with the user interface, the forms, and all the databases/storage. Basically all the backend work. We used Flask, a Python web framework, for the back end. We were able to make Registration, Login, Update Account, and Post forms to allow the user to input information. We then made User classes to deal with user information, any posts the user creates, and authentication. To go along with the users, we had to make SQL databases to securely store all user information. The last thing to configure was the route management. We made various different functions that corresponded with different actions and links on the website. With all of this basically finished, we moved on to the front end portion. The front end was a bit simpler but was also a lot more code to write. We used HTML, CSS, Javascript, and Python logic from Flask to create the front end. We went page by page working on every individual component. The home page had a lot of different aspects so it took some time to style and format them all. The find and create rally pages, the update account page, and the login/register pages took a lot of Python to work properly but in the end we were able to get them to work. Working on the project was a great experience and all of us hope to be able to work on something like this again.

Challenges we ran into

The Google Maps API was extremely frustrating at times. The query we had to use to get the map information was quite unintuitive and it took us a great deal of time just to figure out how to properly make the API request. But eventually, we were able to figure out a way using JavaScript strings to slice up the address passed through the creation form and pass it into the API request URL. By doing this, we were able to have a map showing the location of the rally every time you click on a certain protest. We also had a lot of trouble with getting the Flask forms and users to work properly. We had to deal with a database that saved user information and also saved every protest as it was getting made. This was extremely annoying at times because we had to deal with what a logged in user was able to see and what they weren't. But eventually, after watching some tutorials and reading some documentation, we were at last able to get all the back-end Flask code working properly. This project took a great deal of grinding and pushing for continuous hours, but we are very proud of how it turned out.

Accomplishments that we're proud of

Keeping in mind the ambitious goals we had when we started, quite honestly, we’re just proud that we were able to have a functional product in the end!

What we learned

On the technical side we learned a lot about how the backend works, particularly Flask. Although most of us had been introduced to Flask already and had some basic idea of how it worked, none of us had really worked with it to the extent for which it was necessary for RallyConnect. We learned a lot about things like queries, database operations, models, encryption, and more. We also learned about how the back end interacts with the front end in an elegant way, allowing programmers much more flexibility and room for improvement in the future. We also learned how to use the resources available to us more efficiently and to a greater degree, particularly the internet and websites like StackOverflow and W3Schools. This is very important when it comes to programming because when you are actually in the field, it is very critical that you ask for help when necessary. In addition, we learned what it really takes to build a cohesive and functional website. When we visit websites everyday, I guess we don’t really understand how much work goes into creating just one of them, but after our experience at HackTJ, I think we now have a much greater idea of how much knowledge is necessary and how much effort must be put in to build a fully working website.

What's next for RallyConnect

RallyConnect is by no means a finished product, and can be further improved upon. Some additional features that could be added to the site include a search bar to find rallies easier, a mechanism that allows users to sort rallies by category (time, location, causes, etc.), and statistics for each profile (rallies attended, rallies organized, hours of participation). Our application can be easily used in the future and isn't specific to our world today. Our world isn't perfect, and there will always be something that needs to be changed in our society. It’s important for people to voice their opinions and connect with others to advocate for causes. Though our inspiration was drawn from the social movements occurring today, we hope that RallyConnect is something that can be used for years to come.

Share this project:

Updates