A nonprofit client, dedicated to organizing peer groups for entrepreneurs, sought to enhance their communication with program funders by providing the funders with visual dashboards based on recent program data. Though the client used Power BI in the past for data analysis they felt that a Power BI dashboard wouldn't give them the visual flexibility to "tell their story". These dashboards were intended to clearly demonstrate the progress and impact of their initiatives, showcasing the effectiveness of their efforts in supporting the entrepreneurial community. Synthelize was tasked with creating funder dashboards based on the data available in the nonprofit's program tracking database.
The client manages their program information in an Azure SQL data store. This database is mirrored in a real-time, read-only replica for reporting purposes. Because the data source contains sensitive information on program information, the reporting database access is IP restricted.
Several constraints led to the final architecture design. First, the client wished the final dashboard to be in a longer format than a Power BI or Tableau dashboard so that they could communicate key aspects of their program in a narrative format. This led to the idea of using a website rather than an analytic tool such as Power BI or Tableau.
The client also wished to prevent any possibility of anyone accessing personally identifiable information, and their source system database IP address is restricted to be accessible only to a few permitted IP addresses, primarily their membership management applications.
The client felt that it was not really necessary to make the dashboard real-time, but rather to limit it to being updated at specific points in time.
Hosting was also a consideration - the client wanted something that appeared dynamic to the end user but did not wish to create complex application with all the hosting requirements that go along with that.
To achieve security and easy hosting, Synthelize decided to use C#/MVC to generate a static webpage which is then saved and published to an AWS S3 bucket for hosting. All aggregate data is embedded into the page using JSON.
To render charts and graphs dynamically on the client's browser the ChartJS library was chosen. This open-source library allows charts and graphs to be created dynamically inside the user's browser, removing the need for a server to render dynamic content. This allows the page to be statically hosted, and it allows Synthelize to ensure that no personally identifying information is accessible as all the page data is aggregated before the page is even generated.
Updates to the dashboard are provided periodically (usually monthly). In the event of a data update Synthelize runs the dashboard code which creates a new static page to be uploaded to the S3 bucket.
The client and the funder were both very impressed with the reports. Many nonprofits do their impact/funder reports statically via PDFs or Google Docs, but this approach to funder reporting allows the funder to feel that they are a partner in the program and able to "check in" on progress at any time. The client has decided to use the dashboard not only in reporting back to existing funders but also as a fundraising tool to new potential funders.
322 North Shore Drive
Building 1B, Suite 200
Pittsburgh, PA 15212
I am interested in information on: