Code for Life Community hub
Python DenRapid RouterCode for Life website
  • 💛Welcome
  • 📅Release Notes
  • âĪïļBecome a Contributor
  • ðŸŠīIndustry Experience
  • 🏆Wall of Fame
  • ðŸ“ĶRepositories and Packages
  • ðŸī󠁧ó Ēó Ĩó Ū󠁧ó ŋNational Curriculum alignment
  • ðŸī󠁧ó Ēó ģó Ģó īó ŋNational Curriculum alignment
  • â„đïļGlossary
  • COMMUNICATIONS
    • 📖Publications
  • 🗞ïļNewsletters
    • 🎊Spring 2025
    • 🌷Bett show 2025
    • 🎄December 2024
    • 🍁Autumn 2024
    • ðŸŒŧSummer 2024
    • 🐰Spring 2024
    • ❄ïļWinter 2024
    • 🎄December 2023
    • 🍁Autumn 2023
    • ðŸŒŧSummer 2023
    • 🌷Spring 2023
    • 🎄December 2022
    • 🍁Autumn 2022
    • ðŸŒŧSummer 2022
    • 🌷Spring 2022
    • 🎄December 2021
  • ðŸ§ĐNewsletter challenges
    • ðŸĪ–Ocado Robot Debugging Challenge!
  • ðŸĪ–Books of Robots
  • Community resource hub
    • ðŸ’ŧHow do Computers work?
    • 🔐Safety online: Passwords and Security
    • ðŸĪ–The World of Robotics
    • ðŸĶūCareers in technology
      • 📃Careers posters
      • ðŸ“―ïļCareer based videos
  • 🗚ïļLevel Maps 1‒50
  • Software Developer Guide
    • ðŸ’ŧDev Environment Setup
    • 🔝Code Promotion Strategy
    • ðŸ’ŋBack End
      • â„đïļOverview
      • ✍ïļCoding Patterns
      • 🧊Testing Strategy
    • ðŸ–ąïļFront End
      • â„đïļOverview
      • ✍ïļCoding Patterns
      • 🧊Testing Strategy
  • Links
    • Code Workspace
    • Visit our Site
Powered by GitBook
LogoLogo

Copyright Ocado Group 2025

On this page
  • Help Build Code for Life
  • Why Should I Contribute?
  • Getting Started
  • Create a GitHub Account
  • Notice of Intention
  • Sign our Agreement
  • Finding Tasks
  • Contributing as a Developer
  • Working on Tasks
  • Picking up a Task
  • Support Requests
  • Review Requests & Change Requests
  • Closing a Task

Was this helpful?

Export as PDF

Become a Contributor

Contribute to Code for Life

PreviousRelease NotesNextIndustry Experience

Last updated 6 months ago

Was this helpful?

Help Build Code for Life

As Code for Life is an project, we welcome external contributors and all forms of contribution such as:

  • code changes

  • design

  • student resources

  • teacher resources

  • strategic insights from qualified teachers

  • process review

  • cloud infrastructure setup

  • running

If you would like to contribute in one of the ways mentioned above or in a way not mentioned above, please reach out at - all help is welcome! 😉

Why Should I Contribute?

Some of the reasons we would like to highlight:

  • Your contributions will be directly used by students and teachers worldwide, helping them to flourish in an increasingly digital world.

  • You'll learn a variety of technologies and gain experience developing a production-ready system.

  • You'll build your portfolio and industry-experience, which is highly valued by employers.

  • You'll have the satisfaction of making the world a better place, one contribution at a time. 😊

Getting Started

Get ready to dig in! 💊 We're hoping that contributing to this project will be as rewarding to you as it is to us. 🚀

Create a GitHub Account

Notice of Intention

Notifying us of your intent to contribute is not a commitment on your part. You are never obligated to start or complete any work for CFL.

Sign our Agreement

1. Set up your Git identity.

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

Set user.name to be anything you like.

Set user.email to be an email address that you own. Note that:

  • You cannot use a private/noreply email address. If you have a GitHub account, this is enabled by default and can be turned off at Settings > Emails > Keep my email addresses private.

You only need to fork the main branch.

3. Sign your email address.

On the main branch of your forked codeforlife-workspace repo, write your email address on a new line at the bottom of CONTRIBUTING.md.

You must not make any other edits!

<example@gmail.com>

4. Commit your changes.

git commit -m "user.email"

Replace user.email with your email address.

5. Push your changes.

git push

6. Create a pull request.

7. Verify your email address.

I confirm that I created this pull request and I agree to being a contributor to the Code for Life project.

Finding Tasks

Although you're welcome to pick up any task, not all issues are suitable for contributors. This is because some tasks require specialised knowledge or familiarity with how our system works. To help contributors find tasks we believe to be suitable for them, we label some of our tasks with a volunteers tag.

You can search for these with the filters:

is:issue is:open label:"volunteers"

