freeCodeCamp/shared/config/certification-settings.ts

259 lines
10 KiB
TypeScript

import { SuperBlocks } from '../../shared/config/superblocks';
/**
* Certifications are not equivalent to superblocks. Each superblock corresponds
* to 0 or 1 certifications, but a certification may not correspond to a
* superblock.
*
* As an example of the former: the CodingInterviewPrep superblock does not
* correspond to a certification. As an example of the latter: the legacy
* front-end certification no longer has a corresponding superblock.
*
* The value of each enum member is the slug of the corresponding certification.
*/
export enum Certification {
RespWebDesign = 'responsive-web-design',
JsAlgoDataStructNew = 'javascript-algorithms-and-data-structures-v8',
FrontEndDevLibs = 'front-end-development-libraries',
DataVis = 'data-visualization',
RelationalDb = 'relational-database-v8',
BackEndDevApis = 'back-end-development-and-apis',
QualityAssurance = 'quality-assurance-v7',
SciCompPy = 'scientific-computing-with-python-v7',
DataAnalysisPy = 'data-analysis-with-python-v7',
InfoSec = 'information-security-v7',
MachineLearningPy = 'machine-learning-with-python-v7',
CollegeAlgebraPy = 'college-algebra-with-python-v8',
FoundationalCSharp = 'foundational-c-sharp-with-microsoft',
// Upcoming certifications
UpcomingPython = 'upcoming-python-v8',
A2English = 'a2-english-for-developers-v8',
// Legacy certifications
LegacyFrontEnd = 'legacy-front-end',
JsAlgoDataStruct = 'javascript-algorithms-and-data-structures',
LegacyBackEnd = 'legacy-back-end',
LegacyDataVis = 'legacy-data-visualization',
LegacyInfoSecQa = 'information-security-and-quality-assurance',
LegacyFullStack = 'full-stack'
}
// "Current" certifications are the subset of standard certifications that are
// live and not legacy.
export const currentCertifications = [
Certification.RespWebDesign,
Certification.JsAlgoDataStructNew,
Certification.FrontEndDevLibs,
Certification.DataVis,
Certification.RelationalDb,
Certification.BackEndDevApis,
Certification.QualityAssurance,
Certification.SciCompPy,
Certification.DataAnalysisPy,
Certification.InfoSec,
Certification.MachineLearningPy,
Certification.CollegeAlgebraPy,
Certification.FoundationalCSharp
] as const;
// "Legacy" certifications are another class of standard certifications. They're
// still live and claimable, but some parts of the UI handle them differently.
export const legacyCertifications = [
Certification.LegacyFrontEnd,
Certification.JsAlgoDataStruct,
Certification.LegacyBackEnd,
Certification.LegacyDataVis,
Certification.LegacyInfoSecQa
] as const;
// The Legacy Full Stack certification can only be claimed when specific
// "current" and "legacy" certifications have been claimed.
export const legacyFullStackCertification = [
Certification.LegacyFullStack
] as const;
// "Upcoming" certifications are standard certifications that are not live unless
// showUpcomingChanges is true.
export const upcomingCertifications = [
Certification.UpcomingPython,
Certification.A2English
] as const;
export const certTypes = {
frontEnd: 'isFrontEndCert',
backEnd: 'isBackEndCert',
dataVis: 'isDataVisCert',
respWebDesign: 'isRespWebDesignCert',
frontEndDevLibs: 'isFrontEndLibsCert',
dataVis2018: 'is2018DataVisCert',
jsAlgoDataStruct: 'isJsAlgoDataStructCert',
apisMicroservices: 'isApisMicroservicesCert',
infosecQa: 'isInfosecQaCert',
qaV7: 'isQaCertV7',
infosecV7: 'isInfosecCertV7',
sciCompPyV7: 'isSciCompPyCertV7',
dataAnalysisPyV7: 'isDataAnalysisPyCertV7',
machineLearningPyV7: 'isMachineLearningPyCertV7',
fullStack: 'isFullStackCert',
relationalDatabaseV8: 'isRelationalDatabaseCertV8',
collegeAlgebraPyV8: 'isCollegeAlgebraPyCertV8',
foundationalCSharpV8: 'isFoundationalCSharpCertV8',
upcomingPythonV8: 'isUpcomingPythonCertV8',
jsAlgoDataStructV8: 'isJsAlgoDataStructCertV8'
} as const;
export const certIds = {
legacyFrontEndChallengeId: '561add10cb82ac38a17513be',
legacyBackEndChallengeId: '660add10cb82ac38a17513be',
legacyDataVisId: '561add10cb82ac39a17513bc',
legacyInfosecQaId: '561add10cb82ac38a17213bc',
legacyFullStackId: '561add10cb82ac38a17213bd',
respWebDesignId: '561add10cb82ac38a17513bc',
frontEndDevLibsId: '561acd10cb82ac38a17513bc',
dataVis2018Id: '5a553ca864b52e1d8bceea14',
jsAlgoDataStructId: '561abd10cb81ac38a17513bc',
apisMicroservicesId: '561add10cb82ac38a17523bc',
qaV7Id: '5e611829481575a52dc59c0e',
infosecV7Id: '5e6021435ac9d0ecd8b94b00',
sciCompPyV7Id: '5e44431b903586ffb414c951',
dataAnalysisPyV7Id: '5e46fc95ac417301a38fb934',
machineLearningPyV7Id: '5e46fc95ac417301a38fb935',
relationalDatabaseV8Id: '606243f50267e718b1e755f4',
collegeAlgebraPyV8Id: '61531b20cc9dfa2741a5b800',
foundationalCSharpV8Id: '647f7da207d29547b3bee1ba',
upcomingPythonV8Id: '64afc4e8f3b37856e035b85f',
jsAlgoDataStructV8Id: '658180220947283cdc0689ce'
};
export const completionHours = {
[certTypes.frontEnd]: 300,
[certTypes.backEnd]: 300,
[certTypes.dataVis]: 300,
[certTypes.infosecQa]: 300,
[certTypes.fullStack]: 1800,
[certTypes.respWebDesign]: 300,
[certTypes.frontEndDevLibs]: 300,
[certTypes.jsAlgoDataStruct]: 300,
[certTypes.dataVis2018]: 300,
[certTypes.apisMicroservices]: 300,
[certTypes.qaV7]: 300,
[certTypes.infosecV7]: 300,
[certTypes.sciCompPyV7]: 300,
[certTypes.dataAnalysisPyV7]: 300,
[certTypes.machineLearningPyV7]: 300,
[certTypes.relationalDatabaseV8]: 300,
[certTypes.collegeAlgebraPyV8]: 300,
[certTypes.foundationalCSharpV8]: 300,
[certTypes.upcomingPythonV8]: 300,
[certTypes.jsAlgoDataStructV8]: 300
};
export const certSlugTypeMap = {
// legacy
[Certification.LegacyFrontEnd]: certTypes.frontEnd,
[Certification.JsAlgoDataStruct]: certTypes.jsAlgoDataStruct,
[Certification.LegacyBackEnd]: certTypes.backEnd,
[Certification.LegacyDataVis]: certTypes.dataVis,
[Certification.LegacyInfoSecQa]: certTypes.infosecQa,
[Certification.LegacyFullStack]: certTypes.fullStack,
// modern
[Certification.RespWebDesign]: certTypes.respWebDesign,
[Certification.JsAlgoDataStructNew]: certTypes.jsAlgoDataStructV8,
[Certification.FrontEndDevLibs]: certTypes.frontEndDevLibs,
[Certification.DataVis]: certTypes.dataVis2018,
[Certification.BackEndDevApis]: certTypes.apisMicroservices,
[Certification.QualityAssurance]: certTypes.qaV7,
[Certification.InfoSec]: certTypes.infosecV7,
[Certification.SciCompPy]: certTypes.sciCompPyV7,
[Certification.DataAnalysisPy]: certTypes.dataAnalysisPyV7,
[Certification.MachineLearningPy]: certTypes.machineLearningPyV7,
[Certification.RelationalDb]: certTypes.relationalDatabaseV8,
[Certification.CollegeAlgebraPy]: certTypes.collegeAlgebraPyV8,
[Certification.FoundationalCSharp]: certTypes.foundationalCSharpV8,
// upcoming
[Certification.UpcomingPython]: certTypes.upcomingPythonV8
};
export const superBlockCertTypeMap = {
// legacy
'legacy-front-end': certTypes.frontEnd,
[SuperBlocks.JsAlgoDataStruct]: certTypes.jsAlgoDataStruct,
'legacy-back-end': certTypes.backEnd,
'legacy-data-visualization': certTypes.dataVis,
'information-security-and-quality-assurance': certTypes.infosecQa,
'full-stack': certTypes.fullStack,
// modern
[SuperBlocks.RespWebDesign]: certTypes.respWebDesign,
[SuperBlocks.JsAlgoDataStructNew]: certTypes.jsAlgoDataStructV8,
[SuperBlocks.FrontEndDevLibs]: certTypes.frontEndDevLibs,
[SuperBlocks.DataVis]: certTypes.dataVis2018,
[SuperBlocks.BackEndDevApis]: certTypes.apisMicroservices,
[SuperBlocks.QualityAssurance]: certTypes.qaV7,
[SuperBlocks.InfoSec]: certTypes.infosecV7,
[SuperBlocks.SciCompPy]: certTypes.sciCompPyV7,
[SuperBlocks.DataAnalysisPy]: certTypes.dataAnalysisPyV7,
[SuperBlocks.MachineLearningPy]: certTypes.machineLearningPyV7,
[SuperBlocks.RelationalDb]: certTypes.relationalDatabaseV8,
[SuperBlocks.CollegeAlgebraPy]: certTypes.collegeAlgebraPyV8,
[SuperBlocks.FoundationalCSharp]: certTypes.foundationalCSharpV8,
// post-modern
// TODO: use enum
[SuperBlocks.RespWebDesignNew]: certTypes.respWebDesign,
// upcoming
[SuperBlocks.UpcomingPython]: certTypes.upcomingPythonV8
};
export const certTypeIdMap = {
[certTypes.frontEnd]: certIds.legacyFrontEndChallengeId,
[certTypes.backEnd]: certIds.legacyBackEndChallengeId,
[certTypes.dataVis]: certIds.legacyDataVisId,
[certTypes.infosecQa]: certIds.legacyInfosecQaId,
[certTypes.fullStack]: certIds.legacyFullStackId,
[certTypes.respWebDesign]: certIds.respWebDesignId,
[certTypes.frontEndDevLibs]: certIds.frontEndDevLibsId,
[certTypes.jsAlgoDataStruct]: certIds.jsAlgoDataStructId,
[certTypes.dataVis2018]: certIds.dataVis2018Id,
[certTypes.apisMicroservices]: certIds.apisMicroservicesId,
[certTypes.qaV7]: certIds.qaV7Id,
[certTypes.infosecV7]: certIds.infosecV7Id,
[certTypes.sciCompPyV7]: certIds.sciCompPyV7Id,
[certTypes.dataAnalysisPyV7]: certIds.dataAnalysisPyV7Id,
[certTypes.machineLearningPyV7]: certIds.machineLearningPyV7Id,
[certTypes.relationalDatabaseV8]: certIds.relationalDatabaseV8Id,
[certTypes.collegeAlgebraPyV8]: certIds.collegeAlgebraPyV8Id,
[certTypes.foundationalCSharpV8]: certIds.foundationalCSharpV8Id,
[certTypes.upcomingPythonV8]: certIds.upcomingPythonV8Id,
[certTypes.jsAlgoDataStructV8]: certIds.jsAlgoDataStructV8Id
};
export const certTypeTitleMap = {
[certTypes.frontEnd]: 'Legacy Front End',
[certTypes.backEnd]: 'Legacy Back End',
[certTypes.dataVis]: 'Legacy Data Visualization',
[certTypes.infosecQa]: 'Legacy Information Security and Quality Assurance',
[certTypes.fullStack]: 'Legacy Full Stack',
[certTypes.respWebDesign]: 'Responsive Web Design',
[certTypes.frontEndDevLibs]: 'Front End Development Libraries',
[certTypes.jsAlgoDataStruct]:
'Legacy JavaScript Algorithms and Data Structures',
[certTypes.dataVis2018]: 'Data Visualization',
[certTypes.apisMicroservices]: 'Back End Development and APIs',
[certTypes.qaV7]: 'Quality Assurance',
[certTypes.infosecV7]: 'Information Security',
[certTypes.sciCompPyV7]: 'Scientific Computing with Python',
[certTypes.dataAnalysisPyV7]: 'Data Analysis with Python',
[certTypes.machineLearningPyV7]: 'Machine Learning with Python',
[certTypes.relationalDatabaseV8]: 'Relational Database',
[certTypes.collegeAlgebraPyV8]: 'College Algebra with Python',
[certTypes.foundationalCSharpV8]: 'Foundational C# with Microsoft',
[certTypes.upcomingPythonV8]: 'Upcoming Python',
[certTypes.jsAlgoDataStructV8]:
'JavaScript Algorithms and Data Structures (Beta)'
};
export const oldDataVizId = '561add10cb82ac38a17513b3';