Zen, the CoderDojo Community Platform
Welcome to "Zen"! You can see the live site at zen.coderdojo.com.
This repository is the documentation for the project. We log issues in this repository.
There are also three microservice repositories and a frontend repository.
If you want to jump straight in to getting your development environment set up, visit the development environment repository here.
About the project
CoderDojo is a network of free computer programming clubs for youths aged 7-17. It is a global charity and we currently have more than 900 clubs in over 63 countries!
Zen was originally set up to track new "Dojos" (coding clubs) and help the CoderDojo Foundation track new clubs being set up worldwide.
In 2015, it was redeveloped to be a fully fledged community platform. It is built entirely in javascript using NodeJS and AngularJS.
It includes:
- Ability to search for a Dojo (coding club) and join the club
- A bespoke ticketing system where parents and mentors can book tickets for their local club
- Profile pages for parents, mentors and youths
- Two forums (Over 13 and community forum), running on NodeBB.
- Mozilla Open Badges integration.
Most of the technology we use is open source, and we are proud of it! For CoderDojo related questions, contact info@coderdojo.org.
Get in touch with guillaume@coderdojo.org with any technical questions.
Contributing to Zen
There are various ways to contribute to Zen:
- as a developer, instructions for creating a local development environment can be found in the cp-local-development repository. You may also wish to read the contributing guide.
- as a translator, we use CrowdIn to help manage localisation, please sign up and help out!
- issue management, we keep track of all our issues in GitHub in this repo, help out here
- documentation, by contributing to the documentation in this repository.
Where to begin
View our Speaker Deck!
There are a few labels in particular that are very useful if you are new to Zen:
- The beginner label marks anything considered easy enough for a first time contributor.
- The request for comments label is great for non-coders or people wishing to get familiar with the system. These are often features we are not sure if we want to produce yet, or issues that require clearer implementation guidelines.
- The hints provided label is attached to anything which has been given a technical spec by someone on the development team.
- View this document for a brief overview of the sections of the system and how to access them with the test account.
Bug fixes
- Ideally all of the bugs are the most important issues to fix. They are categorised by priority.
- There is a critical bugs milestone for the most important bugs.
- Some bugs are smaller CSS issues that are marked low priority and so are not as important to work on.
Priorities for the project
Once you're familiar with the codebase, there are a number of labels/milestones to guide you through our roadmap.
Still not sure? Get in touch, let us know what you are interested in working on and we're happy to provide guidance.
Working on an issue?
- Comment on it and let us know so we don't duplicate any effort.
- We can add you to the official CoderDojo development team so you can assign yourself issues.
- Please add unit tests where possible to your code. There is an end to end test repository for front end testing. There is also a tests directory in the root directory of each service and in the front end repository.
- Tag @tangentfairy if you have any questions.
Developer Support
- The CoderDojo Foundation Technical Lead is available to help you get set up.
- Join the gitter chat if you have any questions.
- Those who have committed to the project can be added to the Foundation Slack community for daily communications. Please get in touch to be added!
- To get in touch, email us at info@coderdojo.org
- To deploy a change, you'll need to get in touch as only those with commit access can do so.
- Have a read through closed pull requests in the frontend repository to get a feel for what we have been working on.
License
The Community Platform (Zen) is copyright The CoderDojo Foundation, and open sourced under the MIT license.
Documentation
The following is a list of further reading:
- Architecture - a high level overview of the system, the code layout, etc
- Localisation - some notes on localisation
- Forums - some developer notes on the forums