mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
feat(curriculum): JS checkpoint cert (#62188)
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
This commit is contained in:
@@ -33,6 +33,7 @@ const takeHomeBase = '/learn/coding-interview-prep/take-home-projects';
|
|||||||
const foundationalCSharpBase =
|
const foundationalCSharpBase =
|
||||||
'/learn/foundational-c-sharp-with-microsoft/foundational-c-sharp-with-microsoft-certification-exam';
|
'/learn/foundational-c-sharp-with-microsoft/foundational-c-sharp-with-microsoft-certification-exam';
|
||||||
const fullStackDeveloperBase = '/learn/full-stack-developer';
|
const fullStackDeveloperBase = '/learn/full-stack-developer';
|
||||||
|
const jsV9Base = '/learn/javascript-v9';
|
||||||
const a2EnglishBase = '/learn/a2-english-for-developers';
|
const a2EnglishBase = '/learn/a2-english-for-developers';
|
||||||
const b1EnglishBase = '/learn/b1-english-for-developers';
|
const b1EnglishBase = '/learn/b1-english-for-developers';
|
||||||
const a2SpanishBase = '/learn/a2-professional-spanish';
|
const a2SpanishBase = '/learn/a2-professional-spanish';
|
||||||
@@ -813,6 +814,19 @@ const allStandardCerts = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: '68c4069c1ef859270e17c495',
|
||||||
|
title: 'JavaScript',
|
||||||
|
certSlug: Certification.JsV9,
|
||||||
|
projects: [
|
||||||
|
{
|
||||||
|
id: '645147516c245de4d11eb7ba',
|
||||||
|
title: 'JavaScript Certification Exam',
|
||||||
|
link: `${jsV9Base}/exam-javascript-certification/exam-javascript-certification`,
|
||||||
|
certSlug: Certification.JsV9
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: '651dd7e01d697d0aab7833b7',
|
id: '651dd7e01d697d0aab7833b7',
|
||||||
title: 'A2 English for Developers',
|
title: 'A2 English for Developers',
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,8 @@ const iconMap = {
|
|||||||
[SuperBlocks.BasicHtml]: Code,
|
[SuperBlocks.BasicHtml]: Code,
|
||||||
[SuperBlocks.SemanticHtml]: Code,
|
[SuperBlocks.SemanticHtml]: Code,
|
||||||
[SuperBlocks.FullStackOpen]: Code,
|
[SuperBlocks.FullStackOpen]: Code,
|
||||||
[SuperBlocks.DevPlayground]: Code
|
[SuperBlocks.DevPlayground]: Code,
|
||||||
|
[SuperBlocks.JsV9]: JavaScriptIcon
|
||||||
};
|
};
|
||||||
|
|
||||||
type SuperBlockIconProps = {
|
type SuperBlockIconProps = {
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ const createCertifiedMap = ({
|
|||||||
// be rendered. The new FullStackDeveloper certification is a normal
|
// be rendered. The new FullStackDeveloper certification is a normal
|
||||||
// certification with projects.
|
// certification with projects.
|
||||||
[Certification.FullStackDeveloper]: false,
|
[Certification.FullStackDeveloper]: false,
|
||||||
|
[Certification.JsV9]: false,
|
||||||
[Certification.A2English]: false,
|
[Certification.A2English]: false,
|
||||||
[Certification.B1English]: false,
|
[Certification.B1English]: false,
|
||||||
[Certification.A2Spanish]: false,
|
[Certification.A2Spanish]: false,
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
title: JavaScript Certification
|
||||||
|
superBlock: javascript-v9
|
||||||
|
certification: javascript-v9
|
||||||
|
---
|
||||||
|
|
||||||
|
## Introduction to JavaScript Certification
|
||||||
|
|
||||||
|
This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.
|
||||||
|
|
||||||
|
To earn your JavaScript Certification:
|
||||||
|
|
||||||
|
- Complete the five required projects to qualify for the certification exam.
|
||||||
|
- Pass the JavaScript Certification exam.
|
||||||
@@ -10,6 +10,7 @@ import DropDown from '../../../assets/icons/dropdown';
|
|||||||
import fullStackCert from '../../../../../curriculum/structure/superblocks/full-stack-developer.json';
|
import fullStackCert from '../../../../../curriculum/structure/superblocks/full-stack-developer.json';
|
||||||
import fullStackOpen from '../../../../../curriculum/structure/superblocks/full-stack-open.json';
|
import fullStackOpen from '../../../../../curriculum/structure/superblocks/full-stack-open.json';
|
||||||
import a1Spanish from '../../../../../curriculum/structure/superblocks/a1-professional-spanish.json';
|
import a1Spanish from '../../../../../curriculum/structure/superblocks/a1-professional-spanish.json';
|
||||||
|
import javascriptV9 from '../../../../../curriculum/structure/superblocks/javascript-v9.json';
|
||||||
|
|
||||||
import { ChapterIcon } from '../../../assets/chapter-icon';
|
import { ChapterIcon } from '../../../assets/chapter-icon';
|
||||||
import { type Chapter } from '../../../../../shared-dist/config/chapters';
|
import { type Chapter } from '../../../../../shared-dist/config/chapters';
|
||||||
@@ -189,6 +190,8 @@ export const SuperBlockAccordion = ({
|
|||||||
return fullStackCert;
|
return fullStackCert;
|
||||||
case SuperBlocks.A1Spanish:
|
case SuperBlocks.A1Spanish:
|
||||||
return a1Spanish;
|
return a1Spanish;
|
||||||
|
case SuperBlocks.JsV9:
|
||||||
|
return javascriptV9;
|
||||||
default:
|
default:
|
||||||
throw new Error("The SuperBlock structure hasn't been imported.");
|
throw new Error("The SuperBlock structure hasn't been imported.");
|
||||||
}
|
}
|
||||||
@@ -287,7 +290,9 @@ export const SuperBlockAccordion = ({
|
|||||||
<Chapter
|
<Chapter
|
||||||
key={chapter.name}
|
key={chapter.name}
|
||||||
dashedName={chapter.name}
|
dashedName={chapter.name}
|
||||||
isExpanded={expandedChapter === chapter.name}
|
isExpanded={
|
||||||
|
expandedChapter === chapter.name || allChapters.length === 1
|
||||||
|
}
|
||||||
comingSoon={chapter.comingSoon}
|
comingSoon={chapter.comingSoon}
|
||||||
totalSteps={chapterStepIds.length}
|
totalSteps={chapterStepIds.length}
|
||||||
completedSteps={completedStepsInChapter}
|
completedSteps={completedStepsInChapter}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ const idToPath = new Map(
|
|||||||
'561add10cb82ac38a17213bd': Certification.LegacyFullStack,
|
'561add10cb82ac38a17213bd': Certification.LegacyFullStack,
|
||||||
'5e44431b903586ffb414c951': Certification.SciCompPy,
|
'5e44431b903586ffb414c951': Certification.SciCompPy,
|
||||||
'5e46fc95ac417301a38fb934': Certification.DataAnalysisPy,
|
'5e46fc95ac417301a38fb934': Certification.DataAnalysisPy,
|
||||||
'5e46fc95ac417301a38fb935': Certification.MachineLearningPy
|
'5e46fc95ac417301a38fb935': Certification.MachineLearningPy,
|
||||||
|
'68c4069c1ef859270e17c495': Certification.JsV9
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -191,7 +191,8 @@ const superBlockNames = {
|
|||||||
'semantic-html': 'semantic-html',
|
'semantic-html': 'semantic-html',
|
||||||
'a1-professional-chinese': 'a1-professional-chinese',
|
'a1-professional-chinese': 'a1-professional-chinese',
|
||||||
'dev-playground': 'dev-playground',
|
'dev-playground': 'dev-playground',
|
||||||
'full-stack-open': 'full-stack-open'
|
'full-stack-open': 'full-stack-open',
|
||||||
|
'javascript-v9': 'javascript-v9'
|
||||||
};
|
};
|
||||||
|
|
||||||
const superBlockToFilename = Object.entries(superBlockNames).reduce(
|
const superBlockToFilename = Object.entries(superBlockNames).reduce(
|
||||||
|
|||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
id: 68c462d7dc707f3ca82f8e6d
|
||||||
|
title: JavaScript Certification Exam
|
||||||
|
challengeType: 30
|
||||||
|
dashedName: exam-javascript-certification
|
||||||
|
---
|
||||||
|
|
||||||
|
# --description--
|
||||||
|
|
||||||
|
Start your exam in the exam environment app.
|
||||||
|
|
||||||
|
# --instructions--
|
||||||
|
|
||||||
|
# --hints--
|
||||||
|
|
||||||
|
# --seed--
|
||||||
|
|
||||||
|
# --solutions--
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
id: 68c4069c1ef859270e17c495
|
||||||
|
title: JavaScript Certification
|
||||||
|
certification: javascript-v9
|
||||||
|
challengeType: 7
|
||||||
|
tests:
|
||||||
|
- id: 68c462d7dc707f3ca82f8e6d
|
||||||
|
title: JavaScript Certification Exam
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "JavaScript Certification Exam",
|
||||||
|
"isUpcomingChange": true,
|
||||||
|
"dashedName": "exam-javascript-certification",
|
||||||
|
"helpCategory": "JavaScript",
|
||||||
|
"blockType": "exam",
|
||||||
|
"blockLayout": "link",
|
||||||
|
"challengeOrder": [
|
||||||
|
{
|
||||||
|
"id": "68c462d7dc707f3ca82f8e6d",
|
||||||
|
"title": "JavaScript Certification Exam"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -30,7 +30,8 @@
|
|||||||
"semantic-html",
|
"semantic-html",
|
||||||
"a1-professional-chinese",
|
"a1-professional-chinese",
|
||||||
"dev-playground",
|
"dev-playground",
|
||||||
"full-stack-open"
|
"full-stack-open",
|
||||||
|
"javascript-v9"
|
||||||
],
|
],
|
||||||
"certifications": [
|
"certifications": [
|
||||||
"a2-english-for-developers",
|
"a2-english-for-developers",
|
||||||
@@ -57,6 +58,7 @@
|
|||||||
"relational-database",
|
"relational-database",
|
||||||
"responsive-web-design",
|
"responsive-web-design",
|
||||||
"scientific-computing-with-python",
|
"scientific-computing-with-python",
|
||||||
"a1-professional-chinese"
|
"a1-professional-chinese",
|
||||||
|
"javascript-v9"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,305 @@
|
|||||||
|
{
|
||||||
|
"chapters": [
|
||||||
|
{
|
||||||
|
"dashedName": "javascript",
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-variables-and-strings",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-introduction-to-javascript",
|
||||||
|
"workshop-greeting-bot",
|
||||||
|
"lab-javascript-trivia-bot",
|
||||||
|
"lab-sentence-maker",
|
||||||
|
"lecture-working-with-data-types",
|
||||||
|
"review-javascript-variables-and-data-types",
|
||||||
|
"quiz-javascript-variables-and-data-types",
|
||||||
|
"lecture-working-with-strings-in-javascript",
|
||||||
|
"workshop-teacher-chatbot",
|
||||||
|
"lecture-working-with-string-character-methods",
|
||||||
|
"lecture-working-with-string-search-and-slice-methods",
|
||||||
|
"lecture-working-with-string-formatting-methods",
|
||||||
|
"lecture-working-with-string-modification-methods",
|
||||||
|
"review-javascript-strings",
|
||||||
|
"quiz-javascript-strings"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-booleans-and-numbers",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-numbers-and-arithmetic-operators",
|
||||||
|
"lecture-working-with-operator-behavior",
|
||||||
|
"lecture-working-with-comparison-and-boolean-operators",
|
||||||
|
"lecture-working-with-unary-and-bitwise-operators",
|
||||||
|
"lecture-working-with-conditional-logic-and-math-methods",
|
||||||
|
"workshop-mathbot",
|
||||||
|
"lab-fortune-teller",
|
||||||
|
"lecture-working-with-numbers-and-common-number-methods",
|
||||||
|
"review-javascript-math",
|
||||||
|
"quiz-javascript-math",
|
||||||
|
"lecture-understanding-comparisons-and-conditionals",
|
||||||
|
"review-javascript-comparisons-and-conditionals",
|
||||||
|
"quiz-javascript-comparisons-and-conditionals"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-functions",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-functions",
|
||||||
|
"workshop-calculator",
|
||||||
|
"lab-boolean-check",
|
||||||
|
"lab-email-masker",
|
||||||
|
"workshop-loan-qualification-checker",
|
||||||
|
"lab-celsius-to-fahrenheit-converter",
|
||||||
|
"lab-counting-cards",
|
||||||
|
"lab-leap-year-calculator",
|
||||||
|
"lab-truncate-string",
|
||||||
|
"lab-string-ending-checker",
|
||||||
|
"review-javascript-functions",
|
||||||
|
"quiz-javascript-functions"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-arrays",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-arrays",
|
||||||
|
"workshop-shopping-list",
|
||||||
|
"lab-lunch-picker-program",
|
||||||
|
"lab-golf-score-translator",
|
||||||
|
"lab-reverse-a-string",
|
||||||
|
"lecture-working-with-common-array-methods",
|
||||||
|
"review-javascript-arrays",
|
||||||
|
"quiz-javascript-arrays"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-objects",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-introduction-to-javascript-objects-and-their-properties",
|
||||||
|
"lecture-working-with-json",
|
||||||
|
"lecture-working-with-optional-chaining-and-object-destructuring",
|
||||||
|
"workshop-recipe-tracker",
|
||||||
|
"lab-quiz-game",
|
||||||
|
"lab-record-collection",
|
||||||
|
"review-javascript-objects",
|
||||||
|
"quiz-javascript-objects"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-loops",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-loops",
|
||||||
|
"workshop-sentence-analyzer",
|
||||||
|
"lab-longest-word-in-a-string",
|
||||||
|
"lab-factorial-calculator",
|
||||||
|
"lab-mutations",
|
||||||
|
"lab-chunky-monkey",
|
||||||
|
"lab-profile-lookup",
|
||||||
|
"lab-repeat-a-string",
|
||||||
|
"review-javascript-loops",
|
||||||
|
"quiz-javascript-loops"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "review-javascript-fundamentals",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-types-and-objects",
|
||||||
|
"lecture-working-with-arrays-variables-and-naming-practices",
|
||||||
|
"lecture-working-with-code-quality-and-execution-concepts",
|
||||||
|
"lab-largest-number-finder",
|
||||||
|
"lab-first-element-finder",
|
||||||
|
"lab-slice-and-splice",
|
||||||
|
"lab-pyramid-generator",
|
||||||
|
"lab-gradebook-app",
|
||||||
|
"lecture-the-var-keyword-and-hoisting",
|
||||||
|
"lab-falsy-remover",
|
||||||
|
"lab-inventory-management-program",
|
||||||
|
"lecture-understanding-modules-imports-and-exports",
|
||||||
|
"lab-password-generator",
|
||||||
|
"lab-sum-all-numbers-algorithm",
|
||||||
|
"lab-html-entitiy-converter",
|
||||||
|
"lab-optional-arguments-sum-function",
|
||||||
|
"review-javascript-fundamentals",
|
||||||
|
"quiz-javascript-fundamentals"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "higher-order-functions-and-callbacks",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-higher-order-functions-and-callbacks",
|
||||||
|
"workshop-library-manager",
|
||||||
|
"lab-book-organizer",
|
||||||
|
"lab-sorted-index-finder",
|
||||||
|
"lab-symmetric-difference",
|
||||||
|
"review-javascript-higher-order-functions",
|
||||||
|
"quiz-javascript-higher-order-functions"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "dom-manipulation-and-events",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-the-dom-click-events-and-web-apis",
|
||||||
|
"workshop-storytelling-app",
|
||||||
|
"lab-favorite-icon-toggler",
|
||||||
|
"lecture-understanding-the-event-object-and-event-delegation",
|
||||||
|
"workshop-music-instrument-filter",
|
||||||
|
"lab-real-time-counter",
|
||||||
|
"lab-lightbox-viewer",
|
||||||
|
"workshop-rps-game",
|
||||||
|
"lab-football-team-cards",
|
||||||
|
"review-dom-manipulation-and-click-events-with-javascript",
|
||||||
|
"quiz-dom-manipulation-and-click-event-with-javascript"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "js-a11y",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-understanding-aria-expanded-aria-live-and-common-aria-states",
|
||||||
|
"workshop-planets-tablist",
|
||||||
|
"workshop-note-taking-app",
|
||||||
|
"lab-theme-switcher",
|
||||||
|
"review-js-a11y",
|
||||||
|
"quiz-js-a11y"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "debugging-javascript",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-debugging-techniques",
|
||||||
|
"lab-random-background-color-changer",
|
||||||
|
"review-debugging-javascript",
|
||||||
|
"quiz-debugging-javascript"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "basic-regex",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-regular-expressions",
|
||||||
|
"workshop-spam-filter",
|
||||||
|
"lab-palindrome-checker",
|
||||||
|
"lab-regex-sandbox",
|
||||||
|
"review-javascript-regular-expressions",
|
||||||
|
"quiz-javascript-regular-expressions"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "lab-markdown-to-html-converter",
|
||||||
|
"blocks": ["lab-markdown-to-html-converter"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "form-validation",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-understanding-form-validation",
|
||||||
|
"workshop-calorie-counter",
|
||||||
|
"lab-customer-complaint-form",
|
||||||
|
"review-form-validation-with-javascript",
|
||||||
|
"quiz-form-validation-with-javascript"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-dates",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-dates",
|
||||||
|
"lab-date-conversion",
|
||||||
|
"review-javascript-dates",
|
||||||
|
"quiz-javascript-dates"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "audio-and-video-events",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-audio-and-video",
|
||||||
|
"workshop-music-player",
|
||||||
|
"review-javascript-audio-and-video",
|
||||||
|
"quiz-javascript-audio-and-video"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "lab-drum-machine",
|
||||||
|
"blocks": ["lab-drum-machine"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "maps-and-sets",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-maps-and-sets",
|
||||||
|
"workshop-plant-nursery-catalog",
|
||||||
|
"lab-voting-system",
|
||||||
|
"review-javascript-maps-and-sets",
|
||||||
|
"quiz-javascript-maps-and-sets"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "lab-voting-system",
|
||||||
|
"blocks": ["lab-voting-system"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "localstorage-and-crud-operations",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-working-with-client-side-storage-and-crud-operations",
|
||||||
|
"workshop-todo-app",
|
||||||
|
"lab-bookmark-manager-app",
|
||||||
|
"review-local-storage-and-crud",
|
||||||
|
"quiz-local-storage-and-crud"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "classes-and-the-this-keyword",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-understanding-how-to-work-with-classes-in-javascript",
|
||||||
|
"workshop-shopping-cart",
|
||||||
|
"lab-project-idea-board",
|
||||||
|
"review-javascript-classes",
|
||||||
|
"quiz-javascript-classes"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "lab-bank-account-manager",
|
||||||
|
"blocks": ["lab-bank-account-manager"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "recursion",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-understanding-recursion-and-the-call-stack",
|
||||||
|
"workshop-decimal-to-binary-converter",
|
||||||
|
"lab-permutation-generator",
|
||||||
|
"review-recursion",
|
||||||
|
"quiz-recursion"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "functional-programming",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-understanding-functional-programming",
|
||||||
|
"workshop-recipe-ingredient-converter",
|
||||||
|
"lab-sorting-visualizer",
|
||||||
|
"review-javascript-functional-programming",
|
||||||
|
"quiz-javascript-functional-programming"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "asynchronous-javascript",
|
||||||
|
"blocks": [
|
||||||
|
"lecture-understanding-asynchronous-programming",
|
||||||
|
"workshop-fcc-authors-page",
|
||||||
|
"lab-fcc-forum-leaderboard",
|
||||||
|
"review-asynchronous-javascript",
|
||||||
|
"quiz-asynchronous-javascript"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "lab-weather-app",
|
||||||
|
"blocks": ["lab-weather-app"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moduleType": "review",
|
||||||
|
"dashedName": "review-javascript",
|
||||||
|
"blocks": ["review-javascript"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dashedName": "javascript-certification-exam",
|
||||||
|
"comingSoon": true,
|
||||||
|
"blocks": ["exam-javascript-certification"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -27,6 +27,7 @@ export enum Certification {
|
|||||||
FoundationalCSharp = 'foundational-c-sharp-with-microsoft',
|
FoundationalCSharp = 'foundational-c-sharp-with-microsoft',
|
||||||
// Upcoming certifications
|
// Upcoming certifications
|
||||||
FullStackDeveloper = 'full-stack-developer-v9',
|
FullStackDeveloper = 'full-stack-developer-v9',
|
||||||
|
JsV9 = 'javascript-v9',
|
||||||
A2English = 'a2-english-for-developers-v8',
|
A2English = 'a2-english-for-developers-v8',
|
||||||
B1English = 'b1-english-for-developers-v8',
|
B1English = 'b1-english-for-developers-v8',
|
||||||
A2Spanish = 'a2-professional-spanish-v8',
|
A2Spanish = 'a2-professional-spanish-v8',
|
||||||
@@ -79,6 +80,7 @@ export const legacyFullStackCertification = [
|
|||||||
// showUpcomingChanges is true.
|
// showUpcomingChanges is true.
|
||||||
export const upcomingCertifications = [
|
export const upcomingCertifications = [
|
||||||
Certification.FullStackDeveloper,
|
Certification.FullStackDeveloper,
|
||||||
|
Certification.JsV9,
|
||||||
Certification.A2English,
|
Certification.A2English,
|
||||||
Certification.B1English,
|
Certification.B1English,
|
||||||
Certification.A2Spanish,
|
Certification.A2Spanish,
|
||||||
@@ -127,7 +129,8 @@ export const certIds = {
|
|||||||
relationalDatabaseV8Id: '606243f50267e718b1e755f4',
|
relationalDatabaseV8Id: '606243f50267e718b1e755f4',
|
||||||
collegeAlgebraPyV8Id: '61531b20cc9dfa2741a5b800',
|
collegeAlgebraPyV8Id: '61531b20cc9dfa2741a5b800',
|
||||||
foundationalCSharpV8Id: '647f7da207d29547b3bee1ba',
|
foundationalCSharpV8Id: '647f7da207d29547b3bee1ba',
|
||||||
jsAlgoDataStructV8Id: '658180220947283cdc0689ce'
|
jsAlgoDataStructV8Id: '658180220947283cdc0689ce',
|
||||||
|
javascriptV9Id: '68c4069c1ef859270e17c495'
|
||||||
};
|
};
|
||||||
|
|
||||||
export const completionHours = {
|
export const completionHours = {
|
||||||
@@ -274,6 +277,7 @@ export const superBlockToCertMap: {
|
|||||||
[SuperBlocks.RespWebDesignNew]: Certification.RespWebDesign,
|
[SuperBlocks.RespWebDesignNew]: Certification.RespWebDesign,
|
||||||
[SuperBlocks.JsAlgoDataStruct]: Certification.JsAlgoDataStruct,
|
[SuperBlocks.JsAlgoDataStruct]: Certification.JsAlgoDataStruct,
|
||||||
[SuperBlocks.FullStackDeveloper]: Certification.FullStackDeveloper,
|
[SuperBlocks.FullStackDeveloper]: Certification.FullStackDeveloper,
|
||||||
|
[SuperBlocks.JsV9]: Certification.JsV9,
|
||||||
[SuperBlocks.A2English]: Certification.A2English,
|
[SuperBlocks.A2English]: Certification.A2English,
|
||||||
[SuperBlocks.B1English]: Certification.B1English,
|
[SuperBlocks.B1English]: Certification.B1English,
|
||||||
[SuperBlocks.A1Spanish]: null,
|
[SuperBlocks.A1Spanish]: null,
|
||||||
@@ -313,6 +317,7 @@ export const linkedInCredentialIds = {
|
|||||||
[Certification.CollegeAlgebraPy]: 'cawp',
|
[Certification.CollegeAlgebraPy]: 'cawp',
|
||||||
[Certification.FoundationalCSharp]: 'fcswm',
|
[Certification.FoundationalCSharp]: 'fcswm',
|
||||||
[Certification.FullStackDeveloper]: 'fsd',
|
[Certification.FullStackDeveloper]: 'fsd',
|
||||||
|
[Certification.JsV9]: 'js',
|
||||||
[Certification.JsAlgoDataStructNew]: 'jaads',
|
[Certification.JsAlgoDataStructNew]: 'jaads',
|
||||||
[Certification.A2English]: 'a2efd',
|
[Certification.A2English]: 'a2efd',
|
||||||
[Certification.B1English]: 'b1efd',
|
[Certification.B1English]: 'b1efd',
|
||||||
|
|||||||
+25
-12
@@ -34,7 +34,8 @@ export enum SuperBlocks {
|
|||||||
BasicHtml = 'basic-html',
|
BasicHtml = 'basic-html',
|
||||||
SemanticHtml = 'semantic-html',
|
SemanticHtml = 'semantic-html',
|
||||||
DevPlayground = 'dev-playground',
|
DevPlayground = 'dev-playground',
|
||||||
FullStackOpen = 'full-stack-open'
|
FullStackOpen = 'full-stack-open',
|
||||||
|
JsV9 = 'javascript-v9'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const languageSuperBlocks = [
|
export const languageSuperBlocks = [
|
||||||
@@ -120,6 +121,7 @@ export const superBlockStages: StageMap = {
|
|||||||
[SuperBlockStage.Next]: [],
|
[SuperBlockStage.Next]: [],
|
||||||
[SuperBlockStage.Upcoming]: [
|
[SuperBlockStage.Upcoming]: [
|
||||||
SuperBlocks.FullStackOpen,
|
SuperBlocks.FullStackOpen,
|
||||||
|
SuperBlocks.JsV9,
|
||||||
SuperBlocks.A1Spanish,
|
SuperBlocks.A1Spanish,
|
||||||
SuperBlocks.A2Spanish,
|
SuperBlocks.A2Spanish,
|
||||||
SuperBlocks.A2Chinese,
|
SuperBlocks.A2Chinese,
|
||||||
@@ -164,7 +166,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Chinese]: [
|
[Languages.Chinese]: [
|
||||||
SuperBlocks.CodingInterviewPrep,
|
SuperBlocks.CodingInterviewPrep,
|
||||||
@@ -180,7 +183,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.ChineseTraditional]: [
|
[Languages.ChineseTraditional]: [
|
||||||
SuperBlocks.CodingInterviewPrep,
|
SuperBlocks.CodingInterviewPrep,
|
||||||
@@ -196,7 +200,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Italian]: [
|
[Languages.Italian]: [
|
||||||
SuperBlocks.FoundationalCSharp,
|
SuperBlocks.FoundationalCSharp,
|
||||||
@@ -212,7 +217,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Portuguese]: [
|
[Languages.Portuguese]: [
|
||||||
SuperBlocks.JsAlgoDataStructNew,
|
SuperBlocks.JsAlgoDataStructNew,
|
||||||
@@ -226,7 +232,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Ukrainian]: [
|
[Languages.Ukrainian]: [
|
||||||
SuperBlocks.JsAlgoDataStructNew,
|
SuperBlocks.JsAlgoDataStructNew,
|
||||||
@@ -239,7 +246,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.A1Chinese,
|
SuperBlocks.A1Chinese,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Japanese]: [
|
[Languages.Japanese]: [
|
||||||
SuperBlocks.JsAlgoDataStructNew,
|
SuperBlocks.JsAlgoDataStructNew,
|
||||||
@@ -253,7 +261,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.A1Chinese,
|
SuperBlocks.A1Chinese,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.German]: [
|
[Languages.German]: [
|
||||||
SuperBlocks.RelationalDb,
|
SuperBlocks.RelationalDb,
|
||||||
@@ -276,7 +285,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Swahili]: [
|
[Languages.Swahili]: [
|
||||||
SuperBlocks.DataVis,
|
SuperBlocks.DataVis,
|
||||||
@@ -306,7 +316,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.PythonForEverybody,
|
SuperBlocks.PythonForEverybody,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
],
|
],
|
||||||
[Languages.Korean]: [
|
[Languages.Korean]: [
|
||||||
SuperBlocks.RespWebDesignNew,
|
SuperBlocks.RespWebDesignNew,
|
||||||
@@ -337,7 +348,8 @@ export const notAuditedSuperBlocks: NotAuditedSuperBlocks = {
|
|||||||
SuperBlocks.RosettaCode,
|
SuperBlocks.RosettaCode,
|
||||||
SuperBlocks.BasicHtml,
|
SuperBlocks.BasicHtml,
|
||||||
SuperBlocks.SemanticHtml,
|
SuperBlocks.SemanticHtml,
|
||||||
SuperBlocks.DevPlayground
|
SuperBlocks.DevPlayground,
|
||||||
|
SuperBlocks.JsV9
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -346,7 +358,8 @@ Object.freeze(notAuditedSuperBlocks);
|
|||||||
export const chapterBasedSuperBlocks = [
|
export const chapterBasedSuperBlocks = [
|
||||||
SuperBlocks.FullStackDeveloper,
|
SuperBlocks.FullStackDeveloper,
|
||||||
SuperBlocks.FullStackOpen,
|
SuperBlocks.FullStackOpen,
|
||||||
SuperBlocks.A1Spanish
|
SuperBlocks.A1Spanish,
|
||||||
|
SuperBlocks.JsV9
|
||||||
];
|
];
|
||||||
Object.freeze(chapterBasedSuperBlocks);
|
Object.freeze(chapterBasedSuperBlocks);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user