Harmonising Integrations to Charity Fundraising Platforms
UK charities are amongst those who have realised the greatest the benefits of Open Source adoption. Sharing code and learnings charities like Oxfam, Great Ormond Street Hospital, Comic Relief, RNIB are prospering in the digital space through open source, achieving more with the same level of investment. Ultimately this means more fundraising money reaches worthy causes.
Good but could do better
Many of these charities depend on fundraising providers including Virgin Money Giving and Just Giving. Theses deliver fundraising campaigns and allow charities to engage effectively with supporters. Working with Great Ormond Street Hospital, speaking to my peers and Cancer Research's development team, it is evident there is a huge duplication of effort in relation to software integrating to these fundraising providers.
Build a module together?
With Drupal and Just Giving alone there are several modules, sandboxes and unreleased integrations I am aware of. In this situation the standard "Drupal way" is to come together and develop a common set of modules collaboratively. Whilst this would work, we can go further.
A better way forward
Thanks to Drupal Commerce I am aware of an approach which can benefit more than just Drupal. The degree of variation between standard addresses across hundreds of countries in vast. Commerce Guys, who develop Drupal Commerce, desired a better framework to handle addresses in their platform. They decided to abstract the task to a PHP Addressing Library. In making available a PHP library to the community Commerce Guys have opened the door to contributions from other PHP developers and Open Source projects. And that is exactly what happened. Dozens of contributors. The result is far better than they would have achieved alone. Not only this, it benefits more than Drupal. The library is available to any PHP based CMS.
Based on this success approach I have written a proposal which will achieve a framework making integrations to fundraising providers far easier across all PHP systems.
The attached PDF describes my proposed solution.