From 412f71a867b434329c6c515f3b33fda44b4a274a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Metin=20Bar=C4=B1=C5=9F?= <46865991+metinbaris@users.noreply.github.com> Date: Wed, 10 Jan 2024 14:21:04 +0300 Subject: [PATCH 01/26] Fix console error for alert (#503) (#507) --- assets/scripts/alert-message.js | 53 +++++++++++++++++++++++++++++++++ assets/scripts/app.js | 27 ----------------- layouts/partials/scripts.html | 4 ++- 3 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 assets/scripts/alert-message.js diff --git a/assets/scripts/alert-message.js b/assets/scripts/alert-message.js new file mode 100644 index 000000000..b91fa2ed4 --- /dev/null +++ b/assets/scripts/alert-message.js @@ -0,0 +1,53 @@ +class AlertMessage { + constructor() { + const alertEl = document.querySelector(".c-alert"); + if (alertEl instanceof Element === false) return; + + this.alertEl = alertEl; + + this.attachCloseListener(); + this.show(); + } + + attachCloseListener() { + const alertClose = this.alertEl.querySelector(".close"); + + alertClose.addEventListener("click", (event) => { + this.alertEl.setAttribute("hidden", true); + }); + } + + getUrlAlertParameters() { + // Extract message and error parameters from the URL + const urlParams = new URLSearchParams(window.location.search); + const message = urlParams.get("message"); + const error = urlParams.get("error"); + + const alertParameters = { message: message, error: error }; + + return alertParameters; + } + + show() { + const urlParams = this.getUrlAlertParameters(); + + // Display a message if 'message' parameter is present + if (urlParams.message) { + this.alertEl.removeAttribute("hidden"); + this.alertEl.classList.remove("c-alert--warning"); + this.alertEl.classList.add("c-alert--info"); + this.alertEl.querySelector(".alert__message").innerHTML = + urlParams.message; + } + + // Display an error if 'error' parameter is present + if (urlParams.error) { + this.alertEl.removeAttribute("hidden"); + this.alertEl.classList.remove("c-alert--info"); + this.alertEl.classList.add("c-alert--warning"); + this.alertEl.querySelector(".alert__message").innerHTML = urlParams.error; + } + } +} + +new AlertMessage(); diff --git a/assets/scripts/app.js b/assets/scripts/app.js index 2e196c3f8..84999f9bb 100644 --- a/assets/scripts/app.js +++ b/assets/scripts/app.js @@ -38,10 +38,6 @@ editableCodeBlocks.forEach((block) => { block.setAttribute("autocapitalize", "off"); }); -// alerts for issue cloning (error/success message) -const alert = document.querySelector(".c-alert"); -const alertClose = alert.querySelector(".close"); - // Fix for GFM task lists // https://github.com/github/cmark-gfm/issues/299 window.addEventListener("DOMContentLoaded", (event) => { @@ -53,27 +49,4 @@ window.addEventListener("DOMContentLoaded", (event) => { const parent = item.parentNode; parent.innerHTML = ``; }); - - // get query param for clone issue message/error - const urlParams = new URLSearchParams(window.location.search); - const message = urlParams.get("message"); - const error = urlParams.get("error"); - - if (message) { - alert.removeAttribute("hidden"); - alert.classList.remove("c-alert--warning"); - alert.classList.add("c-alert--info"); - alert.querySelector(".alert__message").innerHTML = message; - } - - if (error) { - alert.removeAttribute("hidden"); - alert.classList.remove("c-alert--info"); - alert.classList.add("c-alert--warning"); - alert.querySelector(".alert__message").innerHTML = error; - } - - alertClose.addEventListener("click", (event) => { - alert.setAttribute("hidden", true); - }); }); diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index ea66d8653..723c6ad46 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -9,4 +9,6 @@ {{ $tabs := resources.Get "scripts/tab-panels.js" | resources.Minify }} {{ $darkmode := resources.Get "scripts/dark-mode.js" | resources.Minify }} - \ No newline at end of file + +{{ $alertmessage := resources.Get "scripts/alert-message.js" | resources.Minify }} + \ No newline at end of file From a51439ecde239ec52c93340ff877755072ab1d89 Mon Sep 17 00:00:00 2001 From: Sally McGrath Date: Wed, 10 Jan 2024 06:37:50 -0500 Subject: [PATCH 02/26] Revert "Fix console error for alert (#503) (#507)" (#519) This reverts commit 412f71a867b434329c6c515f3b33fda44b4a274a. --- assets/scripts/alert-message.js | 53 --------------------------------- assets/scripts/app.js | 27 +++++++++++++++++ layouts/partials/scripts.html | 4 +-- 3 files changed, 28 insertions(+), 56 deletions(-) delete mode 100644 assets/scripts/alert-message.js diff --git a/assets/scripts/alert-message.js b/assets/scripts/alert-message.js deleted file mode 100644 index b91fa2ed4..000000000 --- a/assets/scripts/alert-message.js +++ /dev/null @@ -1,53 +0,0 @@ -class AlertMessage { - constructor() { - const alertEl = document.querySelector(".c-alert"); - if (alertEl instanceof Element === false) return; - - this.alertEl = alertEl; - - this.attachCloseListener(); - this.show(); - } - - attachCloseListener() { - const alertClose = this.alertEl.querySelector(".close"); - - alertClose.addEventListener("click", (event) => { - this.alertEl.setAttribute("hidden", true); - }); - } - - getUrlAlertParameters() { - // Extract message and error parameters from the URL - const urlParams = new URLSearchParams(window.location.search); - const message = urlParams.get("message"); - const error = urlParams.get("error"); - - const alertParameters = { message: message, error: error }; - - return alertParameters; - } - - show() { - const urlParams = this.getUrlAlertParameters(); - - // Display a message if 'message' parameter is present - if (urlParams.message) { - this.alertEl.removeAttribute("hidden"); - this.alertEl.classList.remove("c-alert--warning"); - this.alertEl.classList.add("c-alert--info"); - this.alertEl.querySelector(".alert__message").innerHTML = - urlParams.message; - } - - // Display an error if 'error' parameter is present - if (urlParams.error) { - this.alertEl.removeAttribute("hidden"); - this.alertEl.classList.remove("c-alert--info"); - this.alertEl.classList.add("c-alert--warning"); - this.alertEl.querySelector(".alert__message").innerHTML = urlParams.error; - } - } -} - -new AlertMessage(); diff --git a/assets/scripts/app.js b/assets/scripts/app.js index 84999f9bb..2e196c3f8 100644 --- a/assets/scripts/app.js +++ b/assets/scripts/app.js @@ -38,6 +38,10 @@ editableCodeBlocks.forEach((block) => { block.setAttribute("autocapitalize", "off"); }); +// alerts for issue cloning (error/success message) +const alert = document.querySelector(".c-alert"); +const alertClose = alert.querySelector(".close"); + // Fix for GFM task lists // https://github.com/github/cmark-gfm/issues/299 window.addEventListener("DOMContentLoaded", (event) => { @@ -49,4 +53,27 @@ window.addEventListener("DOMContentLoaded", (event) => { const parent = item.parentNode; parent.innerHTML = ``; }); + + // get query param for clone issue message/error + const urlParams = new URLSearchParams(window.location.search); + const message = urlParams.get("message"); + const error = urlParams.get("error"); + + if (message) { + alert.removeAttribute("hidden"); + alert.classList.remove("c-alert--warning"); + alert.classList.add("c-alert--info"); + alert.querySelector(".alert__message").innerHTML = message; + } + + if (error) { + alert.removeAttribute("hidden"); + alert.classList.remove("c-alert--info"); + alert.classList.add("c-alert--warning"); + alert.querySelector(".alert__message").innerHTML = error; + } + + alertClose.addEventListener("click", (event) => { + alert.setAttribute("hidden", true); + }); }); diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index 723c6ad46..ea66d8653 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -9,6 +9,4 @@ {{ $tabs := resources.Get "scripts/tab-panels.js" | resources.Minify }} {{ $darkmode := resources.Get "scripts/dark-mode.js" | resources.Minify }} - -{{ $alertmessage := resources.Get "scripts/alert-message.js" | resources.Minify }} - \ No newline at end of file + \ No newline at end of file From 4a4359f371ab814f155d7887c3b38154a0c1af73 Mon Sep 17 00:00:00 2001 From: Sally McGrath Date: Wed, 10 Jan 2024 06:58:40 -0500 Subject: [PATCH 03/26] Fix console error for alert (#503) (#521) Co-authored-by: metinbaris --- assets/scripts/alert-message.js | 53 +++++++++++++++++++++++++++++++++ assets/scripts/app.js | 27 ----------------- layouts/partials/scripts.html | 4 ++- 3 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 assets/scripts/alert-message.js diff --git a/assets/scripts/alert-message.js b/assets/scripts/alert-message.js new file mode 100644 index 000000000..b91fa2ed4 --- /dev/null +++ b/assets/scripts/alert-message.js @@ -0,0 +1,53 @@ +class AlertMessage { + constructor() { + const alertEl = document.querySelector(".c-alert"); + if (alertEl instanceof Element === false) return; + + this.alertEl = alertEl; + + this.attachCloseListener(); + this.show(); + } + + attachCloseListener() { + const alertClose = this.alertEl.querySelector(".close"); + + alertClose.addEventListener("click", (event) => { + this.alertEl.setAttribute("hidden", true); + }); + } + + getUrlAlertParameters() { + // Extract message and error parameters from the URL + const urlParams = new URLSearchParams(window.location.search); + const message = urlParams.get("message"); + const error = urlParams.get("error"); + + const alertParameters = { message: message, error: error }; + + return alertParameters; + } + + show() { + const urlParams = this.getUrlAlertParameters(); + + // Display a message if 'message' parameter is present + if (urlParams.message) { + this.alertEl.removeAttribute("hidden"); + this.alertEl.classList.remove("c-alert--warning"); + this.alertEl.classList.add("c-alert--info"); + this.alertEl.querySelector(".alert__message").innerHTML = + urlParams.message; + } + + // Display an error if 'error' parameter is present + if (urlParams.error) { + this.alertEl.removeAttribute("hidden"); + this.alertEl.classList.remove("c-alert--info"); + this.alertEl.classList.add("c-alert--warning"); + this.alertEl.querySelector(".alert__message").innerHTML = urlParams.error; + } + } +} + +new AlertMessage(); diff --git a/assets/scripts/app.js b/assets/scripts/app.js index 2e196c3f8..84999f9bb 100644 --- a/assets/scripts/app.js +++ b/assets/scripts/app.js @@ -38,10 +38,6 @@ editableCodeBlocks.forEach((block) => { block.setAttribute("autocapitalize", "off"); }); -// alerts for issue cloning (error/success message) -const alert = document.querySelector(".c-alert"); -const alertClose = alert.querySelector(".close"); - // Fix for GFM task lists // https://github.com/github/cmark-gfm/issues/299 window.addEventListener("DOMContentLoaded", (event) => { @@ -53,27 +49,4 @@ window.addEventListener("DOMContentLoaded", (event) => { const parent = item.parentNode; parent.innerHTML = ``; }); - - // get query param for clone issue message/error - const urlParams = new URLSearchParams(window.location.search); - const message = urlParams.get("message"); - const error = urlParams.get("error"); - - if (message) { - alert.removeAttribute("hidden"); - alert.classList.remove("c-alert--warning"); - alert.classList.add("c-alert--info"); - alert.querySelector(".alert__message").innerHTML = message; - } - - if (error) { - alert.removeAttribute("hidden"); - alert.classList.remove("c-alert--info"); - alert.classList.add("c-alert--warning"); - alert.querySelector(".alert__message").innerHTML = error; - } - - alertClose.addEventListener("click", (event) => { - alert.setAttribute("hidden", true); - }); }); diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index ea66d8653..723c6ad46 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -9,4 +9,6 @@ {{ $tabs := resources.Get "scripts/tab-panels.js" | resources.Minify }} {{ $darkmode := resources.Get "scripts/dark-mode.js" | resources.Minify }} - \ No newline at end of file + +{{ $alertmessage := resources.Get "scripts/alert-message.js" | resources.Minify }} + \ No newline at end of file From cdccb5ca63bc52ac23fa8029c11b299c9da347a7 Mon Sep 17 00:00:00 2001 From: MitchLloyd Date: Wed, 10 Jan 2024 16:23:29 +0000 Subject: [PATCH 04/26] add first attempt js3 step-through-prep workshops (#523) Co-authored-by: Dedekind561 --- content/en/js3/sprints/1/prep/index.md | 3 +++ content/en/js3/sprints/2/prep/index.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/content/en/js3/sprints/1/prep/index.md b/content/en/js3/sprints/1/prep/index.md index 63dfca265..a39782feb 100644 --- a/content/en/js3/sprints/1/prep/index.md +++ b/content/en/js3/sprints/1/prep/index.md @@ -10,6 +10,9 @@ backlog_filter= 'Week 1' name="data to ui" src="js3/blocks/data-ui" [[blocks]] +name="Step-through-prep workshop" +src="https://www.youtube.com/watch?v=HgbzMhJgdbU" +[[blocks]] name="now-showing" src="js3/blocks/now-showing" [[blocks]] diff --git a/content/en/js3/sprints/2/prep/index.md b/content/en/js3/sprints/2/prep/index.md index 84f13953a..9ca48503c 100644 --- a/content/en/js3/sprints/2/prep/index.md +++ b/content/en/js3/sprints/2/prep/index.md @@ -11,6 +11,9 @@ backlog_filter= 'Week 2' name="Reacting" src="js3/blocks/reacting" [[blocks]] +name="Step-through-prep workshop" +src="https://www.youtube.com/watch?v=j2Iz8ZNm3n8" +[[blocks]] name="Decomposition" src="js3/blocks/break-down" [[blocks]] From 749127b105730f1aecc098123e1920d5b537b86a Mon Sep 17 00:00:00 2001 From: KFK <80272258+kfklein15@users.noreply.github.com> Date: Wed, 10 Jan 2024 21:01:27 +0000 Subject: [PATCH 05/26] Update index JS1 Pd success.md (#522) --- content/en/js1/success/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/js1/success/index.md b/content/en/js1/success/index.md index 7c71b8127..02f0c104c 100644 --- a/content/en/js1/success/index.md +++ b/content/en/js1/success/index.md @@ -10,6 +10,8 @@ backlog= 'Module-JS1' 1="Every trainee has received and responded to at least one code review" 2="Every trainee has opened at least 3 PRs to the module repo" 3="70% of cohort is at or beyond milestones" +4="Every trainee has provided and received feedback & actionable points from a fellow trainee" +5="Every trainee understood the different roles in the tech industry and the skills required by each of them." +++ Every module, you must review your progress to understand if your cohort can progress to the next stage. The conditions for success are listed below. If your cohort has met all of these conditions, you can progress to the next module. If you have not met them yet, what actions will you take to meet them? From 8339cd1640a67a470cb46536e0d5ceebad765ccf Mon Sep 17 00:00:00 2001 From: KFK <80272258+kfklein15@users.noreply.github.com> Date: Wed, 10 Jan 2024 21:02:39 +0000 Subject: [PATCH 06/26] Update index induction PD Success.md (#520) --- content/en/induction/success/index.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/en/induction/success/index.md b/content/en/induction/success/index.md index 4788094f1..d2cb58a34 100644 --- a/content/en/induction/success/index.md +++ b/content/en/induction/success/index.md @@ -7,4 +7,13 @@ menu_level = ['module'] weight = 11 backlog= 'Module-Induction' backlog_filter= 'Induction' +[[objectives]] +1="Every trainee has understood the goals of the Software Development course and what is expected of them" +2="Every trainee has shared their availability on a shared spreadsheet" +3="Every trainee has paired up with another trainee to work together at least once" ++++ + +Every module, you must review your progress to understand if your cohort can progress to the next stage. The conditions for success are listed below. If your cohort has met all of these conditions, you can progress to the next module. If you have not met them yet, what actions will you take to meet them? + +Discuss your plan in your class channel. +++ From 8c7967fcaed75a57c30e4d4e2ee53d2638497eba Mon Sep 17 00:00:00 2001 From: KFK <80272258+kfklein15@users.noreply.github.com> Date: Thu, 11 Jan 2024 00:52:32 +0000 Subject: [PATCH 07/26] Update index Prep DB/SQL S4 PD.md (#511) --- content/en/databases/sprints/4/prep/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/en/databases/sprints/4/prep/index.md b/content/en/databases/sprints/4/prep/index.md index 72f94693a..988107c78 100644 --- a/content/en/databases/sprints/4/prep/index.md +++ b/content/en/databases/sprints/4/prep/index.md @@ -6,6 +6,12 @@ menu_level = ['sprint'] weight = 1 backlog= 'Module-Databases' backlog_filter= 'Week 4' +[[blocks]] +name="Collaborative Job Hunting" +src="https://cyf-pd.netlify.app/blocks/prep-collaborative-job-hunt/readme/" +[[blocks]] +name="Understanding employers needs" +src="https://cyf-pd.netlify.app/blocks/understanding-employers-needs/readme/" +++ From a4863f0ca86179e6ec10042b268266da5d43e984 Mon Sep 17 00:00:00 2001 From: KFK <80272258+kfklein15@users.noreply.github.com> Date: Thu, 11 Jan 2024 00:53:23 +0000 Subject: [PATCH 08/26] Update index adding PD success.md (#518) --- content/en/html-css/success/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/html-css/success/index.md b/content/en/html-css/success/index.md index ac45dbbbd..a1c0d498f 100644 --- a/content/en/html-css/success/index.md +++ b/content/en/html-css/success/index.md @@ -10,6 +10,8 @@ backlog= 'Module-HTML-CSS' 1="Every trainee has received and responded to at least one code review" 2="Every trainee has opened at least 3 PRs to the module repo" 3="70% of cohort is at or beyond milestones" +4="Every trainee has listed their transferable skills for a tech job" +5="Every trainee has added at least three smart goals to their professional development plan" +++ Every module, you must review your progress to understand if your cohort can progress to the next stage. The conditions for success are listed below. If your cohort has met all of these conditions, you can progress to the next module. If you have not met them yet, what actions will you take to meet them? From 3bc6e9091801c2c66e713e900616405d144bd5c1 Mon Sep 17 00:00:00 2001 From: Dedekind561 Date: Thu, 11 Jan 2024 16:13:15 +0000 Subject: [PATCH 09/26] reference the module js3 project success criteria in the js3 module success page --- content/en/js3/success/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/en/js3/success/index.md b/content/en/js3/success/index.md index c41192cda..ce80b0aed 100644 --- a/content/en/js3/success/index.md +++ b/content/en/js3/success/index.md @@ -7,9 +7,10 @@ menu_level = [ "module" ] weight = 11 backlog= "Module-JS3" [[objectives]] -1= "Every trainee has received and responded to at least one code review" -2= "Every trainee has opened at least 3 PRs to the module repo" -3= "70% of cohort is at or beyond milestones" +1="Every trainee has received and responded to at least one code review" +2="Every trainee has a deployed version of their JS3 Module Project with the features defined in levels up to and including level 500" +3="Every trainee has swapped with another member of their class whilst implementing the levels in the JS3 Module Project as per the project brief" +4="70% of cohort is at or beyond milestones" +++ Every module, you must review your progress to understand if your cohort can progress to the next stage. The conditions for success are listed below. If your cohort has met all of these conditions, you can progress to the next module. If you have not met them yet, what actions will you take to meet them? From 2bd208bf8893e2b7e0ddb28effb21d0373e7a8dd Mon Sep 17 00:00:00 2001 From: Dedekind561 Date: Thu, 11 Jan 2024 16:20:39 +0000 Subject: [PATCH 10/26] link to the module js3 project --- content/en/js3/success/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/js3/success/index.md b/content/en/js3/success/index.md index ce80b0aed..73c92933d 100644 --- a/content/en/js3/success/index.md +++ b/content/en/js3/success/index.md @@ -15,4 +15,6 @@ backlog= "Module-JS3" Every module, you must review your progress to understand if your cohort can progress to the next stage. The conditions for success are listed below. If your cohort has met all of these conditions, you can progress to the next module. If you have not met them yet, what actions will you take to meet them? +You can find the requirements for each level of the Module JS3 project at the following link πŸ‘‰ https://github.com/CodeYourFuture/JS3-Module-Project/tree/main/levels + Discuss your plan in your class channel. From 7747a314e9a73471fe021a7eb0a8312704118b3e Mon Sep 17 00:00:00 2001 From: MitchLloyd Date: Fri, 12 Jan 2024 01:35:49 +0000 Subject: [PATCH 11/26] parametrize createFilmCard with template (#524) Co-authored-by: Dedekind561 --- content/en/js3/blocks/components/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/js3/blocks/components/index.md b/content/en/js3/blocks/components/index.md index 9fb1dd0d4..0a90834a7 100644 --- a/content/en/js3/blocks/components/index.md +++ b/content/en/js3/blocks/components/index.md @@ -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}`; @@ -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. From f2e0eacca6dc6911ee9518d91273013a3b70d466 Mon Sep 17 00:00:00 2001 From: Sally McGrath Date: Fri, 12 Jan 2024 19:15:21 -0500 Subject: [PATCH 12/26] add major change warning (#527) merge conflicts will occur - they are small but might be bewildering --- .github/pull_request_template.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index edd9ac6c3..700bc581d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -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: From 8526018dda23d391c5e133264fdc1dcf04c136af Mon Sep 17 00:00:00 2001 From: Sally McGrath Date: Mon, 15 Jan 2024 18:30:50 -0600 Subject: [PATCH 13/26] archetypes for all required module views (#529) * archetypes for all required module views This moves page creation into Hugo archetypes. You can still run a create_module.sh to produce a module all at once. You can also generate any individual view from an archetype, and generate a block, with hugo new --kind * Update archetypes/module.md Co-authored-by: Daniel Wagner-Hall --------- Co-authored-by: Daniel Wagner-Hall --- archetypes/backlog.md | 13 ++++ archetypes/blocks/index.md | 13 ++++ archetypes/day-plan.md | 45 ++++++++++++ archetypes/default.md | 9 +-- archetypes/module-prep.md | 32 ++++++++ archetypes/module-success.md | 11 +++ archetypes/module.md | 17 +++++ archetypes/prep.md | 32 ++++++++ archetypes/product-backlog.md | 10 +++ archetypes/product-prep.md | 20 +++++ archetypes/product.md | 11 +++ archetypes/sprint.md | 9 +++ archetypes/success.md | 11 +++ create_module.sh | 133 +++++++--------------------------- 14 files changed, 253 insertions(+), 113 deletions(-) create mode 100644 archetypes/backlog.md create mode 100644 archetypes/blocks/index.md create mode 100644 archetypes/day-plan.md create mode 100644 archetypes/module-prep.md create mode 100644 archetypes/module-success.md create mode 100644 archetypes/module.md create mode 100644 archetypes/prep.md create mode 100644 archetypes/product-backlog.md create mode 100644 archetypes/product-prep.md create mode 100644 archetypes/product.md create mode 100644 archetypes/sprint.md create mode 100644 archetypes/success.md diff --git a/archetypes/backlog.md b/archetypes/backlog.md new file mode 100644 index 000000000..18f16c4c7 --- /dev/null +++ b/archetypes/backlog.md @@ -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-` 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. \ No newline at end of file diff --git a/archetypes/blocks/index.md b/archetypes/blocks/index.md new file mode 100644 index 000000000..f9689c2b4 --- /dev/null +++ b/archetypes/blocks/index.md @@ -0,0 +1,13 @@ ++++ +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' ++++ + diff --git a/archetypes/day-plan.md b/archetypes/day-plan.md new file mode 100644 index 000000000..ab709cb43 --- /dev/null +++ b/archetypes/day-plan.md @@ -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. \ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md index 00e77bd79..bb3c743b2 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -1,6 +1,5 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -date: {{ .Date }} -draft: true ---- ++++ +title = '{{ replace .Name "-" " " | title }}' ++++ +This is just a single. You can use this to create an uncomplicated basic page. diff --git a/archetypes/module-prep.md b/archetypes/module-prep.md new file mode 100644 index 000000000..0efa71d30 --- /dev/null +++ b/archetypes/module-prep.md @@ -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. diff --git a/archetypes/module-success.md b/archetypes/module-success.md new file mode 100644 index 000000000..db4b1371e --- /dev/null +++ b/archetypes/module-success.md @@ -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. \ No newline at end of file diff --git a/archetypes/module.md b/archetypes/module.md new file mode 100644 index 000000000..92cff7417 --- /dev/null +++ b/archetypes/module.md @@ -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 ` 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. diff --git a/archetypes/prep.md b/archetypes/prep.md new file mode 100644 index 000000000..a66d6ddd3 --- /dev/null +++ b/archetypes/prep.md @@ -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. diff --git a/archetypes/product-backlog.md b/archetypes/product-backlog.md new file mode 100644 index 000000000..36c5f88e6 --- /dev/null +++ b/archetypes/product-backlog.md @@ -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. \ No newline at end of file diff --git a/archetypes/product-prep.md b/archetypes/product-prep.md new file mode 100644 index 000000000..04ca13418 --- /dev/null +++ b/archetypes/product-prep.md @@ -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/" ++++ diff --git a/archetypes/product.md b/archetypes/product.md new file mode 100644 index 000000000..644c3384c --- /dev/null +++ b/archetypes/product.md @@ -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. \ No newline at end of file diff --git a/archetypes/sprint.md b/archetypes/sprint.md new file mode 100644 index 000000000..9c216c128 --- /dev/null +++ b/archetypes/sprint.md @@ -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. \ No newline at end of file diff --git a/archetypes/success.md b/archetypes/success.md new file mode 100644 index 000000000..eb89f1817 --- /dev/null +++ b/archetypes/success.md @@ -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. \ No newline at end of file diff --git a/create_module.sh b/create_module.sh index 29ec832a1..c956b4b0b 100755 --- a/create_module.sh +++ b/create_module.sh @@ -1,7 +1,6 @@ #!/bin/bash - -if [ -z "$1" ] - then +# You need to name the module +if [ -z "$1" ]; then echo "No module name supplied. Usage: ./create_module.sh " exit 1 fi @@ -9,120 +8,38 @@ fi MODULE_NAME=$1 MODULE_DIR="content/$MODULE_NAME" SPRINT_DIR="$MODULE_DIR/sprints" -BLOCKS_DIR="$MODULE_DIR/blocks" PRODUCT_DIR="$MODULE_DIR/product" -mkdir -p $MODULE_DIR -mkdir -p $SPRINT_DIR -mkdir -p $BLOCKS_DIR -mkdir -p $PRODUCT_DIR - -echo "+++ -title = '$MODULE_NAME' -description = 'The plan for $MODULE_NAME' -layout = 'module' -emoji= 'πŸ“š' -menu = ['syllabus'] -+++ +# Main module index +hugo new --kind module "$MODULE_DIR/_index.md" -" > $MODULE_DIR/_index.md +# Module has at top level: prep/ sprints/ product/ success/. +# Sprints and Product are dirs containing further dirs -FILES=("prep" "backlog" "success") -MENU_ORDER=1 +FILES=("prep" "success") for file in "${FILES[@]}"; do - mkdir -p $MODULE_DIR/$file - echo "+++ -title = '$file' -description = '$file description' -layout = '$file' -emoji= 'πŸ“' -menu_level = ['module'] -weight = $MENU_ORDER -backlog= 'Module-$MODULE_NAME' -backlog_filter= '$MODULE_NAME' -+++ - -" > $MODULE_DIR/$file/index.md - MENU_ORDER=$((MENU_ORDER + 5)) -done - -for i in {1..4}; do - SPRINT_NAME="$i" - SPRINT_PATH="$SPRINT_DIR/$SPRINT_NAME" - mkdir -p $SPRINT_PATH - echo "+++ -title = 'Sprint $i' -description = 'The plan for the week' -layout = 'sprint' -emoji= '⏱️' -menu_level = ['module'] -weight = $((i + 1)) -+++ - -" > $SPRINT_PATH/_index.md - - SPRINT_FILES=("prep" "backlog" "day-plan" "success") - MENU_ORDER=1 - - for file in "${SPRINT_FILES[@]}"; do - mkdir -p $SPRINT_PATH/$file - echo "+++ -title = '$file' -layout = '$file' -emoji= 'πŸ“' -menu_level = ['sprint'] -weight = $MENU_ORDER -backlog= 'Module-$MODULE_NAME' -backlog_filter= 'Week $i' -+++ - -" > $SPRINT_PATH/$file/index.md -MENU_ORDER=$((MENU_ORDER + 1)) - done + FILE_PATH="$MODULE_DIR/$file/index.md" + hugo new --kind "module-$file" "$FILE_PATH" done -BLOCKS=("block1" "block2" "block3") - -for block in "${BLOCKS[@]}"; do - mkdir -p $BLOCKS_DIR/$block - echo "+++ -title = '$block' -headless = true -time = 30 -facilitation = false -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' -+++ +# Make sprint folders. Sprints have prep backlog day-plan success -" > $BLOCKS_DIR/$block/index.md +for i in {1..4}; do + SPRINT_NAME="$i" + SPRINT_PATH="$SPRINT_DIR/$SPRINT_NAME" + + SPRINT_FILES=("prep" "backlog" "day-plan" "success") + for file in "${SPRINT_FILES[@]}"; do + FILE_PATH="$SPRINT_PATH/$file/index.md" + hugo new --kind "$file" "$FILE_PATH" + done done -PRODUCT_FILES=("plan" "build" "test" "ship") -echo "+++ -title = 'Product' -description = 'Product description' -layout = 'product' -emoji= '🎁' -menu_level = ['module'] -+++ - -" > $PRODUCT_DIR/_index.md - -MENU_ORDER=1 -for product_file in "${PRODUCT_FILES[@]}"; do - mkdir -p $PRODUCT_DIR/$product_file - echo "+++ -title = '$product_file' -description = '$product_file description' -layout = '$product_file' -menu_level = ['product'] -emoji= '🎁' -weight = $MENU_ORDER -+++ +# Make product dir. Product has prep backlog success +hugo new --kind product "$PRODUCT_DIR/_index.md" -" > $PRODUCT_DIR/$product_file/index.md - MENU_ORDER=$((MENU_ORDER + 1)) +PRODUCT_FILES=("prep" "backlog" "success") +for file in "${PRODUCT_FILES[@]}"; do + FILE_PATH="$PRODUCT_DIR/$file/index.md" + hugo new --kind "product-$file" "$FILE_PATH" done From 13036b2093f3637c56ceda8f19b48e1b16f4184e Mon Sep 17 00:00:00 2001 From: Daniel Wagner-Hall Date: Tue, 16 Jan 2024 19:59:44 +0000 Subject: [PATCH 14/26] Add minutes --- .../en/guides/contributing/minutes/index.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/content/en/guides/contributing/minutes/index.md b/content/en/guides/contributing/minutes/index.md index d9dfb74e5..a99c06ff7 100644 --- a/content/en/guides/contributing/minutes/index.md +++ b/content/en/guides/contributing/minutes/index.md @@ -17,6 +17,109 @@ Attendees: --- +## 2024-01-16 + +Attendees: Ali Smith, Chris Owen, Daniel Wagner-Hall, Isar Fridrikkson, Leila Farsani, Mitch Lloyd, Sally McGrath, Yun Ji, Zsolt Sztupak + +### ❗Actions from last time + +- [ ] Update reminder message around new meeting format +- [ ] Isar (Carry-over): Triage JS1+JS2 Iteration and Snagging issues - add any needed to the MigraCode milestone +- [ ] Isar (Carry-over): Get all the relevant MigraCode people to fill in [this form](https://docs.google.com/forms/d/1sp2MTsU0eEAr4HCKXfDPxUXXZROWN8UyHIrDk7dRSJk/edit) to join CYF GitHub teams. +- [ ] Sally (Carry-over): Provide a repro case for https://github.com/CodeYourFuture/curriculum/issues/222 +- [x] Ali (Carry-over): Write up a ticket for Sally to document the architecture of the curriculum website +- [x] Sally: Create a MRE of a monorepo module system and send it out for review. +- [x] Sally: Get Zsolt a CYF email and on-boarded into our Netlify team plan. +- [x] Zsolt: Experiment with the CYF Netlify team. +- [/] Zsolt: Migrate everything in the curriculum to be Netlify + Supabase based. - In progress, draft PR Up +- [/] Zsolt: Reframe the full-stack assessment to be end-to-end feature slices rather than frontend - backend - DB. - In progress +- [x] Sally: Cancel the syllabus team meeting on 2024-01-02. + +### πŸ“ Agenda points + +#### Introductions + +* Isar Fridriksson: MigraCode Barcelona - recently joined the syllabus team. +* Yun Ji: Studied with MigraCode Barcelona last year. Has PR'd some React fixes to the existing syllabus, taught some modules, and is excited to collaborate more! +* Chris Owen: Ex Director of Education for CYF. Now working at Sigma Labs (an educator provider). Interested in getting involved with the nascent Cloud module. +* Leila Farsani: Graduate from London Class 9, volunteering since. Looking for ways to help trainees to thrive more. Has some proposals around improving code review at CYF. +* Mitch Lloyd: CYF TechEd employee and former volunteer. Has been developing and teaching the curriculum. +* Sally McGrath: Director of Programme at CYF (and volunteer before). +* Zsolt Sztupak: Engineering Manager by day, CYF volunteer in Scotland. +* Daniel Wagner-Hall: Software Engineer, CYF volunteer in London, interested in breaking down problems and giving feedback. + +#### Rebuild of the curriculum platform + +* Sally has created https://github.com/CodeYourFuture/curriculum-labs +* Split out modules + * One of common stuff ("common-content", "common-theme") - stuff that everyone may want to pull from. + * CYF and MCB have their own modules which mount these common modules, and may also contain their own unique content (but please contribute to common!) +* Also already have "sources", e.g. YouTube, Slides, Runkit, etc. +* Deployments Just Work. +* Currently MCB has no modules, but copying them in should be pretty easy. +* MCB has 3-4 people eager to get contributing. +* Sally is proposing merging curriculum-labs into curriculum. +* We're currently going to keep the MCB site in one repo, but can fork it out if needed (or move the curriculum repo into a shared org). + +#### Code Review + +* [Design doc](https://docs.google.com/document/d/10iBJTUoUR40wD_Y-j8mfCb9OlCQz_XnNd9mjCgiS2hc/edit). +* Primary goal: We'd like to make sure trainees getting more and better feedback on their code. +* Let's slim it down to focus on one goal: Getting trainees more code review. +* Also, we have very variable amounts of code review across the organisation. Some people get good code review already, let's understand what people's experiences are. +* We probably need to make this trainee-driven - get trainees _expecting_ code review, and asking for it. +* Maybe pull the idea of assessment out of scope - just focus on getting as many useful comments on PRs as possible. +* Idea that we're "promoting technical conversation". +* Also, reducing class size will help us to be able to scale code review better. + +Possible first deliverable: +* Describing good code review (possibly via examples of good code review Leila has received). +* Find existing code reviewers and understand their experience. + +Next steps: +* Find some volunteer code reviewers, put them through the "good code reviewer" filter. +* Set expectations with one cohort (probably NW6)'s trainees that they should expect code review, and get the volunteers to serve that need. + +#### DevOps/Cloud Module + +* What has come before, and who should Chris speak to? +* Pedro had previously done small-group ad-hoc cloud teaching which was very successful, but doesn't scale. +* Pedro, Alvaro, Lorenzo have put together assorted iterations which have had mixed success. + * Biggest failure was when the module was too hard and trainees weren't supported enough. The content wasn't tangible enough - probably needs to be project-driven. + * Trainees need to have something to be able to show an employer. + * CYF need something tangible we can demonstrate to potential employers. +* Existing content: https://main--cyf-cloud-track.netlify.app/cloud/ and https://module-cloud.codeyourfuture.io/overview/welcome-to-devops +* Sally has agreed Learning Objectives with Alvaro and Lorenzo - Chris will try to collect them. +* We're hoping there are a lot of potential Capgemini roles opening up this year - run ideas past Sally to understand how they mesh with CG's needs. +* Is there an example of best content? Generally avoid lectures, be very project-focused, JS2 prep is pretty solid. + +#### MigraCode curriculum move + +* Discussion has been ongoing with MCB's parent organisation - there's agreement about the changes. +* Yun Ji is a graduate from ~7 months ago - eager to contribute to open source, great problem solver, and has worn all the hats (student, instructor, etc). +* More team members being on-boarded (Ali - graduate and head of education - will be joining meetings from February, Isha - graduate/staff) +* Yun Ji is eager to get started - interested in code review - also found it very valuable in her time on the course! + +#### Training club + +* We're going to start doing a volunteer management course in a book-club style. +* It starts next week - see https://docs.google.com/document/d/1r8H3kaKs5at6C7a41lOP7FLUaZ0bFyCvCwC9e83lM5g/edit + +### ❗Actions + +- [ ] Daniel (Carry-over): Update reminder message around new meeting format +- [ ] Isar (Carry-over): Triage JS1+JS2 Iteration and Snagging issues - add any needed to the MigraCode milestone +- [ ] Sally (Carry-over): Provide a repro case for https://github.com/CodeYourFuture/curriculum/issues/222 +- [ ] Ali: Review all of Sally's React and Node workshop migrations +- [ ] Chris: Merge all the Cloud curricula into the curriculum website. +- [ ] Leila + Yun: Describe good code review (possibly via examples of good code review Leila has received). +- [ ] Leila: Find existing code reviewers and understand their experience. +- [ ] Mitch: Get MCB volunteers on-boarded onto Slack +- [ ] Daniel: Get MCB volunteers on-boarded onto GitHub +- [ ] Ali: Set up training club + +--- + ## 2023-12-19 Attendees: Ali Smith, Daniel Wagner-Hall, Mitchell Lloyd, Sally McGrath, Zsolt Sztupak From 8c4b249af9ec07c522cffc79f24066dbd794a9b8 Mon Sep 17 00:00:00 2001 From: Dedekind561 Date: Thu, 18 Jan 2024 13:47:30 +0000 Subject: [PATCH 15/26] add step->prep workshops for JS2 & JS3 --- content/en/js2/sprints/2/prep/index.md | 3 +++ content/en/js2/sprints/3/prep/index.md | 3 +++ content/en/js3/sprints/3/prep/index.md | 3 +++ 3 files changed, 9 insertions(+) diff --git a/content/en/js2/sprints/2/prep/index.md b/content/en/js2/sprints/2/prep/index.md index 1fa688995..af9bb39d6 100644 --- a/content/en/js2/sprints/2/prep/index.md +++ b/content/en/js2/sprints/2/prep/index.md @@ -19,6 +19,9 @@ name="Access" src="js2/blocks/query-string" name="Query string" [[blocks]] +name="Step-through-prep workshop" +src="https://www.youtube.com/watch?v=GeKL1Mer4x8" +[[blocks]] src="js2/blocks/no-params" name="No params" [[blocks]] diff --git a/content/en/js2/sprints/3/prep/index.md b/content/en/js2/sprints/3/prep/index.md index 126e667c4..c853b474f 100644 --- a/content/en/js2/sprints/3/prep/index.md +++ b/content/en/js2/sprints/3/prep/index.md @@ -13,6 +13,9 @@ name="browser" src="js2/blocks/character-limit" name="character-limit" [[blocks]] +name="Step-through-prep workshop" +src="https://www.youtube.com/watch?v=0tI34jHLpkY" +[[blocks]] src="js2/blocks/plan" name="strategy" [[blocks]] diff --git a/content/en/js3/sprints/3/prep/index.md b/content/en/js3/sprints/3/prep/index.md index 9b95ddaf3..3a258b6c9 100644 --- a/content/en/js3/sprints/3/prep/index.md +++ b/content/en/js3/sprints/3/prep/index.md @@ -10,6 +10,9 @@ backlog_filter= 'Week 3' name="Fetching data" src="js3/blocks/fetching-data" [[blocks]] +name="Step-through-prep workshop" +src="https://www.youtube.com/watch?v=J-0XkB54yp8" +[[blocks]] name="Latency" src="js3/blocks/latency" [[blocks]] From 717194de3097f9ac9c82a02699f7fb0838ac1e6f Mon Sep 17 00:00:00 2001 From: MitchLloyd Date: Thu, 18 Jan 2024 13:50:33 +0000 Subject: [PATCH 16/26] Update content/en/js3/success/index.md Co-authored-by: Sally McGrath --- content/en/js3/success/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/js3/success/index.md b/content/en/js3/success/index.md index 73c92933d..cd0927334 100644 --- a/content/en/js3/success/index.md +++ b/content/en/js3/success/index.md @@ -8,7 +8,7 @@ weight = 11 backlog= "Module-JS3" [[objectives]] 1="Every trainee has received and responded to at least one code review" -2="Every trainee has a deployed version of their JS3 Module Project with the features defined in levels up to and including level 500" +2="Every trainee has deployed their pair-coded JS3 Module Project, having completed levels 100 to 500" 3="Every trainee has swapped with another member of their class whilst implementing the levels in the JS3 Module Project as per the project brief" 4="70% of cohort is at or beyond milestones" +++ From 9528cb99a713e3892c3ed4deedfbd644ace6d582 Mon Sep 17 00:00:00 2001 From: MitchLloyd Date: Thu, 18 Jan 2024 13:50:44 +0000 Subject: [PATCH 17/26] Update content/en/js3/success/index.md Co-authored-by: Sally McGrath --- content/en/js3/success/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/content/en/js3/success/index.md b/content/en/js3/success/index.md index cd0927334..b81911d15 100644 --- a/content/en/js3/success/index.md +++ b/content/en/js3/success/index.md @@ -9,7 +9,6 @@ backlog= "Module-JS3" [[objectives]] 1="Every trainee has received and responded to at least one code review" 2="Every trainee has deployed their pair-coded JS3 Module Project, having completed levels 100 to 500" -3="Every trainee has swapped with another member of their class whilst implementing the levels in the JS3 Module Project as per the project brief" 4="70% of cohort is at or beyond milestones" +++ From 0d22ed3683e00125a889cc8541a816af3c0f26ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Metin=20Bar=C4=B1=C5=9F?= <46865991+metinbaris@users.noreply.github.com> Date: Thu, 18 Jan 2024 22:31:43 +0300 Subject: [PATCH 18/26] Update style of the hamburger menu (#478) (#528) --- assets/styles/layout/menu.scss | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/styles/layout/menu.scss b/assets/styles/layout/menu.scss index 35455908a..80c0c323b 100644 --- a/assets/styles/layout/menu.scss +++ b/assets/styles/layout/menu.scss @@ -1,7 +1,8 @@ .l-menu { --gap: var(--theme-spacing--gutter); @include grid-assign(heading, action, primary, secondary, container); - overflow: hidden; + overflow-x: hidden; + overflow-y: auto; position: fixed; top: 0; left: -100%; @@ -65,6 +66,8 @@ &__secondary { display: flex; + width: 90vw; + flex-wrap: wrap; justify-content: space-evenly; background: var(--theme-color--block); color: var(--theme-color--pop); From c504fb62598beaec108599931e445ce14f89985f Mon Sep 17 00:00:00 2001 From: Sally McGrath Date: Sat, 20 Jan 2024 16:22:20 -0600 Subject: [PATCH 19/26] Feature: Daniel's tooling for local module replacements (#535) Co-authored-by: Daniel Wagner-Hall --- .github/workflows/check-consistency.yml | 19 +++++ .github/workflows/test-tooling.yml | 17 +++++ tooling/go/.gitignore | 1 + .../go/cmd/local-overrides-enforcer/main.go | 74 +++++++++++++++++++ tooling/go/go.mod | 14 ++++ tooling/go/go.sum | 12 +++ .../checker/checker.go | 56 ++++++++++++++ .../checker/checker_test.go | 70 ++++++++++++++++++ 8 files changed, 263 insertions(+) create mode 100644 .github/workflows/check-consistency.yml create mode 100644 .github/workflows/test-tooling.yml create mode 100644 tooling/go/.gitignore create mode 100644 tooling/go/cmd/local-overrides-enforcer/main.go create mode 100644 tooling/go/go.mod create mode 100644 tooling/go/go.sum create mode 100644 tooling/go/internal/local-overrides-enforcer/checker/checker.go create mode 100644 tooling/go/internal/local-overrides-enforcer/checker/checker_test.go diff --git a/.github/workflows/check-consistency.yml b/.github/workflows/check-consistency.yml new file mode 100644 index 000000000..10eb7df0f --- /dev/null +++ b/.github/workflows/check-consistency.yml @@ -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 diff --git a/.github/workflows/test-tooling.yml b/.github/workflows/test-tooling.yml new file mode 100644 index 000000000..af6199388 --- /dev/null +++ b/.github/workflows/test-tooling.yml @@ -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 ./... diff --git a/tooling/go/.gitignore b/tooling/go/.gitignore new file mode 100644 index 000000000..406bae00b --- /dev/null +++ b/tooling/go/.gitignore @@ -0,0 +1 @@ +/local-overrides-enforcer diff --git a/tooling/go/cmd/local-overrides-enforcer/main.go b/tooling/go/cmd/local-overrides-enforcer/main.go new file mode 100644 index 000000000..f261ac209 --- /dev/null +++ b/tooling/go/cmd/local-overrides-enforcer/main.go @@ -0,0 +1,74 @@ +package main + +import ( + "flag" + "fmt" + "io/fs" + "log" + "os" + "path/filepath" + "strings" + + "github.com/CodeYourFuture/curriculum/tooling/go/internal/local-overrides-enforcer/checker" +) + +func main() { + var rootDirectory string + flag.StringVar(&rootDirectory, "root-dir", ".", "Root directory to search for go.mod files in") + excludeDirectoriesFlag := flag.String("exclude", filepath.Join("tooling", "go"), "Directories to exclude from searches (comma-delimited)") + var parentModule string + flag.StringVar(&parentModule, "parent-module", "github.com/CodeYourFuture/curriculum", "Parent module to search for missing overrides within") + + flag.Parse() + + var err error + rootDirectory, err = filepath.Abs(rootDirectory) + if err != nil { + log.Fatalf("Failed to get absolute path of root directory: %v", err) + } + + var excludeDirectories []string + for _, excludeDirectory := range strings.Split(*excludeDirectoriesFlag, ",") { + excludeDirectory, err = filepath.Abs(excludeDirectory) + if err != nil { + log.Fatalf("Failed to get absolute path of exclude directory: %v", err) + } + excludeDirectories = append(excludeDirectories, excludeDirectory) + } + + sawBadFile := false + + err = filepath.WalkDir(rootDirectory, func(path string, d fs.DirEntry, err error) error { + for _, excluded := range excludeDirectories { + if path == excluded { + return fs.SkipDir + } + } + if err != nil { + return err + } + + if d.Name() != "go.mod" { + return nil + } + content, err := os.ReadFile(path) + if err != nil { + return fmt.Errorf("failed to read %s: %w", path, err) + } + expectedContents, ok, err := checker.CheckFile(path, content, parentModule) + if err != nil { + return fmt.Errorf("failed to check %s: %w", path, err) + } + if !ok { + sawBadFile = true + fmt.Printf("⚠️ File at path %s didn't have some local overrides - its contents should be:\n%s\n", path, expectedContents) + } + return nil + }) + if err != nil { + log.Fatalf("Error walking filesystem: %v", err) + } + if sawBadFile { + os.Exit(1) + } +} diff --git a/tooling/go/go.mod b/tooling/go/go.mod new file mode 100644 index 000000000..e5bbc74ce --- /dev/null +++ b/tooling/go/go.mod @@ -0,0 +1,14 @@ +module github.com/CodeYourFuture/curriculum/tooling/go + +go 1.21.5 + +require ( + github.com/stretchr/testify v1.8.4 + golang.org/x/mod v0.14.0 +) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/tooling/go/go.sum b/tooling/go/go.sum new file mode 100644 index 000000000..d7cde5764 --- /dev/null +++ b/tooling/go/go.sum @@ -0,0 +1,12 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/tooling/go/internal/local-overrides-enforcer/checker/checker.go b/tooling/go/internal/local-overrides-enforcer/checker/checker.go new file mode 100644 index 000000000..7d6408924 --- /dev/null +++ b/tooling/go/internal/local-overrides-enforcer/checker/checker.go @@ -0,0 +1,56 @@ +package checker + +import ( + "fmt" + "strings" + + "golang.org/x/mod/modfile" +) + +// CheckFile checks that a go.mod file has local overrides for all children of the passed parent module. +// It returns one of: +// - If the contents was correct: "", true, nil +// - If the contents was not correct: the expected contents, false, nil +// - If an error occurred: "", false, error +func CheckFile(goModPath string, contents []byte, parentModule string) (string, bool, error) { + gomodFile, err := modfile.Parse(goModPath, contents, nil) + if err != nil { + return "", false, fmt.Errorf("failed to parse %s as go.mod file: %w", goModPath, err) + } + + parentModuleWithTrailingSlash := parentModule + "/" + + if !strings.HasPrefix(gomodFile.Module.Mod.Path, parentModuleWithTrailingSlash) { + return "", false, fmt.Errorf("module at path %s was named %s which isn't a child of %s", goModPath, gomodFile.Module.Mod.Path, parentModule) + } + slashCount := strings.Count(gomodFile.Module.Mod.Path[len(parentModule):], "/") + + replaces := make(map[string]struct{}) + for _, replace := range gomodFile.Replace { + replaces[replace.Old.Path] = struct{}{} + } + + missingReplaces := false + for _, require := range gomodFile.Require { + modPath := require.Mod.Path + if !strings.HasPrefix(modPath, parentModuleWithTrailingSlash) { + continue + } + if _, isReplaced := replaces[modPath]; isReplaced { + continue + } + missingReplaces = true + rel := modPath[len(parentModuleWithTrailingSlash):] + if err := gomodFile.AddReplace(modPath, "", strings.Repeat("../", slashCount)+rel, ""); err != nil { + return "", false, fmt.Errorf("failed to add replace: %w", err) + } + } + if missingReplaces { + formatted, err := gomodFile.Format() + if err != nil { + return "", false, fmt.Errorf("failed to serialize go.mod file: %w", err) + } + return string(formatted), false, nil + } + return "", true, nil +} diff --git a/tooling/go/internal/local-overrides-enforcer/checker/checker_test.go b/tooling/go/internal/local-overrides-enforcer/checker/checker_test.go new file mode 100644 index 000000000..a358296b4 --- /dev/null +++ b/tooling/go/internal/local-overrides-enforcer/checker/checker_test.go @@ -0,0 +1,70 @@ +package checker_test + +import ( + "testing" + + "github.com/CodeYourFuture/curriculum/tooling/go/internal/local-overrides-enforcer/checker" + "github.com/stretchr/testify/require" +) + +func TestCorrect(t *testing.T) { + goModContent := `module github.com/CodeYourFuture/curriculum/org-cyf + +go 1.21.3 + +replace github.com/CodeYourFuture/curriculum/common-content => ../common-content +replace github.com/CodeYourFuture/curriculum/common-theme => ../common-theme + +require ( + github.com/CodeYourFuture/curriculum/common-content v0.0.0-20240103071042-5b2177342232 // indirect + github.com/CodeYourFuture/curriculum/common-theme v0.0.0-20240103071042-5b2177342232 // indirect +) +` + + newContent, ok, err := checker.CheckFile("/some/go.mod", []byte(goModContent), "github.com/CodeYourFuture/curriculum") + require.NoError(t, err) + require.True(t, ok) + require.Equal(t, "", newContent) +} + +func TestMissingReplace(t *testing.T) { + goModContent := `module github.com/CodeYourFuture/curriculum/org-cyf + + go 1.21.3 + + replace github.com/CodeYourFuture/curriculum/common-theme => ../common-theme + + require ( + github.com/CodeYourFuture/curriculum/common-content v0.0.0-20240103071042-5b2177342232 // indirect + github.com/CodeYourFuture/curriculum/common-theme v0.0.0-20240103071042-5b2177342232 // indirect + ) +` + + newContent, ok, err := checker.CheckFile("/some/go.mod", []byte(goModContent), "github.com/CodeYourFuture/curriculum") + require.NoError(t, err) + require.False(t, ok) + require.Contains(t, newContent, "replace github.com/CodeYourFuture/curriculum/common-content => ../common-content") +} + +func TestModuleNotChildOfParent(t *testing.T) { + goModContent := `module github.com/CodeYourFuture/wrong + +go 1.21.3 + +replace github.com/CodeYourFuture/curriculum/common-content => ../common-content +replace github.com/CodeYourFuture/curriculum/common-theme => ../common-theme + +require ( + github.com/CodeYourFuture/curriculum/common-content v0.0.0-20240103071042-5b2177342232 // indirect + github.com/CodeYourFuture/curriculum/common-theme v0.0.0-20240103071042-5b2177342232 // indirect +) +` + + _, _, err := checker.CheckFile("/some/go.mod", []byte(goModContent), "github.com/CodeYourFuture/curriculum") + require.ErrorContains(t, err, "module at path /some/go.mod was named github.com/CodeYourFuture/wrong which isn't a child of github.com/CodeYourFuture/curriculum") +} + +func TestInvalidGoModFile(t *testing.T) { + _, _, err := checker.CheckFile("/some/go.mod", []byte("hello"), "github.com/CodeYourFuture/curriculum") + require.ErrorContains(t, err, "failed to parse /some/go.mod as go.mod file: ") +} From 88d7be0f17f6b1a3b107fe8ef7c1ea29af8b82e4 Mon Sep 17 00:00:00 2001 From: Sally McGrath Date: Sun, 21 Jan 2024 08:54:54 -0600 Subject: [PATCH 20/26] Feature: stage 1: port labs (#537) * move everything into starting folders - layout stuff into common-theme - content into common-content - stuff everything else into a placeholder dir for now * minor debranding on layouts - swap CYF to HUGO - create custom css override - create logo override * rm scratch set emojis should be archetypes in future * more debranding: logos, funders * stub org sites still need to diff and update to current state * I think tooling goes in here? Might need to check in with the clone button * init new go modules * static resources for cyf * citation.cff I need to work out how to cite CYF - have tried to register it as an org but it doesn't show up * create readmes and distribute existing ones per section I think each section likely needs its own readme * clean up cyf folder * Daniel's tooling with path changed from curriculum-labs to curriculum no other changes Co-authored by daniel@codeyourfuture.io * update prep pages in correct place next will delete old pages * delete old site * update emojis these emojis were previously overridden on the templates but we removed this to debrand the platform. Therefore we now need to declare all our emojis * add new readme - we do need to update the readmes more pls --- layouts/shortcodes/limit.html => CITATION.cff | 0 README.md | 185 +-- {content => common-content}/en/_index.md | 0 .../en/blocks/afternoon-break/index.md | 0 .../en/blocks/backlog/index.md | 0 .../en/blocks/blockers/index.md | 0 .../en/blocks/coding-101/index.md | 0 .../en/blocks/coursework/index.md | 0 .../en/blocks/energiser/index.md | 0 .../en/blocks/kata/index.md | 0 .../en/blocks/lunch/index.md | 0 .../en/blocks/morning-break/index.md | 0 .../en/blocks/pd-placeholder/index.md | 0 .../en/blocks/requirements/index.md | 14 + .../en/blocks/retro/index.md | 0 .../en/blocks/search-terms/index.md | 0 .../en/blocks/spaced-repetition/index.md | 0 .../en/blocks/study-45/index.md | 0 .../en/blocks/study-60/index.md | 0 .../en/blocks/study-90/index.md | 0 .../en/blocks/study-group/index.md | 0 .../en/blocks/success-criteria/index.md | 0 .../en/blocks/telephone/index.md | 0 .../en/blocks/useful-links/index.md | 0 .../en/blocks/user-stories/index.md | 0 .../en/blocks/wordle/index.md | 0 .../databases}/communicating-with-db/index.md | 0 .../databases}/creating-a-table/index.md | 0 .../en/module/databases}/crud/crud.png | Bin .../en/module/databases}/crud/index.md | 0 .../module/databases}/defining-keys/index.md | 0 .../databases}/integration-with-node/index.md | 0 .../databases}/introduction-to-db/index.md | 0 .../introduction-to-postgresql/index.md | 0 .../table-diagram.png | Bin .../module/databases}/joining-tables/index.md | 0 .../joining-tables/join-diagram.png | Bin .../module/databases}/more-selective/index.md | 0 .../en/module/databases}/recap-node/index.md | 0 .../postman-get-cust-all-results.png | Bin .../recap-node/postman-get-cust-all.odg | Bin .../recap-node/postman-get-cust-all.png | Bin .../module/databases}/updating-rows/index.md | 0 .../using-aggregate-functions/index.md | 0 .../en/module}/fundamentals/_index.md | 0 .../en/module/fundamentals}/blockers/index.md | 0 .../fundamentals}/code-dot-org/index.md | 0 .../cyf-blocks-iteration/index.md | 0 .../cyf-blocks-requirements/index.md | 0 .../en/module/fundamentals}/goals/index.md | 0 .../en/module/fundamentals}/mvp/index.md | 0 .../module/fundamentals}/next-steps/index.md | 0 .../overcoming-blockers/index.md | 0 .../en/module/fundamentals}/pairing/index.md | 0 .../fundamentals}/ship-it-delivery/index.md | 0 .../fundamentals}/ship-it-iteration/index.md | 0 .../ship-it-requirements/index.md | 0 .../using-the-curriculum/index.md | 0 .../en/module/fundamentals}/wrap-up/index.md | 0 .../html-css}/what-are-components/index.md | 0 .../module/html-css}/what-are-forms/index.md | 0 .../en/module/html-css}/what-is-css/index.md | 0 .../en/module/html-css}/what-is-html/index.md | 0 .../induction}/branching/commit-history.png | Bin .../branching/highlight-2nd-commit.png | Bin .../en/module/induction}/branching/index.md | 0 .../branching/lesson1-four-repo-diagram.png | Bin .../branching/main-branch-highlighted.png | Bin .../check-git-installation/index.md | 0 .../module/induction}/check-github/index.md | 0 .../induction}/check-out-a-commit/index.md | 0 .../en/module/induction}/cyf-blog/index.md | 0 .../en/module/induction}/cyf-folder/index.md | 0 .../different-blog-versions.png | Bin .../induction}/development-process/index.md | 0 .../induction}/forking-a-repository/index.md | 0 .../lesson1-forked-url-anatomy.png | Bin .../lesson1-github-url-anatomy.png | Bin .../module/induction}/github-poets/index.md | 0 .../en/module/induction}/github/index.md | 0 .../en/module/induction}/handshake/index.md | 0 .../module/induction}/install-vscode/index.md | 0 .../induction}/learning-as-community/index.md | 0 .../en/module/induction}/next-steps/index.md | 0 .../induction}/previous-versions/index.md | 0 .../induction}/sharing-history/index.md | 0 .../commit-history-relative-dates.png | Bin .../induction}/version-control/index.md | 0 .../viewing-files/fork-and-clone-diagram.png | Bin .../module/induction}/viewing-files/index.md | 0 .../induction}/working-locally/index.md | 0 .../en/module/induction}/wrapping-up/index.md | 0 .../en/module}/js1/_index.md | 0 .../en/module/js1}/api/index.md | 0 .../en/module/js1}/assembly/index.md | 0 .../en/module/js1}/assertions/index.md | 0 .../en/module/js1}/cases/index.md | 0 .../en/module/js1}/check-unix-os/index.md | 0 .../en/module/js1}/clocks/index.md | 0 .../en/module/js1}/comparison/index.md | 0 .../en/module/js1}/conditionality/index.md | 0 .../en/module/js1}/data/index.md | 0 .../js1}/declarations-statements/index.md | 0 .../module/js1}/declaring-functions/index.md | 0 .../module/js1}/declaring-functions/round.gif | Bin .../en/module/js1}/errors/index.md | 0 .../en/module/js1}/feedback/index.md | 0 .../js1}/feedback/test-feedback-fail.png | Bin .../js1}/feedback/test-reference-error.png | Bin .../en/module/js1}/framework/index.md | 0 .../en/module/js1}/functions/index.md | 0 .../en/module/js1}/functions/round.gif | Bin .../en/module/js1}/generalise/index.md | 0 .../js1}/generalise/second-case-fail.png | Bin .../en/module/js1}/improving/index.md | 0 .../en/module/js1}/install-node/index.md | 0 .../en/module/js1}/installing/index.md | 0 .../module/js1}/installing/jest-install.png | Bin .../en/module/js1}/interface/index.md | 0 .../en/module/js1}/logging/index.md | 0 .../en/module/js1}/ordinal/index.md | 0 .../en/module/js1}/outliers/index.md | 0 .../module/js1}/outliers/second-case-fail.png | Bin .../en/module/js1}/packages/index.md | 0 .../en/module/js1}/parameters/index.md | 0 .../en/module/js1}/percentages/index.md | 0 .../js1}/playing-computer/global-frame.png | Bin .../en/module/js1}/playing-computer/index.md | 0 .../playing-computer/make-greeting-frame.png | Bin .../playing-computer/runtime-diagram-1.png | Bin .../en/module/js1}/repl/index.md | 0 .../en/module/js1}/return/index.md | 0 .../en/module/js1}/reuse/index.md | 0 .../en/module/js1}/reuse/round.gif | Bin .../en/module/js1}/scope/index.md | 0 .../en/module/js1}/scripts/index.md | 0 .../en/module/js1}/setup/index.md | 0 .../en/module/js1}/setup/jest-install.png | Bin .../en/module/js1}/strategy/index.md | 0 .../en/module/js1}/strings/index.md | 0 .../en/module/js1}/sub-goal/index.md | 0 .../en/module/js1}/terminal/index.md | 0 .../en/module/js1}/terminal/terminal.gif | Bin .../en/module/js1}/variables/greeting.gif | Bin .../en/module/js1}/variables/index.md | 0 .../en/module/js2}/access/index.md | 0 .../en/module/js2}/arrays/index.md | 0 .../en/module/js2}/assembly/index.md | 0 .../en/module/js2}/browser/index.md | 0 .../en/module/js2}/character-limit/index.md | 0 .../en/module/js2}/check-in/index.md | 0 .../en/module/js2}/check-progress/index.md | 0 .../en/module/js2}/demo/index.md | 0 .../en/module/js2}/dom/html-tree.png | Bin .../en/module/js2}/dom/index.md | 0 .../en/module/js2}/events/index.md | 0 .../en/module/js2}/grouping-data/index.md | 0 .../en/module/js2}/iteration/index.md | 0 .../en/module/js2}/key-values/index.md | 0 .../en/module/js2}/mean/index.md | 0 .../en/module/js2}/median/index.md | 0 .../en/module/js2}/multiple-params/index.md | 0 .../en/module/js2}/mutating/index.md | 0 .../en/module/js2}/mutation/index.md | 0 .../en/module/js2}/no-params/index.md | 0 .../js2}/no-params/to-be-check-error.png | Bin .../en/module/js2}/one-pair/index.md | 0 .../en/module/js2}/one-pair/literal-key.png | Bin .../en/module/js2}/ordered-data/index.md | 0 .../en/module/js2}/pair-up/index.md | 0 .../en/module/js2}/pick-an-app/index.md | 0 .../en/module/js2}/plan/index.md | 0 .../en/module/js2}/query-string/index.md | 0 .../en/module/js2}/querying/index.md | 0 .../en/module/js2}/reference/index.md | 0 .../module/js2}/reference/point-to-array.png | Bin .../en/module/js2}/response/index.md | 0 .../en/module/js2}/side-effects/index.md | 0 .../en/module/js2}/summing/index.md | 0 .../en/module/js2}/update/index.md | 0 .../en/module/js2}/variable-keys/index.md | 0 .../parse-query-test-feedback.png | Bin .../en/module}/js3/_index.md | 0 .../en/module/js3}/async-await/index.md | 0 .../en/module/js3}/asynchrony/index.md | 0 .../en/module/js3}/break-down/index.md | 0 .../en/module/js3}/callbacks/index.md | 0 .../en/module/js3}/capturing-events/index.md | 0 .../en/module/js3}/catch/index.md | 0 .../en/module/js3}/chaining/index.md | 0 .../en/module/js3}/components/index.md | 0 .../module/js3}/composing-elements/index.md | 0 .../en/module/js3}/data-ui/index.md | 0 .../en/module/js3}/fetch-films/data.json | 0 .../module/js3}/fetch-films/filterFilms.html | 0 .../en/module/js3}/fetch-films/index.md | 0 .../en/module/js3}/fetch/index.md | 0 .../en/module/js3}/fetching-data/index.md | 0 .../en/module/js3}/identifying-state/index.md | 0 .../en/module/js3}/internet/index.md | 0 .../js3}/introducing-new-state/index.md | 0 .../en/module/js3}/latency/index.md | 0 .../en/module/js3}/now-showing/film-cards.png | Bin .../en/module/js3}/now-showing/index.md | 0 .../en/module/js3}/one-to-one/index.md | 0 .../en/module/js3}/promises/index.md | 0 .../en/module/js3}/re-rendering-ui/index.md | 0 .../en/module/js3}/reacting/index.md | 0 .../refactoring-to-state-and-render/index.md | 0 .../js3}/rendering-based-on-state/index.md | 0 .../simplifying-element-creation/index.md | 0 .../en/module/js3}/single-datum/index.md | 0 .../js3}/single-datum/single-film-display.png | Bin .../en/module/js3}/template-html/index.md | 0 .../en/module/js3}/then/index.md | 0 .../en/module/js3}/using-fetch/index.md | 0 .../en/module/js3}/using-map/index.md | 0 .../module/portfolio}/break-it-down/index.md | 0 .../en/module/portfolio}/data/index.md | 0 .../module/portfolio}/employability/index.md | 0 .../module/portfolio}/ground-rules/index.md | 0 .../en/module/portfolio}/guest/index.md | 0 .../en/module/portfolio}/interfaces/index.md | 0 .../en/module/portfolio}/next-steps/index.md | 0 .../en/module/portfolio}/project/index.md | 0 .../module/portfolio}/requirements/index.md | 0 .../en/module/portfolio}/stand-up/index.md | 0 .../module/portfolio}/user-feedback/index.md | 0 .../en/module/react}/components/index.md | 0 .../react}/controlled-components/index.md | 0 .../react}/embedding-javascript/index.md | 0 .../fetching-data-with-effects/index.md | 0 .../en/module/react}/fetching-data/index.md | 0 .../en/module/react}/handling-events/index.md | 0 .../en/module/react}/import-export/index.md | 0 .../en/module/react}/jsx/index.md | 0 .../en/module/react}/keys/index.md | 0 .../en/module/react}/multiple-fields/index.md | 0 .../en/module/react}/pokedex/index.md | 0 .../en/module/react}/props/index.md | 0 .../en/module/react}/re-rendering/index.md | 0 .../en/module/react}/react-router/index.md | 0 .../en/module/react}/rendering/index.md | 0 .../en/module/react}/state/index.md | 0 .../synchronizing-with-effects/index.md | 0 .../en/module/react}/team-project/index.md | 0 .../en/module/react}/vite/index.md | 0 .../en/module/react}/what-is-react/index.md | 0 .../module/react}/working-with-forms/index.md | 0 .../servers}/building-the-server/index.md | 0 .../communicating-with-the-server/index.md | 0 .../en/module/servers}/crud-2/index.md | 0 .../module/servers}/crud-challenges/index.md | 0 .../en/module/servers}/crud/index.md | 0 .../en/module/servers}/get-single/index.md | 0 .../en/module/servers}/get/index.md | 0 .../module/servers}/intro-to-express/index.md | 0 .../servers}/make-a-node-project/index.md | 0 .../en/module/servers}/post/index.md | 0 .../en/module/servers}/postman/index.md | 0 .../en/module/servers}/put/index.md | 0 .../module/servers}/query-parameters/index.md | 0 .../en/module/servers}/render/index.md | 0 .../en/module/servers}/routing/index.md | 0 .../test-examples-in-postman/index.md | 0 common-content/go.mod | 3 + common-content/hugo.toml | 5 + .../archetypes}/backlog.md | 0 .../archetypes}/blocks/index.md | 0 .../archetypes}/day-plan.md | 0 .../archetypes}/default.md | 0 .../archetypes}/module-prep.md | 0 .../archetypes}/module-success.md | 0 .../archetypes}/module.md | 0 .../archetypes}/prep.md | 0 .../archetypes}/product-backlog.md | 0 .../archetypes}/product-prep.md | 0 .../archetypes}/product.md | 0 .../archetypes}/sprint.md | 0 .../archetypes}/success.md | 0 common-theme/assets/images/site-logo/logo.svg | 1 + common-theme/assets/jsconfig.json | 10 + .../assets}/scripts/alert-message.js | 0 .../assets}/scripts/app.js | 0 .../assets}/scripts/cm6.ts | 0 .../assets}/scripts/confetti-checkboxes.js | 0 .../assets}/scripts/dark-mode.js | 0 .../assets}/scripts/highlight-lines.ts | 0 .../assets}/scripts/solo-view.js | 0 .../assets}/scripts/tab-panels.js | 0 .../assets}/scripts/time-stamper.js | 0 .../assets}/scripts/word-limit.js | 0 .../assets}/scripts/youtube-player.js | 0 .../assets}/styles/01-mixins/backdrop.scss | 0 .../assets}/styles/01-mixins/block.scss | 0 .../assets}/styles/01-mixins/grid-assign.scss | 0 .../assets}/styles/01-mixins/offscreen.scss | 0 .../assets}/styles/01-mixins/offset.scss | 0 .../assets}/styles/01-mixins/on-event.scss | 0 .../assets}/styles/01-mixins/patterns.scss | 0 .../assets}/styles/01-mixins/screen.scss | 0 .../assets}/styles/02-variables/borders.scss | 0 .../assets}/styles/02-variables/colors.scss | 0 .../assets}/styles/02-variables/fonts.scss | 0 .../assets}/styles/02-variables/shadows.scss | 0 .../assets}/styles/02-variables/spacing.scss | 0 .../styles/02-variables/type-scale.scss | 0 .../assets}/styles/03-elements/base.scss | 0 .../assets}/styles/03-elements/buttons.scss | 0 .../assets}/styles/03-elements/headings.scss | 0 .../assets}/styles/03-elements/images.scss | 0 .../assets}/styles/03-elements/links.scss | 0 .../styles/03-elements/misc-phrasing.scss | 0 .../assets}/styles/03-elements/table.scss | 0 .../assets}/styles/04-components/alert.scss | 0 .../assets}/styles/04-components/block.scss | 0 .../styles/04-components/breadcrumbs.scss | 0 .../assets}/styles/04-components/card.scss | 0 .../styles/04-components/codemirror.scss | 0 .../assets}/styles/04-components/columns.scss | 0 .../styles/04-components/contributor.scss | 0 .../assets}/styles/04-components/copy.scss | 0 .../assets}/styles/04-components/issue.scss | 0 .../assets}/styles/04-components/logos.scss | 0 .../assets}/styles/04-components/note.scss | 0 .../styles/04-components/objectives.scss | 0 .../styles/04-components/page-header.scss | 0 .../styles/04-components/skip-link.scss | 0 .../assets}/styles/04-components/tabs.scss | 0 .../styles/04-components/timeline.scss | 0 .../assets}/styles/04-components/toc.scss | 0 .../assets}/styles/04-components/tooltip.scss | 0 .../assets}/styles/layout/footer.scss | 0 .../assets}/styles/layout/header.scss | 0 .../assets}/styles/layout/layout.scss | 0 .../assets}/styles/layout/main.scss | 0 .../assets}/styles/layout/menu.scss | 0 .../assets}/styles/states/dark.scss | 0 .../assets}/styles/states/invisible.scss | 0 .../assets}/styles/states/light.scss | 0 .../assets}/styles/states/none.scss | 0 .../assets}/styles/states/visible.scss | 0 common-theme/data/funding.json | 20 + common-theme/go.mod | 3 + .../render-codeblock-mermaid.html.html | 0 .../_markup/render-codeblock-objectives.html | 0 .../_markup/render-codeblock-runkit.html | 0 .../_default/_markup/render-image.html | 0 .../_default/_markup/render-link.html | 0 .../layouts}/_default/backlog.html | 2 - .../layouts}/_default/baseof.html | 0 .../layouts}/_default/day-plan.html | 1 - .../layouts}/_default/list.html | 0 .../layouts}/_default/module.html | 0 .../layouts}/_default/prep.html | 1 - .../layouts}/_default/product.html | 0 .../layouts}/_default/single.html | 0 .../layouts}/_default/sprint.html | 0 .../layouts}/_default/success.html | 2 - {layouts => common-theme/layouts}/index.html | 2 +- .../layouts}/partials/block/block.html | 0 .../layouts}/partials/block/data.html | 4 +- .../layouts}/partials/block/issue.html | 0 .../layouts}/partials/block/local.html | 0 .../layouts}/partials/block/pd.html | 0 .../layouts}/partials/block/pullreq.html | 0 .../layouts}/partials/block/readme.html | 0 .../layouts}/partials/block/slide.html | 0 .../layouts}/partials/block/youtube.html | 0 .../layouts}/partials/breadcrumbs.html | 0 .../layouts}/partials/card.html | 0 .../layouts}/partials/foot.html | 2 +- .../layouts}/partials/github-icon.html | 1 + .../layouts}/partials/head.html | 16 +- common-theme/layouts/partials/header.html | 25 + .../layouts}/partials/issues.html | 4 +- .../layouts}/partials/menu.html | 0 .../layouts}/partials/module-tabs.html | 0 .../layouts}/partials/objectives/block.html | 0 .../layouts}/partials/objectives/lookup.html | 0 .../layouts}/partials/objectives/parsed.html | 0 .../layouts}/partials/page-header.html | 0 .../layouts}/partials/scripts.html | 0 .../layouts}/partials/search.html | 0 .../layouts}/partials/time.html | 0 .../layouts}/shortcodes/columns.html | 0 .../layouts}/shortcodes/contributors.html | 6 +- .../layouts}/shortcodes/details.html | 0 .../layouts}/shortcodes/iframe.html | 0 .../layouts}/shortcodes/logos.html | 0 .../layouts}/shortcodes/note.html | 0 .../layouts}/shortcodes/snippet.html | 0 .../layouts}/shortcodes/tab.html | 0 .../layouts}/shortcodes/tabs.html | 0 .../layouts}/shortcodes/tooltip.html | 0 .../layouts}/shortcodes/wordlimit.html | 0 .../layouts}/shortcodes/youtube.html | 0 .../package-lock.json | 0 package.json => common-theme/package.json | 0 prettierignore => common-theme/prettierignore | 0 common-theme/static/favicon.ico | Bin 0 -> 15406 bytes .../static}/logos/github.png | Bin .../static}/logos/netlify.svg | 0 .../static}/logos/slack.png | Bin content/en/blocks/requirements/index.md | 15 - content/en/databases/sprints/4/prep/index.md | 17 - content/en/induction/_index.md | 8 - content/en/induction/sprints/1/prep/index.md | 41 - content/en/induction/success/index.md | 19 - content/en/js1/sprints/4/prep/index.md | 42 - content/en/js3/sprints/1/prep/index.md | 42 - content/en/the-launch/blocks/block1/index.md | 11 - content/en/the-launch/blocks/block2/index.md | 11 - content/en/the-launch/blocks/block3/index.md | 11 - .../en/the-launch/sprints/1/day-plan/index.md | 39 - .../en/the-launch/sprints/2/day-plan/index.md | 33 - content/en/the-launch/sprints/2/prep/index.md | 15 - .../en/the-launch/sprints/3/day-plan/index.md | 33 - content/en/the-launch/sprints/3/prep/index.md | 15 - .../en/the-launch/sprints/4/day-plan/index.md | 33 - content/en/the-launch/sprints/4/prep/index.md | 15 - org-cyf/.gitignore | 33 + org-cyf/README.md | 175 +++ .../site-logo/site-logo-small.svg | 10 + .../custom-images/site-logo/site-logo.svg | 38 +- .../custom-theme/02-variables/colors.scss | 75 ++ .../custom-theme/02-variables/fonts.scss | 7 + org-cyf/assets/custom-theme/states/dark.scss | 4 + org-cyf/assets/custom-theme/states/light.scss | 4 + .../config.toml | 0 org-cyf/content/_index.md | 5 + .../content}/databases/_index.md | 0 .../prep/Screenshot_Postgres_disk.png | Bin .../prep/Screenshot_Postgres_initialise.png | Bin .../prep/Screenshot_Postgres_running.png | Bin .../content}/databases/prep/index.md | 2 +- .../content}/databases/product/_index.md | 0 .../content}/databases/product/build/index.md | 0 .../content}/databases/product/plan/index.md | 0 .../content}/databases/product/ship/index.md | 0 .../content}/databases/product/test/index.md | 0 .../content}/databases/sprints/1/_index.md | 0 .../databases/sprints/1/backlog/index.md | 2 +- .../databases/sprints/1/day-plan/index.md | 2 +- .../databases/sprints/1/prep/index.md | 8 +- .../databases/sprints/1/success/index.md | 2 +- .../content}/databases/sprints/2/_index.md | 0 .../databases/sprints/2/backlog/index.md | 2 +- .../databases/sprints/2/day-plan/index.md | 2 +- .../databases/sprints/2/prep/index.md | 14 +- .../databases/sprints/2/success/index.md | 2 +- .../content}/databases/sprints/3/_index.md | 0 .../databases/sprints/3/backlog/index.md | 2 +- .../databases/sprints/3/day-plan/index.md | 2 +- .../databases/sprints/3/prep/index.md | 8 +- .../databases/sprints/3/success/index.md | 2 +- .../content}/databases/sprints/4/_index.md | 0 .../databases/sprints/4/backlog/index.md | 2 +- .../databases/sprints/4/day-plan/index.md | 2 +- .../content/databases/sprints/4/prep/index.md | 11 + .../databases/sprints/4/success/index.md | 2 +- .../content}/databases/success/index.md | 2 +- org-cyf/content/fundamentals/_index.md | 11 + .../content}/fundamentals/prep/index.md | 0 .../content}/fundamentals/product/_index.md | 0 .../fundamentals/product/build/index.md | 0 .../fundamentals/product/plan/index.md | 0 .../fundamentals/product/ship/index.md | 0 .../fundamentals/product/test/index.md | 0 .../content}/fundamentals/sprints/1/_index.md | 0 .../fundamentals/sprints/1/backlog/index.md | 2 +- .../fundamentals/sprints/1/day-plan/index.md | 12 +- .../fundamentals/sprints/1/prep/index.md | 2 +- .../fundamentals/sprints/1/success/index.md | 2 +- .../content}/fundamentals/sprints/2/_index.md | 0 .../fundamentals/sprints/2/backlog/index.md | 2 +- .../fundamentals/sprints/2/day-plan/index.md | 12 +- .../fundamentals/sprints/2/prep/index.md | 8 +- .../fundamentals/sprints/2/success/index.md | 2 +- .../content}/fundamentals/sprints/3/_index.md | 0 .../fundamentals/sprints/3/backlog/index.md | 2 +- .../fundamentals/sprints/3/day-plan/index.md | 10 +- .../fundamentals/sprints/3/prep/index.md | 2 +- .../fundamentals/sprints/3/success/index.md | 2 +- .../content}/fundamentals/success/index.md | 2 +- .../en => org-cyf/content}/guides/_index.md | 0 .../content}/guides/asking-questions/index.md | 0 .../content}/guides/code-review/index.md | 0 .../content}/guides/code-style-guide/index.md | 0 .../code-style-guide/prettier-error.png | Bin .../content}/guides/contributing/_index.md | 0 .../guides/contributing/contributors/index.md | 0 .../guides/contributing/minutes/index.md | 0 .../guides/contributing/supporters/index.md | 0 .../github-branches-view.png | Bin .../github-fork-highlight-branches.png | Bin .../github-fork-main-page.png | Bin .../highlight-new-pull-request.png | Bin .../guides/create-a-pull-request/index.md | 0 .../new-pr-landing-page.png | Bin .../open-pull-request-page.png | Bin .../update-pr-title-description.png | Bin .../create-a-pull-request/update-pr-title.png | Bin .../update-pr-using-template.png | Bin .../create-react-app-started-browser.png | Bin .../create-react-app-started-terminal.png | Bin .../guides/create-a-react-app/index.md | 0 .../guides/deployment-netlify/_index.md | 0 .../another-site/01-netlify-dashboard.png | Bin .../another-site/02-sites-page.png | Bin .../another-site/03-git-provider.png | Bin .../another-site/04-choose-repo.png | Bin .../another-site/05-choose-branch.png | Bin .../another-site/06-site-is-live.png | Bin .../deployment-netlify/another-site/index.md | 0 .../deployment-netlify/common-problems.md | 0 .../first-site/01-netlify-homepage.png | Bin .../first-site/02-netlify-signup.png | Bin .../03-github-account-permissions.png | Bin .../first-site/04-deploy-first-project.png | Bin .../first-site/05-git-provider.png | Bin .../06-github-further-permissions.png | Bin .../first-site/07-install-netlify.png | Bin .../first-site/08-choose-repo.png | Bin .../first-site/09-choose-branch.png | Bin .../first-site/10-site-is-live.png | Bin .../deployment-netlify/first-site/index.md | 0 .../renaming-site/01-netlify-dashboard.png | Bin .../renaming-site/02-list-of-sites.png | Bin .../renaming-site/03-site-overview.png | Bin .../renaming-site/04-site-settings.png | Bin .../renaming-site/05-site-name-input.png | Bin .../deployment-netlify/renaming-site/index.md | 0 .../site-naming-conventions.md | 0 .../guides/deployment-render/_index.md | 0 .../connecting-a-dbms/connection-error.png | Bin .../connection-successful.png | Bin .../connecting-a-dbms/connection-test.png | Bin .../connecting-a-dbms/db-credentials.png | Bin .../connecting-a-dbms/db-drivers.png | Bin .../connecting-a-dbms/index.md | 0 .../connecting-a-dbms/new-connection.png | Bin .../connecting-a-dbms/render-dashboard.png | Bin .../connecting-a-dbms/selecting-postgres.png | Bin .../connecting-a-dbms/show-all-databases.png | Bin .../connecting-github/index.md | 0 .../connecting-github/sign-in-with-github.png | Bin .../connecting-github/sign-in.png | Bin .../connecting-github/sign-up-complete.png | Bin .../verification-email-link.png | Bin .../verification-email-received.png | Bin .../verification-email-sent.png | Bin .../creating-a-postgres-db/connect-button.png | Bin .../database-active.png | Bin .../database-creating.png | Bin .../creating-a-postgres-db/database-name.png | Bin .../environment-variables.png | Bin .../free-plan-and-create-database.png | Bin .../creating-a-postgres-db/index.md | 0 .../creating-a-postgres-db/new-postgres.png | Bin .../deploying-server/authorise-render.png | Bin .../deploying-server/build-successful.jpg | Bin .../deploying-server/complete-sign-up.png | Bin .../deploying-server/connect-repo.jpg | Bin .../deploying-server/create-web-service.jpg | Bin .../deploying-server/dashboard-new-button.png | Bin .../deploying-server/index.md | 0 .../deploying-server/name-web-service.jpg | Bin .../deploying-server/new-web-service.jpg | Bin .../deploying-server/render-dashboard.png | Bin .../deploying-server/start-command.jpg | Bin .../url-to-deployed-web-service.jpg | Bin .../content}/guides/intro-to-tests/index.md | 0 .../guides/intro-to-tests/test-case.png | Bin .../guides/intro-to-tests/test-fail-case.png | Bin .../guides/intro-to-tests/test-pass-case.png | Bin .../content}/guides/paradigm/index.md | 0 .../en => org-cyf/content}/html-css/_index.md | 0 .../content}/html-css/prep/index.md | 2 +- .../content}/html-css/product/_index.md | 0 .../content}/html-css/product/build/index.md | 0 .../content}/html-css/product/plan/index.md | 0 .../content}/html-css/product/ship/index.md | 0 .../content}/html-css/product/test/index.md | 0 .../content}/html-css/sprints/1/_index.md | 0 .../html-css/sprints/1/backlog/index.md | 2 +- .../html-css/sprints/1/day-plan/index.md | 2 +- .../content}/html-css/sprints/1/prep/index.md | 4 +- .../html-css/sprints/1/success/index.md | 2 +- .../content}/html-css/sprints/2/_index.md | 0 .../html-css/sprints/2/backlog/index.md | 2 +- .../html-css/sprints/2/day-plan/index.md | 2 +- .../content}/html-css/sprints/2/prep/index.md | 4 +- .../html-css/sprints/2/success/index.md | 2 +- .../content}/html-css/sprints/3/_index.md | 0 .../html-css/sprints/3/backlog/index.md | 2 +- .../html-css/sprints/3/day-plan/index.md | 3 +- .../content}/html-css/sprints/3/prep/index.md | 4 +- .../html-css/sprints/3/success/index.md | 2 +- .../content}/html-css/sprints/4/_index.md | 0 .../html-css/sprints/4/backlog/index.md | 2 +- .../html-css/sprints/4/day-plan/index.md | 2 +- .../content}/html-css/sprints/4/prep/index.md | 4 +- .../html-css/sprints/4/success/index.md | 2 +- .../content}/html-css/success/index.md | 4 +- org-cyf/content/induction/_index.md | 8 + .../content}/induction/prep/index.md | 8 +- .../content}/induction/sprints/1/_index.md | 0 .../induction/sprints/1/backlog/index.md | 2 +- .../induction/sprints/1/day-plan/index.md | 6 +- .../1/prep/commit-history-relative-dates.png | Bin 0 -> 209982 bytes .../sprints/1/prep/commit-history.png | Bin 0 -> 188341 bytes .../1/prep/different-blog-versions.png | Bin 0 -> 136852 bytes .../sprints/1/prep/fork-and-clone-diagram.png | Bin 0 -> 99708 bytes .../sprints/1/prep/highlight-2nd-commit.png | Bin 0 -> 126203 bytes .../content/induction/sprints/1/prep/index.md | 422 +++++++ .../1/prep/lesson1-forked-url-anatomy.png | Bin 0 -> 122787 bytes .../1/prep/lesson1-four-repo-diagram.png | Bin 0 -> 241592 bytes .../1/prep/lesson1-github-url-anatomy.png | Bin 0 -> 63835 bytes .../1/prep/main-branch-highlighted.png | Bin 0 -> 14880 bytes .../induction/sprints/1/success/index.md | 2 +- org-cyf/content/induction/success/index.md | 10 + org-cyf/content/js1/_index.md | 8 + .../en => org-cyf/content}/js1/prep/index.md | 4 +- .../content}/js1/sprints/1/_index.md | 0 .../content}/js1/sprints/1/backlog/index.md | 2 +- .../content}/js1/sprints/1/day-plan/index.md | 2 +- .../content}/js1/sprints/1/prep/index.md | 27 +- .../content}/js1/sprints/1/success/index.md | 2 +- .../content}/js1/sprints/2/_index.md | 0 .../content}/js1/sprints/2/backlog/index.md | 2 +- .../content}/js1/sprints/2/day-plan/index.md | 2 +- .../content}/js1/sprints/2/prep/index.md | 16 +- .../content}/js1/sprints/2/success/index.md | 2 +- .../content}/js1/sprints/3/_index.md | 0 .../content}/js1/sprints/3/backlog/index.md | 2 +- .../content}/js1/sprints/3/day-plan/index.md | 2 +- .../content}/js1/sprints/3/prep/index.md | 18 +- .../content}/js1/sprints/3/success/index.md | 2 +- .../content}/js1/sprints/4/_index.md | 0 .../content}/js1/sprints/4/backlog/index.md | 2 +- .../content}/js1/sprints/4/day-plan/index.md | 4 +- org-cyf/content/js1/sprints/4/prep/index.md | 39 + .../content}/js1/sprints/4/success/index.md | 2 +- .../content}/js1/success/index.md | 4 +- {content/en => org-cyf/content}/js2/_index.md | 0 .../en => org-cyf/content}/js2/prep/index.md | 2 +- .../content}/js2/product/_index.md | 0 .../content}/js2/product/build/index.md | 0 .../content}/js2/product/plan/index.md | 0 .../content}/js2/product/ship/index.md | 0 .../content}/js2/product/test/index.md | 0 .../content}/js2/sprints/1/_index.md | 0 .../content}/js2/sprints/1/backlog/index.md | 2 +- .../content}/js2/sprints/1/day-plan/index.md | 2 +- .../content}/js2/sprints/1/prep/index.md | 25 +- .../content}/js2/sprints/1/success/index.md | 2 +- .../content}/js2/sprints/2/_index.md | 0 .../content}/js2/sprints/2/backlog/index.md | 2 +- .../content}/js2/sprints/2/day-plan/index.md | 2 +- .../content}/js2/sprints/2/prep/index.md | 18 +- .../content}/js2/sprints/2/success/index.md | 2 +- .../content}/js2/sprints/3/_index.md | 0 .../content}/js2/sprints/3/backlog/index.md | 2 +- .../content}/js2/sprints/3/day-plan/index.md | 6 +- .../content}/js2/sprints/3/prep/index.md | 20 +- .../content}/js2/sprints/3/success/index.md | 2 +- .../content}/js2/sprints/4/_index.md | 0 .../content}/js2/sprints/4/backlog/index.md | 2 +- .../content}/js2/sprints/4/day-plan/index.md | 6 +- .../content}/js2/sprints/4/prep/index.md | 4 +- .../content}/js2/sprints/4/success/index.md | 2 +- .../content}/js2/success/index.md | 2 +- org-cyf/content/js3/_index.md | 8 + .../en => org-cyf/content}/js3/prep/index.md | 4 +- .../content}/js3/product/_index.md | 0 .../content}/js3/product/build/index.md | 0 .../content}/js3/product/plan/index.md | 0 .../content}/js3/product/ship/index.md | 0 .../content}/js3/product/test/index.md | 0 .../content}/js3/sprints/1/_index.md | 0 .../content}/js3/sprints/1/backlog/index.md | 2 +- .../content}/js3/sprints/1/day-plan/index.md | 2 +- org-cyf/content/js3/sprints/1/prep/index.md | 39 + .../content}/js3/sprints/1/success/index.md | 2 +- .../content}/js3/sprints/2/_index.md | 0 .../content}/js3/sprints/2/backlog/index.md | 2 +- .../content}/js3/sprints/2/day-plan/index.md | 2 +- .../content}/js3/sprints/2/prep/index.md | 17 +- .../content}/js3/sprints/2/success/index.md | 2 +- .../content}/js3/sprints/3/_index.md | 0 .../content}/js3/sprints/3/backlog/index.md | 2 +- .../content}/js3/sprints/3/day-plan/index.md | 2 +- .../content}/js3/sprints/3/prep/index.md | 12 +- .../content}/js3/sprints/3/success/index.md | 2 +- .../content}/js3/sprints/4/_index.md | 0 .../content}/js3/sprints/4/backlog/index.md | 2 +- .../content}/js3/sprints/4/day-plan/index.md | 2 +- .../content}/js3/sprints/4/prep/index.md | 12 +- .../content}/js3/sprints/4/success/index.md | 2 +- .../content}/js3/success/index.md | 0 .../content}/portfolio/_index.md | 0 .../content}/portfolio/prep/index.md | 2 +- .../content}/portfolio/sprints/1/_index.md | 0 .../portfolio/sprints/1/backlog/index.md | 2 +- .../portfolio/sprints/1/day-plan/index.md | 15 +- .../portfolio/sprints/1/prep/index.md | 4 +- .../portfolio/sprints/1/success/index.md | 2 +- .../content}/portfolio/sprints/2/_index.md | 0 .../portfolio/sprints/2/backlog/index.md | 2 +- .../portfolio/sprints/2/day-plan/index.md | 8 +- .../portfolio/sprints/2/prep/index.md | 4 +- .../portfolio/sprints/2/success/index.md | 2 +- .../content}/portfolio/sprints/3/_index.md | 0 .../portfolio/sprints/3/backlog/index.md | 2 +- .../portfolio/sprints/3/day-plan/index.md | 8 +- .../portfolio/sprints/3/prep/index.md | 2 +- .../portfolio/sprints/3/success/index.md | 2 +- .../content}/portfolio/sprints/4/_index.md | 0 .../portfolio/sprints/4/backlog/index.md | 2 +- .../portfolio/sprints/4/day-plan/index.md | 12 +- .../portfolio/sprints/4/prep/index.md | 2 +- .../portfolio/sprints/4/success/index.md | 2 +- .../content}/portfolio/sprints/5/_index.md | 0 .../portfolio/sprints/5/backlog/index.md | 2 +- .../portfolio/sprints/5/day-plan/index.md | 12 +- .../portfolio/sprints/5/prep/index.md | 2 +- .../portfolio/sprints/5/success/index.md | 2 +- .../content}/portfolio/success/index.md | 2 +- .../en => org-cyf/content}/react/_index.md | 0 .../content}/react/prep/index.md | 4 +- .../content}/react/product/_index.md | 0 .../content}/react/product/backlog/_index.md | 0 .../react/product/backlog/backlog-1/index.md | 2 +- .../react/product/backlog/backlog-2/index.md | 2 +- .../react/product/backlog/backlog-3/index.md | 2 +- .../react/product/backlog/backlog-4/index.md | 2 +- .../content}/react/product/prep/index.md | 0 .../content}/react/product/success/index.md | 0 .../content}/react/sprints/1/_index.md | 0 .../content}/react/sprints/1/backlog/index.md | 2 +- .../react/sprints/1/day-plan/index.md | 4 +- .../content}/react/sprints/1/prep/index.md | 18 +- .../content}/react/sprints/1/success/index.md | 2 +- .../content}/react/sprints/2/_index.md | 0 .../content}/react/sprints/2/backlog/index.md | 2 +- .../react/sprints/2/day-plan/index.md | 2 +- .../content}/react/sprints/2/prep/index.md | 8 +- .../content}/react/sprints/2/success/index.md | 2 +- .../content}/react/sprints/3/_index.md | 0 .../content}/react/sprints/3/backlog/index.md | 2 +- .../react/sprints/3/day-plan/index.md | 2 +- .../content}/react/sprints/3/prep/index.md | 14 +- .../content}/react/sprints/3/success/index.md | 2 +- .../content}/react/sprints/4/_index.md | 0 .../content}/react/sprints/4/backlog/index.md | 2 +- .../react/sprints/4/day-plan/index.md | 2 +- .../content}/react/sprints/4/prep/index.md | 4 +- .../content}/react/sprints/4/success/index.md | 2 +- .../content}/react/success/index.md | 0 .../en => org-cyf/content}/servers/_index.md | 0 .../content}/servers/prep/index.md | 4 +- .../content}/servers/sprints/1/_index.md | 0 .../servers/sprints/1/backlog/index.md | 2 +- .../servers/sprints/1/day-plan/index.md | 2 +- .../content}/servers/sprints/1/prep/index.md | 14 +- .../servers/sprints/1/success/index.md | 2 +- .../content}/servers/sprints/2/_index.md | 0 .../servers/sprints/2/backlog/index.md | 2 +- .../servers/sprints/2/day-plan/index.md | 2 +- .../content}/servers/sprints/2/prep/index.md | 10 +- .../servers/sprints/2/success/index.md | 2 +- .../content}/servers/sprints/3/_index.md | 0 .../servers/sprints/3/backlog/index.md | 2 +- .../servers/sprints/3/day-plan/index.md | 4 +- .../content}/servers/sprints/3/prep/index.md | 10 +- .../servers/sprints/3/success/index.md | 2 +- .../content}/servers/sprints/4/_index.md | 0 .../servers/sprints/4/backlog/index.md | 2 +- .../servers/sprints/4/day-plan/index.md | 2 +- .../content}/servers/sprints/4/prep/index.md | 2 +- .../servers/sprints/4/success/index.md | 2 +- .../content}/servers/success/index.md | 0 .../content}/the-launch/_index.md | 0 .../content}/the-launch/prep/index.md | 2 +- .../content}/the-launch/product/_index.md | 0 .../the-launch/product/build/index.md | 0 .../content}/the-launch/product/plan/index.md | 0 .../content}/the-launch/product/ship/index.md | 0 .../content}/the-launch/product/test/index.md | 0 .../content}/the-launch/sprints/1/_index.md | 0 .../the-launch/sprints/1/backlog/index.md | 2 +- .../the-launch/sprints/1/day-plan/index.md | 9 + .../the-launch/sprints/1/prep/index.md | 2 +- .../the-launch/sprints/1/success/index.md | 2 +- .../content}/the-launch/sprints/2/_index.md | 0 .../the-launch/sprints/2/backlog/index.md | 2 +- .../the-launch/sprints/2/day-plan/index.md | 9 + .../the-launch/sprints/2/prep/index.md | 9 + .../the-launch/sprints/2/success/index.md | 2 +- .../content}/the-launch/sprints/3/_index.md | 0 .../the-launch/sprints/3/backlog/index.md | 2 +- .../the-launch/sprints/3/day-plan/index.md | 9 + .../the-launch/sprints/3/prep/index.md | 9 + .../the-launch/sprints/3/success/index.md | 2 +- .../content}/the-launch/sprints/4/_index.md | 0 .../the-launch/sprints/4/backlog/index.md | 2 +- .../the-launch/sprints/4/day-plan/index.md | 9 + .../the-launch/sprints/4/prep/index.md | 9 + .../the-launch/sprints/4/success/index.md | 2 +- .../content}/the-launch/success/index.md | 2 +- {data => org-cyf/data}/funding.json | 0 org-cyf/go.mod | 8 + org-cyf/go.sum | 4 + config.toml => org-cyf/hugo.toml | 48 +- org-cyf/package-lock.json | 1019 +++++++++++++++++ org-cyf/package.json | 35 + .../readme_repository_access.png | Bin {static => org-cyf/static}/404.html | 0 {static => org-cyf/static}/_redirects | 0 .../static}/android-chrome-192x192.png | Bin .../static}/android-chrome-512x512.png | Bin .../static}/apple-touch-icon.png | Bin .../static}/dummy-apis/films.json | 0 {static => org-cyf/static}/favicon-16x16.png | Bin {static => org-cyf/static}/favicon-32x32.png | Bin {static => org-cyf/static}/favicon.ico | Bin {static => org-cyf/static}/filterFilms.html | 0 {static => org-cyf/static}/logos/EY.png | Bin {static => org-cyf/static}/logos/MVF.svg | 0 {static => org-cyf/static}/logos/adobe.webp | Bin .../static}/logos/aston-university.svg | 0 .../static}/logos/capgemini.png | Bin {static => org-cyf/static}/logos/cititec.svg | 0 {static => org-cyf/static}/logos/codility.png | Bin .../static}/logos/df-capital.png | Bin .../static}/logos/evidenced.png | Bin {static => org-cyf/static}/logos/ey.svg | 0 {static => org-cyf/static}/logos/figma.svg | 0 {static => org-cyf/static}/logos/fourth.svg | 0 org-cyf/static/logos/github.png | Bin 0 -> 5970 bytes .../static}/logos/infinity-works.svg | 0 {static => org-cyf/static}/logos/lego.svg | 0 {static => org-cyf/static}/logos/motorola.svg | 0 org-cyf/static/logos/netlify.svg | 22 + .../static}/logos/rainbird.webp | Bin {static => org-cyf/static}/logos/scotgov.svg | 0 {static => org-cyf/static}/logos/seesaw.png | Bin {static => org-cyf/static}/logos/seesaw.svg | 0 org-cyf/static/logos/slack.png | Bin 0 -> 20008 bytes {static => org-cyf/static}/logos/slalom.svg | 0 {static => org-cyf/static}/logos/udemy.png | Bin {static => org-cyf/static}/logos/workday.svg | 0 {static => org-cyf/static}/manifest.json | 0 org-mcb/.gitignore | 33 + org-mcb/CONTRIBUTING.md | 0 org-mcb/README.md | 0 .../assets/custom-images/site-logo/logo.svg | 1 + .../custom-theme/02-variables/colors.scss | 75 ++ .../custom-theme/02-variables/fonts.scss | 7 + org-mcb/assets/custom-theme/states/dark.scss | 4 + org-mcb/assets/custom-theme/states/light.scss | 4 + org-mcb/content/_index.md | 5 + org-mcb/go.mod | 3 + org-mcb/hugo.toml | 33 + org-mcb/package.json | 36 + DEVELOPER.md => tooling/DEVELOPER.md | 0 create_module.sh => tooling/create_module.sh | 0 netlify.toml => tooling/netlify.toml | 0 .../netlify}/functions/clone.ts | 0 .../netlify}/helpers/config.ts | 0 {netlify => tooling/netlify}/helpers/const.ts | 0 .../netlify}/helpers/github.ts | 0 {netlify => tooling/netlify}/helpers/gql.ts | 0 .../netlify}/helpers/templates.ts | 0 {netlify => tooling/netlify}/helpers/types.ts | 0 {netlify => tooling/netlify}/helpers/util.ts | 0 877 files changed, 2733 insertions(+), 994 deletions(-) rename layouts/shortcodes/limit.html => CITATION.cff (100%) rename {content => common-content}/en/_index.md (100%) rename {content => common-content}/en/blocks/afternoon-break/index.md (100%) rename {content => common-content}/en/blocks/backlog/index.md (100%) rename {content => common-content}/en/blocks/blockers/index.md (100%) rename {content => common-content}/en/blocks/coding-101/index.md (100%) rename {content => common-content}/en/blocks/coursework/index.md (100%) rename {content => common-content}/en/blocks/energiser/index.md (100%) rename {content => common-content}/en/blocks/kata/index.md (100%) rename {content => common-content}/en/blocks/lunch/index.md (100%) rename {content => common-content}/en/blocks/morning-break/index.md (100%) rename {content => common-content}/en/blocks/pd-placeholder/index.md (100%) rename content/en/snippets/requirements.md => common-content/en/blocks/requirements/index.md (76%) rename {content => common-content}/en/blocks/retro/index.md (100%) rename {content => common-content}/en/blocks/search-terms/index.md (100%) rename {content => common-content}/en/blocks/spaced-repetition/index.md (100%) rename {content => common-content}/en/blocks/study-45/index.md (100%) rename {content => common-content}/en/blocks/study-60/index.md (100%) rename {content => common-content}/en/blocks/study-90/index.md (100%) rename {content => common-content}/en/blocks/study-group/index.md (100%) rename {content => common-content}/en/blocks/success-criteria/index.md (100%) rename {content => common-content}/en/blocks/telephone/index.md (100%) rename {content => common-content}/en/blocks/useful-links/index.md (100%) rename {content => common-content}/en/blocks/user-stories/index.md (100%) rename {content => common-content}/en/blocks/wordle/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/communicating-with-db/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/creating-a-table/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/crud/crud.png (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/crud/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/defining-keys/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/integration-with-node/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/introduction-to-db/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/introduction-to-postgresql/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/introduction-to-postgresql/table-diagram.png (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/joining-tables/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/joining-tables/join-diagram.png (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/more-selective/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/recap-node/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/recap-node/postman-get-cust-all-results.png (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/recap-node/postman-get-cust-all.odg (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/recap-node/postman-get-cust-all.png (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/updating-rows/index.md (100%) rename {content/en/databases/blocks => common-content/en/module/databases}/using-aggregate-functions/index.md (100%) rename {content/en => common-content/en/module}/fundamentals/_index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/blockers/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/code-dot-org/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/cyf-blocks-iteration/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/cyf-blocks-requirements/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/goals/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/mvp/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/next-steps/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/overcoming-blockers/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/pairing/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/ship-it-delivery/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/ship-it-iteration/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/ship-it-requirements/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/using-the-curriculum/index.md (100%) rename {content/en/fundamentals/blocks => common-content/en/module/fundamentals}/wrap-up/index.md (100%) rename {content/en/html-css/blocks => common-content/en/module/html-css}/what-are-components/index.md (100%) rename {content/en/html-css/blocks => common-content/en/module/html-css}/what-are-forms/index.md (100%) rename {content/en/html-css/blocks => common-content/en/module/html-css}/what-is-css/index.md (100%) rename {content/en/html-css/blocks => common-content/en/module/html-css}/what-is-html/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/branching/commit-history.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/branching/highlight-2nd-commit.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/branching/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/branching/lesson1-four-repo-diagram.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/branching/main-branch-highlighted.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/check-git-installation/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/check-github/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/check-out-a-commit/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/cyf-blog/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/cyf-folder/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/development-process/different-blog-versions.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/development-process/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/forking-a-repository/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/forking-a-repository/lesson1-forked-url-anatomy.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/forking-a-repository/lesson1-github-url-anatomy.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/github-poets/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/github/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/handshake/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/install-vscode/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/learning-as-community/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/next-steps/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/previous-versions/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/sharing-history/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/version-control/commit-history-relative-dates.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/version-control/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/viewing-files/fork-and-clone-diagram.png (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/viewing-files/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/working-locally/index.md (100%) rename {content/en/induction/blocks => common-content/en/module/induction}/wrapping-up/index.md (100%) rename {content/en => common-content/en/module}/js1/_index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/api/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/assembly/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/assertions/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/cases/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/check-unix-os/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/clocks/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/comparison/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/conditionality/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/data/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/declarations-statements/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/declaring-functions/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/declaring-functions/round.gif (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/errors/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/feedback/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/feedback/test-feedback-fail.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/feedback/test-reference-error.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/framework/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/functions/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/functions/round.gif (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/generalise/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/generalise/second-case-fail.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/improving/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/install-node/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/installing/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/installing/jest-install.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/interface/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/logging/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/ordinal/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/outliers/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/outliers/second-case-fail.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/packages/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/parameters/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/percentages/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/playing-computer/global-frame.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/playing-computer/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/playing-computer/make-greeting-frame.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/playing-computer/runtime-diagram-1.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/repl/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/return/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/reuse/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/reuse/round.gif (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/scope/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/scripts/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/setup/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/setup/jest-install.png (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/strategy/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/strings/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/sub-goal/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/terminal/index.md (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/terminal/terminal.gif (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/variables/greeting.gif (100%) rename {content/en/js1/blocks => common-content/en/module/js1}/variables/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/access/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/arrays/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/assembly/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/browser/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/character-limit/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/check-in/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/check-progress/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/demo/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/dom/html-tree.png (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/dom/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/events/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/grouping-data/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/iteration/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/key-values/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/mean/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/median/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/multiple-params/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/mutating/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/mutation/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/no-params/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/no-params/to-be-check-error.png (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/one-pair/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/one-pair/literal-key.png (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/ordered-data/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/pair-up/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/pick-an-app/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/plan/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/query-string/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/querying/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/reference/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/reference/point-to-array.png (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/response/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/side-effects/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/summing/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/update/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/variable-keys/index.md (100%) rename {content/en/js2/blocks => common-content/en/module/js2}/variable-keys/parse-query-test-feedback.png (100%) rename {content/en => common-content/en/module}/js3/_index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/async-await/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/asynchrony/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/break-down/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/callbacks/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/capturing-events/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/catch/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/chaining/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/components/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/composing-elements/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/data-ui/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/fetch-films/data.json (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/fetch-films/filterFilms.html (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/fetch-films/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/fetch/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/fetching-data/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/identifying-state/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/internet/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/introducing-new-state/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/latency/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/now-showing/film-cards.png (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/now-showing/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/one-to-one/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/promises/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/re-rendering-ui/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/reacting/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/refactoring-to-state-and-render/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/rendering-based-on-state/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/simplifying-element-creation/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/single-datum/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/single-datum/single-film-display.png (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/template-html/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/then/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/using-fetch/index.md (100%) rename {content/en/js3/blocks => common-content/en/module/js3}/using-map/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/break-it-down/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/data/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/employability/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/ground-rules/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/guest/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/interfaces/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/next-steps/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/project/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/requirements/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/stand-up/index.md (100%) rename {content/en/portfolio/blocks => common-content/en/module/portfolio}/user-feedback/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/components/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/controlled-components/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/embedding-javascript/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/fetching-data-with-effects/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/fetching-data/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/handling-events/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/import-export/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/jsx/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/keys/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/multiple-fields/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/pokedex/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/props/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/re-rendering/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/react-router/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/rendering/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/state/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/synchronizing-with-effects/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/team-project/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/vite/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/what-is-react/index.md (100%) rename {content/en/react/blocks => common-content/en/module/react}/working-with-forms/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/building-the-server/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/communicating-with-the-server/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/crud-2/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/crud-challenges/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/crud/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/get-single/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/get/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/intro-to-express/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/make-a-node-project/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/post/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/postman/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/put/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/query-parameters/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/render/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/routing/index.md (100%) rename {content/en/servers/blocks => common-content/en/module/servers}/test-examples-in-postman/index.md (100%) create mode 100644 common-content/go.mod create mode 100644 common-content/hugo.toml rename {archetypes => common-theme/archetypes}/backlog.md (100%) rename {archetypes => common-theme/archetypes}/blocks/index.md (100%) rename {archetypes => common-theme/archetypes}/day-plan.md (100%) rename {archetypes => common-theme/archetypes}/default.md (100%) rename {archetypes => common-theme/archetypes}/module-prep.md (100%) rename {archetypes => common-theme/archetypes}/module-success.md (100%) rename {archetypes => common-theme/archetypes}/module.md (100%) rename {archetypes => common-theme/archetypes}/prep.md (100%) rename {archetypes => common-theme/archetypes}/product-backlog.md (100%) rename {archetypes => common-theme/archetypes}/product-prep.md (100%) rename {archetypes => common-theme/archetypes}/product.md (100%) rename {archetypes => common-theme/archetypes}/sprint.md (100%) rename {archetypes => common-theme/archetypes}/success.md (100%) create mode 100644 common-theme/assets/images/site-logo/logo.svg create mode 100644 common-theme/assets/jsconfig.json rename {assets => common-theme/assets}/scripts/alert-message.js (100%) rename {assets => common-theme/assets}/scripts/app.js (100%) rename {assets => common-theme/assets}/scripts/cm6.ts (100%) rename {assets => common-theme/assets}/scripts/confetti-checkboxes.js (100%) rename {assets => common-theme/assets}/scripts/dark-mode.js (100%) rename {assets => common-theme/assets}/scripts/highlight-lines.ts (100%) rename {assets => common-theme/assets}/scripts/solo-view.js (100%) rename {assets => common-theme/assets}/scripts/tab-panels.js (100%) rename {assets => common-theme/assets}/scripts/time-stamper.js (100%) rename {assets => common-theme/assets}/scripts/word-limit.js (100%) rename {assets => common-theme/assets}/scripts/youtube-player.js (100%) rename {assets => common-theme/assets}/styles/01-mixins/backdrop.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/block.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/grid-assign.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/offscreen.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/offset.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/on-event.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/patterns.scss (100%) rename {assets => common-theme/assets}/styles/01-mixins/screen.scss (100%) rename {assets => common-theme/assets}/styles/02-variables/borders.scss (100%) rename {assets => common-theme/assets}/styles/02-variables/colors.scss (100%) rename {assets => common-theme/assets}/styles/02-variables/fonts.scss (100%) rename {assets => common-theme/assets}/styles/02-variables/shadows.scss (100%) rename {assets => common-theme/assets}/styles/02-variables/spacing.scss (100%) rename {assets => common-theme/assets}/styles/02-variables/type-scale.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/base.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/buttons.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/headings.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/images.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/links.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/misc-phrasing.scss (100%) rename {assets => common-theme/assets}/styles/03-elements/table.scss (100%) rename {assets => common-theme/assets}/styles/04-components/alert.scss (100%) rename {assets => common-theme/assets}/styles/04-components/block.scss (100%) rename {assets => common-theme/assets}/styles/04-components/breadcrumbs.scss (100%) rename {assets => common-theme/assets}/styles/04-components/card.scss (100%) rename {assets => common-theme/assets}/styles/04-components/codemirror.scss (100%) rename {assets => common-theme/assets}/styles/04-components/columns.scss (100%) rename {assets => common-theme/assets}/styles/04-components/contributor.scss (100%) rename {assets => common-theme/assets}/styles/04-components/copy.scss (100%) rename {assets => common-theme/assets}/styles/04-components/issue.scss (100%) rename {assets => common-theme/assets}/styles/04-components/logos.scss (100%) rename {assets => common-theme/assets}/styles/04-components/note.scss (100%) rename {assets => common-theme/assets}/styles/04-components/objectives.scss (100%) rename {assets => common-theme/assets}/styles/04-components/page-header.scss (100%) rename {assets => common-theme/assets}/styles/04-components/skip-link.scss (100%) rename {assets => common-theme/assets}/styles/04-components/tabs.scss (100%) rename {assets => common-theme/assets}/styles/04-components/timeline.scss (100%) rename {assets => common-theme/assets}/styles/04-components/toc.scss (100%) rename {assets => common-theme/assets}/styles/04-components/tooltip.scss (100%) rename {assets => common-theme/assets}/styles/layout/footer.scss (100%) rename {assets => common-theme/assets}/styles/layout/header.scss (100%) rename {assets => common-theme/assets}/styles/layout/layout.scss (100%) rename {assets => common-theme/assets}/styles/layout/main.scss (100%) rename {assets => common-theme/assets}/styles/layout/menu.scss (100%) rename {assets => common-theme/assets}/styles/states/dark.scss (100%) rename {assets => common-theme/assets}/styles/states/invisible.scss (100%) rename {assets => common-theme/assets}/styles/states/light.scss (100%) rename {assets => common-theme/assets}/styles/states/none.scss (100%) rename {assets => common-theme/assets}/styles/states/visible.scss (100%) create mode 100644 common-theme/data/funding.json create mode 100644 common-theme/go.mod rename {layouts => common-theme/layouts}/_default/_markup/render-codeblock-mermaid.html.html (100%) rename {layouts => common-theme/layouts}/_default/_markup/render-codeblock-objectives.html (100%) rename {layouts => common-theme/layouts}/_default/_markup/render-codeblock-runkit.html (100%) rename {layouts => common-theme/layouts}/_default/_markup/render-image.html (100%) rename {layouts => common-theme/layouts}/_default/_markup/render-link.html (100%) rename {layouts => common-theme/layouts}/_default/backlog.html (68%) rename {layouts => common-theme/layouts}/_default/baseof.html (100%) rename {layouts => common-theme/layouts}/_default/day-plan.html (91%) rename {layouts => common-theme/layouts}/_default/list.html (100%) rename {layouts => common-theme/layouts}/_default/module.html (100%) rename {layouts => common-theme/layouts}/_default/prep.html (95%) rename {layouts => common-theme/layouts}/_default/product.html (100%) rename {layouts => common-theme/layouts}/_default/single.html (100%) rename {layouts => common-theme/layouts}/_default/sprint.html (100%) rename {layouts => common-theme/layouts}/_default/success.html (96%) rename {layouts => common-theme/layouts}/index.html (86%) rename {layouts => common-theme/layouts}/partials/block/block.html (100%) rename {layouts => common-theme/layouts}/partials/block/data.html (96%) rename {layouts => common-theme/layouts}/partials/block/issue.html (100%) rename {layouts => common-theme/layouts}/partials/block/local.html (100%) rename {layouts => common-theme/layouts}/partials/block/pd.html (100%) rename {layouts => common-theme/layouts}/partials/block/pullreq.html (100%) rename {layouts => common-theme/layouts}/partials/block/readme.html (100%) rename {layouts => common-theme/layouts}/partials/block/slide.html (100%) rename {layouts => common-theme/layouts}/partials/block/youtube.html (100%) rename {layouts => common-theme/layouts}/partials/breadcrumbs.html (100%) rename {layouts => common-theme/layouts}/partials/card.html (100%) rename {layouts => common-theme/layouts}/partials/foot.html (93%) rename {layouts => common-theme/layouts}/partials/github-icon.html (98%) rename {layouts => common-theme/layouts}/partials/head.html (76%) create mode 100644 common-theme/layouts/partials/header.html rename {layouts => common-theme/layouts}/partials/issues.html (94%) rename {layouts => common-theme/layouts}/partials/menu.html (100%) rename {layouts => common-theme/layouts}/partials/module-tabs.html (100%) rename {layouts => common-theme/layouts}/partials/objectives/block.html (100%) rename {layouts => common-theme/layouts}/partials/objectives/lookup.html (100%) rename {layouts => common-theme/layouts}/partials/objectives/parsed.html (100%) rename {layouts => common-theme/layouts}/partials/page-header.html (100%) rename {layouts => common-theme/layouts}/partials/scripts.html (100%) rename {layouts => common-theme/layouts}/partials/search.html (100%) rename {layouts => common-theme/layouts}/partials/time.html (100%) rename {layouts => common-theme/layouts}/shortcodes/columns.html (100%) rename {layouts => common-theme/layouts}/shortcodes/contributors.html (66%) rename {layouts => common-theme/layouts}/shortcodes/details.html (100%) rename {layouts => common-theme/layouts}/shortcodes/iframe.html (100%) rename {layouts => common-theme/layouts}/shortcodes/logos.html (100%) rename {layouts => common-theme/layouts}/shortcodes/note.html (100%) rename {layouts => common-theme/layouts}/shortcodes/snippet.html (100%) rename {layouts => common-theme/layouts}/shortcodes/tab.html (100%) rename {layouts => common-theme/layouts}/shortcodes/tabs.html (100%) rename {layouts => common-theme/layouts}/shortcodes/tooltip.html (100%) rename {layouts => common-theme/layouts}/shortcodes/wordlimit.html (100%) rename {layouts => common-theme/layouts}/shortcodes/youtube.html (100%) rename package-lock.json => common-theme/package-lock.json (100%) rename package.json => common-theme/package.json (100%) rename prettierignore => common-theme/prettierignore (100%) create mode 100644 common-theme/static/favicon.ico rename {static => common-theme/static}/logos/github.png (100%) rename {static => common-theme/static}/logos/netlify.svg (100%) rename {static => common-theme/static}/logos/slack.png (100%) delete mode 100644 content/en/blocks/requirements/index.md delete mode 100644 content/en/databases/sprints/4/prep/index.md delete mode 100644 content/en/induction/_index.md delete mode 100644 content/en/induction/sprints/1/prep/index.md delete mode 100644 content/en/induction/success/index.md delete mode 100644 content/en/js1/sprints/4/prep/index.md delete mode 100644 content/en/js3/sprints/1/prep/index.md delete mode 100644 content/en/the-launch/blocks/block1/index.md delete mode 100644 content/en/the-launch/blocks/block2/index.md delete mode 100644 content/en/the-launch/blocks/block3/index.md delete mode 100644 content/en/the-launch/sprints/1/day-plan/index.md delete mode 100644 content/en/the-launch/sprints/2/day-plan/index.md delete mode 100644 content/en/the-launch/sprints/2/prep/index.md delete mode 100644 content/en/the-launch/sprints/3/day-plan/index.md delete mode 100644 content/en/the-launch/sprints/3/prep/index.md delete mode 100644 content/en/the-launch/sprints/4/day-plan/index.md delete mode 100644 content/en/the-launch/sprints/4/prep/index.md create mode 100644 org-cyf/.gitignore create mode 100644 org-cyf/README.md create mode 100644 org-cyf/assets/custom-images/site-logo/site-logo-small.svg rename layouts/partials/header.html => org-cyf/assets/custom-images/site-logo/site-logo.svg (60%) create mode 100644 org-cyf/assets/custom-theme/02-variables/colors.scss create mode 100644 org-cyf/assets/custom-theme/02-variables/fonts.scss create mode 100644 org-cyf/assets/custom-theme/states/dark.scss create mode 100644 org-cyf/assets/custom-theme/states/light.scss rename {config => org-cyf/config}/issues-are-cached-and-incomplete/config.toml (100%) create mode 100644 org-cyf/content/_index.md rename {content/en => org-cyf/content}/databases/_index.md (100%) rename {content/en => org-cyf/content}/databases/prep/Screenshot_Postgres_disk.png (100%) rename {content/en => org-cyf/content}/databases/prep/Screenshot_Postgres_initialise.png (100%) rename {content/en => org-cyf/content}/databases/prep/Screenshot_Postgres_running.png (100%) rename {content/en => org-cyf/content}/databases/prep/index.md (99%) rename {content/en => org-cyf/content}/databases/product/_index.md (100%) rename {content/en => org-cyf/content}/databases/product/build/index.md (100%) rename {content/en => org-cyf/content}/databases/product/plan/index.md (100%) rename {content/en => org-cyf/content}/databases/product/ship/index.md (100%) rename {content/en => org-cyf/content}/databases/product/test/index.md (100%) rename {content/en => org-cyf/content}/databases/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/databases/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/databases/sprints/1/day-plan/index.md (96%) rename {content/en => org-cyf/content}/databases/sprints/1/prep/index.md (78%) rename {content/en => org-cyf/content}/databases/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/databases/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/databases/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/databases/sprints/2/day-plan/index.md (95%) rename {content/en => org-cyf/content}/databases/sprints/2/prep/index.md (61%) rename {content/en => org-cyf/content}/databases/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/databases/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/databases/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/databases/sprints/3/day-plan/index.md (96%) rename {content/en => org-cyf/content}/databases/sprints/3/prep/index.md (74%) rename {content/en => org-cyf/content}/databases/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/databases/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/databases/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/databases/sprints/4/day-plan/index.md (96%) create mode 100644 org-cyf/content/databases/sprints/4/prep/index.md rename {content/en => org-cyf/content}/databases/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/databases/success/index.md (98%) create mode 100644 org-cyf/content/fundamentals/_index.md rename {content/en => org-cyf/content}/fundamentals/prep/index.md (100%) rename {content/en => org-cyf/content}/fundamentals/product/_index.md (100%) rename {content/en => org-cyf/content}/fundamentals/product/build/index.md (100%) rename {content/en => org-cyf/content}/fundamentals/product/plan/index.md (100%) rename {content/en => org-cyf/content}/fundamentals/product/ship/index.md (100%) rename {content/en => org-cyf/content}/fundamentals/product/test/index.md (100%) rename {content/en => org-cyf/content}/fundamentals/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/fundamentals/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/fundamentals/sprints/1/day-plan/index.md (88%) rename {content/en => org-cyf/content}/fundamentals/sprints/1/prep/index.md (99%) rename {content/en => org-cyf/content}/fundamentals/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/fundamentals/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/fundamentals/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/fundamentals/sprints/2/day-plan/index.md (80%) rename {content/en => org-cyf/content}/fundamentals/sprints/2/prep/index.md (73%) rename {content/en => org-cyf/content}/fundamentals/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/fundamentals/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/fundamentals/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/fundamentals/sprints/3/day-plan/index.md (79%) rename {content/en => org-cyf/content}/fundamentals/sprints/3/prep/index.md (97%) rename {content/en => org-cyf/content}/fundamentals/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/fundamentals/success/index.md (97%) rename {content/en => org-cyf/content}/guides/_index.md (100%) rename {content/en => org-cyf/content}/guides/asking-questions/index.md (100%) rename {content/en => org-cyf/content}/guides/code-review/index.md (100%) rename {content/en => org-cyf/content}/guides/code-style-guide/index.md (100%) rename {content/en => org-cyf/content}/guides/code-style-guide/prettier-error.png (100%) rename {content/en => org-cyf/content}/guides/contributing/_index.md (100%) rename {content/en => org-cyf/content}/guides/contributing/contributors/index.md (100%) rename {content/en => org-cyf/content}/guides/contributing/minutes/index.md (100%) rename {content/en => org-cyf/content}/guides/contributing/supporters/index.md (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/github-branches-view.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/github-fork-highlight-branches.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/github-fork-main-page.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/highlight-new-pull-request.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/index.md (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/new-pr-landing-page.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/open-pull-request-page.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/update-pr-title-description.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/update-pr-title.png (100%) rename {content/en => org-cyf/content}/guides/create-a-pull-request/update-pr-using-template.png (100%) rename {content/en => org-cyf/content}/guides/create-a-react-app/create-react-app-started-browser.png (100%) rename {content/en => org-cyf/content}/guides/create-a-react-app/create-react-app-started-terminal.png (100%) rename {content/en => org-cyf/content}/guides/create-a-react-app/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/_index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/01-netlify-dashboard.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/02-sites-page.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/03-git-provider.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/04-choose-repo.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/05-choose-branch.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/06-site-is-live.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/another-site/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/common-problems.md (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/01-netlify-homepage.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/02-netlify-signup.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/03-github-account-permissions.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/04-deploy-first-project.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/05-git-provider.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/06-github-further-permissions.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/07-install-netlify.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/08-choose-repo.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/09-choose-branch.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/10-site-is-live.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/first-site/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/renaming-site/01-netlify-dashboard.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/renaming-site/02-list-of-sites.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/renaming-site/03-site-overview.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/renaming-site/04-site-settings.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/renaming-site/05-site-name-input.png (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/renaming-site/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-netlify/site-naming-conventions.md (100%) rename {content/en => org-cyf/content}/guides/deployment-render/_index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/connection-error.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/connection-successful.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/connection-test.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/db-credentials.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/db-drivers.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/new-connection.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/render-dashboard.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/selecting-postgres.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-a-dbms/show-all-databases.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/sign-in-with-github.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/sign-in.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/sign-up-complete.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/verification-email-link.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/verification-email-received.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/connecting-github/verification-email-sent.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/connect-button.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/database-active.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/database-creating.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/database-name.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/environment-variables.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/free-plan-and-create-database.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-render/creating-a-postgres-db/new-postgres.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/authorise-render.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/build-successful.jpg (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/complete-sign-up.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/connect-repo.jpg (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/create-web-service.jpg (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/dashboard-new-button.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/index.md (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/name-web-service.jpg (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/new-web-service.jpg (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/render-dashboard.png (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/start-command.jpg (100%) rename {content/en => org-cyf/content}/guides/deployment-render/deploying-server/url-to-deployed-web-service.jpg (100%) rename {content/en => org-cyf/content}/guides/intro-to-tests/index.md (100%) rename {content/en => org-cyf/content}/guides/intro-to-tests/test-case.png (100%) rename {content/en => org-cyf/content}/guides/intro-to-tests/test-fail-case.png (100%) rename {content/en => org-cyf/content}/guides/intro-to-tests/test-pass-case.png (100%) rename {content/en => org-cyf/content}/guides/paradigm/index.md (100%) rename {content/en => org-cyf/content}/html-css/_index.md (100%) rename {content/en => org-cyf/content}/html-css/prep/index.md (98%) rename {content/en => org-cyf/content}/html-css/product/_index.md (100%) rename {content/en => org-cyf/content}/html-css/product/build/index.md (100%) rename {content/en => org-cyf/content}/html-css/product/plan/index.md (100%) rename {content/en => org-cyf/content}/html-css/product/ship/index.md (100%) rename {content/en => org-cyf/content}/html-css/product/test/index.md (100%) rename {content/en => org-cyf/content}/html-css/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/html-css/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/html-css/sprints/1/day-plan/index.md (96%) rename {content/en => org-cyf/content}/html-css/sprints/1/prep/index.md (96%) rename {content/en => org-cyf/content}/html-css/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/html-css/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/html-css/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/html-css/sprints/2/day-plan/index.md (95%) rename {content/en => org-cyf/content}/html-css/sprints/2/prep/index.md (91%) rename {content/en => org-cyf/content}/html-css/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/html-css/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/html-css/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/html-css/sprints/3/day-plan/index.md (95%) rename {content/en => org-cyf/content}/html-css/sprints/3/prep/index.md (89%) rename {content/en => org-cyf/content}/html-css/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/html-css/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/html-css/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/html-css/sprints/4/day-plan/index.md (96%) rename {content/en => org-cyf/content}/html-css/sprints/4/prep/index.md (92%) rename {content/en => org-cyf/content}/html-css/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/html-css/success/index.md (80%) create mode 100644 org-cyf/content/induction/_index.md rename {content/en => org-cyf/content}/induction/prep/index.md (67%) rename {content/en => org-cyf/content}/induction/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/induction/sprints/1/backlog/index.md (92%) rename {content/en => org-cyf/content}/induction/sprints/1/day-plan/index.md (89%) create mode 100644 org-cyf/content/induction/sprints/1/prep/commit-history-relative-dates.png create mode 100644 org-cyf/content/induction/sprints/1/prep/commit-history.png create mode 100644 org-cyf/content/induction/sprints/1/prep/different-blog-versions.png create mode 100644 org-cyf/content/induction/sprints/1/prep/fork-and-clone-diagram.png create mode 100644 org-cyf/content/induction/sprints/1/prep/highlight-2nd-commit.png create mode 100644 org-cyf/content/induction/sprints/1/prep/index.md create mode 100644 org-cyf/content/induction/sprints/1/prep/lesson1-forked-url-anatomy.png create mode 100644 org-cyf/content/induction/sprints/1/prep/lesson1-four-repo-diagram.png create mode 100644 org-cyf/content/induction/sprints/1/prep/lesson1-github-url-anatomy.png create mode 100644 org-cyf/content/induction/sprints/1/prep/main-branch-highlighted.png rename {content/en => org-cyf/content}/induction/sprints/1/success/index.md (90%) create mode 100644 org-cyf/content/induction/success/index.md create mode 100644 org-cyf/content/js1/_index.md rename {content/en => org-cyf/content}/js1/prep/index.md (79%) rename {content/en => org-cyf/content}/js1/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/js1/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/js1/sprints/1/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js1/sprints/1/prep/index.md (67%) rename {content/en => org-cyf/content}/js1/sprints/1/success/index.md (93%) rename {content/en => org-cyf/content}/js1/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/js1/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/js1/sprints/2/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js1/sprints/2/prep/index.md (65%) rename {content/en => org-cyf/content}/js1/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/js1/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/js1/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/js1/sprints/3/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js1/sprints/3/prep/index.md (65%) rename {content/en => org-cyf/content}/js1/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/js1/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/js1/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/js1/sprints/4/day-plan/index.md (90%) create mode 100644 org-cyf/content/js1/sprints/4/prep/index.md rename {content/en => org-cyf/content}/js1/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/js1/success/index.md (76%) rename {content/en => org-cyf/content}/js2/_index.md (100%) rename {content/en => org-cyf/content}/js2/prep/index.md (86%) rename {content/en => org-cyf/content}/js2/product/_index.md (100%) rename {content/en => org-cyf/content}/js2/product/build/index.md (100%) rename {content/en => org-cyf/content}/js2/product/plan/index.md (100%) rename {content/en => org-cyf/content}/js2/product/ship/index.md (100%) rename {content/en => org-cyf/content}/js2/product/test/index.md (100%) rename {content/en => org-cyf/content}/js2/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/js2/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/js2/sprints/1/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js2/sprints/1/prep/index.md (56%) rename {content/en => org-cyf/content}/js2/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/js2/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/js2/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/js2/sprints/2/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js2/sprints/2/prep/index.md (69%) rename {content/en => org-cyf/content}/js2/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/js2/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/js2/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/js2/sprints/3/day-plan/index.md (89%) rename {content/en => org-cyf/content}/js2/sprints/3/prep/index.md (70%) rename {content/en => org-cyf/content}/js2/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/js2/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/js2/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/js2/sprints/4/day-plan/index.md (91%) rename {content/en => org-cyf/content}/js2/sprints/4/prep/index.md (92%) rename {content/en => org-cyf/content}/js2/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/js2/success/index.md (98%) create mode 100644 org-cyf/content/js3/_index.md rename {content/en => org-cyf/content}/js3/prep/index.md (92%) rename {content/en => org-cyf/content}/js3/product/_index.md (100%) rename {content/en => org-cyf/content}/js3/product/build/index.md (100%) rename {content/en => org-cyf/content}/js3/product/plan/index.md (100%) rename {content/en => org-cyf/content}/js3/product/ship/index.md (100%) rename {content/en => org-cyf/content}/js3/product/test/index.md (100%) rename {content/en => org-cyf/content}/js3/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/js3/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/js3/sprints/1/day-plan/index.md (96%) create mode 100644 org-cyf/content/js3/sprints/1/prep/index.md rename {content/en => org-cyf/content}/js3/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/js3/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/js3/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/js3/sprints/2/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js3/sprints/2/prep/index.md (64%) rename {content/en => org-cyf/content}/js3/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/js3/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/js3/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/js3/sprints/3/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js3/sprints/3/prep/index.md (74%) rename {content/en => org-cyf/content}/js3/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/js3/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/js3/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/js3/sprints/4/day-plan/index.md (96%) rename {content/en => org-cyf/content}/js3/sprints/4/prep/index.md (71%) rename {content/en => org-cyf/content}/js3/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/js3/success/index.md (100%) rename {content/en => org-cyf/content}/portfolio/_index.md (100%) rename {content/en => org-cyf/content}/portfolio/prep/index.md (97%) rename {content/en => org-cyf/content}/portfolio/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/portfolio/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/portfolio/sprints/1/day-plan/index.md (77%) rename {content/en => org-cyf/content}/portfolio/sprints/1/prep/index.md (82%) rename {content/en => org-cyf/content}/portfolio/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/portfolio/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/portfolio/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/portfolio/sprints/2/day-plan/index.md (84%) rename {content/en => org-cyf/content}/portfolio/sprints/2/prep/index.md (91%) rename {content/en => org-cyf/content}/portfolio/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/portfolio/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/portfolio/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/portfolio/sprints/3/day-plan/index.md (85%) rename {content/en => org-cyf/content}/portfolio/sprints/3/prep/index.md (85%) rename {content/en => org-cyf/content}/portfolio/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/portfolio/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/portfolio/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/portfolio/sprints/4/day-plan/index.md (73%) rename {content/en => org-cyf/content}/portfolio/sprints/4/prep/index.md (86%) rename {content/en => org-cyf/content}/portfolio/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/portfolio/sprints/5/_index.md (100%) rename {content/en => org-cyf/content}/portfolio/sprints/5/backlog/index.md (88%) rename {content/en => org-cyf/content}/portfolio/sprints/5/day-plan/index.md (73%) rename {content/en => org-cyf/content}/portfolio/sprints/5/prep/index.md (85%) rename {content/en => org-cyf/content}/portfolio/sprints/5/success/index.md (90%) rename {content/en => org-cyf/content}/portfolio/success/index.md (95%) rename {content/en => org-cyf/content}/react/_index.md (100%) rename {content/en => org-cyf/content}/react/prep/index.md (88%) rename {content/en => org-cyf/content}/react/product/_index.md (100%) rename {content/en => org-cyf/content}/react/product/backlog/_index.md (100%) rename {content/en => org-cyf/content}/react/product/backlog/backlog-1/index.md (89%) rename {content/en => org-cyf/content}/react/product/backlog/backlog-2/index.md (89%) rename {content/en => org-cyf/content}/react/product/backlog/backlog-3/index.md (89%) rename {content/en => org-cyf/content}/react/product/backlog/backlog-4/index.md (89%) rename {content/en => org-cyf/content}/react/product/prep/index.md (100%) rename {content/en => org-cyf/content}/react/product/success/index.md (100%) rename {content/en => org-cyf/content}/react/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/react/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/react/sprints/1/day-plan/index.md (93%) rename {content/en => org-cyf/content}/react/sprints/1/prep/index.md (88%) rename {content/en => org-cyf/content}/react/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/react/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/react/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/react/sprints/2/day-plan/index.md (96%) rename {content/en => org-cyf/content}/react/sprints/2/prep/index.md (93%) rename {content/en => org-cyf/content}/react/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/react/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/react/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/react/sprints/3/day-plan/index.md (96%) rename {content/en => org-cyf/content}/react/sprints/3/prep/index.md (69%) rename {content/en => org-cyf/content}/react/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/react/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/react/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/react/sprints/4/day-plan/index.md (96%) rename {content/en => org-cyf/content}/react/sprints/4/prep/index.md (83%) rename {content/en => org-cyf/content}/react/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/react/success/index.md (100%) rename {content/en => org-cyf/content}/servers/_index.md (100%) rename {content/en => org-cyf/content}/servers/prep/index.md (83%) rename {content/en => org-cyf/content}/servers/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/servers/sprints/1/backlog/index.md (88%) rename {content/en => org-cyf/content}/servers/sprints/1/day-plan/index.md (95%) rename {content/en => org-cyf/content}/servers/sprints/1/prep/index.md (72%) rename {content/en => org-cyf/content}/servers/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/servers/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/servers/sprints/2/backlog/index.md (88%) rename {content/en => org-cyf/content}/servers/sprints/2/day-plan/index.md (95%) rename {content/en => org-cyf/content}/servers/sprints/2/prep/index.md (82%) rename {content/en => org-cyf/content}/servers/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/servers/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/servers/sprints/3/backlog/index.md (88%) rename {content/en => org-cyf/content}/servers/sprints/3/day-plan/index.md (91%) rename {content/en => org-cyf/content}/servers/sprints/3/prep/index.md (77%) rename {content/en => org-cyf/content}/servers/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/servers/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/servers/sprints/4/backlog/index.md (88%) rename {content/en => org-cyf/content}/servers/sprints/4/day-plan/index.md (95%) rename {content/en => org-cyf/content}/servers/sprints/4/prep/index.md (93%) rename {content/en => org-cyf/content}/servers/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/servers/success/index.md (100%) rename {content/en => org-cyf/content}/the-launch/_index.md (100%) rename {content/en => org-cyf/content}/the-launch/prep/index.md (91%) rename {content/en => org-cyf/content}/the-launch/product/_index.md (100%) rename {content/en => org-cyf/content}/the-launch/product/build/index.md (100%) rename {content/en => org-cyf/content}/the-launch/product/plan/index.md (100%) rename {content/en => org-cyf/content}/the-launch/product/ship/index.md (100%) rename {content/en => org-cyf/content}/the-launch/product/test/index.md (100%) rename {content/en => org-cyf/content}/the-launch/sprints/1/_index.md (100%) rename {content/en => org-cyf/content}/the-launch/sprints/1/backlog/index.md (88%) create mode 100644 org-cyf/content/the-launch/sprints/1/day-plan/index.md rename {content/en => org-cyf/content}/the-launch/sprints/1/prep/index.md (85%) rename {content/en => org-cyf/content}/the-launch/sprints/1/success/index.md (90%) rename {content/en => org-cyf/content}/the-launch/sprints/2/_index.md (100%) rename {content/en => org-cyf/content}/the-launch/sprints/2/backlog/index.md (88%) create mode 100644 org-cyf/content/the-launch/sprints/2/day-plan/index.md create mode 100644 org-cyf/content/the-launch/sprints/2/prep/index.md rename {content/en => org-cyf/content}/the-launch/sprints/2/success/index.md (90%) rename {content/en => org-cyf/content}/the-launch/sprints/3/_index.md (100%) rename {content/en => org-cyf/content}/the-launch/sprints/3/backlog/index.md (88%) create mode 100644 org-cyf/content/the-launch/sprints/3/day-plan/index.md create mode 100644 org-cyf/content/the-launch/sprints/3/prep/index.md rename {content/en => org-cyf/content}/the-launch/sprints/3/success/index.md (90%) rename {content/en => org-cyf/content}/the-launch/sprints/4/_index.md (100%) rename {content/en => org-cyf/content}/the-launch/sprints/4/backlog/index.md (88%) create mode 100644 org-cyf/content/the-launch/sprints/4/day-plan/index.md create mode 100644 org-cyf/content/the-launch/sprints/4/prep/index.md rename {content/en => org-cyf/content}/the-launch/sprints/4/success/index.md (90%) rename {content/en => org-cyf/content}/the-launch/success/index.md (91%) rename {data => org-cyf/data}/funding.json (100%) create mode 100644 org-cyf/go.mod create mode 100644 org-cyf/go.sum rename config.toml => org-cyf/hugo.toml (64%) create mode 100644 org-cyf/package-lock.json create mode 100644 org-cyf/package.json rename readme_repository_access.png => org-cyf/readme_repository_access.png (100%) rename {static => org-cyf/static}/404.html (100%) rename {static => org-cyf/static}/_redirects (100%) rename {static => org-cyf/static}/android-chrome-192x192.png (100%) rename {static => org-cyf/static}/android-chrome-512x512.png (100%) rename {static => org-cyf/static}/apple-touch-icon.png (100%) rename {static => org-cyf/static}/dummy-apis/films.json (100%) rename {static => org-cyf/static}/favicon-16x16.png (100%) rename {static => org-cyf/static}/favicon-32x32.png (100%) rename {static => org-cyf/static}/favicon.ico (100%) rename {static => org-cyf/static}/filterFilms.html (100%) rename {static => org-cyf/static}/logos/EY.png (100%) rename {static => org-cyf/static}/logos/MVF.svg (100%) rename {static => org-cyf/static}/logos/adobe.webp (100%) rename {static => org-cyf/static}/logos/aston-university.svg (100%) rename {static => org-cyf/static}/logos/capgemini.png (100%) rename {static => org-cyf/static}/logos/cititec.svg (100%) rename {static => org-cyf/static}/logos/codility.png (100%) rename {static => org-cyf/static}/logos/df-capital.png (100%) rename {static => org-cyf/static}/logos/evidenced.png (100%) rename {static => org-cyf/static}/logos/ey.svg (100%) rename {static => org-cyf/static}/logos/figma.svg (100%) rename {static => org-cyf/static}/logos/fourth.svg (100%) create mode 100644 org-cyf/static/logos/github.png rename {static => org-cyf/static}/logos/infinity-works.svg (100%) rename {static => org-cyf/static}/logos/lego.svg (100%) rename {static => org-cyf/static}/logos/motorola.svg (100%) create mode 100644 org-cyf/static/logos/netlify.svg rename {static => org-cyf/static}/logos/rainbird.webp (100%) rename {static => org-cyf/static}/logos/scotgov.svg (100%) rename {static => org-cyf/static}/logos/seesaw.png (100%) rename {static => org-cyf/static}/logos/seesaw.svg (100%) create mode 100644 org-cyf/static/logos/slack.png rename {static => org-cyf/static}/logos/slalom.svg (100%) rename {static => org-cyf/static}/logos/udemy.png (100%) rename {static => org-cyf/static}/logos/workday.svg (100%) rename {static => org-cyf/static}/manifest.json (100%) create mode 100644 org-mcb/.gitignore create mode 100644 org-mcb/CONTRIBUTING.md create mode 100644 org-mcb/README.md create mode 100644 org-mcb/assets/custom-images/site-logo/logo.svg create mode 100644 org-mcb/assets/custom-theme/02-variables/colors.scss create mode 100644 org-mcb/assets/custom-theme/02-variables/fonts.scss create mode 100644 org-mcb/assets/custom-theme/states/dark.scss create mode 100644 org-mcb/assets/custom-theme/states/light.scss create mode 100644 org-mcb/content/_index.md create mode 100644 org-mcb/go.mod create mode 100644 org-mcb/hugo.toml create mode 100644 org-mcb/package.json rename DEVELOPER.md => tooling/DEVELOPER.md (100%) rename create_module.sh => tooling/create_module.sh (100%) rename netlify.toml => tooling/netlify.toml (100%) rename {netlify => tooling/netlify}/functions/clone.ts (100%) rename {netlify => tooling/netlify}/helpers/config.ts (100%) rename {netlify => tooling/netlify}/helpers/const.ts (100%) rename {netlify => tooling/netlify}/helpers/github.ts (100%) rename {netlify => tooling/netlify}/helpers/gql.ts (100%) rename {netlify => tooling/netlify}/helpers/templates.ts (100%) rename {netlify => tooling/netlify}/helpers/types.ts (100%) rename {netlify => tooling/netlify}/helpers/util.ts (100%) diff --git a/layouts/shortcodes/limit.html b/CITATION.cff similarity index 100% rename from layouts/shortcodes/limit.html rename to CITATION.cff diff --git a/README.md b/README.md index 63673bf9e..66e473232 100644 --- a/README.md +++ b/README.md @@ -1,175 +1,60 @@ -# Code Your Future Curriculum +# Curriculum Platform -[![Netlify Status](https://api.netlify.com/api/v1/badges/34db2751-bd7a-4828-a54d-787fa17b11e9/deploy-status)](https://app.netlify.com/sites/cyf-curriculum/deploys) +## What is it? -## Tools +This is a white label multi-tenant platform for us and our code school friends to use to manage our curricula. It's built on top of [Hugo](https://gohugo.io/) and [Netlify CMS](https://www.netlifycms.org/). -- [Hugo](https://gohugo.io/) - Static site generator -- [Hugo Pipes](https://gohugo.io/hugo-pipes/introduction/) - Asset pipeline -- [Netlify](https://www.netlify.com/) - Hosting and deployment -- [GitHub](https://github.com/CodeYourFuture/CYF-Signposts) - Source code repository -- [Bash](https://www.gnu.org/software/bash/) - Bash script to create new module structures +The platform, layout, styles and components are all developed in the Hugo module [/common-theme](/common-theme). -## Developing the source website +The content is developed in the Hugo module [/common-content](/common-content). This content is all headless blocks. It doesn't create any pages on your site unless you call it somewhere. -### To install +Multi-language support is provided by [Hugo's i18n support](https://gohugo.io/content-management/multilingual/). -```bash -brew install hugo -``` - -### 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](https://github.com/settings/tokens?type=beta). - -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). +Each org builds its own Hugo site that uses the common theme and content modules, and then makes any customisations they need and deploys it wherever they want. -Make sure the Resource owner is _your_ account if you have a choice. +## Examples -The "Repository access" you need is "Public repositories (read-only)", and you don't need any account permissions: +- [CodeYourFuture](/org-cyf/) => [https://org-cyf-theme.netlify.app/](https://org-cyf-theme.netlify.app/) +- [MigraCode](/org-mcb/) => [https://org-mcb-theme.netlify.app/](https://org-mcb-theme.netlify.app/) (couldn't find an svg logo) -
-Open to view screenshot of the required permissions +## To build a new site -![screenshot of required permissions](./readme_repository_access.png) -
- -#### Set up `.env` - -Copy the `.env.example` file over and name it `.env`. Edit the file and then change the line that says `CYF_CURRICULUM_GITHUB_BEARER_TOKEN` to contain the token that you have generated earlier. - -#### Run this command - -Run this command in a terminal, substituting in the github API token you generated above: +1. In the root of this repo, run: ```bash -npm i -npm run start:dev +hugo new site org- +cd org- ``` -If you find the build is very slow, and don't care about the issues being pulled into backlogs being precise, you can run: - -```bash -npm run start:dev -- --environment issues-are-cached-and-incomplete -``` - -### To create a new module - -```bash -./create_module -``` - -### Linting - -All CYF repos use the Prettier standard. However, Prettier doesn't have golang by default so you must install a plugin for it to work in VSCode. I've included it in the package.json. - -### 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: +2. Initialise your new site as a hugo module, as only modules can import modules: ```zsh -rm -rf public && -hugo && npx pagefind --source "public" --serve +hugo mod init github.com/CodeYourFuture/curriculum-labs/org- ``` -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. - -## Contributing - -To add content via GitHub, open a PR, following the CONTRIBUTING.md guidelines and PR template. - -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](./contributing) - - - -[![All Contributors](https://img.shields.io/badge/all_contributors-11-orange.svg?style=flat-square)](#contributors-) - - - -Code Your Future helps people who need it most to reach their goal of working in tech. Our innovative programme supports people all the way into secure employment as a software engineer. - -**Our trainees are people living in poverty**, disabled people, long term unemployed, refugees, asylum seekers, ex-offenders, single parents, and anyone else facing material barriers to digital education and employment in tech. - -**Our graduates work in great companies** including Capgemini, Deloitte, JP Morgan, Financial Times, AWS, Thoughtworks, the BBC, AND Digital and many more. - -**All our classes are free and our teachers are volunteers.** Our volunteers are professionals working in the local tech sector and they lead our course delivery. - -**We build communities and networks of inclusion everywhere we go**, bringing different worlds together, and integrating people into their local communities, teachers and learners both. We come together for a live session at the weekend, and trainees work through coursework and projects 20 hours a week, independently around their commitments, including day jobs. - -**CYF was founded by migrants for refugees**, and now welcomes everyone facing material barriers to technical education. Starting with a class of 6 people in 2016, and growing every day, we have helped over 240 people start their career in tech. - -## Our Approach - -Our PERN software development programme is part-time, vocational and practical. We teach functional programming with React, Jest, Postgres, Node, Express. We press hard on Agile, teamworking, conflict management, and self-study. We drill with Codewars problems and Codility tech tests for discipline and fluency, and encourage self-directed passion projects for creativity and innovation. - -We do our work in public; our courses are free and open source and we develop them in public as FOSS projects on GitHub. Right here! - -To graduate at CYF our trainees must deliver, deploy, and demo a working MVP of a full-stack web application, typically for a real NGO we partner with, in a cross-functional Agile team. - -## Documentation - -In this curriculum you'll find the content that we teach at CodeYourFuture. For other operational details you should read [our documentation website](https://docs.codeyourfuture.io). - -## Contributing +Then add the common theme and content modules as hugo modules to hugo.toml: + +```toml +[module] + [[module.imports]] + path = "github.com/CodeYourFuture/curriculum-labs/common-theme" + [[module.imports]] + path = "github.com/CodeYourFuture/curriculum-labs/common-content" + [[module.imports.mounts]] + source = "en" + target = "content" +``` -Please read CONTRIBUTING.MD +Look at the [org-cyf](/org-cyf/) and [org-mcb](/org-mcb/) examples for more details and options. -## Contributors ✨ +To customise the css, make a dir `assets/custom-theme` and throw any scss in there. It will be compiled and added last. -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): +To add site logo/s, make a dir and add svgs to `assets/custom-images/site-logo/`. They will be added to the site header. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

πŸ–‹ πŸ’»
+Add your content to `content/` and customise the site config in `config.toml`. Please contribute any improvements you make back to the common theme and content modules. - - +For each module you import, add a `replace` directive to your `go.mod` file - if you forget to do this, you won't get live updates to your site when shared content changes. CI will remind you if you forget. - +## To locally develop your site -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! +`cd` into the site you wish to develop, and run `hugo server` to get a live preview. diff --git a/content/en/_index.md b/common-content/en/_index.md similarity index 100% rename from content/en/_index.md rename to common-content/en/_index.md diff --git a/content/en/blocks/afternoon-break/index.md b/common-content/en/blocks/afternoon-break/index.md similarity index 100% rename from content/en/blocks/afternoon-break/index.md rename to common-content/en/blocks/afternoon-break/index.md diff --git a/content/en/blocks/backlog/index.md b/common-content/en/blocks/backlog/index.md similarity index 100% rename from content/en/blocks/backlog/index.md rename to common-content/en/blocks/backlog/index.md diff --git a/content/en/blocks/blockers/index.md b/common-content/en/blocks/blockers/index.md similarity index 100% rename from content/en/blocks/blockers/index.md rename to common-content/en/blocks/blockers/index.md diff --git a/content/en/blocks/coding-101/index.md b/common-content/en/blocks/coding-101/index.md similarity index 100% rename from content/en/blocks/coding-101/index.md rename to common-content/en/blocks/coding-101/index.md diff --git a/content/en/blocks/coursework/index.md b/common-content/en/blocks/coursework/index.md similarity index 100% rename from content/en/blocks/coursework/index.md rename to common-content/en/blocks/coursework/index.md diff --git a/content/en/blocks/energiser/index.md b/common-content/en/blocks/energiser/index.md similarity index 100% rename from content/en/blocks/energiser/index.md rename to common-content/en/blocks/energiser/index.md diff --git a/content/en/blocks/kata/index.md b/common-content/en/blocks/kata/index.md similarity index 100% rename from content/en/blocks/kata/index.md rename to common-content/en/blocks/kata/index.md diff --git a/content/en/blocks/lunch/index.md b/common-content/en/blocks/lunch/index.md similarity index 100% rename from content/en/blocks/lunch/index.md rename to common-content/en/blocks/lunch/index.md diff --git a/content/en/blocks/morning-break/index.md b/common-content/en/blocks/morning-break/index.md similarity index 100% rename from content/en/blocks/morning-break/index.md rename to common-content/en/blocks/morning-break/index.md diff --git a/content/en/blocks/pd-placeholder/index.md b/common-content/en/blocks/pd-placeholder/index.md similarity index 100% rename from content/en/blocks/pd-placeholder/index.md rename to common-content/en/blocks/pd-placeholder/index.md diff --git a/content/en/snippets/requirements.md b/common-content/en/blocks/requirements/index.md similarity index 76% rename from content/en/snippets/requirements.md rename to common-content/en/blocks/requirements/index.md index f0e1a3f06..3bb0b4b59 100644 --- a/content/en/snippets/requirements.md +++ b/common-content/en/blocks/requirements/index.md @@ -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**. diff --git a/content/en/blocks/retro/index.md b/common-content/en/blocks/retro/index.md similarity index 100% rename from content/en/blocks/retro/index.md rename to common-content/en/blocks/retro/index.md diff --git a/content/en/blocks/search-terms/index.md b/common-content/en/blocks/search-terms/index.md similarity index 100% rename from content/en/blocks/search-terms/index.md rename to common-content/en/blocks/search-terms/index.md diff --git a/content/en/blocks/spaced-repetition/index.md b/common-content/en/blocks/spaced-repetition/index.md similarity index 100% rename from content/en/blocks/spaced-repetition/index.md rename to common-content/en/blocks/spaced-repetition/index.md diff --git a/content/en/blocks/study-45/index.md b/common-content/en/blocks/study-45/index.md similarity index 100% rename from content/en/blocks/study-45/index.md rename to common-content/en/blocks/study-45/index.md diff --git a/content/en/blocks/study-60/index.md b/common-content/en/blocks/study-60/index.md similarity index 100% rename from content/en/blocks/study-60/index.md rename to common-content/en/blocks/study-60/index.md diff --git a/content/en/blocks/study-90/index.md b/common-content/en/blocks/study-90/index.md similarity index 100% rename from content/en/blocks/study-90/index.md rename to common-content/en/blocks/study-90/index.md diff --git a/content/en/blocks/study-group/index.md b/common-content/en/blocks/study-group/index.md similarity index 100% rename from content/en/blocks/study-group/index.md rename to common-content/en/blocks/study-group/index.md diff --git a/content/en/blocks/success-criteria/index.md b/common-content/en/blocks/success-criteria/index.md similarity index 100% rename from content/en/blocks/success-criteria/index.md rename to common-content/en/blocks/success-criteria/index.md diff --git a/content/en/blocks/telephone/index.md b/common-content/en/blocks/telephone/index.md similarity index 100% rename from content/en/blocks/telephone/index.md rename to common-content/en/blocks/telephone/index.md diff --git a/content/en/blocks/useful-links/index.md b/common-content/en/blocks/useful-links/index.md similarity index 100% rename from content/en/blocks/useful-links/index.md rename to common-content/en/blocks/useful-links/index.md diff --git a/content/en/blocks/user-stories/index.md b/common-content/en/blocks/user-stories/index.md similarity index 100% rename from content/en/blocks/user-stories/index.md rename to common-content/en/blocks/user-stories/index.md diff --git a/content/en/blocks/wordle/index.md b/common-content/en/blocks/wordle/index.md similarity index 100% rename from content/en/blocks/wordle/index.md rename to common-content/en/blocks/wordle/index.md diff --git a/content/en/databases/blocks/communicating-with-db/index.md b/common-content/en/module/databases/communicating-with-db/index.md similarity index 100% rename from content/en/databases/blocks/communicating-with-db/index.md rename to common-content/en/module/databases/communicating-with-db/index.md diff --git a/content/en/databases/blocks/creating-a-table/index.md b/common-content/en/module/databases/creating-a-table/index.md similarity index 100% rename from content/en/databases/blocks/creating-a-table/index.md rename to common-content/en/module/databases/creating-a-table/index.md diff --git a/content/en/databases/blocks/crud/crud.png b/common-content/en/module/databases/crud/crud.png similarity index 100% rename from content/en/databases/blocks/crud/crud.png rename to common-content/en/module/databases/crud/crud.png diff --git a/content/en/databases/blocks/crud/index.md b/common-content/en/module/databases/crud/index.md similarity index 100% rename from content/en/databases/blocks/crud/index.md rename to common-content/en/module/databases/crud/index.md diff --git a/content/en/databases/blocks/defining-keys/index.md b/common-content/en/module/databases/defining-keys/index.md similarity index 100% rename from content/en/databases/blocks/defining-keys/index.md rename to common-content/en/module/databases/defining-keys/index.md diff --git a/content/en/databases/blocks/integration-with-node/index.md b/common-content/en/module/databases/integration-with-node/index.md similarity index 100% rename from content/en/databases/blocks/integration-with-node/index.md rename to common-content/en/module/databases/integration-with-node/index.md diff --git a/content/en/databases/blocks/introduction-to-db/index.md b/common-content/en/module/databases/introduction-to-db/index.md similarity index 100% rename from content/en/databases/blocks/introduction-to-db/index.md rename to common-content/en/module/databases/introduction-to-db/index.md diff --git a/content/en/databases/blocks/introduction-to-postgresql/index.md b/common-content/en/module/databases/introduction-to-postgresql/index.md similarity index 100% rename from content/en/databases/blocks/introduction-to-postgresql/index.md rename to common-content/en/module/databases/introduction-to-postgresql/index.md diff --git a/content/en/databases/blocks/introduction-to-postgresql/table-diagram.png b/common-content/en/module/databases/introduction-to-postgresql/table-diagram.png similarity index 100% rename from content/en/databases/blocks/introduction-to-postgresql/table-diagram.png rename to common-content/en/module/databases/introduction-to-postgresql/table-diagram.png diff --git a/content/en/databases/blocks/joining-tables/index.md b/common-content/en/module/databases/joining-tables/index.md similarity index 100% rename from content/en/databases/blocks/joining-tables/index.md rename to common-content/en/module/databases/joining-tables/index.md diff --git a/content/en/databases/blocks/joining-tables/join-diagram.png b/common-content/en/module/databases/joining-tables/join-diagram.png similarity index 100% rename from content/en/databases/blocks/joining-tables/join-diagram.png rename to common-content/en/module/databases/joining-tables/join-diagram.png diff --git a/content/en/databases/blocks/more-selective/index.md b/common-content/en/module/databases/more-selective/index.md similarity index 100% rename from content/en/databases/blocks/more-selective/index.md rename to common-content/en/module/databases/more-selective/index.md diff --git a/content/en/databases/blocks/recap-node/index.md b/common-content/en/module/databases/recap-node/index.md similarity index 100% rename from content/en/databases/blocks/recap-node/index.md rename to common-content/en/module/databases/recap-node/index.md diff --git a/content/en/databases/blocks/recap-node/postman-get-cust-all-results.png b/common-content/en/module/databases/recap-node/postman-get-cust-all-results.png similarity index 100% rename from content/en/databases/blocks/recap-node/postman-get-cust-all-results.png rename to common-content/en/module/databases/recap-node/postman-get-cust-all-results.png diff --git a/content/en/databases/blocks/recap-node/postman-get-cust-all.odg b/common-content/en/module/databases/recap-node/postman-get-cust-all.odg similarity index 100% rename from content/en/databases/blocks/recap-node/postman-get-cust-all.odg rename to common-content/en/module/databases/recap-node/postman-get-cust-all.odg diff --git a/content/en/databases/blocks/recap-node/postman-get-cust-all.png b/common-content/en/module/databases/recap-node/postman-get-cust-all.png similarity index 100% rename from content/en/databases/blocks/recap-node/postman-get-cust-all.png rename to common-content/en/module/databases/recap-node/postman-get-cust-all.png diff --git a/content/en/databases/blocks/updating-rows/index.md b/common-content/en/module/databases/updating-rows/index.md similarity index 100% rename from content/en/databases/blocks/updating-rows/index.md rename to common-content/en/module/databases/updating-rows/index.md diff --git a/content/en/databases/blocks/using-aggregate-functions/index.md b/common-content/en/module/databases/using-aggregate-functions/index.md similarity index 100% rename from content/en/databases/blocks/using-aggregate-functions/index.md rename to common-content/en/module/databases/using-aggregate-functions/index.md diff --git a/content/en/fundamentals/_index.md b/common-content/en/module/fundamentals/_index.md similarity index 100% rename from content/en/fundamentals/_index.md rename to common-content/en/module/fundamentals/_index.md diff --git a/content/en/fundamentals/blocks/blockers/index.md b/common-content/en/module/fundamentals/blockers/index.md similarity index 100% rename from content/en/fundamentals/blocks/blockers/index.md rename to common-content/en/module/fundamentals/blockers/index.md diff --git a/content/en/fundamentals/blocks/code-dot-org/index.md b/common-content/en/module/fundamentals/code-dot-org/index.md similarity index 100% rename from content/en/fundamentals/blocks/code-dot-org/index.md rename to common-content/en/module/fundamentals/code-dot-org/index.md diff --git a/content/en/fundamentals/blocks/cyf-blocks-iteration/index.md b/common-content/en/module/fundamentals/cyf-blocks-iteration/index.md similarity index 100% rename from content/en/fundamentals/blocks/cyf-blocks-iteration/index.md rename to common-content/en/module/fundamentals/cyf-blocks-iteration/index.md diff --git a/content/en/fundamentals/blocks/cyf-blocks-requirements/index.md b/common-content/en/module/fundamentals/cyf-blocks-requirements/index.md similarity index 100% rename from content/en/fundamentals/blocks/cyf-blocks-requirements/index.md rename to common-content/en/module/fundamentals/cyf-blocks-requirements/index.md diff --git a/content/en/fundamentals/blocks/goals/index.md b/common-content/en/module/fundamentals/goals/index.md similarity index 100% rename from content/en/fundamentals/blocks/goals/index.md rename to common-content/en/module/fundamentals/goals/index.md diff --git a/content/en/fundamentals/blocks/mvp/index.md b/common-content/en/module/fundamentals/mvp/index.md similarity index 100% rename from content/en/fundamentals/blocks/mvp/index.md rename to common-content/en/module/fundamentals/mvp/index.md diff --git a/content/en/fundamentals/blocks/next-steps/index.md b/common-content/en/module/fundamentals/next-steps/index.md similarity index 100% rename from content/en/fundamentals/blocks/next-steps/index.md rename to common-content/en/module/fundamentals/next-steps/index.md diff --git a/content/en/fundamentals/blocks/overcoming-blockers/index.md b/common-content/en/module/fundamentals/overcoming-blockers/index.md similarity index 100% rename from content/en/fundamentals/blocks/overcoming-blockers/index.md rename to common-content/en/module/fundamentals/overcoming-blockers/index.md diff --git a/content/en/fundamentals/blocks/pairing/index.md b/common-content/en/module/fundamentals/pairing/index.md similarity index 100% rename from content/en/fundamentals/blocks/pairing/index.md rename to common-content/en/module/fundamentals/pairing/index.md diff --git a/content/en/fundamentals/blocks/ship-it-delivery/index.md b/common-content/en/module/fundamentals/ship-it-delivery/index.md similarity index 100% rename from content/en/fundamentals/blocks/ship-it-delivery/index.md rename to common-content/en/module/fundamentals/ship-it-delivery/index.md diff --git a/content/en/fundamentals/blocks/ship-it-iteration/index.md b/common-content/en/module/fundamentals/ship-it-iteration/index.md similarity index 100% rename from content/en/fundamentals/blocks/ship-it-iteration/index.md rename to common-content/en/module/fundamentals/ship-it-iteration/index.md diff --git a/content/en/fundamentals/blocks/ship-it-requirements/index.md b/common-content/en/module/fundamentals/ship-it-requirements/index.md similarity index 100% rename from content/en/fundamentals/blocks/ship-it-requirements/index.md rename to common-content/en/module/fundamentals/ship-it-requirements/index.md diff --git a/content/en/fundamentals/blocks/using-the-curriculum/index.md b/common-content/en/module/fundamentals/using-the-curriculum/index.md similarity index 100% rename from content/en/fundamentals/blocks/using-the-curriculum/index.md rename to common-content/en/module/fundamentals/using-the-curriculum/index.md diff --git a/content/en/fundamentals/blocks/wrap-up/index.md b/common-content/en/module/fundamentals/wrap-up/index.md similarity index 100% rename from content/en/fundamentals/blocks/wrap-up/index.md rename to common-content/en/module/fundamentals/wrap-up/index.md diff --git a/content/en/html-css/blocks/what-are-components/index.md b/common-content/en/module/html-css/what-are-components/index.md similarity index 100% rename from content/en/html-css/blocks/what-are-components/index.md rename to common-content/en/module/html-css/what-are-components/index.md diff --git a/content/en/html-css/blocks/what-are-forms/index.md b/common-content/en/module/html-css/what-are-forms/index.md similarity index 100% rename from content/en/html-css/blocks/what-are-forms/index.md rename to common-content/en/module/html-css/what-are-forms/index.md diff --git a/content/en/html-css/blocks/what-is-css/index.md b/common-content/en/module/html-css/what-is-css/index.md similarity index 100% rename from content/en/html-css/blocks/what-is-css/index.md rename to common-content/en/module/html-css/what-is-css/index.md diff --git a/content/en/html-css/blocks/what-is-html/index.md b/common-content/en/module/html-css/what-is-html/index.md similarity index 100% rename from content/en/html-css/blocks/what-is-html/index.md rename to common-content/en/module/html-css/what-is-html/index.md diff --git a/content/en/induction/blocks/branching/commit-history.png b/common-content/en/module/induction/branching/commit-history.png similarity index 100% rename from content/en/induction/blocks/branching/commit-history.png rename to common-content/en/module/induction/branching/commit-history.png diff --git a/content/en/induction/blocks/branching/highlight-2nd-commit.png b/common-content/en/module/induction/branching/highlight-2nd-commit.png similarity index 100% rename from content/en/induction/blocks/branching/highlight-2nd-commit.png rename to common-content/en/module/induction/branching/highlight-2nd-commit.png diff --git a/content/en/induction/blocks/branching/index.md b/common-content/en/module/induction/branching/index.md similarity index 100% rename from content/en/induction/blocks/branching/index.md rename to common-content/en/module/induction/branching/index.md diff --git a/content/en/induction/blocks/branching/lesson1-four-repo-diagram.png b/common-content/en/module/induction/branching/lesson1-four-repo-diagram.png similarity index 100% rename from content/en/induction/blocks/branching/lesson1-four-repo-diagram.png rename to common-content/en/module/induction/branching/lesson1-four-repo-diagram.png diff --git a/content/en/induction/blocks/branching/main-branch-highlighted.png b/common-content/en/module/induction/branching/main-branch-highlighted.png similarity index 100% rename from content/en/induction/blocks/branching/main-branch-highlighted.png rename to common-content/en/module/induction/branching/main-branch-highlighted.png diff --git a/content/en/induction/blocks/check-git-installation/index.md b/common-content/en/module/induction/check-git-installation/index.md similarity index 100% rename from content/en/induction/blocks/check-git-installation/index.md rename to common-content/en/module/induction/check-git-installation/index.md diff --git a/content/en/induction/blocks/check-github/index.md b/common-content/en/module/induction/check-github/index.md similarity index 100% rename from content/en/induction/blocks/check-github/index.md rename to common-content/en/module/induction/check-github/index.md diff --git a/content/en/induction/blocks/check-out-a-commit/index.md b/common-content/en/module/induction/check-out-a-commit/index.md similarity index 100% rename from content/en/induction/blocks/check-out-a-commit/index.md rename to common-content/en/module/induction/check-out-a-commit/index.md diff --git a/content/en/induction/blocks/cyf-blog/index.md b/common-content/en/module/induction/cyf-blog/index.md similarity index 100% rename from content/en/induction/blocks/cyf-blog/index.md rename to common-content/en/module/induction/cyf-blog/index.md diff --git a/content/en/induction/blocks/cyf-folder/index.md b/common-content/en/module/induction/cyf-folder/index.md similarity index 100% rename from content/en/induction/blocks/cyf-folder/index.md rename to common-content/en/module/induction/cyf-folder/index.md diff --git a/content/en/induction/blocks/development-process/different-blog-versions.png b/common-content/en/module/induction/development-process/different-blog-versions.png similarity index 100% rename from content/en/induction/blocks/development-process/different-blog-versions.png rename to common-content/en/module/induction/development-process/different-blog-versions.png diff --git a/content/en/induction/blocks/development-process/index.md b/common-content/en/module/induction/development-process/index.md similarity index 100% rename from content/en/induction/blocks/development-process/index.md rename to common-content/en/module/induction/development-process/index.md diff --git a/content/en/induction/blocks/forking-a-repository/index.md b/common-content/en/module/induction/forking-a-repository/index.md similarity index 100% rename from content/en/induction/blocks/forking-a-repository/index.md rename to common-content/en/module/induction/forking-a-repository/index.md diff --git a/content/en/induction/blocks/forking-a-repository/lesson1-forked-url-anatomy.png b/common-content/en/module/induction/forking-a-repository/lesson1-forked-url-anatomy.png similarity index 100% rename from content/en/induction/blocks/forking-a-repository/lesson1-forked-url-anatomy.png rename to common-content/en/module/induction/forking-a-repository/lesson1-forked-url-anatomy.png diff --git a/content/en/induction/blocks/forking-a-repository/lesson1-github-url-anatomy.png b/common-content/en/module/induction/forking-a-repository/lesson1-github-url-anatomy.png similarity index 100% rename from content/en/induction/blocks/forking-a-repository/lesson1-github-url-anatomy.png rename to common-content/en/module/induction/forking-a-repository/lesson1-github-url-anatomy.png diff --git a/content/en/induction/blocks/github-poets/index.md b/common-content/en/module/induction/github-poets/index.md similarity index 100% rename from content/en/induction/blocks/github-poets/index.md rename to common-content/en/module/induction/github-poets/index.md diff --git a/content/en/induction/blocks/github/index.md b/common-content/en/module/induction/github/index.md similarity index 100% rename from content/en/induction/blocks/github/index.md rename to common-content/en/module/induction/github/index.md diff --git a/content/en/induction/blocks/handshake/index.md b/common-content/en/module/induction/handshake/index.md similarity index 100% rename from content/en/induction/blocks/handshake/index.md rename to common-content/en/module/induction/handshake/index.md diff --git a/content/en/induction/blocks/install-vscode/index.md b/common-content/en/module/induction/install-vscode/index.md similarity index 100% rename from content/en/induction/blocks/install-vscode/index.md rename to common-content/en/module/induction/install-vscode/index.md diff --git a/content/en/induction/blocks/learning-as-community/index.md b/common-content/en/module/induction/learning-as-community/index.md similarity index 100% rename from content/en/induction/blocks/learning-as-community/index.md rename to common-content/en/module/induction/learning-as-community/index.md diff --git a/content/en/induction/blocks/next-steps/index.md b/common-content/en/module/induction/next-steps/index.md similarity index 100% rename from content/en/induction/blocks/next-steps/index.md rename to common-content/en/module/induction/next-steps/index.md diff --git a/content/en/induction/blocks/previous-versions/index.md b/common-content/en/module/induction/previous-versions/index.md similarity index 100% rename from content/en/induction/blocks/previous-versions/index.md rename to common-content/en/module/induction/previous-versions/index.md diff --git a/content/en/induction/blocks/sharing-history/index.md b/common-content/en/module/induction/sharing-history/index.md similarity index 100% rename from content/en/induction/blocks/sharing-history/index.md rename to common-content/en/module/induction/sharing-history/index.md diff --git a/content/en/induction/blocks/version-control/commit-history-relative-dates.png b/common-content/en/module/induction/version-control/commit-history-relative-dates.png similarity index 100% rename from content/en/induction/blocks/version-control/commit-history-relative-dates.png rename to common-content/en/module/induction/version-control/commit-history-relative-dates.png diff --git a/content/en/induction/blocks/version-control/index.md b/common-content/en/module/induction/version-control/index.md similarity index 100% rename from content/en/induction/blocks/version-control/index.md rename to common-content/en/module/induction/version-control/index.md diff --git a/content/en/induction/blocks/viewing-files/fork-and-clone-diagram.png b/common-content/en/module/induction/viewing-files/fork-and-clone-diagram.png similarity index 100% rename from content/en/induction/blocks/viewing-files/fork-and-clone-diagram.png rename to common-content/en/module/induction/viewing-files/fork-and-clone-diagram.png diff --git a/content/en/induction/blocks/viewing-files/index.md b/common-content/en/module/induction/viewing-files/index.md similarity index 100% rename from content/en/induction/blocks/viewing-files/index.md rename to common-content/en/module/induction/viewing-files/index.md diff --git a/content/en/induction/blocks/working-locally/index.md b/common-content/en/module/induction/working-locally/index.md similarity index 100% rename from content/en/induction/blocks/working-locally/index.md rename to common-content/en/module/induction/working-locally/index.md diff --git a/content/en/induction/blocks/wrapping-up/index.md b/common-content/en/module/induction/wrapping-up/index.md similarity index 100% rename from content/en/induction/blocks/wrapping-up/index.md rename to common-content/en/module/induction/wrapping-up/index.md diff --git a/content/en/js1/_index.md b/common-content/en/module/js1/_index.md similarity index 100% rename from content/en/js1/_index.md rename to common-content/en/module/js1/_index.md diff --git a/content/en/js1/blocks/api/index.md b/common-content/en/module/js1/api/index.md similarity index 100% rename from content/en/js1/blocks/api/index.md rename to common-content/en/module/js1/api/index.md diff --git a/content/en/js1/blocks/assembly/index.md b/common-content/en/module/js1/assembly/index.md similarity index 100% rename from content/en/js1/blocks/assembly/index.md rename to common-content/en/module/js1/assembly/index.md diff --git a/content/en/js1/blocks/assertions/index.md b/common-content/en/module/js1/assertions/index.md similarity index 100% rename from content/en/js1/blocks/assertions/index.md rename to common-content/en/module/js1/assertions/index.md diff --git a/content/en/js1/blocks/cases/index.md b/common-content/en/module/js1/cases/index.md similarity index 100% rename from content/en/js1/blocks/cases/index.md rename to common-content/en/module/js1/cases/index.md diff --git a/content/en/js1/blocks/check-unix-os/index.md b/common-content/en/module/js1/check-unix-os/index.md similarity index 100% rename from content/en/js1/blocks/check-unix-os/index.md rename to common-content/en/module/js1/check-unix-os/index.md diff --git a/content/en/js1/blocks/clocks/index.md b/common-content/en/module/js1/clocks/index.md similarity index 100% rename from content/en/js1/blocks/clocks/index.md rename to common-content/en/module/js1/clocks/index.md diff --git a/content/en/js1/blocks/comparison/index.md b/common-content/en/module/js1/comparison/index.md similarity index 100% rename from content/en/js1/blocks/comparison/index.md rename to common-content/en/module/js1/comparison/index.md diff --git a/content/en/js1/blocks/conditionality/index.md b/common-content/en/module/js1/conditionality/index.md similarity index 100% rename from content/en/js1/blocks/conditionality/index.md rename to common-content/en/module/js1/conditionality/index.md diff --git a/content/en/js1/blocks/data/index.md b/common-content/en/module/js1/data/index.md similarity index 100% rename from content/en/js1/blocks/data/index.md rename to common-content/en/module/js1/data/index.md diff --git a/content/en/js1/blocks/declarations-statements/index.md b/common-content/en/module/js1/declarations-statements/index.md similarity index 100% rename from content/en/js1/blocks/declarations-statements/index.md rename to common-content/en/module/js1/declarations-statements/index.md diff --git a/content/en/js1/blocks/declaring-functions/index.md b/common-content/en/module/js1/declaring-functions/index.md similarity index 100% rename from content/en/js1/blocks/declaring-functions/index.md rename to common-content/en/module/js1/declaring-functions/index.md diff --git a/content/en/js1/blocks/declaring-functions/round.gif b/common-content/en/module/js1/declaring-functions/round.gif similarity index 100% rename from content/en/js1/blocks/declaring-functions/round.gif rename to common-content/en/module/js1/declaring-functions/round.gif diff --git a/content/en/js1/blocks/errors/index.md b/common-content/en/module/js1/errors/index.md similarity index 100% rename from content/en/js1/blocks/errors/index.md rename to common-content/en/module/js1/errors/index.md diff --git a/content/en/js1/blocks/feedback/index.md b/common-content/en/module/js1/feedback/index.md similarity index 100% rename from content/en/js1/blocks/feedback/index.md rename to common-content/en/module/js1/feedback/index.md diff --git a/content/en/js1/blocks/feedback/test-feedback-fail.png b/common-content/en/module/js1/feedback/test-feedback-fail.png similarity index 100% rename from content/en/js1/blocks/feedback/test-feedback-fail.png rename to common-content/en/module/js1/feedback/test-feedback-fail.png diff --git a/content/en/js1/blocks/feedback/test-reference-error.png b/common-content/en/module/js1/feedback/test-reference-error.png similarity index 100% rename from content/en/js1/blocks/feedback/test-reference-error.png rename to common-content/en/module/js1/feedback/test-reference-error.png diff --git a/content/en/js1/blocks/framework/index.md b/common-content/en/module/js1/framework/index.md similarity index 100% rename from content/en/js1/blocks/framework/index.md rename to common-content/en/module/js1/framework/index.md diff --git a/content/en/js1/blocks/functions/index.md b/common-content/en/module/js1/functions/index.md similarity index 100% rename from content/en/js1/blocks/functions/index.md rename to common-content/en/module/js1/functions/index.md diff --git a/content/en/js1/blocks/functions/round.gif b/common-content/en/module/js1/functions/round.gif similarity index 100% rename from content/en/js1/blocks/functions/round.gif rename to common-content/en/module/js1/functions/round.gif diff --git a/content/en/js1/blocks/generalise/index.md b/common-content/en/module/js1/generalise/index.md similarity index 100% rename from content/en/js1/blocks/generalise/index.md rename to common-content/en/module/js1/generalise/index.md diff --git a/content/en/js1/blocks/generalise/second-case-fail.png b/common-content/en/module/js1/generalise/second-case-fail.png similarity index 100% rename from content/en/js1/blocks/generalise/second-case-fail.png rename to common-content/en/module/js1/generalise/second-case-fail.png diff --git a/content/en/js1/blocks/improving/index.md b/common-content/en/module/js1/improving/index.md similarity index 100% rename from content/en/js1/blocks/improving/index.md rename to common-content/en/module/js1/improving/index.md diff --git a/content/en/js1/blocks/install-node/index.md b/common-content/en/module/js1/install-node/index.md similarity index 100% rename from content/en/js1/blocks/install-node/index.md rename to common-content/en/module/js1/install-node/index.md diff --git a/content/en/js1/blocks/installing/index.md b/common-content/en/module/js1/installing/index.md similarity index 100% rename from content/en/js1/blocks/installing/index.md rename to common-content/en/module/js1/installing/index.md diff --git a/content/en/js1/blocks/installing/jest-install.png b/common-content/en/module/js1/installing/jest-install.png similarity index 100% rename from content/en/js1/blocks/installing/jest-install.png rename to common-content/en/module/js1/installing/jest-install.png diff --git a/content/en/js1/blocks/interface/index.md b/common-content/en/module/js1/interface/index.md similarity index 100% rename from content/en/js1/blocks/interface/index.md rename to common-content/en/module/js1/interface/index.md diff --git a/content/en/js1/blocks/logging/index.md b/common-content/en/module/js1/logging/index.md similarity index 100% rename from content/en/js1/blocks/logging/index.md rename to common-content/en/module/js1/logging/index.md diff --git a/content/en/js1/blocks/ordinal/index.md b/common-content/en/module/js1/ordinal/index.md similarity index 100% rename from content/en/js1/blocks/ordinal/index.md rename to common-content/en/module/js1/ordinal/index.md diff --git a/content/en/js1/blocks/outliers/index.md b/common-content/en/module/js1/outliers/index.md similarity index 100% rename from content/en/js1/blocks/outliers/index.md rename to common-content/en/module/js1/outliers/index.md diff --git a/content/en/js1/blocks/outliers/second-case-fail.png b/common-content/en/module/js1/outliers/second-case-fail.png similarity index 100% rename from content/en/js1/blocks/outliers/second-case-fail.png rename to common-content/en/module/js1/outliers/second-case-fail.png diff --git a/content/en/js1/blocks/packages/index.md b/common-content/en/module/js1/packages/index.md similarity index 100% rename from content/en/js1/blocks/packages/index.md rename to common-content/en/module/js1/packages/index.md diff --git a/content/en/js1/blocks/parameters/index.md b/common-content/en/module/js1/parameters/index.md similarity index 100% rename from content/en/js1/blocks/parameters/index.md rename to common-content/en/module/js1/parameters/index.md diff --git a/content/en/js1/blocks/percentages/index.md b/common-content/en/module/js1/percentages/index.md similarity index 100% rename from content/en/js1/blocks/percentages/index.md rename to common-content/en/module/js1/percentages/index.md diff --git a/content/en/js1/blocks/playing-computer/global-frame.png b/common-content/en/module/js1/playing-computer/global-frame.png similarity index 100% rename from content/en/js1/blocks/playing-computer/global-frame.png rename to common-content/en/module/js1/playing-computer/global-frame.png diff --git a/content/en/js1/blocks/playing-computer/index.md b/common-content/en/module/js1/playing-computer/index.md similarity index 100% rename from content/en/js1/blocks/playing-computer/index.md rename to common-content/en/module/js1/playing-computer/index.md diff --git a/content/en/js1/blocks/playing-computer/make-greeting-frame.png b/common-content/en/module/js1/playing-computer/make-greeting-frame.png similarity index 100% rename from content/en/js1/blocks/playing-computer/make-greeting-frame.png rename to common-content/en/module/js1/playing-computer/make-greeting-frame.png diff --git a/content/en/js1/blocks/playing-computer/runtime-diagram-1.png b/common-content/en/module/js1/playing-computer/runtime-diagram-1.png similarity index 100% rename from content/en/js1/blocks/playing-computer/runtime-diagram-1.png rename to common-content/en/module/js1/playing-computer/runtime-diagram-1.png diff --git a/content/en/js1/blocks/repl/index.md b/common-content/en/module/js1/repl/index.md similarity index 100% rename from content/en/js1/blocks/repl/index.md rename to common-content/en/module/js1/repl/index.md diff --git a/content/en/js1/blocks/return/index.md b/common-content/en/module/js1/return/index.md similarity index 100% rename from content/en/js1/blocks/return/index.md rename to common-content/en/module/js1/return/index.md diff --git a/content/en/js1/blocks/reuse/index.md b/common-content/en/module/js1/reuse/index.md similarity index 100% rename from content/en/js1/blocks/reuse/index.md rename to common-content/en/module/js1/reuse/index.md diff --git a/content/en/js1/blocks/reuse/round.gif b/common-content/en/module/js1/reuse/round.gif similarity index 100% rename from content/en/js1/blocks/reuse/round.gif rename to common-content/en/module/js1/reuse/round.gif diff --git a/content/en/js1/blocks/scope/index.md b/common-content/en/module/js1/scope/index.md similarity index 100% rename from content/en/js1/blocks/scope/index.md rename to common-content/en/module/js1/scope/index.md diff --git a/content/en/js1/blocks/scripts/index.md b/common-content/en/module/js1/scripts/index.md similarity index 100% rename from content/en/js1/blocks/scripts/index.md rename to common-content/en/module/js1/scripts/index.md diff --git a/content/en/js1/blocks/setup/index.md b/common-content/en/module/js1/setup/index.md similarity index 100% rename from content/en/js1/blocks/setup/index.md rename to common-content/en/module/js1/setup/index.md diff --git a/content/en/js1/blocks/setup/jest-install.png b/common-content/en/module/js1/setup/jest-install.png similarity index 100% rename from content/en/js1/blocks/setup/jest-install.png rename to common-content/en/module/js1/setup/jest-install.png diff --git a/content/en/js1/blocks/strategy/index.md b/common-content/en/module/js1/strategy/index.md similarity index 100% rename from content/en/js1/blocks/strategy/index.md rename to common-content/en/module/js1/strategy/index.md diff --git a/content/en/js1/blocks/strings/index.md b/common-content/en/module/js1/strings/index.md similarity index 100% rename from content/en/js1/blocks/strings/index.md rename to common-content/en/module/js1/strings/index.md diff --git a/content/en/js1/blocks/sub-goal/index.md b/common-content/en/module/js1/sub-goal/index.md similarity index 100% rename from content/en/js1/blocks/sub-goal/index.md rename to common-content/en/module/js1/sub-goal/index.md diff --git a/content/en/js1/blocks/terminal/index.md b/common-content/en/module/js1/terminal/index.md similarity index 100% rename from content/en/js1/blocks/terminal/index.md rename to common-content/en/module/js1/terminal/index.md diff --git a/content/en/js1/blocks/terminal/terminal.gif b/common-content/en/module/js1/terminal/terminal.gif similarity index 100% rename from content/en/js1/blocks/terminal/terminal.gif rename to common-content/en/module/js1/terminal/terminal.gif diff --git a/content/en/js1/blocks/variables/greeting.gif b/common-content/en/module/js1/variables/greeting.gif similarity index 100% rename from content/en/js1/blocks/variables/greeting.gif rename to common-content/en/module/js1/variables/greeting.gif diff --git a/content/en/js1/blocks/variables/index.md b/common-content/en/module/js1/variables/index.md similarity index 100% rename from content/en/js1/blocks/variables/index.md rename to common-content/en/module/js1/variables/index.md diff --git a/content/en/js2/blocks/access/index.md b/common-content/en/module/js2/access/index.md similarity index 100% rename from content/en/js2/blocks/access/index.md rename to common-content/en/module/js2/access/index.md diff --git a/content/en/js2/blocks/arrays/index.md b/common-content/en/module/js2/arrays/index.md similarity index 100% rename from content/en/js2/blocks/arrays/index.md rename to common-content/en/module/js2/arrays/index.md diff --git a/content/en/js2/blocks/assembly/index.md b/common-content/en/module/js2/assembly/index.md similarity index 100% rename from content/en/js2/blocks/assembly/index.md rename to common-content/en/module/js2/assembly/index.md diff --git a/content/en/js2/blocks/browser/index.md b/common-content/en/module/js2/browser/index.md similarity index 100% rename from content/en/js2/blocks/browser/index.md rename to common-content/en/module/js2/browser/index.md diff --git a/content/en/js2/blocks/character-limit/index.md b/common-content/en/module/js2/character-limit/index.md similarity index 100% rename from content/en/js2/blocks/character-limit/index.md rename to common-content/en/module/js2/character-limit/index.md diff --git a/content/en/js2/blocks/check-in/index.md b/common-content/en/module/js2/check-in/index.md similarity index 100% rename from content/en/js2/blocks/check-in/index.md rename to common-content/en/module/js2/check-in/index.md diff --git a/content/en/js2/blocks/check-progress/index.md b/common-content/en/module/js2/check-progress/index.md similarity index 100% rename from content/en/js2/blocks/check-progress/index.md rename to common-content/en/module/js2/check-progress/index.md diff --git a/content/en/js2/blocks/demo/index.md b/common-content/en/module/js2/demo/index.md similarity index 100% rename from content/en/js2/blocks/demo/index.md rename to common-content/en/module/js2/demo/index.md diff --git a/content/en/js2/blocks/dom/html-tree.png b/common-content/en/module/js2/dom/html-tree.png similarity index 100% rename from content/en/js2/blocks/dom/html-tree.png rename to common-content/en/module/js2/dom/html-tree.png diff --git a/content/en/js2/blocks/dom/index.md b/common-content/en/module/js2/dom/index.md similarity index 100% rename from content/en/js2/blocks/dom/index.md rename to common-content/en/module/js2/dom/index.md diff --git a/content/en/js2/blocks/events/index.md b/common-content/en/module/js2/events/index.md similarity index 100% rename from content/en/js2/blocks/events/index.md rename to common-content/en/module/js2/events/index.md diff --git a/content/en/js2/blocks/grouping-data/index.md b/common-content/en/module/js2/grouping-data/index.md similarity index 100% rename from content/en/js2/blocks/grouping-data/index.md rename to common-content/en/module/js2/grouping-data/index.md diff --git a/content/en/js2/blocks/iteration/index.md b/common-content/en/module/js2/iteration/index.md similarity index 100% rename from content/en/js2/blocks/iteration/index.md rename to common-content/en/module/js2/iteration/index.md diff --git a/content/en/js2/blocks/key-values/index.md b/common-content/en/module/js2/key-values/index.md similarity index 100% rename from content/en/js2/blocks/key-values/index.md rename to common-content/en/module/js2/key-values/index.md diff --git a/content/en/js2/blocks/mean/index.md b/common-content/en/module/js2/mean/index.md similarity index 100% rename from content/en/js2/blocks/mean/index.md rename to common-content/en/module/js2/mean/index.md diff --git a/content/en/js2/blocks/median/index.md b/common-content/en/module/js2/median/index.md similarity index 100% rename from content/en/js2/blocks/median/index.md rename to common-content/en/module/js2/median/index.md diff --git a/content/en/js2/blocks/multiple-params/index.md b/common-content/en/module/js2/multiple-params/index.md similarity index 100% rename from content/en/js2/blocks/multiple-params/index.md rename to common-content/en/module/js2/multiple-params/index.md diff --git a/content/en/js2/blocks/mutating/index.md b/common-content/en/module/js2/mutating/index.md similarity index 100% rename from content/en/js2/blocks/mutating/index.md rename to common-content/en/module/js2/mutating/index.md diff --git a/content/en/js2/blocks/mutation/index.md b/common-content/en/module/js2/mutation/index.md similarity index 100% rename from content/en/js2/blocks/mutation/index.md rename to common-content/en/module/js2/mutation/index.md diff --git a/content/en/js2/blocks/no-params/index.md b/common-content/en/module/js2/no-params/index.md similarity index 100% rename from content/en/js2/blocks/no-params/index.md rename to common-content/en/module/js2/no-params/index.md diff --git a/content/en/js2/blocks/no-params/to-be-check-error.png b/common-content/en/module/js2/no-params/to-be-check-error.png similarity index 100% rename from content/en/js2/blocks/no-params/to-be-check-error.png rename to common-content/en/module/js2/no-params/to-be-check-error.png diff --git a/content/en/js2/blocks/one-pair/index.md b/common-content/en/module/js2/one-pair/index.md similarity index 100% rename from content/en/js2/blocks/one-pair/index.md rename to common-content/en/module/js2/one-pair/index.md diff --git a/content/en/js2/blocks/one-pair/literal-key.png b/common-content/en/module/js2/one-pair/literal-key.png similarity index 100% rename from content/en/js2/blocks/one-pair/literal-key.png rename to common-content/en/module/js2/one-pair/literal-key.png diff --git a/content/en/js2/blocks/ordered-data/index.md b/common-content/en/module/js2/ordered-data/index.md similarity index 100% rename from content/en/js2/blocks/ordered-data/index.md rename to common-content/en/module/js2/ordered-data/index.md diff --git a/content/en/js2/blocks/pair-up/index.md b/common-content/en/module/js2/pair-up/index.md similarity index 100% rename from content/en/js2/blocks/pair-up/index.md rename to common-content/en/module/js2/pair-up/index.md diff --git a/content/en/js2/blocks/pick-an-app/index.md b/common-content/en/module/js2/pick-an-app/index.md similarity index 100% rename from content/en/js2/blocks/pick-an-app/index.md rename to common-content/en/module/js2/pick-an-app/index.md diff --git a/content/en/js2/blocks/plan/index.md b/common-content/en/module/js2/plan/index.md similarity index 100% rename from content/en/js2/blocks/plan/index.md rename to common-content/en/module/js2/plan/index.md diff --git a/content/en/js2/blocks/query-string/index.md b/common-content/en/module/js2/query-string/index.md similarity index 100% rename from content/en/js2/blocks/query-string/index.md rename to common-content/en/module/js2/query-string/index.md diff --git a/content/en/js2/blocks/querying/index.md b/common-content/en/module/js2/querying/index.md similarity index 100% rename from content/en/js2/blocks/querying/index.md rename to common-content/en/module/js2/querying/index.md diff --git a/content/en/js2/blocks/reference/index.md b/common-content/en/module/js2/reference/index.md similarity index 100% rename from content/en/js2/blocks/reference/index.md rename to common-content/en/module/js2/reference/index.md diff --git a/content/en/js2/blocks/reference/point-to-array.png b/common-content/en/module/js2/reference/point-to-array.png similarity index 100% rename from content/en/js2/blocks/reference/point-to-array.png rename to common-content/en/module/js2/reference/point-to-array.png diff --git a/content/en/js2/blocks/response/index.md b/common-content/en/module/js2/response/index.md similarity index 100% rename from content/en/js2/blocks/response/index.md rename to common-content/en/module/js2/response/index.md diff --git a/content/en/js2/blocks/side-effects/index.md b/common-content/en/module/js2/side-effects/index.md similarity index 100% rename from content/en/js2/blocks/side-effects/index.md rename to common-content/en/module/js2/side-effects/index.md diff --git a/content/en/js2/blocks/summing/index.md b/common-content/en/module/js2/summing/index.md similarity index 100% rename from content/en/js2/blocks/summing/index.md rename to common-content/en/module/js2/summing/index.md diff --git a/content/en/js2/blocks/update/index.md b/common-content/en/module/js2/update/index.md similarity index 100% rename from content/en/js2/blocks/update/index.md rename to common-content/en/module/js2/update/index.md diff --git a/content/en/js2/blocks/variable-keys/index.md b/common-content/en/module/js2/variable-keys/index.md similarity index 100% rename from content/en/js2/blocks/variable-keys/index.md rename to common-content/en/module/js2/variable-keys/index.md diff --git a/content/en/js2/blocks/variable-keys/parse-query-test-feedback.png b/common-content/en/module/js2/variable-keys/parse-query-test-feedback.png similarity index 100% rename from content/en/js2/blocks/variable-keys/parse-query-test-feedback.png rename to common-content/en/module/js2/variable-keys/parse-query-test-feedback.png diff --git a/content/en/js3/_index.md b/common-content/en/module/js3/_index.md similarity index 100% rename from content/en/js3/_index.md rename to common-content/en/module/js3/_index.md diff --git a/content/en/js3/blocks/async-await/index.md b/common-content/en/module/js3/async-await/index.md similarity index 100% rename from content/en/js3/blocks/async-await/index.md rename to common-content/en/module/js3/async-await/index.md diff --git a/content/en/js3/blocks/asynchrony/index.md b/common-content/en/module/js3/asynchrony/index.md similarity index 100% rename from content/en/js3/blocks/asynchrony/index.md rename to common-content/en/module/js3/asynchrony/index.md diff --git a/content/en/js3/blocks/break-down/index.md b/common-content/en/module/js3/break-down/index.md similarity index 100% rename from content/en/js3/blocks/break-down/index.md rename to common-content/en/module/js3/break-down/index.md diff --git a/content/en/js3/blocks/callbacks/index.md b/common-content/en/module/js3/callbacks/index.md similarity index 100% rename from content/en/js3/blocks/callbacks/index.md rename to common-content/en/module/js3/callbacks/index.md diff --git a/content/en/js3/blocks/capturing-events/index.md b/common-content/en/module/js3/capturing-events/index.md similarity index 100% rename from content/en/js3/blocks/capturing-events/index.md rename to common-content/en/module/js3/capturing-events/index.md diff --git a/content/en/js3/blocks/catch/index.md b/common-content/en/module/js3/catch/index.md similarity index 100% rename from content/en/js3/blocks/catch/index.md rename to common-content/en/module/js3/catch/index.md diff --git a/content/en/js3/blocks/chaining/index.md b/common-content/en/module/js3/chaining/index.md similarity index 100% rename from content/en/js3/blocks/chaining/index.md rename to common-content/en/module/js3/chaining/index.md diff --git a/content/en/js3/blocks/components/index.md b/common-content/en/module/js3/components/index.md similarity index 100% rename from content/en/js3/blocks/components/index.md rename to common-content/en/module/js3/components/index.md diff --git a/content/en/js3/blocks/composing-elements/index.md b/common-content/en/module/js3/composing-elements/index.md similarity index 100% rename from content/en/js3/blocks/composing-elements/index.md rename to common-content/en/module/js3/composing-elements/index.md diff --git a/content/en/js3/blocks/data-ui/index.md b/common-content/en/module/js3/data-ui/index.md similarity index 100% rename from content/en/js3/blocks/data-ui/index.md rename to common-content/en/module/js3/data-ui/index.md diff --git a/content/en/js3/blocks/fetch-films/data.json b/common-content/en/module/js3/fetch-films/data.json similarity index 100% rename from content/en/js3/blocks/fetch-films/data.json rename to common-content/en/module/js3/fetch-films/data.json diff --git a/content/en/js3/blocks/fetch-films/filterFilms.html b/common-content/en/module/js3/fetch-films/filterFilms.html similarity index 100% rename from content/en/js3/blocks/fetch-films/filterFilms.html rename to common-content/en/module/js3/fetch-films/filterFilms.html diff --git a/content/en/js3/blocks/fetch-films/index.md b/common-content/en/module/js3/fetch-films/index.md similarity index 100% rename from content/en/js3/blocks/fetch-films/index.md rename to common-content/en/module/js3/fetch-films/index.md diff --git a/content/en/js3/blocks/fetch/index.md b/common-content/en/module/js3/fetch/index.md similarity index 100% rename from content/en/js3/blocks/fetch/index.md rename to common-content/en/module/js3/fetch/index.md diff --git a/content/en/js3/blocks/fetching-data/index.md b/common-content/en/module/js3/fetching-data/index.md similarity index 100% rename from content/en/js3/blocks/fetching-data/index.md rename to common-content/en/module/js3/fetching-data/index.md diff --git a/content/en/js3/blocks/identifying-state/index.md b/common-content/en/module/js3/identifying-state/index.md similarity index 100% rename from content/en/js3/blocks/identifying-state/index.md rename to common-content/en/module/js3/identifying-state/index.md diff --git a/content/en/js3/blocks/internet/index.md b/common-content/en/module/js3/internet/index.md similarity index 100% rename from content/en/js3/blocks/internet/index.md rename to common-content/en/module/js3/internet/index.md diff --git a/content/en/js3/blocks/introducing-new-state/index.md b/common-content/en/module/js3/introducing-new-state/index.md similarity index 100% rename from content/en/js3/blocks/introducing-new-state/index.md rename to common-content/en/module/js3/introducing-new-state/index.md diff --git a/content/en/js3/blocks/latency/index.md b/common-content/en/module/js3/latency/index.md similarity index 100% rename from content/en/js3/blocks/latency/index.md rename to common-content/en/module/js3/latency/index.md diff --git a/content/en/js3/blocks/now-showing/film-cards.png b/common-content/en/module/js3/now-showing/film-cards.png similarity index 100% rename from content/en/js3/blocks/now-showing/film-cards.png rename to common-content/en/module/js3/now-showing/film-cards.png diff --git a/content/en/js3/blocks/now-showing/index.md b/common-content/en/module/js3/now-showing/index.md similarity index 100% rename from content/en/js3/blocks/now-showing/index.md rename to common-content/en/module/js3/now-showing/index.md diff --git a/content/en/js3/blocks/one-to-one/index.md b/common-content/en/module/js3/one-to-one/index.md similarity index 100% rename from content/en/js3/blocks/one-to-one/index.md rename to common-content/en/module/js3/one-to-one/index.md diff --git a/content/en/js3/blocks/promises/index.md b/common-content/en/module/js3/promises/index.md similarity index 100% rename from content/en/js3/blocks/promises/index.md rename to common-content/en/module/js3/promises/index.md diff --git a/content/en/js3/blocks/re-rendering-ui/index.md b/common-content/en/module/js3/re-rendering-ui/index.md similarity index 100% rename from content/en/js3/blocks/re-rendering-ui/index.md rename to common-content/en/module/js3/re-rendering-ui/index.md diff --git a/content/en/js3/blocks/reacting/index.md b/common-content/en/module/js3/reacting/index.md similarity index 100% rename from content/en/js3/blocks/reacting/index.md rename to common-content/en/module/js3/reacting/index.md diff --git a/content/en/js3/blocks/refactoring-to-state-and-render/index.md b/common-content/en/module/js3/refactoring-to-state-and-render/index.md similarity index 100% rename from content/en/js3/blocks/refactoring-to-state-and-render/index.md rename to common-content/en/module/js3/refactoring-to-state-and-render/index.md diff --git a/content/en/js3/blocks/rendering-based-on-state/index.md b/common-content/en/module/js3/rendering-based-on-state/index.md similarity index 100% rename from content/en/js3/blocks/rendering-based-on-state/index.md rename to common-content/en/module/js3/rendering-based-on-state/index.md diff --git a/content/en/js3/blocks/simplifying-element-creation/index.md b/common-content/en/module/js3/simplifying-element-creation/index.md similarity index 100% rename from content/en/js3/blocks/simplifying-element-creation/index.md rename to common-content/en/module/js3/simplifying-element-creation/index.md diff --git a/content/en/js3/blocks/single-datum/index.md b/common-content/en/module/js3/single-datum/index.md similarity index 100% rename from content/en/js3/blocks/single-datum/index.md rename to common-content/en/module/js3/single-datum/index.md diff --git a/content/en/js3/blocks/single-datum/single-film-display.png b/common-content/en/module/js3/single-datum/single-film-display.png similarity index 100% rename from content/en/js3/blocks/single-datum/single-film-display.png rename to common-content/en/module/js3/single-datum/single-film-display.png diff --git a/content/en/js3/blocks/template-html/index.md b/common-content/en/module/js3/template-html/index.md similarity index 100% rename from content/en/js3/blocks/template-html/index.md rename to common-content/en/module/js3/template-html/index.md diff --git a/content/en/js3/blocks/then/index.md b/common-content/en/module/js3/then/index.md similarity index 100% rename from content/en/js3/blocks/then/index.md rename to common-content/en/module/js3/then/index.md diff --git a/content/en/js3/blocks/using-fetch/index.md b/common-content/en/module/js3/using-fetch/index.md similarity index 100% rename from content/en/js3/blocks/using-fetch/index.md rename to common-content/en/module/js3/using-fetch/index.md diff --git a/content/en/js3/blocks/using-map/index.md b/common-content/en/module/js3/using-map/index.md similarity index 100% rename from content/en/js3/blocks/using-map/index.md rename to common-content/en/module/js3/using-map/index.md diff --git a/content/en/portfolio/blocks/break-it-down/index.md b/common-content/en/module/portfolio/break-it-down/index.md similarity index 100% rename from content/en/portfolio/blocks/break-it-down/index.md rename to common-content/en/module/portfolio/break-it-down/index.md diff --git a/content/en/portfolio/blocks/data/index.md b/common-content/en/module/portfolio/data/index.md similarity index 100% rename from content/en/portfolio/blocks/data/index.md rename to common-content/en/module/portfolio/data/index.md diff --git a/content/en/portfolio/blocks/employability/index.md b/common-content/en/module/portfolio/employability/index.md similarity index 100% rename from content/en/portfolio/blocks/employability/index.md rename to common-content/en/module/portfolio/employability/index.md diff --git a/content/en/portfolio/blocks/ground-rules/index.md b/common-content/en/module/portfolio/ground-rules/index.md similarity index 100% rename from content/en/portfolio/blocks/ground-rules/index.md rename to common-content/en/module/portfolio/ground-rules/index.md diff --git a/content/en/portfolio/blocks/guest/index.md b/common-content/en/module/portfolio/guest/index.md similarity index 100% rename from content/en/portfolio/blocks/guest/index.md rename to common-content/en/module/portfolio/guest/index.md diff --git a/content/en/portfolio/blocks/interfaces/index.md b/common-content/en/module/portfolio/interfaces/index.md similarity index 100% rename from content/en/portfolio/blocks/interfaces/index.md rename to common-content/en/module/portfolio/interfaces/index.md diff --git a/content/en/portfolio/blocks/next-steps/index.md b/common-content/en/module/portfolio/next-steps/index.md similarity index 100% rename from content/en/portfolio/blocks/next-steps/index.md rename to common-content/en/module/portfolio/next-steps/index.md diff --git a/content/en/portfolio/blocks/project/index.md b/common-content/en/module/portfolio/project/index.md similarity index 100% rename from content/en/portfolio/blocks/project/index.md rename to common-content/en/module/portfolio/project/index.md diff --git a/content/en/portfolio/blocks/requirements/index.md b/common-content/en/module/portfolio/requirements/index.md similarity index 100% rename from content/en/portfolio/blocks/requirements/index.md rename to common-content/en/module/portfolio/requirements/index.md diff --git a/content/en/portfolio/blocks/stand-up/index.md b/common-content/en/module/portfolio/stand-up/index.md similarity index 100% rename from content/en/portfolio/blocks/stand-up/index.md rename to common-content/en/module/portfolio/stand-up/index.md diff --git a/content/en/portfolio/blocks/user-feedback/index.md b/common-content/en/module/portfolio/user-feedback/index.md similarity index 100% rename from content/en/portfolio/blocks/user-feedback/index.md rename to common-content/en/module/portfolio/user-feedback/index.md diff --git a/content/en/react/blocks/components/index.md b/common-content/en/module/react/components/index.md similarity index 100% rename from content/en/react/blocks/components/index.md rename to common-content/en/module/react/components/index.md diff --git a/content/en/react/blocks/controlled-components/index.md b/common-content/en/module/react/controlled-components/index.md similarity index 100% rename from content/en/react/blocks/controlled-components/index.md rename to common-content/en/module/react/controlled-components/index.md diff --git a/content/en/react/blocks/embedding-javascript/index.md b/common-content/en/module/react/embedding-javascript/index.md similarity index 100% rename from content/en/react/blocks/embedding-javascript/index.md rename to common-content/en/module/react/embedding-javascript/index.md diff --git a/content/en/react/blocks/fetching-data-with-effects/index.md b/common-content/en/module/react/fetching-data-with-effects/index.md similarity index 100% rename from content/en/react/blocks/fetching-data-with-effects/index.md rename to common-content/en/module/react/fetching-data-with-effects/index.md diff --git a/content/en/react/blocks/fetching-data/index.md b/common-content/en/module/react/fetching-data/index.md similarity index 100% rename from content/en/react/blocks/fetching-data/index.md rename to common-content/en/module/react/fetching-data/index.md diff --git a/content/en/react/blocks/handling-events/index.md b/common-content/en/module/react/handling-events/index.md similarity index 100% rename from content/en/react/blocks/handling-events/index.md rename to common-content/en/module/react/handling-events/index.md diff --git a/content/en/react/blocks/import-export/index.md b/common-content/en/module/react/import-export/index.md similarity index 100% rename from content/en/react/blocks/import-export/index.md rename to common-content/en/module/react/import-export/index.md diff --git a/content/en/react/blocks/jsx/index.md b/common-content/en/module/react/jsx/index.md similarity index 100% rename from content/en/react/blocks/jsx/index.md rename to common-content/en/module/react/jsx/index.md diff --git a/content/en/react/blocks/keys/index.md b/common-content/en/module/react/keys/index.md similarity index 100% rename from content/en/react/blocks/keys/index.md rename to common-content/en/module/react/keys/index.md diff --git a/content/en/react/blocks/multiple-fields/index.md b/common-content/en/module/react/multiple-fields/index.md similarity index 100% rename from content/en/react/blocks/multiple-fields/index.md rename to common-content/en/module/react/multiple-fields/index.md diff --git a/content/en/react/blocks/pokedex/index.md b/common-content/en/module/react/pokedex/index.md similarity index 100% rename from content/en/react/blocks/pokedex/index.md rename to common-content/en/module/react/pokedex/index.md diff --git a/content/en/react/blocks/props/index.md b/common-content/en/module/react/props/index.md similarity index 100% rename from content/en/react/blocks/props/index.md rename to common-content/en/module/react/props/index.md diff --git a/content/en/react/blocks/re-rendering/index.md b/common-content/en/module/react/re-rendering/index.md similarity index 100% rename from content/en/react/blocks/re-rendering/index.md rename to common-content/en/module/react/re-rendering/index.md diff --git a/content/en/react/blocks/react-router/index.md b/common-content/en/module/react/react-router/index.md similarity index 100% rename from content/en/react/blocks/react-router/index.md rename to common-content/en/module/react/react-router/index.md diff --git a/content/en/react/blocks/rendering/index.md b/common-content/en/module/react/rendering/index.md similarity index 100% rename from content/en/react/blocks/rendering/index.md rename to common-content/en/module/react/rendering/index.md diff --git a/content/en/react/blocks/state/index.md b/common-content/en/module/react/state/index.md similarity index 100% rename from content/en/react/blocks/state/index.md rename to common-content/en/module/react/state/index.md diff --git a/content/en/react/blocks/synchronizing-with-effects/index.md b/common-content/en/module/react/synchronizing-with-effects/index.md similarity index 100% rename from content/en/react/blocks/synchronizing-with-effects/index.md rename to common-content/en/module/react/synchronizing-with-effects/index.md diff --git a/content/en/react/blocks/team-project/index.md b/common-content/en/module/react/team-project/index.md similarity index 100% rename from content/en/react/blocks/team-project/index.md rename to common-content/en/module/react/team-project/index.md diff --git a/content/en/react/blocks/vite/index.md b/common-content/en/module/react/vite/index.md similarity index 100% rename from content/en/react/blocks/vite/index.md rename to common-content/en/module/react/vite/index.md diff --git a/content/en/react/blocks/what-is-react/index.md b/common-content/en/module/react/what-is-react/index.md similarity index 100% rename from content/en/react/blocks/what-is-react/index.md rename to common-content/en/module/react/what-is-react/index.md diff --git a/content/en/react/blocks/working-with-forms/index.md b/common-content/en/module/react/working-with-forms/index.md similarity index 100% rename from content/en/react/blocks/working-with-forms/index.md rename to common-content/en/module/react/working-with-forms/index.md diff --git a/content/en/servers/blocks/building-the-server/index.md b/common-content/en/module/servers/building-the-server/index.md similarity index 100% rename from content/en/servers/blocks/building-the-server/index.md rename to common-content/en/module/servers/building-the-server/index.md diff --git a/content/en/servers/blocks/communicating-with-the-server/index.md b/common-content/en/module/servers/communicating-with-the-server/index.md similarity index 100% rename from content/en/servers/blocks/communicating-with-the-server/index.md rename to common-content/en/module/servers/communicating-with-the-server/index.md diff --git a/content/en/servers/blocks/crud-2/index.md b/common-content/en/module/servers/crud-2/index.md similarity index 100% rename from content/en/servers/blocks/crud-2/index.md rename to common-content/en/module/servers/crud-2/index.md diff --git a/content/en/servers/blocks/crud-challenges/index.md b/common-content/en/module/servers/crud-challenges/index.md similarity index 100% rename from content/en/servers/blocks/crud-challenges/index.md rename to common-content/en/module/servers/crud-challenges/index.md diff --git a/content/en/servers/blocks/crud/index.md b/common-content/en/module/servers/crud/index.md similarity index 100% rename from content/en/servers/blocks/crud/index.md rename to common-content/en/module/servers/crud/index.md diff --git a/content/en/servers/blocks/get-single/index.md b/common-content/en/module/servers/get-single/index.md similarity index 100% rename from content/en/servers/blocks/get-single/index.md rename to common-content/en/module/servers/get-single/index.md diff --git a/content/en/servers/blocks/get/index.md b/common-content/en/module/servers/get/index.md similarity index 100% rename from content/en/servers/blocks/get/index.md rename to common-content/en/module/servers/get/index.md diff --git a/content/en/servers/blocks/intro-to-express/index.md b/common-content/en/module/servers/intro-to-express/index.md similarity index 100% rename from content/en/servers/blocks/intro-to-express/index.md rename to common-content/en/module/servers/intro-to-express/index.md diff --git a/content/en/servers/blocks/make-a-node-project/index.md b/common-content/en/module/servers/make-a-node-project/index.md similarity index 100% rename from content/en/servers/blocks/make-a-node-project/index.md rename to common-content/en/module/servers/make-a-node-project/index.md diff --git a/content/en/servers/blocks/post/index.md b/common-content/en/module/servers/post/index.md similarity index 100% rename from content/en/servers/blocks/post/index.md rename to common-content/en/module/servers/post/index.md diff --git a/content/en/servers/blocks/postman/index.md b/common-content/en/module/servers/postman/index.md similarity index 100% rename from content/en/servers/blocks/postman/index.md rename to common-content/en/module/servers/postman/index.md diff --git a/content/en/servers/blocks/put/index.md b/common-content/en/module/servers/put/index.md similarity index 100% rename from content/en/servers/blocks/put/index.md rename to common-content/en/module/servers/put/index.md diff --git a/content/en/servers/blocks/query-parameters/index.md b/common-content/en/module/servers/query-parameters/index.md similarity index 100% rename from content/en/servers/blocks/query-parameters/index.md rename to common-content/en/module/servers/query-parameters/index.md diff --git a/content/en/servers/blocks/render/index.md b/common-content/en/module/servers/render/index.md similarity index 100% rename from content/en/servers/blocks/render/index.md rename to common-content/en/module/servers/render/index.md diff --git a/content/en/servers/blocks/routing/index.md b/common-content/en/module/servers/routing/index.md similarity index 100% rename from content/en/servers/blocks/routing/index.md rename to common-content/en/module/servers/routing/index.md diff --git a/content/en/servers/blocks/test-examples-in-postman/index.md b/common-content/en/module/servers/test-examples-in-postman/index.md similarity index 100% rename from content/en/servers/blocks/test-examples-in-postman/index.md rename to common-content/en/module/servers/test-examples-in-postman/index.md diff --git a/common-content/go.mod b/common-content/go.mod new file mode 100644 index 000000000..aae35c0c0 --- /dev/null +++ b/common-content/go.mod @@ -0,0 +1,3 @@ +module github.com/CodeYourFuture/curriculum/common-content + +go 1.21.3 diff --git a/common-content/hugo.toml b/common-content/hugo.toml new file mode 100644 index 000000000..d24b83be8 --- /dev/null +++ b/common-content/hugo.toml @@ -0,0 +1,5 @@ + +[module] + [module.hugoVersion] + extended = true + min = "0.116.0" \ No newline at end of file diff --git a/archetypes/backlog.md b/common-theme/archetypes/backlog.md similarity index 100% rename from archetypes/backlog.md rename to common-theme/archetypes/backlog.md diff --git a/archetypes/blocks/index.md b/common-theme/archetypes/blocks/index.md similarity index 100% rename from archetypes/blocks/index.md rename to common-theme/archetypes/blocks/index.md diff --git a/archetypes/day-plan.md b/common-theme/archetypes/day-plan.md similarity index 100% rename from archetypes/day-plan.md rename to common-theme/archetypes/day-plan.md diff --git a/archetypes/default.md b/common-theme/archetypes/default.md similarity index 100% rename from archetypes/default.md rename to common-theme/archetypes/default.md diff --git a/archetypes/module-prep.md b/common-theme/archetypes/module-prep.md similarity index 100% rename from archetypes/module-prep.md rename to common-theme/archetypes/module-prep.md diff --git a/archetypes/module-success.md b/common-theme/archetypes/module-success.md similarity index 100% rename from archetypes/module-success.md rename to common-theme/archetypes/module-success.md diff --git a/archetypes/module.md b/common-theme/archetypes/module.md similarity index 100% rename from archetypes/module.md rename to common-theme/archetypes/module.md diff --git a/archetypes/prep.md b/common-theme/archetypes/prep.md similarity index 100% rename from archetypes/prep.md rename to common-theme/archetypes/prep.md diff --git a/archetypes/product-backlog.md b/common-theme/archetypes/product-backlog.md similarity index 100% rename from archetypes/product-backlog.md rename to common-theme/archetypes/product-backlog.md diff --git a/archetypes/product-prep.md b/common-theme/archetypes/product-prep.md similarity index 100% rename from archetypes/product-prep.md rename to common-theme/archetypes/product-prep.md diff --git a/archetypes/product.md b/common-theme/archetypes/product.md similarity index 100% rename from archetypes/product.md rename to common-theme/archetypes/product.md diff --git a/archetypes/sprint.md b/common-theme/archetypes/sprint.md similarity index 100% rename from archetypes/sprint.md rename to common-theme/archetypes/sprint.md diff --git a/archetypes/success.md b/common-theme/archetypes/success.md similarity index 100% rename from archetypes/success.md rename to common-theme/archetypes/success.md diff --git a/common-theme/assets/images/site-logo/logo.svg b/common-theme/assets/images/site-logo/logo.svg new file mode 100644 index 000000000..a0eca3cf7 --- /dev/null +++ b/common-theme/assets/images/site-logo/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/common-theme/assets/jsconfig.json b/common-theme/assets/jsconfig.json new file mode 100644 index 000000000..377218ccb --- /dev/null +++ b/common-theme/assets/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "*": [ + "*" + ] + } + } +} \ No newline at end of file diff --git a/assets/scripts/alert-message.js b/common-theme/assets/scripts/alert-message.js similarity index 100% rename from assets/scripts/alert-message.js rename to common-theme/assets/scripts/alert-message.js diff --git a/assets/scripts/app.js b/common-theme/assets/scripts/app.js similarity index 100% rename from assets/scripts/app.js rename to common-theme/assets/scripts/app.js diff --git a/assets/scripts/cm6.ts b/common-theme/assets/scripts/cm6.ts similarity index 100% rename from assets/scripts/cm6.ts rename to common-theme/assets/scripts/cm6.ts diff --git a/assets/scripts/confetti-checkboxes.js b/common-theme/assets/scripts/confetti-checkboxes.js similarity index 100% rename from assets/scripts/confetti-checkboxes.js rename to common-theme/assets/scripts/confetti-checkboxes.js diff --git a/assets/scripts/dark-mode.js b/common-theme/assets/scripts/dark-mode.js similarity index 100% rename from assets/scripts/dark-mode.js rename to common-theme/assets/scripts/dark-mode.js diff --git a/assets/scripts/highlight-lines.ts b/common-theme/assets/scripts/highlight-lines.ts similarity index 100% rename from assets/scripts/highlight-lines.ts rename to common-theme/assets/scripts/highlight-lines.ts diff --git a/assets/scripts/solo-view.js b/common-theme/assets/scripts/solo-view.js similarity index 100% rename from assets/scripts/solo-view.js rename to common-theme/assets/scripts/solo-view.js diff --git a/assets/scripts/tab-panels.js b/common-theme/assets/scripts/tab-panels.js similarity index 100% rename from assets/scripts/tab-panels.js rename to common-theme/assets/scripts/tab-panels.js diff --git a/assets/scripts/time-stamper.js b/common-theme/assets/scripts/time-stamper.js similarity index 100% rename from assets/scripts/time-stamper.js rename to common-theme/assets/scripts/time-stamper.js diff --git a/assets/scripts/word-limit.js b/common-theme/assets/scripts/word-limit.js similarity index 100% rename from assets/scripts/word-limit.js rename to common-theme/assets/scripts/word-limit.js diff --git a/assets/scripts/youtube-player.js b/common-theme/assets/scripts/youtube-player.js similarity index 100% rename from assets/scripts/youtube-player.js rename to common-theme/assets/scripts/youtube-player.js diff --git a/assets/styles/01-mixins/backdrop.scss b/common-theme/assets/styles/01-mixins/backdrop.scss similarity index 100% rename from assets/styles/01-mixins/backdrop.scss rename to common-theme/assets/styles/01-mixins/backdrop.scss diff --git a/assets/styles/01-mixins/block.scss b/common-theme/assets/styles/01-mixins/block.scss similarity index 100% rename from assets/styles/01-mixins/block.scss rename to common-theme/assets/styles/01-mixins/block.scss diff --git a/assets/styles/01-mixins/grid-assign.scss b/common-theme/assets/styles/01-mixins/grid-assign.scss similarity index 100% rename from assets/styles/01-mixins/grid-assign.scss rename to common-theme/assets/styles/01-mixins/grid-assign.scss diff --git a/assets/styles/01-mixins/offscreen.scss b/common-theme/assets/styles/01-mixins/offscreen.scss similarity index 100% rename from assets/styles/01-mixins/offscreen.scss rename to common-theme/assets/styles/01-mixins/offscreen.scss diff --git a/assets/styles/01-mixins/offset.scss b/common-theme/assets/styles/01-mixins/offset.scss similarity index 100% rename from assets/styles/01-mixins/offset.scss rename to common-theme/assets/styles/01-mixins/offset.scss diff --git a/assets/styles/01-mixins/on-event.scss b/common-theme/assets/styles/01-mixins/on-event.scss similarity index 100% rename from assets/styles/01-mixins/on-event.scss rename to common-theme/assets/styles/01-mixins/on-event.scss diff --git a/assets/styles/01-mixins/patterns.scss b/common-theme/assets/styles/01-mixins/patterns.scss similarity index 100% rename from assets/styles/01-mixins/patterns.scss rename to common-theme/assets/styles/01-mixins/patterns.scss diff --git a/assets/styles/01-mixins/screen.scss b/common-theme/assets/styles/01-mixins/screen.scss similarity index 100% rename from assets/styles/01-mixins/screen.scss rename to common-theme/assets/styles/01-mixins/screen.scss diff --git a/assets/styles/02-variables/borders.scss b/common-theme/assets/styles/02-variables/borders.scss similarity index 100% rename from assets/styles/02-variables/borders.scss rename to common-theme/assets/styles/02-variables/borders.scss diff --git a/assets/styles/02-variables/colors.scss b/common-theme/assets/styles/02-variables/colors.scss similarity index 100% rename from assets/styles/02-variables/colors.scss rename to common-theme/assets/styles/02-variables/colors.scss diff --git a/assets/styles/02-variables/fonts.scss b/common-theme/assets/styles/02-variables/fonts.scss similarity index 100% rename from assets/styles/02-variables/fonts.scss rename to common-theme/assets/styles/02-variables/fonts.scss diff --git a/assets/styles/02-variables/shadows.scss b/common-theme/assets/styles/02-variables/shadows.scss similarity index 100% rename from assets/styles/02-variables/shadows.scss rename to common-theme/assets/styles/02-variables/shadows.scss diff --git a/assets/styles/02-variables/spacing.scss b/common-theme/assets/styles/02-variables/spacing.scss similarity index 100% rename from assets/styles/02-variables/spacing.scss rename to common-theme/assets/styles/02-variables/spacing.scss diff --git a/assets/styles/02-variables/type-scale.scss b/common-theme/assets/styles/02-variables/type-scale.scss similarity index 100% rename from assets/styles/02-variables/type-scale.scss rename to common-theme/assets/styles/02-variables/type-scale.scss diff --git a/assets/styles/03-elements/base.scss b/common-theme/assets/styles/03-elements/base.scss similarity index 100% rename from assets/styles/03-elements/base.scss rename to common-theme/assets/styles/03-elements/base.scss diff --git a/assets/styles/03-elements/buttons.scss b/common-theme/assets/styles/03-elements/buttons.scss similarity index 100% rename from assets/styles/03-elements/buttons.scss rename to common-theme/assets/styles/03-elements/buttons.scss diff --git a/assets/styles/03-elements/headings.scss b/common-theme/assets/styles/03-elements/headings.scss similarity index 100% rename from assets/styles/03-elements/headings.scss rename to common-theme/assets/styles/03-elements/headings.scss diff --git a/assets/styles/03-elements/images.scss b/common-theme/assets/styles/03-elements/images.scss similarity index 100% rename from assets/styles/03-elements/images.scss rename to common-theme/assets/styles/03-elements/images.scss diff --git a/assets/styles/03-elements/links.scss b/common-theme/assets/styles/03-elements/links.scss similarity index 100% rename from assets/styles/03-elements/links.scss rename to common-theme/assets/styles/03-elements/links.scss diff --git a/assets/styles/03-elements/misc-phrasing.scss b/common-theme/assets/styles/03-elements/misc-phrasing.scss similarity index 100% rename from assets/styles/03-elements/misc-phrasing.scss rename to common-theme/assets/styles/03-elements/misc-phrasing.scss diff --git a/assets/styles/03-elements/table.scss b/common-theme/assets/styles/03-elements/table.scss similarity index 100% rename from assets/styles/03-elements/table.scss rename to common-theme/assets/styles/03-elements/table.scss diff --git a/assets/styles/04-components/alert.scss b/common-theme/assets/styles/04-components/alert.scss similarity index 100% rename from assets/styles/04-components/alert.scss rename to common-theme/assets/styles/04-components/alert.scss diff --git a/assets/styles/04-components/block.scss b/common-theme/assets/styles/04-components/block.scss similarity index 100% rename from assets/styles/04-components/block.scss rename to common-theme/assets/styles/04-components/block.scss diff --git a/assets/styles/04-components/breadcrumbs.scss b/common-theme/assets/styles/04-components/breadcrumbs.scss similarity index 100% rename from assets/styles/04-components/breadcrumbs.scss rename to common-theme/assets/styles/04-components/breadcrumbs.scss diff --git a/assets/styles/04-components/card.scss b/common-theme/assets/styles/04-components/card.scss similarity index 100% rename from assets/styles/04-components/card.scss rename to common-theme/assets/styles/04-components/card.scss diff --git a/assets/styles/04-components/codemirror.scss b/common-theme/assets/styles/04-components/codemirror.scss similarity index 100% rename from assets/styles/04-components/codemirror.scss rename to common-theme/assets/styles/04-components/codemirror.scss diff --git a/assets/styles/04-components/columns.scss b/common-theme/assets/styles/04-components/columns.scss similarity index 100% rename from assets/styles/04-components/columns.scss rename to common-theme/assets/styles/04-components/columns.scss diff --git a/assets/styles/04-components/contributor.scss b/common-theme/assets/styles/04-components/contributor.scss similarity index 100% rename from assets/styles/04-components/contributor.scss rename to common-theme/assets/styles/04-components/contributor.scss diff --git a/assets/styles/04-components/copy.scss b/common-theme/assets/styles/04-components/copy.scss similarity index 100% rename from assets/styles/04-components/copy.scss rename to common-theme/assets/styles/04-components/copy.scss diff --git a/assets/styles/04-components/issue.scss b/common-theme/assets/styles/04-components/issue.scss similarity index 100% rename from assets/styles/04-components/issue.scss rename to common-theme/assets/styles/04-components/issue.scss diff --git a/assets/styles/04-components/logos.scss b/common-theme/assets/styles/04-components/logos.scss similarity index 100% rename from assets/styles/04-components/logos.scss rename to common-theme/assets/styles/04-components/logos.scss diff --git a/assets/styles/04-components/note.scss b/common-theme/assets/styles/04-components/note.scss similarity index 100% rename from assets/styles/04-components/note.scss rename to common-theme/assets/styles/04-components/note.scss diff --git a/assets/styles/04-components/objectives.scss b/common-theme/assets/styles/04-components/objectives.scss similarity index 100% rename from assets/styles/04-components/objectives.scss rename to common-theme/assets/styles/04-components/objectives.scss diff --git a/assets/styles/04-components/page-header.scss b/common-theme/assets/styles/04-components/page-header.scss similarity index 100% rename from assets/styles/04-components/page-header.scss rename to common-theme/assets/styles/04-components/page-header.scss diff --git a/assets/styles/04-components/skip-link.scss b/common-theme/assets/styles/04-components/skip-link.scss similarity index 100% rename from assets/styles/04-components/skip-link.scss rename to common-theme/assets/styles/04-components/skip-link.scss diff --git a/assets/styles/04-components/tabs.scss b/common-theme/assets/styles/04-components/tabs.scss similarity index 100% rename from assets/styles/04-components/tabs.scss rename to common-theme/assets/styles/04-components/tabs.scss diff --git a/assets/styles/04-components/timeline.scss b/common-theme/assets/styles/04-components/timeline.scss similarity index 100% rename from assets/styles/04-components/timeline.scss rename to common-theme/assets/styles/04-components/timeline.scss diff --git a/assets/styles/04-components/toc.scss b/common-theme/assets/styles/04-components/toc.scss similarity index 100% rename from assets/styles/04-components/toc.scss rename to common-theme/assets/styles/04-components/toc.scss diff --git a/assets/styles/04-components/tooltip.scss b/common-theme/assets/styles/04-components/tooltip.scss similarity index 100% rename from assets/styles/04-components/tooltip.scss rename to common-theme/assets/styles/04-components/tooltip.scss diff --git a/assets/styles/layout/footer.scss b/common-theme/assets/styles/layout/footer.scss similarity index 100% rename from assets/styles/layout/footer.scss rename to common-theme/assets/styles/layout/footer.scss diff --git a/assets/styles/layout/header.scss b/common-theme/assets/styles/layout/header.scss similarity index 100% rename from assets/styles/layout/header.scss rename to common-theme/assets/styles/layout/header.scss diff --git a/assets/styles/layout/layout.scss b/common-theme/assets/styles/layout/layout.scss similarity index 100% rename from assets/styles/layout/layout.scss rename to common-theme/assets/styles/layout/layout.scss diff --git a/assets/styles/layout/main.scss b/common-theme/assets/styles/layout/main.scss similarity index 100% rename from assets/styles/layout/main.scss rename to common-theme/assets/styles/layout/main.scss diff --git a/assets/styles/layout/menu.scss b/common-theme/assets/styles/layout/menu.scss similarity index 100% rename from assets/styles/layout/menu.scss rename to common-theme/assets/styles/layout/menu.scss diff --git a/assets/styles/states/dark.scss b/common-theme/assets/styles/states/dark.scss similarity index 100% rename from assets/styles/states/dark.scss rename to common-theme/assets/styles/states/dark.scss diff --git a/assets/styles/states/invisible.scss b/common-theme/assets/styles/states/invisible.scss similarity index 100% rename from assets/styles/states/invisible.scss rename to common-theme/assets/styles/states/invisible.scss diff --git a/assets/styles/states/light.scss b/common-theme/assets/styles/states/light.scss similarity index 100% rename from assets/styles/states/light.scss rename to common-theme/assets/styles/states/light.scss diff --git a/assets/styles/states/none.scss b/common-theme/assets/styles/states/none.scss similarity index 100% rename from assets/styles/states/none.scss rename to common-theme/assets/styles/states/none.scss diff --git a/assets/styles/states/visible.scss b/common-theme/assets/styles/states/visible.scss similarity index 100% rename from assets/styles/states/visible.scss rename to common-theme/assets/styles/states/visible.scss diff --git a/common-theme/data/funding.json b/common-theme/data/funding.json new file mode 100644 index 000000000..833af8169 --- /dev/null +++ b/common-theme/data/funding.json @@ -0,0 +1,20 @@ +[ + { + "name": "GitHub", + "website": "https://github.com/", + "logo": "logos/github.png", + "support_type": ["Product"] + }, + { + "name": "Netlify", + "website": "https://www.netlify.com/", + "logo": "logos/netlify.svg", + "support_type": ["Product"] + }, + { + "name": "Slack", + "website": "https://slack.com/", + "logo": "logos/slack.png", + "support_type": ["Product"] + } +] diff --git a/common-theme/go.mod b/common-theme/go.mod new file mode 100644 index 000000000..449d71296 --- /dev/null +++ b/common-theme/go.mod @@ -0,0 +1,3 @@ +module github.com/CodeYourFuture/curriculum/common-theme + +go 1.21.3 diff --git a/layouts/_default/_markup/render-codeblock-mermaid.html.html b/common-theme/layouts/_default/_markup/render-codeblock-mermaid.html.html similarity index 100% rename from layouts/_default/_markup/render-codeblock-mermaid.html.html rename to common-theme/layouts/_default/_markup/render-codeblock-mermaid.html.html diff --git a/layouts/_default/_markup/render-codeblock-objectives.html b/common-theme/layouts/_default/_markup/render-codeblock-objectives.html similarity index 100% rename from layouts/_default/_markup/render-codeblock-objectives.html rename to common-theme/layouts/_default/_markup/render-codeblock-objectives.html diff --git a/layouts/_default/_markup/render-codeblock-runkit.html b/common-theme/layouts/_default/_markup/render-codeblock-runkit.html similarity index 100% rename from layouts/_default/_markup/render-codeblock-runkit.html rename to common-theme/layouts/_default/_markup/render-codeblock-runkit.html diff --git a/layouts/_default/_markup/render-image.html b/common-theme/layouts/_default/_markup/render-image.html similarity index 100% rename from layouts/_default/_markup/render-image.html rename to common-theme/layouts/_default/_markup/render-image.html diff --git a/layouts/_default/_markup/render-link.html b/common-theme/layouts/_default/_markup/render-link.html similarity index 100% rename from layouts/_default/_markup/render-link.html rename to common-theme/layouts/_default/_markup/render-link.html diff --git a/layouts/_default/backlog.html b/common-theme/layouts/_default/backlog.html similarity index 68% rename from layouts/_default/backlog.html rename to common-theme/layouts/_default/backlog.html index 29e8c6359..558922bc6 100644 --- a/layouts/_default/backlog.html +++ b/common-theme/layouts/_default/backlog.html @@ -1,7 +1,5 @@ {{ define "main" }}
- - {{ .Scratch.Set "emoji" "πŸ“…" }} {{ partial "page-header.html" . }} {{ with .Content }}
{{ . }}
diff --git a/layouts/_default/baseof.html b/common-theme/layouts/_default/baseof.html similarity index 100% rename from layouts/_default/baseof.html rename to common-theme/layouts/_default/baseof.html diff --git a/layouts/_default/day-plan.html b/common-theme/layouts/_default/day-plan.html similarity index 91% rename from layouts/_default/day-plan.html rename to common-theme/layouts/_default/day-plan.html index 550bda699..b25bad4a6 100644 --- a/layouts/_default/day-plan.html +++ b/common-theme/layouts/_default/day-plan.html @@ -1,6 +1,5 @@ {{ define "main" }}
- {{ .Scratch.Set "emoji" "πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸΎ" }} {{ .Scratch.Set "headerClass" "c-page-header--toc" }} diff --git a/layouts/_default/list.html b/common-theme/layouts/_default/list.html similarity index 100% rename from layouts/_default/list.html rename to common-theme/layouts/_default/list.html diff --git a/layouts/_default/module.html b/common-theme/layouts/_default/module.html similarity index 100% rename from layouts/_default/module.html rename to common-theme/layouts/_default/module.html diff --git a/layouts/_default/prep.html b/common-theme/layouts/_default/prep.html similarity index 95% rename from layouts/_default/prep.html rename to common-theme/layouts/_default/prep.html index 97a33eafd..9dd5fcf0b 100644 --- a/layouts/_default/prep.html +++ b/common-theme/layouts/_default/prep.html @@ -1,6 +1,5 @@ {{ define "main" }} - {{ .Scratch.Set "emoji" "πŸ§‘πŸΎβ€πŸ’»" }} {{ .Scratch.Set "headerClass" "c-page-header--solo" }} diff --git a/layouts/_default/product.html b/common-theme/layouts/_default/product.html similarity index 100% rename from layouts/_default/product.html rename to common-theme/layouts/_default/product.html diff --git a/layouts/_default/single.html b/common-theme/layouts/_default/single.html similarity index 100% rename from layouts/_default/single.html rename to common-theme/layouts/_default/single.html diff --git a/layouts/_default/sprint.html b/common-theme/layouts/_default/sprint.html similarity index 100% rename from layouts/_default/sprint.html rename to common-theme/layouts/_default/sprint.html diff --git a/layouts/_default/success.html b/common-theme/layouts/_default/success.html similarity index 96% rename from layouts/_default/success.html rename to common-theme/layouts/_default/success.html index 76a5ff162..44e0af599 100644 --- a/layouts/_default/success.html +++ b/common-theme/layouts/_default/success.html @@ -1,8 +1,6 @@ {{ define "main" }} {{ $pageContext := . }}
- {{/* reset emoji from page matter to checkbox emoji */}} - {{ .Scratch.Set "emoji" "βœ…" }} {{ partial "page-header.html" . }} {{ with .Content }}
{{ . }}
diff --git a/layouts/index.html b/common-theme/layouts/index.html similarity index 86% rename from layouts/index.html rename to common-theme/layouts/index.html index f2c3d3f24..36dd9f6c6 100644 --- a/layouts/index.html +++ b/common-theme/layouts/index.html @@ -1,6 +1,6 @@ {{ define "main" }}
- {{- .Scratch.Set "emoji" "πŸ§‘πŸΏβ€πŸ«πŸ‘¨πŸ½β€πŸŽ“" }} + {{- .Scratch.Set "headerClass" "c-page-header--splash" }} diff --git a/layouts/partials/block/block.html b/common-theme/layouts/partials/block/block.html similarity index 100% rename from layouts/partials/block/block.html rename to common-theme/layouts/partials/block/block.html diff --git a/layouts/partials/block/data.html b/common-theme/layouts/partials/block/data.html similarity index 96% rename from layouts/partials/block/data.html rename to common-theme/layouts/partials/block/data.html index 043e51c1d..c3c9a9b84 100644 --- a/layouts/partials/block/data.html +++ b/common-theme/layouts/partials/block/data.html @@ -32,8 +32,8 @@ {{/* Now let's do our headers */}} {{ $headers := (dict) }} -{{ if ne (os.Getenv "CYF_CURRICULUM_GITHUB_BEARER_TOKEN") "" }} - {{ $headers = merge $headers (dict "Authorization" (printf "Bearer %s" (getenv "CYF_CURRICULUM_GITHUB_BEARER_TOKEN"))) }} +{{ if ne (os.Getenv "HUGO_CURRICULUM_GITHUB_BEARER_TOKEN") "" }} + {{ $headers = merge $headers (dict "Authorization" (printf "Bearer %s" (getenv "HUGO_CURRICULUM_GITHUB_BEARER_TOKEN"))) }} {{ end }} {{ .Scratch.SetInMap "blockData" "headers" $headers }} diff --git a/layouts/partials/block/issue.html b/common-theme/layouts/partials/block/issue.html similarity index 100% rename from layouts/partials/block/issue.html rename to common-theme/layouts/partials/block/issue.html diff --git a/layouts/partials/block/local.html b/common-theme/layouts/partials/block/local.html similarity index 100% rename from layouts/partials/block/local.html rename to common-theme/layouts/partials/block/local.html diff --git a/layouts/partials/block/pd.html b/common-theme/layouts/partials/block/pd.html similarity index 100% rename from layouts/partials/block/pd.html rename to common-theme/layouts/partials/block/pd.html diff --git a/layouts/partials/block/pullreq.html b/common-theme/layouts/partials/block/pullreq.html similarity index 100% rename from layouts/partials/block/pullreq.html rename to common-theme/layouts/partials/block/pullreq.html diff --git a/layouts/partials/block/readme.html b/common-theme/layouts/partials/block/readme.html similarity index 100% rename from layouts/partials/block/readme.html rename to common-theme/layouts/partials/block/readme.html diff --git a/layouts/partials/block/slide.html b/common-theme/layouts/partials/block/slide.html similarity index 100% rename from layouts/partials/block/slide.html rename to common-theme/layouts/partials/block/slide.html diff --git a/layouts/partials/block/youtube.html b/common-theme/layouts/partials/block/youtube.html similarity index 100% rename from layouts/partials/block/youtube.html rename to common-theme/layouts/partials/block/youtube.html diff --git a/layouts/partials/breadcrumbs.html b/common-theme/layouts/partials/breadcrumbs.html similarity index 100% rename from layouts/partials/breadcrumbs.html rename to common-theme/layouts/partials/breadcrumbs.html diff --git a/layouts/partials/card.html b/common-theme/layouts/partials/card.html similarity index 100% rename from layouts/partials/card.html rename to common-theme/layouts/partials/card.html diff --git a/layouts/partials/foot.html b/common-theme/layouts/partials/foot.html similarity index 93% rename from layouts/partials/foot.html rename to common-theme/layouts/partials/foot.html index eb9ab774b..acc073eff 100644 --- a/layouts/partials/foot.html +++ b/common-theme/layouts/partials/foot.html @@ -9,7 +9,7 @@ This free and open source programme is a project of - Code Your Future + {{ $.Site.Params.main_org_name }}
Creative Commons Attribution-ShareAlike 4.0

diff --git a/layouts/partials/github-icon.html b/common-theme/layouts/partials/github-icon.html similarity index 98% rename from layouts/partials/github-icon.html rename to common-theme/layouts/partials/github-icon.html index 999be1402..f6f865d3e 100644 --- a/layouts/partials/github-icon.html +++ b/common-theme/layouts/partials/github-icon.html @@ -2,6 +2,7 @@ focusable="false" class="e-button__icon" role="presentation" + width="96" viewbox="0 0 98 96" xmlns="http://www.w3.org/2000/svg"> - {{ .Title }} | {{ .Site.Title }} + {{.Section }} | {{ .Title }} | {{ .Site.Title }} {{ if .Page.Params.description }} {{ else }} @@ -35,13 +35,25 @@ href="{{ $style.RelPermalink }}" media="print" onload="this.media='all'" /> + + {{ $customCSS := resources.Match "custom-theme/**.scss" | resources.Concat + "custom.css"}} + {{ with $customCSS }} + {{ $customCSS := $customCSS | toCSS | minify | fingerprint "md5" }} + + {{ end }} + diff --git a/common-theme/layouts/partials/header.html b/common-theme/layouts/partials/header.html new file mode 100644 index 000000000..b764c2084 --- /dev/null +++ b/common-theme/layouts/partials/header.html @@ -0,0 +1,25 @@ + diff --git a/layouts/partials/issues.html b/common-theme/layouts/partials/issues.html similarity index 94% rename from layouts/partials/issues.html rename to common-theme/layouts/partials/issues.html index b138aed1f..c5db86b96 100644 --- a/layouts/partials/issues.html +++ b/common-theme/layouts/partials/issues.html @@ -4,8 +4,8 @@ {{ $currentPath := .Page.RelPermalink }} {{ $headers := (dict) }} -{{ if ne (os.Getenv "CYF_CURRICULUM_GITHUB_BEARER_TOKEN") "" }} - {{ $headers = merge $headers (dict "Authorization" (printf "Bearer %s" (getenv "CYF_CURRICULUM_GITHUB_BEARER_TOKEN"))) }} +{{ if ne (os.Getenv "HUGO_CURRICULUM_GITHUB_BEARER_TOKEN") "" }} + {{ $headers = merge $headers (dict "Authorization" (printf "Bearer %s" (getenv "HUGO_CURRICULUM_GITHUB_BEARER_TOKEN"))) }} {{ end }} {{ $issues := getJSON $issuesUrl $headers }} diff --git a/layouts/partials/menu.html b/common-theme/layouts/partials/menu.html similarity index 100% rename from layouts/partials/menu.html rename to common-theme/layouts/partials/menu.html diff --git a/layouts/partials/module-tabs.html b/common-theme/layouts/partials/module-tabs.html similarity index 100% rename from layouts/partials/module-tabs.html rename to common-theme/layouts/partials/module-tabs.html diff --git a/layouts/partials/objectives/block.html b/common-theme/layouts/partials/objectives/block.html similarity index 100% rename from layouts/partials/objectives/block.html rename to common-theme/layouts/partials/objectives/block.html diff --git a/layouts/partials/objectives/lookup.html b/common-theme/layouts/partials/objectives/lookup.html similarity index 100% rename from layouts/partials/objectives/lookup.html rename to common-theme/layouts/partials/objectives/lookup.html diff --git a/layouts/partials/objectives/parsed.html b/common-theme/layouts/partials/objectives/parsed.html similarity index 100% rename from layouts/partials/objectives/parsed.html rename to common-theme/layouts/partials/objectives/parsed.html diff --git a/layouts/partials/page-header.html b/common-theme/layouts/partials/page-header.html similarity index 100% rename from layouts/partials/page-header.html rename to common-theme/layouts/partials/page-header.html diff --git a/layouts/partials/scripts.html b/common-theme/layouts/partials/scripts.html similarity index 100% rename from layouts/partials/scripts.html rename to common-theme/layouts/partials/scripts.html diff --git a/layouts/partials/search.html b/common-theme/layouts/partials/search.html similarity index 100% rename from layouts/partials/search.html rename to common-theme/layouts/partials/search.html diff --git a/layouts/partials/time.html b/common-theme/layouts/partials/time.html similarity index 100% rename from layouts/partials/time.html rename to common-theme/layouts/partials/time.html diff --git a/layouts/shortcodes/columns.html b/common-theme/layouts/shortcodes/columns.html similarity index 100% rename from layouts/shortcodes/columns.html rename to common-theme/layouts/shortcodes/columns.html diff --git a/layouts/shortcodes/contributors.html b/common-theme/layouts/shortcodes/contributors.html similarity index 66% rename from layouts/shortcodes/contributors.html rename to common-theme/layouts/shortcodes/contributors.html index 73422e568..b3fa7db90 100644 --- a/layouts/shortcodes/contributors.html +++ b/common-theme/layouts/shortcodes/contributors.html @@ -1,9 +1,9 @@ {{ $repo := .Get 0 }} {{ $headers := (dict) }} -{{ if ne (os.Getenv "CYF_CURRICULUM_GITHUB_BEARER_TOKEN") "" }} - {{ $headers = merge $headers (dict "Authorization" (printf "Bearer %s" (getenv "CYF_CURRICULUM_GITHUB_BEARER_TOKEN"))) }} +{{ if ne (os.Getenv "HUGO_CURRICULUM_GITHUB_BEARER_TOKEN") "" }} + {{ $headers = merge $headers (dict "Authorization" (printf "Bearer %s" (getenv "HUGO_CURRICULUM_GITHUB_BEARER_TOKEN"))) }} {{ end }} -{{ $contributors := getJSON (printf "https://api.github.com/repos/CodeYourFuture/%s/contributors" $repo) $headers }} +{{ $contributors := getJSON (printf "%s%s/contributors" $.Site.Params.orgapi $repo) $headers }}
    diff --git a/layouts/shortcodes/details.html b/common-theme/layouts/shortcodes/details.html similarity index 100% rename from layouts/shortcodes/details.html rename to common-theme/layouts/shortcodes/details.html diff --git a/layouts/shortcodes/iframe.html b/common-theme/layouts/shortcodes/iframe.html similarity index 100% rename from layouts/shortcodes/iframe.html rename to common-theme/layouts/shortcodes/iframe.html diff --git a/layouts/shortcodes/logos.html b/common-theme/layouts/shortcodes/logos.html similarity index 100% rename from layouts/shortcodes/logos.html rename to common-theme/layouts/shortcodes/logos.html diff --git a/layouts/shortcodes/note.html b/common-theme/layouts/shortcodes/note.html similarity index 100% rename from layouts/shortcodes/note.html rename to common-theme/layouts/shortcodes/note.html diff --git a/layouts/shortcodes/snippet.html b/common-theme/layouts/shortcodes/snippet.html similarity index 100% rename from layouts/shortcodes/snippet.html rename to common-theme/layouts/shortcodes/snippet.html diff --git a/layouts/shortcodes/tab.html b/common-theme/layouts/shortcodes/tab.html similarity index 100% rename from layouts/shortcodes/tab.html rename to common-theme/layouts/shortcodes/tab.html diff --git a/layouts/shortcodes/tabs.html b/common-theme/layouts/shortcodes/tabs.html similarity index 100% rename from layouts/shortcodes/tabs.html rename to common-theme/layouts/shortcodes/tabs.html diff --git a/layouts/shortcodes/tooltip.html b/common-theme/layouts/shortcodes/tooltip.html similarity index 100% rename from layouts/shortcodes/tooltip.html rename to common-theme/layouts/shortcodes/tooltip.html diff --git a/layouts/shortcodes/wordlimit.html b/common-theme/layouts/shortcodes/wordlimit.html similarity index 100% rename from layouts/shortcodes/wordlimit.html rename to common-theme/layouts/shortcodes/wordlimit.html diff --git a/layouts/shortcodes/youtube.html b/common-theme/layouts/shortcodes/youtube.html similarity index 100% rename from layouts/shortcodes/youtube.html rename to common-theme/layouts/shortcodes/youtube.html diff --git a/package-lock.json b/common-theme/package-lock.json similarity index 100% rename from package-lock.json rename to common-theme/package-lock.json diff --git a/package.json b/common-theme/package.json similarity index 100% rename from package.json rename to common-theme/package.json diff --git a/prettierignore b/common-theme/prettierignore similarity index 100% rename from prettierignore rename to common-theme/prettierignore diff --git a/common-theme/static/favicon.ico b/common-theme/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..67f8b777851849527933b78b1f98bd564d8255d1 GIT binary patch literal 15406 zcmeI3%WEH16vro|f`O{FV5Nc>unpZA42Xe(zeP4Fn0Fu>#YKe(c41L;qszMJ-bXDi z>L1W57+rSdLS5OG#!V^IKxvbj6n@gC#QOREdT$vg^US^Tf(#t)%-r+%o^#KA&hHll zeL;V)Z(l$;7%c7yg4co|7#w``eB{|6_?CCW!=`>H2!44k2#&ym2ojIpQ{=j)r>9?; zot^z+et!PXxw*M}BHinq>XMXKboc`~d=&+uPNklCgSOc%pC zkdxhQd};55Lm1#0hSD%6>D`)|ni^JI((I(w8QJADo{YL>VsSr%Ckg*U$-2s8+X=sG z{FIYm*irl0d{!y{D{f@u4p-n@#^$z+5S`e?RJu8p?Lq>0x`@}vIu7kfT z8Od5bMN4D{&~ch_$NgBcM#n%A`@~N^|ABlif3x_ci!t%#JQ&cWarai1&Z6~TkWOa9 zw}_GQ!9UZ~o(wFidYcy6DoF0rq<yz2-5e zTyl`ty!pUE-U+vC*KNN6@vklal>5+`8rxs}uh#LW?(tW105Q;7(Wx&Lm6uJ~)`e`X z^RF;~r?T~jY{_Q$A_iJ-m%jcoHny$5gr&~)r;P=1C}sVP-puv4#i0EM{FfkKed1Em zy4%`}me{Us{}sjpj#~DgVGO#rYen+cu9FI~=yTd>3AzfcLA`SnbFXu|pT#pXGc&>2(2!(N+83v|%y-!B zH|JI#fb9Zw1NxWuxyA*n7Wlp875YYr(Gs{zKTE)l_AX1Q6wmo%>|9k+6aP<2dk>lant}U*_E8rG3D-5uK;;yPx-8W%=Kfda!;c%(fl0 ze&XHrrr^uM0oGf>Z1DFnHhqLl>1%^5TzTuk|3H|*ul4(0o-gE;Z3>^kyq|VB2&R>$ z;3|M)g|TQza{|6pwl*t(FLk^UW^(9F%1?ditXdD)PeI>TZP%AQuxqb<#h1RS^?+T! z8Ck2^t}lCF{~KLC_TZ^~%@^LN9`I|g*;@RHecST~{FkHc(w1kiUj^&=w&0Dy`6E8G zdj4Yla1TF#N4vKWh(zA3A5dm)G|O@NEjS_AkOu zAJA`duQdQy-kiND%)+h<+}gi?*&_V<{_uGJE+68oBmMcH-Rl|t`yCgB%e&5Zsqq=>yyS- z+H#S&ls3nqdmTC0`~O|AJhXPJKi1jW{{U!5hztM# literal 0 HcmV?d00001 diff --git a/static/logos/github.png b/common-theme/static/logos/github.png similarity index 100% rename from static/logos/github.png rename to common-theme/static/logos/github.png diff --git a/static/logos/netlify.svg b/common-theme/static/logos/netlify.svg similarity index 100% rename from static/logos/netlify.svg rename to common-theme/static/logos/netlify.svg diff --git a/static/logos/slack.png b/common-theme/static/logos/slack.png similarity index 100% rename from static/logos/slack.png rename to common-theme/static/logos/slack.png diff --git a/content/en/blocks/requirements/index.md b/content/en/blocks/requirements/index.md deleted file mode 100644 index 45a326c8d..000000000 --- a/content/en/blocks/requirements/index.md +++ /dev/null @@ -1,15 +0,0 @@ -+++ -title = 'Understanding Requirements' -headless = true -time = 60 -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' -+++ - -{{< snippet "snippets/requirements.md" >}} diff --git a/content/en/databases/sprints/4/prep/index.md b/content/en/databases/sprints/4/prep/index.md deleted file mode 100644 index 988107c78..000000000 --- a/content/en/databases/sprints/4/prep/index.md +++ /dev/null @@ -1,17 +0,0 @@ -+++ -title = 'prep' -layout = 'prep' -emoji= 'πŸ“' -menu_level = ['sprint'] -weight = 1 -backlog= 'Module-Databases' -backlog_filter= 'Week 4' -[[blocks]] -name="Collaborative Job Hunting" -src="https://cyf-pd.netlify.app/blocks/prep-collaborative-job-hunt/readme/" -[[blocks]] -name="Understanding employers needs" -src="https://cyf-pd.netlify.app/blocks/understanding-employers-needs/readme/" -+++ - - diff --git a/content/en/induction/_index.md b/content/en/induction/_index.md deleted file mode 100644 index 09a4f9f86..000000000 --- a/content/en/induction/_index.md +++ /dev/null @@ -1,8 +0,0 @@ -+++ -title = 'Induction' -description = 'Join the CodeYourFuture Software Development Course; Explore version control with Git and GitHub; fork, branch, and clone in the VSCode interface' -layout = 'module' -emoji= '🀝' -menu = ['syllabus'] -weight='1' -+++ diff --git a/content/en/induction/sprints/1/prep/index.md b/content/en/induction/sprints/1/prep/index.md deleted file mode 100644 index 39024df5e..000000000 --- a/content/en/induction/sprints/1/prep/index.md +++ /dev/null @@ -1,41 +0,0 @@ -+++ -title = 'prep' -description = 'Work through these notes and activities to prepare for class. You will have a prep page for every sprint (week) of the course.' -layout = 'prep' -emoji= 'πŸ“' -menu_level = ['sprint'] -weight = 1 -[[blocks]] -name="πŸ“ CYF blog" -src="induction/blocks/cyf-blog" -[[blocks]] -name="🧰 Development process" -src="induction/blocks/development-process" -[[blocks]] -name="βŒ› Version control software" -src="induction/blocks/version-control" -[[blocks]] -name="πŸ—„οΈ 🌐 Sharing history" -src="induction/blocks/sharing-history" -[[blocks]] -name="πŸ” Check out a commit" -src="induction/blocks/check-out-a-commit" -[[blocks]] -name="πŸ“œ Previous versions" -src="induction/blocks/previous-versions" -[[blocks]] -name="🍴 Forking a repository" -src="induction/blocks/forking-a-repository" -[[blocks]] -name="πŸ’» Working locally" -src="induction/blocks/working-locally" -[[blocks]] -name="πŸ“˜ Viewing the files" -src="induction/blocks/viewing-files" -[[blocks]] -name="🌳 Branching" -src="induction/blocks/branching" -[[blocks]] -name="🎁 Wrapping up" -src="induction/blocks/wrapping-up" -+++ diff --git a/content/en/induction/success/index.md b/content/en/induction/success/index.md deleted file mode 100644 index d2cb58a34..000000000 --- a/content/en/induction/success/index.md +++ /dev/null @@ -1,19 +0,0 @@ -+++ -title = 'success' -description = 'success description' -layout = 'success' -emoji= 'πŸ“' -menu_level = ['module'] -weight = 11 -backlog= 'Module-Induction' -backlog_filter= 'Induction' -[[objectives]] -1="Every trainee has understood the goals of the Software Development course and what is expected of them" -2="Every trainee has shared their availability on a shared spreadsheet" -3="Every trainee has paired up with another trainee to work together at least once" -+++ - -Every module, you must review your progress to understand if your cohort can progress to the next stage. The conditions for success are listed below. If your cohort has met all of these conditions, you can progress to the next module. If you have not met them yet, what actions will you take to meet them? - -Discuss your plan in your class channel. -+++ diff --git a/content/en/js1/sprints/4/prep/index.md b/content/en/js1/sprints/4/prep/index.md deleted file mode 100644 index 2db20bb20..000000000 --- a/content/en/js1/sprints/4/prep/index.md +++ /dev/null @@ -1,42 +0,0 @@ -+++ -title = 'prep' -layout = 'prep' -emoji= 'πŸ“' -menu_level = ['sprint'] -weight = 1 -backlog= 'Module-JS1' -backlog_filter= 'Week 4' -[[blocks]] -src="js1/blocks/ordinal" -name="ordinal" -[[blocks]] -name="Step-through-prep workshop" -src="https://www.youtube.com/watch?v=2k_EtdVbb4c" -[[blocks]] -src="js1/blocks/framework" -name="framework" -[[blocks]] -src="js1/blocks/setup" -name="setup" -[[blocks]] -src="js1/blocks/packages" -name="packages" -[[blocks]] -src="js1/blocks/installing" -name="installing" -[[blocks]] -src="js1/blocks/api" -name="api" -[[blocks]] -src="js1/blocks/cases" -name="cases" -[[blocks]] -src="js1/blocks/feedback" -name="feedback" -[[blocks]] -src="js1/blocks/generalise" -name="generalise" -[[blocks]] -name= "Asking good questions" -src= "https://cyf-pd.netlify.app/blocks/prep-asking-good-questions/readme/" -+++ diff --git a/content/en/js3/sprints/1/prep/index.md b/content/en/js3/sprints/1/prep/index.md deleted file mode 100644 index a39782feb..000000000 --- a/content/en/js3/sprints/1/prep/index.md +++ /dev/null @@ -1,42 +0,0 @@ -+++ -title = 'prep' -layout = 'prep' -emoji= 'πŸ“' -menu_level = ['sprint'] -weight = 1 -backlog= 'Module-JS3' -backlog_filter= 'Week 1' -[[blocks]] -name="data to ui" -src="js3/blocks/data-ui" -[[blocks]] -name="Step-through-prep workshop" -src="https://www.youtube.com/watch?v=HgbzMhJgdbU" -[[blocks]] -name="now-showing" -src="js3/blocks/now-showing" -[[blocks]] -name="single-datum" -src="js3/blocks/single-datum" -[[blocks]] -name="composing elements" -src="js3/blocks/composing-elements" -[[blocks]] -name="Simplifying element creation" -src="js3/blocks/simplifying-element-creation" -[[blocks]] -name="