Integrating The Community Platform on coderdojo.nl
The CoderDojo Community Platform, sometimes referred to as ‘Zen’, hosts Dojo Profiles, enables mentors, parents and youths to create their own CoderDojo profile and book tickets to Dojo events. Volunteers and youths can also earn digital badges on their profiles for completing our E-learning modules, or learning new programming skills; such as intermediate Python. The platform also enables people to search for Dojos currently running on our Dojo map and chat to other members of the community on our forums.
One of our responsibilities as regional body is making sure we connect stakeholders in our region. Part of this is maintaining a website for everything related to our community in The Netherlands, www.coderdojo.nl. For the biggest part, this website serves as calendar and map for parents and children to find a Dojo in their neighbourhood and know when that Dojo takes place.
As (probably) most of the community, our Dojos were mainly using Eventbrite for their registration and ticketing. To make it easier for Dojos to maintain their online presence we had integrated Eventbrite on coderdojo.nl so champions only had to fill in the ID of the event. We would then pull all the relevant information for them so they don’t need to go through all that again. However, it still posed a few problems.
- Champions needed to create an account for their Dojo
- Champions needed to create a second account on Zen
- Champions needed to register events on multiple sites
- Every Dojo could only have 1 login associated with it
- Dojo’s not using Eventbrite could not list their events
With the release of the Zen API we could finally tackle most of these problems. The fact that Zen now also supports ticketing made it a no-brainer for us to act upon this. We started to look at the possibilities of the API and started planning how we would go about this.
The first step was to pull all relevant information from into our own database. We wrote a script that will run every hour and ask Zen for a list of all Dojo’s in The Netherlands. We then go through all of them and determine whether to add, update, delete or take no action. We then do the same for all events connected to these Dojos.
To keep ourselves updated we also connected this with our Slack team. Every time the synchronizer has run, it posts the results to the #general channel in Slack. Usually just in the form of “X Dojo’s updated”, but when a new Dojo was added we show the details of that Dojo.
For the developers amongst us, we work in Symfony3, a PHP-framework. We created a console command which calls a SyncDojoService / SyncEventService. This service will retrieve the Zen data and (if need be) call the necessary commands (CQRS / Command Bus) to execute those mutations and finally post what happened to Slack. If you want to know more about the technical integration, feel free to contact me on CoderDojoGlobal Slack.
The final step was to make this available to champions. We came up with a dashboard for Dojos which would allow them to do specific things related to our region, but built on top of the basics of Zen. Note how we said, “on top”. If any champion chooses not to use any of our facilities, that should be perfectly fine. The extra possibilities available through the dashboard (at the moment of this writing) are:
- Add custom events (non-Zen, e.g. Eventbrite, WordPress plugins, etc.)
- Verify their Dojo (e.g. child protection policy, house rules, etc.)
- Request a Certificate of Conduct for volunteers
- Manage a Dojo with multiple accounts
To gain access to a Dojo we came up with a confirmation system. In case itis an “orphaned” Dojo (no users connected yet) an email will be sent to the email address provided by Zen for that Dojo. This ensures that at least the champion (or anyone authorized) receives it and confirms the user. If the Dojo already has a member connected, all connected members will receive an email with a confirmation link to allow the new user access. Basically anybody can now create an account and request access to a Dojo and the actual granting of access is self-regulated.
In the future
We are still working on getting the dashboard fully up and running. You can track the progress on our Github Repository. We still have a lot of other ideas and we can now easily hook new stuff into the dashboard when we think about it along the way.
The biggest feature planned is Single Sign On (or oAuth). This is highly dependent on the dev team at the Foundation in Ireland (no pressure guys ?). As soon as this becomes available, we no longer need people to create their personal accounts on our website and we can instantly connect them to their Dojos and offer them our extra facilities for their Dojo once they log in with their Zen credentials on our website.
For now, we are just very happy to have a consistent database of active Dojo’s with Zen and to be able to provide our community with the data needed without asking Dojos to take extra actions besides their regular tasks to add events on Zen.
Chris is the Chairman of CoderDojo Netherlands (NL), as well as the Rotterdam Dojo Champion and a software developer. Here he tells us about his experience of integrating the CoderDojo Community Platform into the CoderDojo NL website. Thanks to Chris for volunteering his time to support CoderDojo in The Netherlands!
Have you a volunteer story you want to share? Tag @CoderDojo (or use #CoderDojoVolApp) on your Twitter, Instagram, Facebook and LinkedIn posts about volunteers at your Dojo, telling us why you think they’re awesome! You can also send your stories, videos and photos to [email protected] to win Dojo prizes during Febuary!