Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into update-deployment-sec…
Browse files Browse the repository at this point in the history
…tion

* origin/main: (26 commits)
  fix objective indexing
  restore js3 prep workshops
  making site run again now modules are being consumed correctly (CodeYourFuture#541)
  Feature: replace labs again (CodeYourFuture#540)
  Update: move netlify tooling (CodeYourFuture#539)
  feature; stage 2: mounting this repo as modules (CodeYourFuture#538)
  Feature: stage 1: port labs  (CodeYourFuture#537)
  Feature: Daniel's tooling for local module replacements (CodeYourFuture#535)
  Update style of the hamburger menu (CodeYourFuture#478) (CodeYourFuture#528)
  Update content/en/js3/success/index.md
  Update content/en/js3/success/index.md
  add step->prep workshops for JS2 & JS3
  Add minutes
  archetypes for all required module views (CodeYourFuture#529)
  add major change warning (CodeYourFuture#527)
  parametrize createFilmCard with template (CodeYourFuture#524)
  link to the module js3 project
  reference the module js3 project success criteria in the js3 module success page
  Update index adding PD success.md (CodeYourFuture#518)
  Update index Prep DB/SQL S4 PD.md (CodeYourFuture#511)
  ...
  • Loading branch information
sztupy committed Jan 25, 2024
2 parents 522df48 + a2a507b commit 3d86c97
Show file tree
Hide file tree
Showing 896 changed files with 3,356 additions and 1,085 deletions.
4 changes: 4 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# WARNING MAJOR STRUCTURAL CHANGE IN PROGRESS 12 JAN 2024

Hello contributor! In between you opening this PR and you merging it, you may find a large conflict appears. This is because this site will be broken down into Hugo modules in the same way CodeYourFuture/curriculum-labs is currently structured. The platform (features) will move into the common-theme module and the content (text) will move into the common-content module. The pages will move into the organisation directory. (org-cyf for CYF and org-mcb for MigraCode) You will need to find the new location of your content and move it there. If you are unsure, please ask in the comment thread of this ticket.

## What does this change?

Module:
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/check-consistency.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Check consistency

on:
pull_request:
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.21
- name: Build tooling
run: (cd tooling/go && go build ./cmd/local-overrides-enforcer)
- name: Check consistency
run: ./tooling/go/local-overrides-enforcer
17 changes: 17 additions & 0 deletions .github/workflows/test-tooling.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Test tooling

on:
pull_request:
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.21
- name: Run tooling tests
run: cd tooling/go && go test ./...
File renamed without changes.
185 changes: 35 additions & 150 deletions README.md

Large diffs are not rendered by default.

6 changes: 0 additions & 6 deletions archetypes/default.md

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
+++
title = 'Understanding Requirements'
headless = true
time = 20
facilitation = false
vocabulary=["Requirements", "User Stories"]
emoji= '🧩'
[objectives]
1='Identify described requirements'
2='Identify extra requirements from your own experience'
3='Resolve trade-offs in conflicting requirements'
4='Translate requirements into high-level design outlines'
+++

Communication is _hard_. Today, let’s explore some ways we communicate with each other in software development. It’s not enough to draw a picture of a website and assume the other person will build what you imagine. It’s never a good idea to assume shared context or shared interpretations.

So how do we understand what to do? By understanding **requirements**.
Expand All @@ -17,9 +31,3 @@ We're going to think about a few projects and discover some requirements. This i
{{<note type="tip" title="Remember" >}}
To make great software, we need to think about people, not just code.
{{</note>}}

### User Stories

We can discover requirements with something called 'User Stories'. The simplest user story looks like this:

> As a [type of user], I can [achieve some goal].
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ emoji= '🧩'
4='Translate requirements into high-level design outlines'
+++

{{< snippet "snippets/requirements.md" >}}

#### Imagine a coursework tracker

As trainees, you have coursework to do. Imagine a website which tracks how coursework is going for you all. Thinking about that website, some user stories could be:
Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ const film = {
duration: 112,
};

const createFilmCard = (film) => {
const card = document.getElementById("film-card").content.cloneNode(true);
const createFilmCard = (template, film) => {
const card = template.content.cloneNode(true);
// Now we are querying our cloned fragment, not the entire page.
card.querySelector("h3").textContent = film.title;
card.querySelector("p").textContent = `Director: ${film.director}`;
Expand All @@ -33,7 +33,7 @@ const createFilmCard = (film) => {
// Return the card, rather than directly appending it to the page
return card;
};
const template = document.getElementById("filmCard");
const template = document.getElementById("film-card");
const filmCard = createFilmCard(template, film);

// Remember we need to append the card to the DOM for it to appear.
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ emoji= '🧩'
2='Identify and explain the key user stories for your project'
+++

{{< snippet "snippets/requirements.md" >}}

In addition to [who] and [what], good user stories also include [why]

> As a [who], I can [what] so that **[why]**
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions common-content/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module github.com/CodeYourFuture/curriculum/common-content

go 1.21.3
5 changes: 5 additions & 0 deletions common-content/hugo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

[module]
[module.hugoVersion]
extended = true
min = "0.116.0"
13 changes: 13 additions & 0 deletions common-theme/archetypes/backlog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
+++
title = 'backlog'
layout = 'backlog'
emoji= '🥞'
menu_level = ['sprint']
weight = 2
backlog= 'Module-Template'
backlog_filter= 'Week 1'
+++

This view lists all the issues for the current sprint. It is looking for a repo in your org named `Module-<module-name>` where it expects issues to live. You can edit this of course.

Organise your issues with labels, like 'Week 1' or 'Week 2' to filter them into the right sprint. Pass the label into the `backlog_filter` in the front matter to filter the issues.
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
+++
title = 'block1'
title = '{{ replace .Name "-" " " | title }}'
headless = true
time = 30
facilitation = false
threads = ['to-be-assigned']
emoji= '🧩'
[objectives]
1='Use the Teach Tech Together guide to construct your objectives'
2='Limit the objectives to 3-5 items'
3='Write objectives you can measure'
+++

45 changes: 45 additions & 0 deletions common-theme/archetypes/day-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
+++
title = 'day-plan'
layout = 'day-plan'
emoji= '📅'
menu_level = ['sprint']
weight = 3
[[blocks]]
name="Energiser"
src="blocks/energiser"
[[blocks]]
name="PD Placeholder to be replaced with PD link"
src="blocks/pd-placeholder"
[[blocks]]
name="Morning break"
src="blocks/morning-break"
[[blocks]]
name="Placeholder Workshop"
src="https://github.com/CodeYourFuture/CYF-Workshops/tree/main/template"
time="60"
[[blocks]]
name="Lunch"
src="blocks/lunch"
[[blocks]]
name="Study Group 2"
src="blocks/study-group"
time="90"
[[blocks]]
name="Code Review"
src="https://github.com/CodeYourFuture/Module-Template/pulls"
time="0"
[[blocks]]
name="Afternoon break"
src="blocks/afternoon-break"
[[blocks]]
name="Study Group 2"
src="blocks/study-group"
time="60"
[[blocks]]
name="Retro"
src="blocks/retro"
+++

This example day plan is a template for you to use. It is a good idea to have a consistent structure for your day plans so that everyone knows _what_ to do _when_. The day plan will create a schedule from the time (in minutes) stored on each block using the `time-stamper` web component. You can override this time by adding a `time` parameter in the front matter as shown above.

This view doesn't expect any content in the `.Content` section; delete these instructions. If you want to add a description of the day, add it to a `.Description` parameter in the front matter.
5 changes: 5 additions & 0 deletions common-theme/archetypes/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
+++
title = '{{ replace .Name "-" " " | title }}'
+++

This is just a single. You can use this to create an uncomplicated basic page.
32 changes: 32 additions & 0 deletions common-theme/archetypes/module-prep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
+++
title = 'prep'
description = 'This work must be done to prepare for this module'
layout = 'prep'
emoji= '🧑🏾‍💻'
menu_level = ['module']
weight = 1
[[blocks]]
name="Local"
src="blocks/types/local"
[[blocks]]
name="Readme"
src="https://github.com/CodeYourFuture/Module-Template"
[[blocks]]
name="Youtube video or playlist"
src="https://www.youtube.com/watch?v=P1ww1IXRfTA"
[[blocks]]
name="Slide - an image with caption"
caption="With caption please!"
src="https://github.com/MaggieAppleton/maggieappleton.com-V2/blob/main/public/images/posts/programming-pictures/PicturesProgramming-26_vnlzye-1100.jpg"
[[blocks]]
name="PD syllabus website"
src="https://cyf-pd.netlify.app/blocks/agreements/readme/"
[[blocks]]
name="Issue, just one"
src="https://github.com/CodeYourFuture/Module-JS1/issues/8"
[[blocks]]
name="Pullreqs, list"
src="https://github.com/CodeYourFuture/Module-JS1"
+++
## Anything written in .Content needs an h2
This example prep view has an example of each type of block so you can see how the blocks work.
11 changes: 11 additions & 0 deletions common-theme/archetypes/module-success.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = 'success'
layout = 'success'
emoji= ''
menu_level = ['module']
weight = 4
+++

This view compiles learning objectives from the day plan and prep view into a checkbox list to help trainees check in on their progress.

You can initiate a module level success view as well and write in some overall outcomes or success criteria.
17 changes: 17 additions & 0 deletions common-theme/archetypes/module.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
+++
title = '{{ replace .Name "-" " " | title }}'
description = 'The plan for {{ replace .Name "-" " " | title }}'
layout = 'module'
emoji= '📚'
menu = ['syllabus']
+++

### Quickstart

Generate a template module by running `./module_create.sh <module-name>` in the root of your website. This script produces a complete module structure with all the necessary files and folders from the Hugo archetypes stored in the `archetypes` folder. Create any single archetype by running `hugo new --kind $ARCHETYPE_NAME $PATH_TO_NEW_FILE`.

The template module contains a prep view to express all your entry criteria and setup instructions for the module, 4 template sprints to plan the weekly work, a product folder to organise the module project, and a success view to express the exit criteria and handoff details.

Edit this basic setup to suit your needs. The module folder is located at content/$MODULE_NAME and it creates pages matching the folder structure on your website.

If you don't want this module to show up on the default menu, remove `menu = ['syllabus']` from the front matter. The pages will still be accessible via the URLs.
32 changes: 32 additions & 0 deletions common-theme/archetypes/prep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
+++
title = 'prep'
description = 'Note the general topic'
layout = 'prep'
emoji= '🧑🏾‍💻'
menu_level = ['sprint']
weight = 1
[[blocks]]
name="Local"
src="blocks/types/local"
[[blocks]]
name="Readme"
src="https://github.com/CodeYourFuture/Module-Template"
[[blocks]]
name="Youtube video or playlist"
src="https://www.youtube.com/watch?v=P1ww1IXRfTA"
[[blocks]]
name="Slide - an image with caption"
caption="With caption please!"
src="https://github.com/MaggieAppleton/maggieappleton.com-V2/blob/main/public/images/posts/programming-pictures/PicturesProgramming-26_vnlzye-1100.jpg"
[[blocks]]
name="PD syllabus website"
src="https://cyf-pd.netlify.app/blocks/agreements/readme/"
[[blocks]]
name="Issue, just one"
src="https://github.com/CodeYourFuture/Module-JS1/issues/8"
[[blocks]]
name="Pullreqs, list"
src="https://github.com/CodeYourFuture/Module-JS1"
+++
## Anything written in .Content needs an h2
This example prep view has an example of each type of block so you can see how the blocks work.
10 changes: 10 additions & 0 deletions common-theme/archetypes/product-backlog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
+++
title = 'backlog'
layout = 'backlog'
emoji= '🥞'
menu_level = ['product']
weight = 2
backlog= 'React-Module-Project'
+++

This view lists all the issues for the project. It is looking for a repo in your org named `React-Module-Project` where it expects issues to live. Wire in your actual project repo.
20 changes: 20 additions & 0 deletions common-theme/archetypes/product-prep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
+++
title = 'prep'
description = 'Wire in your repo docs, example given'
layout = 'prep'
emoji= '🧑🏾‍💻'
menu_level = ['product']
weight = 1
[[blocks]]
name="Planning and organising your team"
src="https://github.com/CodeYourFuture/React-Module-Project/tree/main/docs/plan/"
[[blocks]]
name="Building your product"
src="https://github.com/CodeYourFuture/React-Module-Project/tree/main/docs/build/"
[[blocks]]
name="Test driven development"
src="https://github.com/CodeYourFuture/React-Module-Project/tree/main/docs/test/"
[[blocks]]
name="Shipping your product"
src="https://github.com/CodeYourFuture/React-Module-Project/tree/main/docs/ship/"
+++
11 changes: 11 additions & 0 deletions common-theme/archetypes/product.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = 'Product'
description = 'The module project for {{ replace .Name "-" " " | title }}'
layout = 'product'
emoji= '🎁'
menu_level = ['module']
+++

Each module should have a module-length project that produces a tangible product. These products form a starting point for trainee portfolios, and are mandatory for progression.

The actual instructions are generally pulled from the project repo.
9 changes: 9 additions & 0 deletions common-theme/archetypes/sprint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
+++
title = 'Sprint {{ replace .Name "-" " " | title }}'
layout = 'sprint'
emoji= '🎽'
menu_level = ['module']
weight = 2
+++

This is an index to organise the views for a sprint block. If you want to remove this sprint from the menu, remove the `menu_level` parameter from the front matter. We don't use Hugo menus as Hugo doesn't like having duplicate items, but we want all our modules and sprints to have consistent, repeated (predictable) names.
11 changes: 11 additions & 0 deletions common-theme/archetypes/success.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = 'success'
layout = 'success'
emoji= ''
menu_level = ['sprint']
weight = 4
+++

This view compiles learning objectives from the day plan and prep view into a checkbox list to help trainees check in on their progress.

You can initiate a module level success view as well and write in some overall outcomes or success criteria.
1 change: 1 addition & 0 deletions common-theme/assets/images/site-logo/logo.svg
10 changes: 10 additions & 0 deletions common-theme/assets/jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"*": [
"*"
]
}
}
}
Loading

0 comments on commit 3d86c97

Please sign in to comment.