mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
feat(client/curriculum): release new superblocks, certs coming soon (#63574)
Co-authored-by: ahmad abdolsaheb <ahmad.abdolsaheb@gmail.com>
This commit is contained in:
@@ -40,6 +40,13 @@ interface Block<T> {
|
||||
const ver = 'v1';
|
||||
|
||||
export const orderedSuperBlockInfo = [
|
||||
{ dashedName: SuperBlocks.RespWebDesignV9, public: false },
|
||||
{ dashedName: SuperBlocks.JsV9, public: false },
|
||||
{ dashedName: SuperBlocks.FrontEndDevLibsV9, public: false },
|
||||
{ dashedName: SuperBlocks.PythonV9, public: false },
|
||||
{ dashedName: SuperBlocks.RelationalDbV9, public: false },
|
||||
{ dashedName: SuperBlocks.BackEndDevApisV9, public: false },
|
||||
{ dashedName: SuperBlocks.FullStackDeveloperV9, public: false },
|
||||
{ dashedName: SuperBlocks.RespWebDesignNew, public: true },
|
||||
{ dashedName: SuperBlocks.DataAnalysisPy, public: true },
|
||||
{ dashedName: SuperBlocks.MachineLearningPy, public: true },
|
||||
@@ -49,7 +56,6 @@ export const orderedSuperBlockInfo = [
|
||||
{ dashedName: SuperBlocks.TheOdinProject, public: true },
|
||||
{ dashedName: SuperBlocks.RespWebDesign, public: true },
|
||||
{ dashedName: SuperBlocks.PythonForEverybody, public: true },
|
||||
{ dashedName: SuperBlocks.FullStackDeveloper, public: false },
|
||||
{ dashedName: SuperBlocks.JsAlgoDataStructNew, public: false },
|
||||
{ dashedName: SuperBlocks.FrontEndDevLibs, public: false },
|
||||
{ dashedName: SuperBlocks.DataVis, public: false },
|
||||
|
||||
@@ -3,7 +3,10 @@ import { resolve, dirname } from 'path';
|
||||
import { omit } from 'lodash';
|
||||
import { submitTypes } from '../../../shared-dist/config/challenge-types';
|
||||
import { type ChallengeNode } from '../../../client/src/redux/prop-types';
|
||||
import { SuperBlocks } from '../../../shared-dist/config/curriculum';
|
||||
import {
|
||||
SuperBlocks,
|
||||
chapterBasedSuperBlocks
|
||||
} from '../../../shared-dist/config/curriculum';
|
||||
import type { Chapter } from '../../../shared-dist/config/chapters';
|
||||
import { getSuperblockStructure } from '../../../curriculum/src/file-handler';
|
||||
import { patchBlock } from './patches';
|
||||
@@ -114,9 +117,39 @@ const intros = JSON.parse(
|
||||
export const orderedSuperBlockInfo: OrderedSuperBlocks = {
|
||||
[SuperBlockStage.Core]: [
|
||||
{
|
||||
dashedName: SuperBlocks.FullStackDeveloper,
|
||||
dashedName: SuperBlocks.RespWebDesignV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.FullStackDeveloper].title
|
||||
title: intros[SuperBlocks.RespWebDesignV9].title
|
||||
},
|
||||
{
|
||||
dashedName: SuperBlocks.JsV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.JsV9].title
|
||||
},
|
||||
{
|
||||
dashedName: SuperBlocks.FrontEndDevLibsV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.FrontEndDevLibsV9].title
|
||||
},
|
||||
{
|
||||
dashedName: SuperBlocks.PythonV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.PythonV9].title
|
||||
},
|
||||
{
|
||||
dashedName: SuperBlocks.RelationalDbV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.RelationalDbV9].title
|
||||
},
|
||||
{
|
||||
dashedName: SuperBlocks.BackEndDevApisV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.BackEndDevApisV9].title
|
||||
},
|
||||
{
|
||||
dashedName: SuperBlocks.FullStackDeveloperV9,
|
||||
public: false,
|
||||
title: intros[SuperBlocks.FullStackDeveloperV9].title
|
||||
}
|
||||
],
|
||||
|
||||
@@ -273,7 +306,7 @@ export function buildExtCurriculumDataV2(
|
||||
});
|
||||
|
||||
for (const superBlockKey of superBlockKeys) {
|
||||
if (superBlockKey === SuperBlocks.FullStackDeveloper) {
|
||||
if (chapterBasedSuperBlocks.includes(superBlockKey)) {
|
||||
buildChapterBasedCurriculum(superBlockKey);
|
||||
} else {
|
||||
buildBlockBasedCurriculum(superBlockKey);
|
||||
@@ -284,7 +317,7 @@ export function buildExtCurriculumDataV2(
|
||||
}
|
||||
|
||||
function buildChapterBasedCurriculum(superBlockKey: SuperBlocks) {
|
||||
const { chapters } = getSuperblockStructure('full-stack-developer') as {
|
||||
const { chapters } = getSuperblockStructure(superBlockKey) as {
|
||||
chapters: Chapter[];
|
||||
};
|
||||
const blocksWithData = curriculum[superBlockKey].blocks;
|
||||
|
||||
@@ -91,7 +91,11 @@ const chapterBasedCurriculumSchema = Joi.object().pattern(
|
||||
modules: Joi.array()
|
||||
.items(
|
||||
Joi.object().keys({
|
||||
moduleType: Joi.valid('review', 'exam').optional(),
|
||||
moduleType: Joi.valid(
|
||||
'review',
|
||||
'exam',
|
||||
'cert-project'
|
||||
).optional(),
|
||||
name: Joi.string().required(),
|
||||
comingSoon: Joi.boolean().optional(),
|
||||
dashedName: Joi.string().regex(slugRE).required(),
|
||||
|
||||
Reference in New Issue
Block a user