Skip to content

Latest commit

 

History

History
188 lines (129 loc) · 16.3 KB

File metadata and controls

188 lines (129 loc) · 16.3 KB

Contribution Guide

Welcome to the CYF Curriculum

We are a volunteer-led community of tech professionals, and we teach people to code for free. We are majority-minority, we welcome everyone, and we welcome you.

This curriculum compiles narratives and activities developed by hundreds of people all over the world. You are invited to join us. Volunteer for the Tech Education team to teach in our classes, or contribute in a number of other ways. You can also volunteer remotely.

Volunteer with CYF

Who runs this?

Our Tech Education volunteers teach in our classes. All Tech Ed volunteers can, and do, develop content for the curriculum, and they are encouraged to experiment to see what works. Our trainees also notice problems, and propose or implement solutions!

The Curriculum Team is a group of long term volunteers who are responsible for the overall direction of the curriculum. They decide the strategy and accept new content into the core. Once a Tech Ed volunteer has sufficiently tried out their material, they can propose that it be adopted into the main curriculum, and the Curriculum Team will make the ultimate decision. See more info on contributing new content below.

The Curriculum is led by the Director of Education, currently Daniel Wagner-Hall. We meet every two weeks to discuss the curriculum and make decisions. The agenda is posted in the Slack channel #cyf-curriculum and the minutes are posted on this website. If you'd like to come and talk to us, please do!

About our content

Our content is:

  • practical
  • written in simple English at a maximum of CEFR B2
  • free

Our content is not:

  • a textbook
  • a reference manual
  • a collection of tutorials

Pedagogy

We broadly use the Teach Tech Together pedagogical framework, in a flipped classroom style.

How to contribute

Propose a new narrative or activity

We adopt tested content into the main curriculum, so develop and try out your material first! Come to class, try it, and get feedback from the community. Come talk in #cyf-curriculum on Slack and iterate on your session.

  1. Develop your narrative or activity in a repo. If you're running a workshop, develop in https://github.com/CodeYourFuture/CYF-Workshops. If it's a project, make a separate repo for it.
  2. If you're recording a video, upload it to YouTube and make it public.
  3. Use your material and iterate on it with trainees.
  4. When you're ready to propose adoption, open a PR to this repo.
  5. The Curriculum team will consider your proposal and give you feedback.

We like to experiment. If you have an idea, try it out and let us know how it goes! Keep your experiments small and test them early. (If you want to try something big, like a new module, come talk to us first.)

Our curriculum threads a coherent line through all of this activity, so whatever worlds we explore, we can all come back here and find out what to do next.

Most content we develop and use with classes will not be adopted into the core curriculum -- that's ok! We want to be free to experiment.

Bugs

If you spot a bug, please let us know by creating an issue or opening a PR with the fix. Bug fixes are super welcome!

As this front end composes many different repos, please open an issue in the repo where you found the bug. If you're not sure, open an issue in this main repo.

(If the content is pulled from another repo, there's a link next to the heading -- follow that link to the source repo and open an issue there.)

Developing the source website

To install

You need the following software packages to run this curriculum:

  • go
  • hugo (must be the extended version) - we recommend version 0.136 extended
  • npm

On macOS:

brew install go hugo npm

To run locally

Generate a token

You'll need to get a fine-grained GitHub API token which allows read-only access to all public CYF repos from this page.

Click "Generate new token", enter a token name (can be anything), and how long you want the token to last (if you're doing a one-off contribution, pick a short value; if you're going to be a regular contributor, maybe a longer value).

Make sure the Resource owner is your account if you have a choice.

The "Repository access" you need is "Public repositories (read-only)", and you don't need any account permissions:

Open to view screenshot of the required permissions

screenshot of required permissions

Set up .env

Copy the /curriculum/.env.example to /curriculum/.env. Edit the file and then change the line that says HUGO_CURRICULUM_GITHUB_BEARER_TOKEN to contain the token that you have generated earlier.

You can probably ignore the other entries.

Run this command

There are several websites in this repo - identify the one you want and make sure you're cd'd into that directory.

Run this command in a terminal:

npm i
npm run start:dev

If you find the build is very slow, and don't care about the issues being pulled into backlogs being precise, you can run:

npm run start:dev -- --environment issues-are-cached-and-incomplete

Site Search

PageFind runs the search. https://pagefind.app/ It's in the build command on Netlify hugo && npx pagefind --source "public" If you need to develop on this locally, run:

rm -rf public &&
npm run build:dev &&
npx pagefind --site "public" --serve

And go to http://localhost:1414/ to see the PageFind-served site with search enabled; but there is no hot reload. You can run hugo on http://localhost:1313/ at the same time.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


nbogie

📖

Stéphanie Krus

️️️️♿️

Chris Owen

📖

Mike Hayden

🖋

Alasdair Smith

🖋 📖

Jonathan Sharpe

🖋 🚇

rc-pm

📖

Nick Holdsworth

🖋

Tim Hamrouge

🖋

MitchLloyd

👀 ⚠️ 💻

gregdyke

🚇 ⚠️ 🖋 💻

Lucy Zidour

🖋 💻 👀

Alessandro

🖋 💻

Antigoni Makri

🖋 💻

Francesc Rosas

🖋

Sam Martin

🖋 💻

jcholyhead

🖋 💻

Mark Farmiloe

🖋 💻

Máté Szendrő

🖋 💻

Matthew Craven

🐛

Daniel Carter

🐛

Coung

🖋 💻

Lana-Franks-Code

🐛

Gintaras

🐛

rickscode

🐛

Claire Bickley

🖋

Jack Franklin

🐛

Sanyia Saidova

🖋 💻

Jo

🖋 💻

This project follows the all-contributors specification. Contributions of any kind welcome!