+): JSX.Element {
+ return (
+ <>
+
+
+
+ >
+ );
+}
+
+VikingHelmet.displayName = 'VikingHelmet';
+
+export default VikingHelmet;
diff --git a/client/src/pages/learn/the-odin-project/index.md b/client/src/pages/learn/the-odin-project/index.md
new file mode 100644
index 00000000000..e600d4a7334
--- /dev/null
+++ b/client/src/pages/learn/the-odin-project/index.md
@@ -0,0 +1,9 @@
+---
+title: The Odin Project
+superBlock: the-odin-project
+certification: the-odin-project
+---
+
+## The Odin project
+
+The Odin Project is one of those "What I wish I had when I was learning" resources. Not everyone has access to a computer science education or the funds to attend an intensive coding school and neither of those is right for everyone anyway. This project is designed to fill in the gap for people who are trying to hack it on their own but still want a high quality education.
diff --git a/client/src/pages/learn/the-odin-project/top-build-a-recipe-page-project/index.md b/client/src/pages/learn/the-odin-project/top-build-a-recipe-page-project/index.md
new file mode 100644
index 00000000000..39bc4dc70b8
--- /dev/null
+++ b/client/src/pages/learn/the-odin-project/top-build-a-recipe-page-project/index.md
@@ -0,0 +1,9 @@
+---
+title: The Odin Project
+superBlock: the-odin-project
+certification: the-odin-project
+---
+
+## The Odin project
+
+Description is to be determined
diff --git a/client/src/pages/learn/the-odin-project/top-learn-html-foundations/index.md b/client/src/pages/learn/the-odin-project/top-learn-html-foundations/index.md
new file mode 100644
index 00000000000..39bc4dc70b8
--- /dev/null
+++ b/client/src/pages/learn/the-odin-project/top-learn-html-foundations/index.md
@@ -0,0 +1,9 @@
+---
+title: The Odin Project
+superBlock: the-odin-project
+certification: the-odin-project
+---
+
+## The Odin project
+
+Description is to be determined
diff --git a/client/src/templates/Introduction/super-block-intro.tsx b/client/src/templates/Introduction/super-block-intro.tsx
index e48882d03ad..e9ecc075298 100644
--- a/client/src/templates/Introduction/super-block-intro.tsx
+++ b/client/src/templates/Introduction/super-block-intro.tsx
@@ -210,16 +210,17 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
/>
))}
- {superBlock !== SuperBlocks.CodingInterviewPrep && (
-
-
-
- )}
+ {superBlock !== SuperBlocks.CodingInterviewPrep &&
+ superBlock !== SuperBlocks.TheOdinProject && (
+
+
+
+ )}
{!isSignedIn && !signInLoading && (
diff --git a/client/src/utils/superblock-map-titles.ts b/client/src/utils/superblock-map-titles.ts
index fa2ec32c994..1615bc2f5e8 100644
--- a/client/src/utils/superblock-map-titles.ts
+++ b/client/src/utils/superblock-map-titles.ts
@@ -9,7 +9,10 @@ enum SuperBlockI18nKeys {
// the key above is used to create the last word for superBlock titles used on
// the map and window. e.g. 'Certification' in Responsive Web Design
// Certification
-const superBlocksWithoutLastWord = [SuperBlocks.CodingInterviewPrep];
+const superBlocksWithoutLastWord = [
+ SuperBlocks.CodingInterviewPrep,
+ SuperBlocks.TheOdinProject
+];
export function getSuperBlockTitleForMap(superBlock: SuperBlocks) {
const i18nSuperBlock = i18next.t(`intro:${superBlock}.title`);
diff --git a/client/utils/help-category-map.json b/client/utils/help-category-map.json
index f4f141c7b83..40ea39ab04e 100644
--- a/client/utils/help-category-map.json
+++ b/client/utils/help-category-map.json
@@ -42,8 +42,8 @@
"algorithms": "JavaScript",
"data-structures": "JavaScript",
"take-home-projects": "JavaScript",
- "the-odin-project": "HTML-CSS",
- "the-odin-project-projects": "HTML-CSS",
+ "top-learn-html-foundations": "HTML-CSS",
+ "top-build-a-recipe-project": "HTML-CSS",
"rosetta-code": "JavaScript",
"project-euler": "JavaScript",
"scientific-computing-with-python": "Python",
diff --git a/config/certification-settings.ts b/config/certification-settings.ts
index aea15811b79..dd7f943c707 100644
--- a/config/certification-settings.ts
+++ b/config/certification-settings.ts
@@ -31,7 +31,8 @@ export enum SuperBlocks {
DataAnalysisPy = 'data-analysis-with-python',
InfoSec = 'information-security',
MachineLearningPy = 'machine-learning-with-python',
- CodingInterviewPrep = 'coding-interview-prep'
+ CodingInterviewPrep = 'coding-interview-prep',
+ TheOdinProject = 'the-odin-project'
}
export const certIds = {
diff --git a/config/superblock-order.test.ts b/config/superblock-order.test.ts
index 233f7c4d60c..cf21825a48b 100644
--- a/config/superblock-order.test.ts
+++ b/config/superblock-order.test.ts
@@ -150,6 +150,7 @@ describe("'superBlockOrder' helper functions", () => {
SuperBlocks.MachineLearningPy,
SuperBlocks.CodingInterviewPrep,
SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject,
SuperBlocks.RespWebDesign
];
expect(learnSuperBlocks).toStrictEqual(test);
@@ -188,7 +189,8 @@ describe("'superBlockOrder' helper functions", () => {
SuperBlocks.InfoSec,
SuperBlocks.MachineLearningPy,
SuperBlocks.CodingInterviewPrep,
- SuperBlocks.JsAlgoDataStructNew
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
];
expect(notAuditedSuperBlocks).toStrictEqual(test);
expect(notAuditedSuperBlocks.length).toEqual(test.length);
diff --git a/config/superblock-order.ts b/config/superblock-order.ts
index 8be124ca9e5..a7ba0346a0a 100644
--- a/config/superblock-order.ts
+++ b/config/superblock-order.ts
@@ -78,7 +78,8 @@ export const defaultSuperBlockOrder: SuperBlocks[] = [
SuperBlocks.DataAnalysisPy,
SuperBlocks.InfoSec,
SuperBlocks.MachineLearningPy,
- SuperBlocks.CodingInterviewPrep
+ SuperBlocks.CodingInterviewPrep,
+ SuperBlocks.TheOdinProject
];
/*
@@ -124,7 +125,10 @@ export const superBlockOrder: SuperBlockOrder = {
SuperBlocks.CodingInterviewPrep
],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign]
},
[TranslationStates.NotAudited]: {
@@ -173,7 +177,10 @@ export const superBlockOrder: SuperBlockOrder = {
SuperBlocks.CodingInterviewPrep
],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -216,7 +223,10 @@ export const superBlockOrder: SuperBlockOrder = {
SuperBlocks.CodingInterviewPrep
],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -259,7 +269,10 @@ export const superBlockOrder: SuperBlockOrder = {
SuperBlocks.CodingInterviewPrep
],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -301,7 +314,10 @@ export const superBlockOrder: SuperBlockOrder = {
[TranslationStates.NotAudited]: {
[SuperBlockStates.Current]: [],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -343,7 +359,10 @@ export const superBlockOrder: SuperBlockOrder = {
[TranslationStates.NotAudited]: {
[SuperBlockStates.Current]: [],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -384,7 +403,10 @@ export const superBlockOrder: SuperBlockOrder = {
[TranslationStates.NotAudited]: {
[SuperBlockStates.Current]: [SuperBlocks.CodingInterviewPrep],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -427,7 +449,10 @@ export const superBlockOrder: SuperBlockOrder = {
[TranslationStates.NotAudited]: {
[SuperBlockStates.Current]: [],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -471,7 +496,10 @@ export const superBlockOrder: SuperBlockOrder = {
SuperBlocks.CodingInterviewPrep
],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: []
}
}
@@ -514,7 +542,10 @@ export const superBlockOrder: SuperBlockOrder = {
SuperBlocks.CodingInterviewPrep
],
[SuperBlockStates.New]: [],
- [SuperBlockStates.Upcoming]: [SuperBlocks.JsAlgoDataStructNew],
+ [SuperBlockStates.Upcoming]: [
+ SuperBlocks.JsAlgoDataStructNew,
+ SuperBlocks.TheOdinProject
+ ],
[SuperBlockStates.Legacy]: [SuperBlocks.RespWebDesign]
}
}
diff --git a/curriculum/challenges/_meta/the-odin-project-projects/meta.json b/curriculum/challenges/_meta/top-build-a-recipe-project/meta.json
similarity index 60%
rename from curriculum/challenges/_meta/the-odin-project-projects/meta.json
rename to curriculum/challenges/_meta/top-build-a-recipe-project/meta.json
index edd3de40ae3..df2b93d2096 100644
--- a/curriculum/challenges/_meta/the-odin-project-projects/meta.json
+++ b/curriculum/challenges/_meta/top-build-a-recipe-project/meta.json
@@ -1,12 +1,11 @@
{
- "name": "The Odin Project Projects",
+ "name": "TOP build a recipe project",
"isUpcomingChange": true,
- "dashedName": "the-odin-project-projects",
- "order": 6,
+ "order": 1,
"time": "",
"template": "",
"required": [],
- "superBlock": "coding-interview-prep",
+ "superBlock": "the-odin-project",
"challengeOrder": [
[
"6391d1a4f7ac71efd0621380",
diff --git a/curriculum/challenges/_meta/the-odin-project/meta.json b/curriculum/challenges/_meta/top-learn-html-foundations/meta.json
similarity index 95%
rename from curriculum/challenges/_meta/the-odin-project/meta.json
rename to curriculum/challenges/_meta/top-learn-html-foundations/meta.json
index 44d7f47d50b..b15490e569c 100644
--- a/curriculum/challenges/_meta/the-odin-project/meta.json
+++ b/curriculum/challenges/_meta/top-learn-html-foundations/meta.json
@@ -1,12 +1,11 @@
{
- "name": "The Odin Project",
+ "name": "TOP Learn HTML Foundations",
"isUpcomingChange": true,
- "dashedName": "the-odin-project",
- "order": 5,
+ "order": 0,
"time": "",
"template": "",
"required": [],
- "superBlock": "coding-interview-prep",
+ "superBlock": "the-odin-project",
"challengeOrder": [
[
"6374f208de18c50e48ba767b",
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project-projects/project-create-a-recipe-page.md b/curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md
similarity index 99%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project-projects/project-create-a-recipe-page.md
rename to curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md
index 7f7926e3df6..d810de57171 100644
--- a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project-projects/project-create-a-recipe-page.md
+++ b/curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md
@@ -2,7 +2,7 @@
id: 6391d1a4f7ac71efd0621380
title: Build a Recipe Page Project
challengeType: 14
-dashedName: project-create-a-recipe-page
+dashedName: top-build-a-recipe-project
---
# --description--
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/elements-and-tags-question-a.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/elements-and-tags-question-a.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/elements-and-tags-question-a.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/elements-and-tags-question-a.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/elements-and-tags-question-b.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/elements-and-tags-question-b.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/elements-and-tags-question-b.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/elements-and-tags-question-b.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-a.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-a.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-a.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-a.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-b.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-b.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-b.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-b.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-c.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-c.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-c.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-c.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-d.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-d.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/html-boilerplate-question-d.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/html-boilerplate-question-d.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-a.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-a.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-a.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-a.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-b.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-b.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-b.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-b.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-c.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-c.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-c.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-c.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-d.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-d.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/introduction-to-html-css-question-d.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/introduction-to-html-css-question-d.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-a.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-a.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-a.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-a.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-b.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-b.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-b.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-b.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-c.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-c.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-c.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-c.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-d.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-d.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-d.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-d.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-e.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-e.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-e.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-e.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-f.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-f.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-f.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-f.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-g.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-g.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-g.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-g.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-h.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-h.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/links-and-images-question-h.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/links-and-images-question-h.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/understand-ordered-and-unordered-list-question-a.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/understand-ordered-and-unordered-list-question-a.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/understand-ordered-and-unordered-list-question-a.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/understand-ordered-and-unordered-list-question-a.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/understand-ordered-and-unordered-list-question-b.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/understand-ordered-and-unordered-list-question-b.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/understand-ordered-and-unordered-list-question-b.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/understand-ordered-and-unordered-list-question-b.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/understand-ordered-and-unordered-list-question-c.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/understand-ordered-and-unordered-list-question-c.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/understand-ordered-and-unordered-list-question-c.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/understand-ordered-and-unordered-list-question-c.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-a.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-a.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-a.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-a.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-b.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-b.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-b.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-b.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-c.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-c.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-c.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-c.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-d.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-d.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-d.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-d.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-e.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-e.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-e.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-e.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-f.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-f.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-f.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-f.md
diff --git a/curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-g.md b/curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-g.md
similarity index 100%
rename from curriculum/challenges/english/10-coding-interview-prep/the-odin-project/working-with-text-question-g.md
rename to curriculum/challenges/english/16-the-odin-project/top-learn-html-foundations/working-with-text-question-g.md
diff --git a/curriculum/utils.js b/curriculum/utils.js
index 16b0beba57f..c9f18d45ee8 100644
--- a/curriculum/utils.js
+++ b/curriculum/utils.js
@@ -120,7 +120,8 @@ const directoryToSuperblock = {
'13-relational-databases': 'relational-database',
'14-responsive-web-design-22': '2022/responsive-web-design',
'15-javascript-algorithms-and-data-structures-22':
- '2022/javascript-algorithms-and-data-structures'
+ '2022/javascript-algorithms-and-data-structures',
+ '16-the-odin-project': 'the-odin-project'
};
function getSuperBlockFromDir(dir) {
diff --git a/curriculum/utils.test.ts b/curriculum/utils.test.ts
index 28a817a688c..8f27689c9ac 100644
--- a/curriculum/utils.test.ts
+++ b/curriculum/utils.test.ts
@@ -39,7 +39,8 @@ const upcomingTest = {
[SuperBlocks.MachineLearningPy]: 10,
[SuperBlocks.CodingInterviewPrep]: 11,
[SuperBlocks.JsAlgoDataStructNew]: 12,
- [SuperBlocks.RespWebDesign]: 13
+ [SuperBlocks.TheOdinProject]: 13,
+ [SuperBlocks.RespWebDesign]: 14
};
const espanolTest = {
@@ -144,7 +145,7 @@ describe('getSuperOrder', () => {
if (process.env.SHOW_UPCOMING_CHANGES !== 'true') {
expect.assertions(13);
} else {
- expect.assertions(14);
+ expect.assertions(15);
}
expect(getSuperOrder(SuperBlocks.RespWebDesignNew)).toBe(0);
@@ -162,7 +163,8 @@ describe('getSuperOrder', () => {
if (process.env.SHOW_UPCOMING_CHANGES === 'true') {
expect(getSuperOrder(SuperBlocks.JsAlgoDataStructNew)).toBe(12);
- expect(getSuperOrder(SuperBlocks.RespWebDesign)).toBe(13);
+ expect(getSuperOrder(SuperBlocks.TheOdinProject)).toBe(13);
+ expect(getSuperOrder(SuperBlocks.RespWebDesign)).toBe(14);
} else {
expect(getSuperOrder(SuperBlocks.RespWebDesign)).toBe(12);
}
@@ -175,7 +177,7 @@ describe('getSuperBlockFromPath', () => {
);
it('handles all the directories in ./challenges/english', () => {
- expect.assertions(15);
+ expect.assertions(16);
for (const directory of directories) {
expect(() => getSuperBlockFromDir(directory)).not.toThrow();
@@ -183,7 +185,7 @@ describe('getSuperBlockFromPath', () => {
});
it("returns valid superblocks (or 'certifications') for all valid arguments", () => {
- expect.assertions(15);
+ expect.assertions(16);
const superBlockPaths = directories.filter(x => x !== '00-certifications');
diff --git a/tools/challenge-auditor/index.ts b/tools/challenge-auditor/index.ts
index 564deb5a72a..4fa66ce5936 100644
--- a/tools/challenge-auditor/index.ts
+++ b/tools/challenge-auditor/index.ts
@@ -29,7 +29,8 @@ const superBlockFolderMap = {
'relational-database': '13-relational-database',
'2022/responsive-web-design': '14-responsive-web-design-22',
'2022/javascript-algorithms-and-data-structures':
- '15-javascript-algorithms-and-data-structures-22'
+ '15-javascript-algorithms-and-data-structures-22',
+ 'the-odin-project': '16-the-odin-project'
};
// These blocks are in the incorrect superblock. They should be moved but, for
diff --git a/tools/challenge-editor/api/configs/super-block-list.ts b/tools/challenge-editor/api/configs/super-block-list.ts
index 28b0d6eb7ad..d5655f8f9a4 100644
--- a/tools/challenge-editor/api/configs/super-block-list.ts
+++ b/tools/challenge-editor/api/configs/super-block-list.ts
@@ -54,5 +54,9 @@ export const superBlockList = [
{
name: 'JavaScript Algorithms and Data Structures (Beta)',
path: '15-javascript-algorithms-and-data-structures-22'
+ },
+ {
+ name: 'The Odin Project',
+ path: '16-the-odin-project'
}
];
diff --git a/tools/challenge-helper-scripts/fs-utils.ts b/tools/challenge-helper-scripts/fs-utils.ts
index 410f98deb5f..ad479a27177 100644
--- a/tools/challenge-helper-scripts/fs-utils.ts
+++ b/tools/challenge-helper-scripts/fs-utils.ts
@@ -17,7 +17,8 @@ export function getSuperBlockSubPath(superBlock: SuperBlocks): string {
[SuperBlocks.RelationalDb]: '13-relational-databases',
[SuperBlocks.RespWebDesignNew]: '14-responsive-web-design-22',
[SuperBlocks.JsAlgoDataStructNew]:
- '15-javascript-algorithms-and-data-structures-22'
+ '15-javascript-algorithms-and-data-structures-22',
+ [SuperBlocks.TheOdinProject]: '16-the-odin-project'
};
return pathMap[superBlock];
}
diff --git a/tools/scripts/build/build-external-curricula-data.test.ts b/tools/scripts/build/build-external-curricula-data.test.ts
index 9ff08d2e8a7..737260af2e6 100644
--- a/tools/scripts/build/build-external-curricula-data.test.ts
+++ b/tools/scripts/build/build-external-curricula-data.test.ts
@@ -82,10 +82,16 @@ if (envData.clientLocale == 'english' && !envData.showUpcomingChanges) {
const dashedNames = orderedSuperBlockInfo.map(
({ dashedName }) => dashedName
);
+
+ const isUpcoming = [
+ '2022/javascript-algorithms-and-data-structures',
+ 'the-odin-project'
+ ];
+
// TODO: this is a hack, we should have a single source of truth for the
// list of superblocks that are available.
const publicSuperBlockNames = Object.values(SuperBlocks).filter(
- x => x !== '2022/javascript-algorithms-and-data-structures'
+ x => !isUpcoming.includes(x)
);
expect(dashedNames).toEqual(