Latest note
Reusable and Extensible Knowledge Management Site for Civil Society
I have to develop and maintain several civil society websites, while also doing all the other tasks such as fund raising, project management, developing and writing materials, facilitating and training workshops (in multiple fields), communications, including media resources such as photography and graphics design.
Like my presentation for Plone Conf 2020, when developing websites or online services, I always plan for it to be maintainable by one person on a voluntary basis.
Using same approach, but for civil society websites, we can build something that's reusable and extensible, not just for different websites, but also reduce workload for day to day tasks. If I have to update a public website with content, can I do it in such as way, that when I upload and edit content once, it can also be useful for the public, for internal and external knowledge management and also capture monitoring and evaluation metadata and indicators to help with reporting?
Also for it to be extensible enough, that it can be themed differently, and each site can mix and match, fields as needed. With Plone it's doable.
Standard NGO/Civil Society Content Types
Civil society organizations, especially for international development, have common long established and defined set of content types. The following pretty much covers everything you do.
- Projects
- Activities and Workshops
- Resources (Outputs such as publications, reports, training materials and what not)
- Citation (or dissemination and outcomes)
- Updates (quick blogs and notes)
- Resource Persons and Organizations (Beneficiaries, Implementing and Funders)
Metadata
There is also a set of common metadata, that you need to report on as part of monitoring and evaluation, but also for knowledge management. SDGs, development themes, indicators for various donors, country and location and partners. Some of the content types are also key metadata. By making them content types, it also makes the site more maintainable. When you add Organizations, you are also adding to list of partners. When you add Projects, you also add to list of Projects that other content types can be tagged with. With eea.faceted navigation, you can quickly configure and browse the different possibilities of extracting information.
Training Materials related to Anti-Corruption for Journalists for countries in Southeast Asia, funded by the European Union, for 2020-2022? Sure. No problems.
With this platform and diligent knowledge management, I only need to upload content once. For public access, for reporting, for internal and external M&E and knowledge management.
Behaviors - Mix and Match
Dexterity behavior is probably the main thing that makes this work. Each site is not always the same. While there are some common fields like SDGs or countries, certain fields are not eg. list of Malaysian marginalized communities and laws will not be needed for a regional initiative. We simply pick which ones we want to enable/disable or as additional add-on.
ReST API, Theming and modern JS UI
One problem with Plone sites pre-ReST API feature, was that the valuable structured data was not accessible for external users and other uses. With the ReST API, others can write their own front-end if they wish. Mostly for me, this allows me to extract some reporting features quickly using something like Jupyter Notebook.
Resources
This approach is currently being used for D4D Asia Hub, Malaysia's Freedom of Expression Cluster website and Sinar Project's revamped website.
D4D Asia's is most up to date, so the buildout is best one to check out the code and parts.
Plone talk on Rapidly Building Extensible Anti-Corruption site