We set out to produce an app that empowers non-profits and other limited-budget organizations to find interested volunteers to participate in local events. wHelp was developed to match users with real-world events, opportunities for users volunteering their time and services to be part of making the world a better place by effecting change at the local level. The app provides data layers to help users make more informed decisions about what will have the most impact in their communities.
Images pulled from the internet of #trashtag initiatives world-wide.
wHelp is a signal-boosting platform for organizers to generate a larger awareness of upcoming volunteer opportunities to draw in participants. For example, in recent months the #trashtag campaign has gone viral, inspiring individuals world-wide to take first-hand ownership and clean up parks and beaches in dire need. While community clean-up is certainly a deserving cause, we also envision wHelp being used for the following types of grass-roots organizing efforts:
- Blood Drives
- Food Drives
- Pet Adoption Days
- Clothing Donation Drives
- Disaster Relief Efforts
- Community Solidarity Events
- Holiday Celebrations
- Vigils or Funerals
wHelp is also a platform that is designed to maximize user awareness of events nearby that they would be inclined to participate in. As public trust in the govermnment's ability to take action concerning environmental preservation and disaster relief is eroding (see Flint, MI), wHelp aims to amplify individual initiatives for the public good into coordinated efforts for addressing local issues.
There is currently no dominant app on the marketplace providing community-action-oriented event coordinating like wHelp. We plan to beat other similar apps in development, notably Point, to market.
What it does
Users download wHelp and provide a list of interests that describe the types of issues they want to help address. Organizers raise a hand, broadcasting an upcoming event description with the desired number of participants (if applicable) with keywords through the app. Users can either be explicilty invited to events, or swipe through a pool of suggested nearby events cultivated to align with user interests via event keywords. Once a suitable event has been found, the user lends a hand, by indicating they are going to participate in the posted event. Users can also view geographic display of their surrounding area as well as other informative data layers showing where events are being organized within their communities.
Open Philly's Litter Index Dataset map overlay implemented via Leaflet, illustrates how events created by organizers correspond with the real-world issues.
wHelp leverages publicly available datasets such as the Open Philly Litter Index, allowing organizers to identify the areas most in need of community action. Additionally, the top-down map view allows users to better understand the severity/immediacy of each event they are considering being a part of. Future implementations of the app will include multiple data layers to compare and contrast the needs of the community with their planned events as an organizer or reported interests.
Depending on the event type, users can verify participation either by scanning a QR code, or a room code provided by the organizer on-site. Users are encouraged to participate in events by unlocking rewards for their profiles. Organizations will be encouraged to participate/sponsor as part of corporate social responsibility initiatives.
How we built it
Some of the development tools used in building wHelp.
JS and Leaflet (GIS libary for creating maps and visualizing geogrphic data) were the primary components of front-end development. JQuery AJAX calls and some functions to iterate over JSON objects. A wireframe UI was developed in MockFlow to protoype a several potential functions of wHelp that were infeasible to implement within the CodeFest timeframe.
wHelp's MockFlow wireframe UI gives an inuition into what a mobile version of the app might look like.
PostMan is used to test an API that we created in the back-end by spinning up containers for the development team to simulate AJAX calls. Docker was used to ensure reproducibility across back-end developers, by spinning up a virtual environment for consistent testing and deplpyment. Furthermore the usage of Docker enables theoretically unlimited scalability via Kubernetes. The entire project, including the MySQL and Adminer database back-end tools are hosted on Google Cloud Platform (GCP) to leverage Google's extensive Infrastructure as a Service (IaaS) and Storage as a Service (Saa) capabilities. GCP hosts the repository for the back-end since GitHub is only used for version control.
Google Cloud Platform is hosting the container registry for wHelp's Docker images.
Challenges we ran into
- Version control issues
- Various technical backgrounds between developers (some first time coders)
- Instagram API is particularly stringent with image access controls
- Deciding on the development tools and frameworks to build the app
- Coordinating schemas between the front and back end developments team
- Limiting the scope of the project within the timeframe for feasible implementation deliverables
Accomplishments that we're proud of
We created an API that allows organizers to communicate with the app and create events to invite users to participate in. The app can add users and events to our back-end and be query-able on the front of our site. We have a live site with partial functionality and social media integration to demonstrate the user interface. We have a mobile app mock interface for simulating currently unimplemented app functions. We made use of the Google Cloud Platform to host our container registries. We made use of existing datasets from Open Data Philly.
What we learned
The Instagram API is a terrible awful monolithic roadblock to human civilization and progress. We learned how to graph polygonal geographic data and working with GEOJSON. We learned about how to protoype UX frameworks for mobile app development. We learned about testing frameworks for back-end development (PostMan, Adminer). We learned about integrating Docker containers with Kubernetes to improve scalability in later app versions.
What's next for WHelp
Since the initial deployment of wHelp will be largely limited to the Philadelphia county area, we first plan to forge partnerships with local organizations seeking to draw in volunteers. Through proof of concept we will demonstrate that the platform is capable of not only attracting a sufficient number of event participants, but affecting lasting change.