Furthermore, we label some tasks with good first issue that we believe to be easy enough for first time contributors:

is:issue is:open label:"volunteers" label:"good first issue"

Contributing as a Developer

General Skills

All dev contributors will need to have these skills to contribute code changes:

    • git clone

    • git pull

    • git commit

    • git push

Back End Skills

It's recommended contributors wishing to contribute to our back end familiarise themselves with:

You don't have to be familiar with all these technologies - as long as you are keen to learn.

Front End Skills

It's recommended contributors wishing to contribute to our front end familiarise themselves with:

You don't have to be familiar with all these technologies - as long as you are keen to learn.

Working on Tasks

Below is everything you need to know about how to handle tasks as a contributor.

Picking up a Task

If you've been assigned a task and we've seen no activity from you in the past 2 weeks, you'll be unassigned so that others may have a chance to pick up the task. You can always be re-assigned if you so wish.

Support Requests

If you have questions or require guidance, we'll do our best to respond promptly and provide you with support.

Review Requests & Change Requests

When you've completed your task, you must request a review from us to determine whether we can accept your contribution. The simplest way to do so is to comment on the task:

ready for review

If we discover issues in our review, we'll request changes. It's normal to have multiple rounds of review requests (by you) followed by change requests (by us) until the task is completed to our standards. Change requests will usually be commented directly on their respective GitHub task or pull request.

Closing a Task

Once a task has been closed by us we'll go through some internal processes which will ultimately result in your contribution getting deployed in the next version of system.

It may take some time before your accepted contributions are live on our system as we batch changes and release them as new versions on our system.

Want more reasons? See .

We endorse and extend ; please make sure you are friendly and welcoming.

Every contributor will need a GitHub account, regardless of whether they wish to contribute code or other types of work to the project. This is because we use GitHub to manage our project's tasks. If you don't already have a personal GitHub account, .

We recommend that you start your journey with us by reaching out to us at and notify us of your intent to contribute. While it's not required to do this, we recommend starting a conversation with us early on so that we may learn more about your individual skill set and suggest tasks that you're suited to.

Before you begin contributing, you must first sign our . This gives CFL permission to use your contributions in our app! 🚀 After reading the agreement, you must sign it by following the below steps. If you have any trouble, please reach out to .

Git's first-time setup docs.

This email address will be forever publicly visible! If you wish to keep your personal email address private, then we recommend you create a new email address for the sole purpose of making contributions. If you have a GitHub account, you can to it.

2. Fork our .

how to do this on GitHub.

Create a pull request from the main branch of your forked codeforlife-workspace repo to the main branch of .

how to do this on GitHub.

To affirm that you own the email address you provided, an email will be sent to the email address after your pull request has been reviewed and approved by a member of our team. The email will contain a link to the pull request that added the email address as a contributor. You must forward the email to from the same email address and state:

All of our project's tasks are tracked using - we use the words "issue" and "task" interchangeably. Each code repository has an Issues tab where you can browse the various tasks we have for the repo. You can find our list of repos by looking at our .

If you are contributing code changes, we recommend you spend a little time skimming through the docs of our different code repos (see our ). This will give you some insight into how our system is structured and, given that each task is associated to a repo, you'll have a high-level understanding of the area of the system that you'll be working on.

Once you have an overview of our system, .

A basic understanding of what does. You'll need to know what the following commands do:

A basic understanding of what does.

A basic understanding of what does.

The basics of .

The basics of and .

The basics of .

The basics of and .

The basics of .

The basics of .

The basics of and .

The basics of and .

The basics of .

The basics of .

Before you start working on a task, we recommend you reach out to us at so that we may assign the tasks you're working on to your GitHub account.

If you're a dev contributor, you'll first need to fork any repo you wish to develop for. You should have forked all of CFL's repos when you .

Our preferred communication channel is GitHub - we ask you make comments directly on a task so that we may keep all conversations regarding a specific task in a central location. Otherwise, you may reach out to us at or via the email address of any CFL team member you may have previously been in contact with.

If you're a dev contributor, review requests will come in the form of .

You can see when your contributions have been released by keeping an eye on our . However, we're aiming to improve our notifications so you're kept in the loop every step of the way.

âĪïļ
why you should contribute to open-source
Python's Community Code of Conduct
create one
codeforlife@ocado.com
contributor agreement
support@codeforlife.education
See
add the new email address
code workspace
See
Ocado Technology's codeforlife-workspace repo
See
codeforlife@ocado.com
GitHub Issues
reading list
reading list
set up your development environment
Git
Docker
VSCode
Python
pip
pipenv
Django
unittest
pytest
HTML
CSS
JavaScript
TypeScript
npm
Yarn
React
Cypress
codeforlife@ocado.com
set up your dev environment
codeforlife@ocado.com
pull requests from your forked repo
release notes
open-source
codeforlife@ocado.com
What the Issues tab looks like in GitHub
Listing and filtering issues on GitHub
coding clubs