People all across America have responded to the Covid-19 pandemic with an outpouring of support for their neighbors. From providing childcare to parents working in healthcare and other essential businesses, to delivering food to quarantined senior citizens, to creating and distributing PPE for first responders, local communities are pulling together and helping each other.
One example is Oakland University in Southeast Michigan. OU has teamed up with a number of local charitable organizations to assemble and deliver food packages to quarantined families in nearby Pontiac. Supplies are available, but unfortunately, they need more volunteers to make everything happen.
This is becoming an all too common problem across the U.S. Many different groups are stepping up to provide support, but they don’t have enough volunteers they can call on for help.
The problem doesn’t end there, though. Many individuals want to volunteer their time and energy, but it’s often difficult for them to find information about how they can actually help.
Volunteer Here is designed to solve both of these problems at the same time. It is an easy-to-use, all-in-one online platform which connects caring people with worthy causes.
What it does
Volunteer Here is the all-in-one volunteer event platform for both the event organizers and the volunteers.
For organizers, it provides a platform on which they can publicize their events, in order to gain community support in the form of donations of time and money. It allows for the collection of volunteer information and provides a single platform for communicating with volunteers.
For volunteers, Volunteer Here is an aggregator of the events and organizations in nearby communities that need helpers. This allows volunteers to find any organization in their local area that they want to support, rather than volunteers just working with the few organizations that they already know about. Volunteer Here also integrates with the volunteers’ Google Calendars, and streamlines the search by automatically removing volunteer events that conflict with already-scheduled items. Also, once volunteers sign up for events, those events are automatically saved to their Google Calendars.
How we built it
To build Volunteer Here, we used React web app with Material UI for an easy-to-build, and more importantly easy-to-navigate front end that is designed to be responsive across any device a user may try connecting to. This is key for volunteer organizations that may be operating in the wake of a natural disaster such that access to a computer with an internet connection may not be feasible. By focusing our efforts on compatibility with all types of devices via the web app delivery platform, and usability on all screen sizes, Volunteer Here is designed to connect volunteers and organizations anywhere, anytime, so long as you have a wireless, cellular, or satellite internet connection.
For the back end, Firebase was the platform of choice for authentication, file storage, database connectivity, and hosting. This means that Volunteer Here has all the benefits of Google's robust infrastructure to guarantee up time and security, while still keeping the whole web app light weight enough that a slow internet connection or limited processing power should not have major impacts on performance.
Because there is a lot of data crunching to be done when trying to filter all of the different events at different areas that meet different parameters, we used Firestore functions as the backbone of our connectivity framework to bring the users and all of the different types of data together quickly and efficiently. The functions mean that not only are the heavy computations are not handled by the user's device, but the app only loads the information just in time so users are not bogged down by loading data from parts of the app that they don't want to use.
Overall, all of these tools allow us to make a solution that is highly accessible and lightweight, without sacrificing robustness and feature set.
Challenges we ran into
Because the entire hack was centered around data management, one of the largest issues that we had was managing who was working on what without either stepping on the other person's toes or getting bottle-necked behind one task. While we typically try and split up front end and back end work to specialize who works on what during the project, there was not a clear difference at times between where the front end ended, and the back end began. For example, filtering by radius occurred on the back end because it was so computationally intensive (even after we connected Zipwise to streamline the distance calculations), but category filtering happened on the front end because it was lighter weight, so front end processing of categories sped up the loading times. Overall, tight version control and clear communication were key to keeping things running smoothly.
From a technical perspective, not only was the scope of the project in general difficult (so... many... services... to... connect...), but the synchronicity of the data was key. Everything needed to be designed with the assumption that there are multiple people accessing everything all at once, and we need to make sure that all of our back end functions keep the same database picture in mind for all of the different users. The key to solving this was using references instead of embedding the information in objects, so if one object changed it only impacted that object from a write prospective, but all of the events have the most up to date data for each read of the database.
Accomplishments that we're proud of
Overall, we got pretty much all of the main features we wanted to entirely fleshed out. All of the following features are fully implemented for anyone to use:
- Profile Editing
- Getting Upcoming Events
- Filtering Upcoming Events
- Viewing My Events (both past and present)
- Registering for events
- Un-registering from events
- Creating organizations
- Editing organization
- Creating Events
- Viewing Volunteers as an organization
- Authorizing Google Calendar
- Creating Google Calendar Events on Registration
All of the above features are free to try at https://volunteerhere.online!
What's next for Volunteer Here
As a concept, Volunteer Here has tremendous potential to become a global network. In the future, we can add much more functionality, such as:
- Social sharing buttons to help organizations spread the word to people off-platform
- Newsletter sharing options to keep long-term volunteers up to date
- Donation button for monetary donations
- Features for template press releases, and template fundraising emails
- A toolkit for hosting collection drives of physical goods
- AI and machine learning prediction tools to analyze volunteers’ past involvement and recommend other related causes that they might be interested in
- A gamification feature with virtual badges to share on social media sites