Skip to content

Commit 99ab7cc

Browse files
authored
Merge branch 'main' into content-update/employability-interviews
2 parents 0362181 + 6e836e8 commit 99ab7cc

File tree

38 files changed

+1253
-368
lines changed

38 files changed

+1253
-368
lines changed

.github/pull_request_template.md

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1 @@
1-
## What does this change?
21

3-
<!-- Add a description of what your PR changes here -->
4-
5-
### Common Content?
6-
7-
<!-- Does this PR add content to the common-content module? -->
8-
9-
- [ ] Block/s
10-
11-
### Common Theme?
12-
13-
<!-- Does this PR add a feature or bugfix to the common-theme module? -->
14-
15-
- [ ] Yes
16-
17-
<!--Please reference the ticket you are addressing -->
18-
19-
Issue number: #issue-number
20-
21-
### Org Content?
22-
23-
<!-- Does this PR change a whole module, a sprint, a page, or a block on a single organisation's module? Please delete as appropriate. -->
24-
25-
Module | Sprint | Page Type | Block Type
26-
27-
## Checklist
28-
29-
- [ ] I have read the [contributing guidelines](CONTRIBUTING.MD)
30-
- [ ] I have checked my spelling and grammar with an [automated tool](https://www.grammarly.com/grammar-check)
31-
- [ ] I have previewed my changes to check the [markdown renders](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) as I intend
32-
- [ ] I have run my code to check it works
33-
- [ ] My changes follow our [Style Guide](https://curriculum.codeyourfuture.io/guides/code-style-guide)
34-
35-
## Who needs to know about this?
36-
37-
<!-- Now bring this PR to the attention of the team. Assign reviewers. @mention specific people in comments. -->

CONTRIBUTING.md

Lines changed: 1 addition & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -36,86 +36,7 @@ We broadly use the [Teach Tech Together](https://teachtogether.tech/) pedagogica
3636

3737
## How to contribute
3838

39-
### Propose a new narrative or activity
40-
41-
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.
42-
43-
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.
44-
2. If you're recording a video, upload it to YouTube and make it public.
45-
3. Use your material and iterate on it with trainees.
46-
4. When you're ready to propose adoption, open a PR to this repo.
47-
5. The Curriculum team will consider your proposal and give you feedback.
48-
49-
**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.)
50-
51-
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_.
52-
53-
_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.
54-
55-
## Bugs
56-
57-
If you spot a bug, please let us know by [creating an issue](https://github.com/CodeYourFuture/curriculum/issues/new/choose) or opening a PR with the fix. Bug fixes are super welcome!
58-
59-
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](https://github.com/CodeYourFuture/curriculum/issues/new/choose).
60-
61-
(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.)
62-
63-
## Developing the source website
64-
65-
### To install
66-
67-
You need the following software packages to run this curriculum:
68-
* `go`
69-
* `hugo` (must be the extended version) - please use version 0.136 extended, as more recent versions have a breaking change.
70-
* `npm`
71-
72-
On macOS:
73-
74-
```bash
75-
brew install go hugo npm
76-
```
77-
78-
### To run locally
79-
80-
#### Generate a token
81-
82-
You'll need to get a fine-grained GitHub API token which allows read-only access to all public CYF repos from [this page](https://github.com/settings/tokens?type=beta).
83-
84-
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).
85-
86-
Make sure the Resource owner is _your_ account if you have a choice.
87-
88-
The "Repository access" you need is "Public repositories (read-only)", and you don't need any account permissions:
89-
90-
<details>
91-
<summary>Open to view screenshot of the required permissions</summary>
92-
93-
![screenshot of required permissions](./readme_repository_access.png)
94-
95-
</details>
96-
97-
#### Set up `.env`
98-
99-
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.
100-
101-
You can probably ignore the other entries.
102-
103-
#### Run this command
104-
105-
There are several websites in this repo - identify the one you want and make sure you're `cd`'d into that directory.
106-
107-
Run this command in a terminal:
108-
109-
```bash
110-
npm i
111-
npm run start:dev
112-
```
113-
114-
If you find the build is very slow, and don't care about the issues being pulled into backlogs being precise, you can run:
115-
116-
```bash
117-
npm run start:dev -- --environment issues-are-cached-and-incomplete
118-
```
39+
Contributions to the curriculum are always welcome. Help in navigating teh directory structure and instructions for local testing can be found in the [contribution guidelines pages](https://curriculum.codeyourfuture.io/guides/contributing/) of our curriculum.
11940

12041
### Site Search
12142

org-cyf-guides/content/contributing/_index.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ menu: volunteers
99

1010
<!-- CYF-ONLY -->
1111

12-
## 💯 Free and open
12+
## Free and open
1313

1414
Code Your Future is a free training programme for refugees, asylum seekers, and other people excluded from education. All our classes are free and our teachers are volunteers. Since 2016, we have supported hundreds of people into great jobs in tech.
1515

1616
We do our work in public. Our [free and open source curriculum](https://github.com/CodeYourFuture/curriculum) is collaboratively developed [on GitHub](https://github.com/CodeYourFuture/) by industry professionals around the world. We are a [registered charity](https://register-of-charities.charitycommission.gov.uk/charity-search/-/charity-details/5102561/what-who-how-where) in the UK and a [Digital Public Good](https://digitalpublicgoods.net/standard/).
1717

1818
[Join our community](https://codeyourfuture.io/volunteers/). You are wanted and you are needed.<!-- END-CYF-ONLY -->
1919

20-
## 🤝🏽 Making Contributions
20+
## Making Contributions
2121

22-
Look for issues labeled "up-for-grabs" - these are low context and suitable for new contributors. To work on an issue:
22+
Look for issues labelled `up-for-grabs`, `help wanted` or `good first issue` - these are low context and suitable for new contributors. To work on an issue:
2323

2424
- Comment on the issue to let others know you're working on it
2525
- Fork the repo and create a branch `feature/your-feature-name`
@@ -30,22 +30,22 @@ If you've spotted a problem, please check the existing issues and join the conve
3030

3131
When making changes, focus on clarity and beginner-friendliness.
3232

33-
## 🛟 Getting Help
33+
## Getting Help
3434

3535
If you are an outside contributor, please join discussions and open tickets on our GitHub repos. If you can @mention a core contributor, that will help us see your message. (There are hundreds of active repos, so we don't always see everything.)
3636

37-
If you have [joined our organisation](https://codeyourfuture.io/volunteers/), the **#cyf-syllabus-tech** channel is the best place to ask questions and get feedback.
37+
If you have [joined our organisation](https://codeyourfuture.io/volunteers/), the **#cyf-curriculum** Slack channel is the best place to ask questions and get feedback.
3838

39-
You can also request a reviewers for your PR or pair program with an experienced contributor. We're happy to help new volunteers learn the codebase. There is an open code review Google Hangout once a week where you can ask questions and get feedback live. (Get the link in Slack.)
39+
You can also request reviewers for your PR or pair program with an experienced contributor. We're happy to help new volunteers learn the codebase.
4040

4141
Thanks for your interest! We're excited to work with you to provide life-changing education for all.
4242

43-
## 🧑🏿‍💻 Joining the team
43+
## Joining the team
4444

4545
Lots and lots of volunteers worldwide contribute to the curriculum. You don't have to join the Syllabus team to contribute, or even our our org.
4646

4747
<!-- CYF-ONLY -->
4848

49-
But if you'd like to meet us and get more involved, [join our organisation](https://codeyourfuture.io/volunteers/) as a volunteer. Once onboarded, introduce yourself in the #cyf-syllabus-tech channel on Slack. Let us know you'd like to attend a meeting and add your agenda points to the meeting link posted in that channel.
49+
But if you'd like to meet us and get more involved, [join our organisation](https://codeyourfuture.io/volunteers/) as a volunteer. Once onboarded, introduce yourself in the #cyf-curriculum channel on Slack. Let us know you'd like to attend a meeting and add your agenda points to the meeting link posted in that channel.
5050

5151
The [Global Syllabus volunteer team](contributors) meets every two weeks online to talk strategy, take issues and plan the next sprint. We'd love to meet you!<!-- END-CYF-ONLY -->
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
---
2+
id: adding-updating-content
3+
title: Adding & Updating Content
4+
description: How to locate existing files and where to put new ones
5+
weight: 2
6+
---
7+
8+
## Finding the Right Directory
9+
10+
CYF's curriculum is designed to be modular. Each part of the course has its own sub-directory within the `curriculum` repo, and each module within those courses has its own GitHub repo with relevant code examples and exercises. We define the structure of the curriculum by specifying where each piece of content can be found, either as a path within `curriculum` or as a GitHub url.
11+
12+
> [!NOTE]
13+
> We will use the Data Groups module of the Intro to Programming course as an example here but others follow a similar pattern.
14+
15+
Within each course's directory there is a sub-directory for each module.
16+
17+
```mermaid
18+
---
19+
title: org-cyf-itp structure
20+
---
21+
flowchart TD
22+
itp@{ shape: docs, label: org-cyf-itp } --> onboarding@{ shape: docs, label: onboarding }
23+
itp --> structuringData@{ shape: docs, label: structuring-data }
24+
itp --> dataGroups@{ shape: docs, label: data-groups }
25+
itp --> dataFlows@{ shape: docs, label: data-flows }
26+
```
27+
28+
> [!NOTE]
29+
> There will be additional folders with other information required to edit the page, eg. details of the next stage of the course in the `piscine` folder
30+
31+
Each module is broken into **sprints**. A sprint represents one week of work. The `success` folder contains the success criteria for a module.
32+
33+
```mermaid
34+
---
35+
title: module structure
36+
---
37+
flowchart TD
38+
itp@{ shape: docs, label: org-cyf-itp } --> dataGroups@{ shape: docs, label: data-groups }
39+
dataGroups --> success@{ shape: docs, label: success }
40+
dataGroups --> sprints@{ shape: docs, label: sprints }
41+
sprints --> sprint1@{ shape: docs, label: "1" }
42+
sprints --> sprint2@{ shape: docs, label: "2" }
43+
sprints --> sprint3@{ shape: docs, label: "3" }
44+
```
45+
46+
Each sprint is made up of **prep** (material to be read before class), **backlog** exercises (exercises to attempt before class), the **day plan** (the structure of the saturday class) and **success** criteria.
47+
48+
```mermaid
49+
---
50+
title: sprint structure
51+
---
52+
flowchart TD
53+
itp2@{ shape: docs, label: org-cyf-itp } --> dataGroups2@{ shape: docs, label: data-groups }
54+
dataGroups2 --> sprints2@{ shape: docs, label: sprints }
55+
sprints2 --> sprint1@{ shape: docs, label: "1" }
56+
sprint1 --> prep@{shape: docs, label: prep}
57+
sprint1 --> backlog@{shape: docs, label: backlog}
58+
sprint1 --> plan@{shape: docs, label: day-plan}
59+
sprint1 --> moduleSuccess@{shape: docs, label: success}
60+
```
61+
62+
## Adding Prep Work
63+
64+
The `prep` directory contains an `index.md` file listing all files to be included with a module. Each entry requires two pieces of information:
65+
66+
- `name` specifies the page's title in the page map
67+
- `src` is the path to the file. This can either be a relative filepath from `curriculum/common-content/en` or a url to an external source, eg. GitHub.
68+
69+
Within `common-content` prep material is split across two directories:
70+
71+
- `blocks` contains content which can be reused across different courses
72+
- `module` contains content specific to a particular module, subdivided by topic
73+
74+
```mermaid
75+
---
76+
title: common-content structure
77+
---
78+
flowchart TD
79+
common@{ shape: docs, label: common-content } --> en@{ shape: docs, label: en }
80+
en --> blocks@{ shape: docs, label: blocks }
81+
en --> module@{ shape: docs, label: module }
82+
```
83+
84+
When adding new content:
85+
86+
1. Create a new directory in the appropriate place. These can be nested within `blocks` or `modules`.
87+
2. In your directory create `index.md`
88+
3. Provide the appropriate front matter:
89+
90+
```md
91+
+++
92+
title = "Document Title"
93+
<!-- duration in minutes -->
94+
time = 120
95+
<!-- learning objectives as strings. -->
96+
objectives = [
97+
"Learning objective 1",
98+
"Learning objective 2",
99+
"Learning objective 3",
100+
]
101+
<!-- build config - no need to edit this -->
102+
[build]
103+
render = "never"
104+
list = "local"
105+
publishResources = false
106+
+++
107+
```
108+
109+
4. Write your content using markdown. Notes on styling and using render hooks can be found in the [Common documentation](https://common.codeyourfuture.io/).
110+
5. Add the path to your content to `index.md` in the `prep` directory.
111+
112+
If your content is loaded from an external GitHub url you can skip steps 1 and 2.
113+
114+
Changes made to prep content should appear immediately when the site is rebuilt locally. If they do not you likely need to clear a cached version of the site.
115+
116+
### Code Examples
117+
118+
If code examples are required for a task they can be stored in the module's repository. Every module has its own repo named `Module-<MODULE-NAME>`, eg. [Module-Data-Groups](https://github.com/CodeYourFuture/Module-Data-Groups). Add code to the appropriate sprint and include a link to it in your markdown.
119+
120+
121+
## Adding Backlog Items
122+
123+
The backlogs for each sprint are generated by importing issues from GitHub. The [issues page](https://github.com/CodeYourFuture/Module-Data-Groups/issues) of each module's repo lists all exercises associated with the module with labels used to identify which sprint they belong to.
124+
125+
To add a new backlog exercise, open a new issue and complete the template with the required information. Check out a [current backlog](https://itp.codeyourfuture.io/data-groups/sprints/1/backlog/) to see examples of what is required.
126+
127+
To remove an item from a backlog you can close the relevant issue.
128+
129+
> [!CAUTION]
130+
> Other internal systems reference these issues - every issue **must** have labels for `sprint`, `submission` and `priority`.
131+
132+
To prevent unnecessary calls to the GitHub API responses are cached. When testing locally the cache will need to be cleared in order to see changes made to GitHub issues.
133+
134+
135+
## Updating the Day Plan
136+
137+
Similar to prep work, the `day-plan` directory contains an `index.md` file laying out the structure of the day. It covers two types of content:
138+
139+
- Activities repeated across multiple classes (energisers, lunch breaks, etc.). These are stored in `common-content/en/blocks`.
140+
- Workshops for that class.
141+
142+
Workshops can be defined in various places. Some are stored in `common-content/en/module` similar to prep content.
143+
144+
Most workshops are stored in the [CYF-Workshops repository](https://github.com/CodeYourFuture/CYF-Workshops#:~:text=Welcome%20to%20CYF%20Workshops) and imported to `day-plan/index.md` using their url. There are some additional features available through this repository explained in its README.
145+
146+
Workshops may also be created in stand-alone repositories if needed.
147+
148+
149+
## Updating Success Criteria
150+
151+
At the sprint level, the [End of Sprint Review](https://itp.codeyourfuture.io/data-groups/sprints/1/success/) page lists all learning objectives defined in prep work and backlog exercises. This is generated at build time and does not need to be manually edited. If your learning objectives are not showing up here check they are formatted correctly.
152+
153+
The [End of Module Review](https://itp.codeyourfuture.io/data-groups/success/) lists the criteria for passing the module. These criteria are referenced by other teams within the organisation - please **do not edit them** without prior discussion with a member of the core team.

org-cyf-guides/content/contributing/contributors/index.md

Lines changed: 0 additions & 19 deletions
This file was deleted.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)