Category
Civic engagement
Inspiration
Our research and discussions with current and former non-profit administrators illustrated a common theme: organizations often receive donations they cannot make good use of. Food goes to waste, clothes go unworn, and volunteer time is underutilized because there is a poor match between what the organization needs and what people donate. At the same time, potential donors face the challenge of ensuring that the organizations they donate to are reputable.
What it does
We built two apps. The first is organization-facing and allows non-profits to quickly share their highest priority needs for donations. Because those needs can change throughout the year, the app also allows organizations to update their priorities.
The second app is donor-facing. It allows potential donors to find non-profits near them, to filter non-profits by type and accountability assessment, to see some basic information about each non-profit, and link out to their website. The accountability assessments are provided by Charity Navigator, a leading charity assessment organization. By linking the list of organizations to the current map view, we center the idea of geographic location as an important consideration for donors when choosing an organization to support.
How we built it
We used the Charity Navigator API to create a list of rated non-profit organizations in Missouri, our test location. We extended the functionality of these data by geocoding and publishing them to ArcGIS Online using the ArcGIS API for Python.
We built the organization facing app with Survey123. A webhook powered by Integromat automatically emails the respondent a link that can be used to update their response when the organization's priorities change. We joined the survey responses to the Charity Navigator data using ArcGIS Online and published the join as a hosted feature layer view.
We built the donor facing app (must be logged in to Survey123 to track results) with ArcGIS Experience Builder - developer edition. We built the map that powers the app in ArcGIS Pro and ArcGIS Online.
Challenges we ran into
The Charity Navigator data comes natively as highly nested JSON. We needed to develop a coherent data model that would allow it to be published as a single table.
Each organization needs a way to edit their data without giving them access to data submitted by other organizations. We were unable to implement our original plan to use URL query parameters in an Experience. We pivoted to using Survey123 to take advantage of its ability to edit responses. This complicated the first challenge, because it meant that we needed to change the data model again to accommodate joining two tables, instead of publishing a single table.
Our team members belong to different ArcGIS Online organizations. We needed to develop a process by which we could edit the Experience Builder applications and track changes using version control.
Application hosting was a challenge because most popular browsers disallow geolocation from unsecure origins. We had to abandon our original plan to host the site on an Oracle cloud server from a bare IP due to the inability to get a free Let's Encrypt certificate.
Accomplishments that we're proud of
The feature layer view of the joined Survey123 and Charity Navigator data works well to allow organizations to update their priorities and see those changes immediately reflected in the donor-facing application.
The configuration of the filtering, list, info, and map widgets in the map work well together to help donors locate non-profits they might want to support.
What we learned
We had several false starts due to changes that needed to be made in the underlying data model. These changes required reconfiguring the Experience from scratch. Having a well developed dataset that then can be configured in a map before attempting to create an app would be a more efficient workflow.
In general, we also learned a lot about the various widget configuration options in Experience Builder to create the user experience we wanted.
Built With
- arcade
- arcgis-api-for-python
- arcgis-experience-builder
- arcgis-pro
- charity-navigator-api
- esri
- jupyter-notebook
Log in or sign up for Devpost to join the conversation.