fix(learn): versioning for new certificate slugs (#39087)
This commit is contained in:
committed by
GitHub
parent
b3d5cde75e
commit
6e5988da4e
@ -167,12 +167,12 @@
|
||||
"description": "Camper is information security and quality assurance certified",
|
||||
"default": false
|
||||
},
|
||||
"is2020QaCert": {
|
||||
"isQaCertV7": {
|
||||
"type": "boolean",
|
||||
"description": "Camper is quality assurance certified",
|
||||
"default": false
|
||||
},
|
||||
"is2020InfosecCert": {
|
||||
"isInfosecCertV7": {
|
||||
"type": "boolean",
|
||||
"description": "Camper is information security certified",
|
||||
"default": false
|
||||
@ -182,17 +182,17 @@
|
||||
"description": "Camper is full stack certified (2018)",
|
||||
"default": false
|
||||
},
|
||||
"is2020SciCompPyCert": {
|
||||
"isSciCompPyCertV7": {
|
||||
"type": "boolean",
|
||||
"description": "Camper is scientific computing with Python certified",
|
||||
"default": false
|
||||
},
|
||||
"is2020DataAnalysisPyCert": {
|
||||
"isDataAnalysisPyCertV7": {
|
||||
"type": "boolean",
|
||||
"description": "Camper is data analysis with Python certified",
|
||||
"default": false
|
||||
},
|
||||
"is2020MachineLearningPyCert": {
|
||||
"isMachineLearningPyCertV7": {
|
||||
"type": "boolean",
|
||||
"description": "Camper is machine learning with Python certified",
|
||||
"default": false
|
||||
|
@ -21,11 +21,11 @@ import {
|
||||
jsAlgoDataStructId,
|
||||
dataVis2018Id,
|
||||
apisMicroservicesId,
|
||||
qa2020Id,
|
||||
infosec2020Id,
|
||||
sciCompPy2020Id,
|
||||
dataAnalysisPy2020Id,
|
||||
machineLearningPy2020Id
|
||||
qaV7Id,
|
||||
infosecV7Id,
|
||||
sciCompPyV7Id,
|
||||
dataAnalysisPyV7Id,
|
||||
machineLearningPyV7Id
|
||||
} from '../utils/constantStrings.json';
|
||||
import { oldDataVizId } from '../../../config/misc';
|
||||
import certTypes from '../utils/certTypes.json';
|
||||
@ -117,15 +117,12 @@ function createCertTypeIds(app) {
|
||||
apisMicroservicesId,
|
||||
Challenge
|
||||
),
|
||||
[certTypes.qa2020]: getIdsForCert$(qa2020Id, Challenge),
|
||||
[certTypes.infosec2020]: getIdsForCert$(infosec2020Id, Challenge),
|
||||
[certTypes.sciCompPy2020]: getIdsForCert$(sciCompPy2020Id, Challenge),
|
||||
[certTypes.dataAnalysisPy2020]: getIdsForCert$(
|
||||
dataAnalysisPy2020Id,
|
||||
Challenge
|
||||
),
|
||||
[certTypes.machineLearningPy2020]: getIdsForCert$(
|
||||
machineLearningPy2020Id,
|
||||
[certTypes.qaV7]: getIdsForCert$(qaV7Id, Challenge),
|
||||
[certTypes.infosecV7]: getIdsForCert$(infosecV7Id, Challenge),
|
||||
[certTypes.sciCompPyV7]: getIdsForCert$(sciCompPyV7Id, Challenge),
|
||||
[certTypes.dataAnalysisPyV7]: getIdsForCert$(dataAnalysisPyV7Id, Challenge),
|
||||
[certTypes.machineLearningPyV7]: getIdsForCert$(
|
||||
machineLearningPyV7Id,
|
||||
Challenge
|
||||
)
|
||||
};
|
||||
@ -148,11 +145,11 @@ const certIds = {
|
||||
[certTypes.jsAlgoDataStruct]: jsAlgoDataStructId,
|
||||
[certTypes.dataVis2018]: dataVis2018Id,
|
||||
[certTypes.apisMicroservices]: apisMicroservicesId,
|
||||
[certTypes.qa2020]: qa2020Id,
|
||||
[certTypes.infosec2020]: infosec2020Id,
|
||||
[certTypes.sciCompPy2020]: sciCompPy2020Id,
|
||||
[certTypes.dataAnalysisPy2020]: dataAnalysisPy2020Id,
|
||||
[certTypes.machineLearningPy2020]: machineLearningPy2020Id
|
||||
[certTypes.qaV7]: qaV7Id,
|
||||
[certTypes.infosecV7]: infosecV7Id,
|
||||
[certTypes.sciCompPyV7]: sciCompPyV7Id,
|
||||
[certTypes.dataAnalysisPyV7]: dataAnalysisPyV7Id,
|
||||
[certTypes.machineLearningPyV7]: machineLearningPyV7Id
|
||||
};
|
||||
|
||||
const certText = {
|
||||
@ -166,11 +163,11 @@ const certText = {
|
||||
[certTypes.jsAlgoDataStruct]: 'JavaScript Algorithms and Data Structures',
|
||||
[certTypes.dataVis2018]: 'Data Visualization',
|
||||
[certTypes.apisMicroservices]: 'APIs and Microservices',
|
||||
[certTypes.qa2020]: 'Quality Assurance',
|
||||
[certTypes.infosec2020]: 'Information Security',
|
||||
[certTypes.sciCompPy2020]: 'Scientific Computing with Python',
|
||||
[certTypes.dataAnalysisPy2020]: 'Data Analysis with Python',
|
||||
[certTypes.machineLearningPy2020]: 'Machine Learning with Python'
|
||||
[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'
|
||||
};
|
||||
|
||||
const completionHours = {
|
||||
@ -184,11 +181,11 @@ const completionHours = {
|
||||
[certTypes.jsAlgoDataStruct]: 300,
|
||||
[certTypes.dataVis2018]: 300,
|
||||
[certTypes.apisMicroservices]: 300,
|
||||
[certTypes.qa2020]: 300,
|
||||
[certTypes.infosec2020]: 300,
|
||||
[certTypes.sciCompPy2020]: 400,
|
||||
[certTypes.dataAnalysisPy2020]: 400,
|
||||
[certTypes.machineLearningPy2020]: 400
|
||||
[certTypes.qaV7]: 300,
|
||||
[certTypes.infosecV7]: 300,
|
||||
[certTypes.sciCompPyV7]: 400,
|
||||
[certTypes.dataAnalysisPyV7]: 400,
|
||||
[certTypes.machineLearningPyV7]: 400
|
||||
};
|
||||
|
||||
function getIdsForCert$(id, Challenge) {
|
||||
@ -212,11 +209,11 @@ function sendCertifiedEmail(
|
||||
isJsAlgoDataStructCert,
|
||||
isDataVisCert,
|
||||
isApisMicroservicesCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
},
|
||||
send$
|
||||
) {
|
||||
@ -227,11 +224,11 @@ function sendCertifiedEmail(
|
||||
!isJsAlgoDataStructCert ||
|
||||
!isDataVisCert ||
|
||||
!isApisMicroservicesCert ||
|
||||
!is2020QaCert ||
|
||||
!is2020InfosecCert ||
|
||||
!is2020SciCompPyCert ||
|
||||
!is2020DataAnalysisPyCert ||
|
||||
!is2020MachineLearningPyCert
|
||||
!isQaCertV7 ||
|
||||
!isInfosecCertV7 ||
|
||||
!isSciCompPyCertV7 ||
|
||||
!isDataAnalysisPyCertV7 ||
|
||||
!isMachineLearningPyCertV7
|
||||
) {
|
||||
return Observable.just(false);
|
||||
}
|
||||
@ -259,15 +256,15 @@ function getUserIsCertMap(user) {
|
||||
is2018DataVisCert = false,
|
||||
isApisMicroservicesCert = false,
|
||||
isInfosecQaCert = false,
|
||||
is2020QaCert = false,
|
||||
is2020InfosecCert = false,
|
||||
isQaCertV7 = false,
|
||||
isInfosecCertV7 = false,
|
||||
isFrontEndCert = false,
|
||||
isBackEndCert = false,
|
||||
isDataVisCert = false,
|
||||
isFullStackCert = false,
|
||||
is2020SciCompPyCert = false,
|
||||
is2020DataAnalysisPyCert = false,
|
||||
is2020MachineLearningPyCert = false
|
||||
isSciCompPyCertV7 = false,
|
||||
isDataAnalysisPyCertV7 = false,
|
||||
isMachineLearningPyCertV7 = false
|
||||
} = user;
|
||||
|
||||
return {
|
||||
@ -277,15 +274,15 @@ function getUserIsCertMap(user) {
|
||||
is2018DataVisCert,
|
||||
isApisMicroservicesCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndCert,
|
||||
isBackEndCert,
|
||||
isDataVisCert,
|
||||
isFullStackCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
};
|
||||
}
|
||||
|
||||
@ -412,11 +409,11 @@ function createShowCert(app) {
|
||||
is2018DataVisCert: true,
|
||||
isApisMicroservicesCert: true,
|
||||
isInfosecQaCert: true,
|
||||
is2020QaCert: true,
|
||||
is2020InfosecCert: true,
|
||||
is2020SciCompPyCert: true,
|
||||
is2020DataAnalysisPyCert: true,
|
||||
is2020MachineLearningPyCert: true,
|
||||
isQaCertV7: true,
|
||||
isInfosecCertV7: true,
|
||||
isSciCompPyCertV7: true,
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isHonest: true,
|
||||
username: true,
|
||||
name: true,
|
||||
|
@ -162,16 +162,16 @@ function postResetProgress(req, res, next) {
|
||||
isJsAlgoDataStructCert: false,
|
||||
isApisMicroservicesCert: false,
|
||||
isInfosecQaCert: false,
|
||||
is2020QaCert: false,
|
||||
is2020InfosecCert: false,
|
||||
isQaCertV7: false,
|
||||
isInfosecCertV7: false,
|
||||
is2018FullStackCert: false,
|
||||
isFrontEndCert: false,
|
||||
isBackEndCert: false,
|
||||
isDataVisCert: false,
|
||||
isFullStackCert: false,
|
||||
is2020SciCompPyCert: false,
|
||||
is2020DataAnalysisPyCert: false,
|
||||
is2020MachineLearningPyCert: false,
|
||||
isSciCompPyCertV7: false,
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
completedChallenges: []
|
||||
},
|
||||
function(err) {
|
||||
|
@ -8,10 +8,10 @@
|
||||
"jsAlgoDataStruct": "isJsAlgoDataStructCert",
|
||||
"apisMicroservices": "isApisMicroservicesCert",
|
||||
"infosecQa": "isInfosecQaCert",
|
||||
"qa2020": "is2020QaCert",
|
||||
"infosec2020": "is2020InfosecCert",
|
||||
"sciCompPy2020": "is2020SciCompPyCert",
|
||||
"dataAnalysisPy2020": "is2020DataAnalysisPyCert",
|
||||
"machineLearningPy2020": "is2020MachineLearningPyCert",
|
||||
"qaV7": "isQaCertV7",
|
||||
"infosecV7": "isInfosecCertV7",
|
||||
"sciCompPyV7": "isSciCompPyCertV7",
|
||||
"dataAnalysisPyV7": "isDataAnalysisPyCertV7",
|
||||
"machineLearningPyV7": "isMachineLearningPyCertV7",
|
||||
"fullStack": "isFullStackCert"
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ export function completeCommitment$(user) {
|
||||
isDataVisCert,
|
||||
isApisMicroservicesCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
} = user;
|
||||
|
||||
return Observable.fromNodeCallback(user.pledge, user)().flatMap(pledge => {
|
||||
@ -42,12 +42,11 @@ export function completeCommitment$(user) {
|
||||
(isDataVisCert && goal === commitGoals.dataVisCert) ||
|
||||
(isApisMicroservicesCert && goal === commitGoals.apisMicroservicesCert) ||
|
||||
(isInfosecQaCert && goal === commitGoals.infosecQaCert) ||
|
||||
(is2020QaCert && goal === commitGoals.QaCert) ||
|
||||
(is2020InfosecCert && goal === commitGoals.infosecCert) ||
|
||||
(is2020SciCompPyCert && goal === commitGoals.sciCompPyCert) ||
|
||||
(is2020DataAnalysisPyCert && goal === commitGoals.dataAnalysisPyCert) ||
|
||||
(is2020MachineLearningPyCert &&
|
||||
goal === commitGoals.machineLearningPyCert)
|
||||
(isQaCertV7 && goal === commitGoals.QaCert) ||
|
||||
(isInfosecCertV7 && goal === commitGoals.infosecCert) ||
|
||||
(isSciCompPyCertV7 && goal === commitGoals.sciCompPyCert) ||
|
||||
(isDataAnalysisPyCertV7 && goal === commitGoals.dataAnalysisPyCert) ||
|
||||
(isMachineLearningPyCertV7 && goal === commitGoals.machineLearningPyCert)
|
||||
) {
|
||||
debug('marking goal complete');
|
||||
pledge.isCompleted = true;
|
||||
|
@ -12,9 +12,9 @@
|
||||
"dataVis2018Id": "5a553ca864b52e1d8bceea14",
|
||||
"jsAlgoDataStructId": "561abd10cb81ac38a17513bc",
|
||||
"apisMicroservicesId": "561add10cb82ac38a17523bc",
|
||||
"qa2020Id": "5e611829481575a52dc59c0e",
|
||||
"infosec2020Id": "5e6021435ac9d0ecd8b94b00",
|
||||
"sciCompPy2020Id": "5e44431b903586ffb414c951",
|
||||
"dataAnalysisPy2020Id": "5e46fc95ac417301a38fb934",
|
||||
"machineLearningPy2020Id": "5e46fc95ac417301a38fb935"
|
||||
"qaV7Id": "5e611829481575a52dc59c0e",
|
||||
"infosecV7Id": "5e6021435ac9d0ecd8b94b00",
|
||||
"sciCompPyV7Id": "5e44431b903586ffb414c951",
|
||||
"dataAnalysisPyV7Id": "5e46fc95ac417301a38fb934",
|
||||
"machineLearningPyV7Id": "5e46fc95ac417301a38fb935"
|
||||
}
|
||||
|
@ -3,13 +3,13 @@ function getCompletedCertCount(user) {
|
||||
'isApisMicroservicesCert',
|
||||
'is2018DataVisCert',
|
||||
'isFrontEndLibsCert',
|
||||
'is2020QaCert',
|
||||
'is2020InfosecCert',
|
||||
'isQaCertV7',
|
||||
'isInfosecCertV7',
|
||||
'isJsAlgoDataStructCert',
|
||||
'isRespWebDesignCert',
|
||||
'is2020SciCompPyCert',
|
||||
'is2020DataAnalysisPyCert',
|
||||
'is2020MachineLearningPyCert'
|
||||
'isSciCompPyCertV7',
|
||||
'isDataAnalysisPyCertV7',
|
||||
'isMachineLearningPyCertV7'
|
||||
].reduce((sum, key) => (user[key] ? sum + 1 : sum), 0);
|
||||
}
|
||||
|
||||
|
@ -23,13 +23,13 @@ export const publicUserProps = [
|
||||
'isFrontEndLibsCert',
|
||||
'isHonest',
|
||||
'isInfosecQaCert',
|
||||
'is2020QaCert',
|
||||
'is2020InfosecCert',
|
||||
'isQaCertV7',
|
||||
'isInfosecCertV7',
|
||||
'isJsAlgoDataStructCert',
|
||||
'isRespWebDesignCert',
|
||||
'is2020SciCompPyCert',
|
||||
'is2020DataAnalysisPyCert',
|
||||
'is2020MachineLearningPyCert',
|
||||
'isSciCompPyCertV7',
|
||||
'isDataAnalysisPyCertV7',
|
||||
'isMachineLearningPyCertV7',
|
||||
'linkedin',
|
||||
'location',
|
||||
'name',
|
||||
|
@ -16,11 +16,11 @@ const superBlockCertTypeMap = {
|
||||
'front-end-libraries': certTypes.frontEndLibs,
|
||||
'data-visualization': certTypes.dataVis2018,
|
||||
'apis-and-microservices': certTypes.apisMicroservices,
|
||||
'2020-quality-assurance': certTypes.qa2020,
|
||||
'2020-information-security': certTypes.infosec2020,
|
||||
'2020-scientific-computing-with-python': certTypes.sciCompPy2020,
|
||||
'2020-data-analysis-with-python': certTypes.dataAnalysisPy2020,
|
||||
'2020-machine-learning-with-python': certTypes.machineLearningPy2020
|
||||
'quality-assurance-v7': certTypes.qaV7,
|
||||
'information-security-v7': certTypes.infosecV7,
|
||||
'scientific-computing-with-python-v7': certTypes.sciCompPyV7,
|
||||
'data-analysis-with-python-v7': certTypes.dataAnalysisPyV7,
|
||||
'machine-learning-with-python-v7': certTypes.machineLearningPyV7
|
||||
};
|
||||
|
||||
export default superBlockCertTypeMap;
|
||||
|
@ -142,13 +142,13 @@ function getCompletedCertCount(user) {
|
||||
'isApisMicroservicesCert',
|
||||
'is2018DataVisCert',
|
||||
'isFrontEndLibsCert',
|
||||
'is2020QaCert',
|
||||
'is2020InfosecCert',
|
||||
'isQaCertV7',
|
||||
'isInfosecCertV7',
|
||||
'isJsAlgoDataStructCert',
|
||||
'isRespWebDesignCert',
|
||||
'is2020SciCompPyCert',
|
||||
'is2020DataAnalysisPyCert',
|
||||
'is2020MachineLearningPyCert'
|
||||
'isSciCompPyCertV7',
|
||||
'isDataAnalysisPyCertV7',
|
||||
'isMachineLearningPyCertV7'
|
||||
].reduce((sum, key) => (user[key] ? sum + 1 : sum), 0);
|
||||
}
|
||||
|
||||
|
@ -60,13 +60,13 @@ const propTypes = {
|
||||
isFullStackCert: PropTypes.bool,
|
||||
isHonest: PropTypes.bool,
|
||||
isInfosecQaCert: PropTypes.bool,
|
||||
is2020QaCert: PropTypes.bool,
|
||||
is2020InfosecCert: PropTypes.bool,
|
||||
isQaCertV7: PropTypes.bool,
|
||||
isInfosecCertV7: PropTypes.bool,
|
||||
isJsAlgoDataStructCert: PropTypes.bool,
|
||||
isRespWebDesignCert: PropTypes.bool,
|
||||
is2020SciCompPyCert: PropTypes.bool,
|
||||
is2020DataAnalysisPyCert: PropTypes.bool,
|
||||
is2020MachineLearningPyCert: PropTypes.bool,
|
||||
isSciCompPyCertV7: PropTypes.bool,
|
||||
isDataAnalysisPyCertV7: PropTypes.bool,
|
||||
isMachineLearningPyCertV7: PropTypes.bool,
|
||||
linkedin: PropTypes.string,
|
||||
location: PropTypes.string,
|
||||
name: PropTypes.string,
|
||||
@ -134,14 +134,14 @@ export function ShowSettings(props) {
|
||||
isDataVisCert,
|
||||
isFrontEndCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndLibsCert,
|
||||
isFullStackCert,
|
||||
isRespWebDesignCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert,
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7,
|
||||
isEmailVerified,
|
||||
isHonest,
|
||||
sendQuincyEmail,
|
||||
@ -241,21 +241,21 @@ export function ShowSettings(props) {
|
||||
completedChallenges={completedChallenges}
|
||||
createFlashMessage={createFlashMessage}
|
||||
is2018DataVisCert={is2018DataVisCert}
|
||||
is2020DataAnalysisPyCert={is2020DataAnalysisPyCert}
|
||||
is2020InfosecCert={is2020InfosecCert}
|
||||
is2020MachineLearningPyCert={is2020MachineLearningPyCert}
|
||||
is2020QaCert={is2020QaCert}
|
||||
is2020SciCompPyCert={is2020SciCompPyCert}
|
||||
isApisMicroservicesCert={isApisMicroservicesCert}
|
||||
isBackEndCert={isBackEndCert}
|
||||
isDataAnalysisPyCertV7={isDataAnalysisPyCertV7}
|
||||
isDataVisCert={isDataVisCert}
|
||||
isFrontEndCert={isFrontEndCert}
|
||||
isFrontEndLibsCert={isFrontEndLibsCert}
|
||||
isFullStackCert={isFullStackCert}
|
||||
isHonest={isHonest}
|
||||
isInfosecCertV7={isInfosecCertV7}
|
||||
isInfosecQaCert={isInfosecQaCert}
|
||||
isJsAlgoDataStructCert={isJsAlgoDataStructCert}
|
||||
isMachineLearningPyCertV7={isMachineLearningPyCertV7}
|
||||
isQaCertV7={isQaCertV7}
|
||||
isRespWebDesignCert={isRespWebDesignCert}
|
||||
isSciCompPyCertV7={isSciCompPyCertV7}
|
||||
username={username}
|
||||
verifyCert={verifyCert}
|
||||
/>
|
||||
|
@ -45,21 +45,21 @@ const propTypes = {
|
||||
),
|
||||
createFlashMessage: PropTypes.func.isRequired,
|
||||
is2018DataVisCert: PropTypes.bool,
|
||||
is2020DataAnalysisPyCert: PropTypes.bool,
|
||||
is2020InfosecCert: PropTypes.bool,
|
||||
is2020MachineLearningPyCert: PropTypes.bool,
|
||||
is2020QaCert: PropTypes.bool,
|
||||
is2020SciCompPyCert: PropTypes.bool,
|
||||
isApisMicroservicesCert: PropTypes.bool,
|
||||
isBackEndCert: PropTypes.bool,
|
||||
isDataAnalysisPyCertV7: PropTypes.bool,
|
||||
isDataVisCert: PropTypes.bool,
|
||||
isFrontEndCert: PropTypes.bool,
|
||||
isFrontEndLibsCert: PropTypes.bool,
|
||||
isFullStackCert: PropTypes.bool,
|
||||
isHonest: PropTypes.bool,
|
||||
isInfosecCertV7: PropTypes.bool,
|
||||
isInfosecQaCert: PropTypes.bool,
|
||||
isJsAlgoDataStructCert: PropTypes.bool,
|
||||
isMachineLearningPyCertV7: PropTypes.bool,
|
||||
isQaCertV7: PropTypes.bool,
|
||||
isRespWebDesignCert: PropTypes.bool,
|
||||
isSciCompPyCertV7: PropTypes.bool,
|
||||
updateLegacyCert: PropTypes.func.isRequired,
|
||||
username: PropTypes.string,
|
||||
verifyCert: PropTypes.func.isRequired
|
||||
@ -75,14 +75,14 @@ const isCertSelector = ({
|
||||
isDataVisCert,
|
||||
isFrontEndCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndLibsCert,
|
||||
isFullStackCert,
|
||||
isRespWebDesignCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
}) => ({
|
||||
is2018DataVisCert,
|
||||
isApisMicroservicesCert,
|
||||
@ -91,14 +91,14 @@ const isCertSelector = ({
|
||||
isDataVisCert,
|
||||
isFrontEndCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndLibsCert,
|
||||
isFullStackCert,
|
||||
isRespWebDesignCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
});
|
||||
|
||||
const isCertMapSelector = createSelector(
|
||||
@ -108,27 +108,27 @@ const isCertMapSelector = createSelector(
|
||||
isApisMicroservicesCert,
|
||||
isJsAlgoDataStructCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndLibsCert,
|
||||
isRespWebDesignCert,
|
||||
isDataVisCert,
|
||||
isFrontEndCert,
|
||||
isBackEndCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
}) => ({
|
||||
'Responsive Web Design': isRespWebDesignCert,
|
||||
'JavaScript Algorithms and Data Structures': isJsAlgoDataStructCert,
|
||||
'Front End Libraries': isFrontEndLibsCert,
|
||||
'Data Visualization': is2018DataVisCert,
|
||||
'APIs and Microservices': isApisMicroservicesCert,
|
||||
'Quality Assurance': is2020QaCert,
|
||||
'Information Security': is2020InfosecCert,
|
||||
'Scientific Computing with Python': is2020SciCompPyCert,
|
||||
'Data Analysis with Python': is2020DataAnalysisPyCert,
|
||||
'Machine Learning with Python': is2020MachineLearningPyCert,
|
||||
'Quality Assurance': isQaCertV7,
|
||||
'Information Security': isInfosecCertV7,
|
||||
'Scientific Computing with Python': isSciCompPyCertV7,
|
||||
'Data Analysis with Python': isDataAnalysisPyCertV7,
|
||||
'Machine Learning with Python': isMachineLearningPyCertV7,
|
||||
'Legacy Front End': isFrontEndCert,
|
||||
'Legacy Data Visualization': isDataVisCert,
|
||||
'Legacy Back End': isBackEndCert,
|
||||
|
@ -189,13 +189,13 @@ const defaultTestProps = {
|
||||
isFullStackCert: false,
|
||||
isHonest: false,
|
||||
isInfosecQaCert: false,
|
||||
is2020QaCert: false,
|
||||
is2020InfosecCert: false,
|
||||
isQaCertV7: false,
|
||||
isInfosecCertV7: false,
|
||||
isJsAlgoDataStructCert: false,
|
||||
isRespWebDesignCert: false,
|
||||
is2020SciCompPyCert: false,
|
||||
is2020DataAnalysisPyCert: false,
|
||||
is2020MachineLearningPyCert: false,
|
||||
isSciCompPyCertV7: false,
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
updateLegacyCert: () => {},
|
||||
username: 'developmentuser',
|
||||
verifyCert: () => {},
|
||||
|
@ -213,15 +213,15 @@ export const certificatesByNameSelector = username => state => {
|
||||
isJsAlgoDataStructCert,
|
||||
isApisMicroservicesCert,
|
||||
isInfosecQaCert,
|
||||
is2020QaCert,
|
||||
is2020InfosecCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndCert,
|
||||
isBackEndCert,
|
||||
isDataVisCert,
|
||||
isFullStackCert,
|
||||
is2020SciCompPyCert,
|
||||
is2020DataAnalysisPyCert,
|
||||
is2020MachineLearningPyCert
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7
|
||||
} = userByNameSelector(username)(state);
|
||||
return {
|
||||
hasModernCert:
|
||||
@ -230,12 +230,12 @@ export const certificatesByNameSelector = username => state => {
|
||||
isFrontEndLibsCert ||
|
||||
isJsAlgoDataStructCert ||
|
||||
isApisMicroservicesCert ||
|
||||
is2020QaCert ||
|
||||
is2020InfosecCert ||
|
||||
isQaCertV7 ||
|
||||
isInfosecCertV7 ||
|
||||
isFullStackCert ||
|
||||
is2020SciCompPyCert ||
|
||||
is2020DataAnalysisPyCert ||
|
||||
is2020MachineLearningPyCert,
|
||||
isSciCompPyCertV7 ||
|
||||
isDataAnalysisPyCertV7 ||
|
||||
isMachineLearningPyCertV7,
|
||||
hasLegacyCert:
|
||||
isFrontEndCert || isBackEndCert || isDataVisCert || isInfosecQaCert,
|
||||
isFullStackCert,
|
||||
@ -266,29 +266,29 @@ export const certificatesByNameSelector = username => state => {
|
||||
showURL: 'apis-and-microservices'
|
||||
},
|
||||
{
|
||||
show: is2020QaCert,
|
||||
show: isQaCertV7,
|
||||
title: ' Quality Assurance Certification',
|
||||
showURL: '2020-quality-assurance'
|
||||
showURL: 'quality-assurance-v7'
|
||||
},
|
||||
{
|
||||
show: is2020InfosecCert,
|
||||
show: isInfosecCertV7,
|
||||
title: 'Information Security Certification',
|
||||
showURL: '2020-information-security'
|
||||
showURL: 'information-security-v7'
|
||||
},
|
||||
{
|
||||
show: is2020SciCompPyCert,
|
||||
show: isSciCompPyCertV7,
|
||||
title: 'Scientific Computing with Python Certification',
|
||||
showURL: '2020-scientific-computing-with-python'
|
||||
showURL: 'scientific-computing-with-python-v7'
|
||||
},
|
||||
{
|
||||
show: is2020DataAnalysisPyCert,
|
||||
show: isDataAnalysisPyCertV7,
|
||||
title: 'Data Analysis with Python Certification',
|
||||
showURL: '2020-data-analysis-with-python'
|
||||
showURL: 'data-analysis-with-python-v7'
|
||||
},
|
||||
{
|
||||
show: is2020MachineLearningPyCert,
|
||||
show: isMachineLearningPyCertV7,
|
||||
title: 'Machine Learning with Python Certification',
|
||||
showURL: '2020-machine-learning-with-python'
|
||||
showURL: 'machine-learning-with-python-v7'
|
||||
}
|
||||
],
|
||||
legacyCerts: [
|
||||
|
@ -469,190 +469,190 @@ const certMap = [
|
||||
{
|
||||
id: '5e611829481575a52dc59c0e',
|
||||
title: 'Quality Assurance',
|
||||
slug: '2020-quality-assurance',
|
||||
flag: 'is2020QaCert',
|
||||
slug: 'quality-assurance-v7',
|
||||
flag: 'isQaCertV7',
|
||||
projects: [
|
||||
{
|
||||
id: '587d8249367417b2b2512c41',
|
||||
title: 'Metric-Imperial Converter',
|
||||
link: `${qaBase}/metric-imperial-converter`,
|
||||
superBlock: '2020-quality-assurance'
|
||||
superBlock: 'quality-assurance-v7'
|
||||
},
|
||||
{
|
||||
id: '587d8249367417b2b2512c42',
|
||||
title: 'Issue Tracker',
|
||||
link: `${qaBase}/issue-tracker`,
|
||||
superBlock: '2020-quality-assurance'
|
||||
superBlock: 'quality-assurance-v7'
|
||||
},
|
||||
{
|
||||
id: '587d824a367417b2b2512c43',
|
||||
title: 'Personal Library',
|
||||
link: `${qaBase}/personal-library`,
|
||||
superBlock: '2020-quality-assurance'
|
||||
superBlock: 'quality-assurance-v7'
|
||||
},
|
||||
{
|
||||
id: '5e601bf95ac9d0ecd8b94afd',
|
||||
title: 'Sudoku Solver',
|
||||
link: `${qaBase}/sudoku-solver`,
|
||||
superBlock: '2020-quality-assurance'
|
||||
superBlock: 'quality-assurance-v7'
|
||||
},
|
||||
{
|
||||
id: '5e601c0d5ac9d0ecd8b94afe',
|
||||
title: 'American British Translator',
|
||||
link: `${qaBase}/american-british-translator`,
|
||||
superBlock: '2020-quality-assurance'
|
||||
superBlock: 'quality-assurance-v7'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '5e6021435ac9d0ecd8b94b00',
|
||||
title: 'Information Security',
|
||||
slug: '2020-information-security',
|
||||
flag: 'is2020InfosecCert',
|
||||
slug: 'information-security-v7',
|
||||
flag: 'isInfosecCertV7',
|
||||
projects: [
|
||||
{
|
||||
id: '587d824a367417b2b2512c44',
|
||||
title: 'Stock Price Checker',
|
||||
link: `${infoSecBase}/stock-price-checker`,
|
||||
superBlock: '2020-information-security'
|
||||
superBlock: 'information-security-v7'
|
||||
},
|
||||
{
|
||||
id: '587d824a367417b2b2512c45',
|
||||
title: 'Anonymous Message Board',
|
||||
link: `${infoSecBase}/anonymous-message-board`,
|
||||
superBlock: '2020-information-security'
|
||||
superBlock: 'information-security-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f979ac417301a38fb932',
|
||||
title: 'Port Scanner',
|
||||
link: `${infoSecBase}/port-scanner`,
|
||||
superBlock: '2020-information-security'
|
||||
superBlock: 'information-security-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f983ac417301a38fb933',
|
||||
title: 'SHA-1 Password Cracker',
|
||||
link: `${infoSecBase}/sha-1-password-cracker`,
|
||||
superBlock: '2020-information-security'
|
||||
superBlock: 'information-security-v7'
|
||||
},
|
||||
{
|
||||
id: '5e601c775ac9d0ecd8b94aff',
|
||||
title: 'Secure Real Time Multiplayer Game',
|
||||
link: `${infoSecBase}/secure-real-time-multiplayer-game`,
|
||||
superBlock: '2020-information-security'
|
||||
superBlock: 'information-security-v7'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '5e44431b903586ffb414c951',
|
||||
title: 'Scientific Computing with Python',
|
||||
slug: '2020-scientific-computing-with-python',
|
||||
flag: 'is2020SciCompPyCert',
|
||||
slug: 'scientific-computing-with-python-v7',
|
||||
flag: 'isSciCompPyCertV7',
|
||||
projects: [
|
||||
{
|
||||
id: '5e44412c903586ffb414c94c',
|
||||
title: 'Arithmetic Formatter',
|
||||
link: `${sciCompPyBase}/arithmetic-formatter`,
|
||||
superBlock: '2020-scientific-computing-with-python'
|
||||
superBlock: 'scientific-computing-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e444136903586ffb414c94d',
|
||||
title: 'Time Calculator',
|
||||
link: `${sciCompPyBase}/time-calculator`,
|
||||
superBlock: '2020-scientific-computing-with-python'
|
||||
superBlock: 'scientific-computing-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e44413e903586ffb414c94e',
|
||||
title: 'Budget App',
|
||||
link: `${sciCompPyBase}/budget-app`,
|
||||
superBlock: '2020-scientific-computing-with-python'
|
||||
superBlock: 'scientific-computing-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e444147903586ffb414c94f',
|
||||
title: 'Polygon Area Calculator',
|
||||
link: `${sciCompPyBase}/polygon-area-calculator`,
|
||||
superBlock: '2020-scientific-computing-with-python'
|
||||
superBlock: 'scientific-computing-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e44414f903586ffb414c950',
|
||||
title: 'Probability Calculator',
|
||||
link: `${sciCompPyBase}/probability-calculator`,
|
||||
superBlock: '2020-scientific-computing-with-python'
|
||||
superBlock: 'scientific-computing-with-python-v7'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '5e46fc95ac417301a38fb934',
|
||||
title: 'Data Analysis with Python',
|
||||
slug: '2020-data-analysis-with-python',
|
||||
flag: 'is2020DataAnalysisPyCert',
|
||||
slug: 'data-analysis-with-python-v7',
|
||||
flag: 'isDataAnalysisPyCertV7',
|
||||
projects: [
|
||||
{
|
||||
id: '5e46f7e5ac417301a38fb928',
|
||||
title: 'Mean-Variance-Standard Deviation Calculator',
|
||||
link: `${dataAnalysisPyBase}/mean-variance-standard-deviation-calculator`,
|
||||
superBlock: '2020-data-analysis-with-python'
|
||||
superBlock: 'data-analysis-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f7e5ac417301a38fb929',
|
||||
title: 'Demographic Data Analyzer',
|
||||
link: `${dataAnalysisPyBase}/demographic-data-analyzer`,
|
||||
superBlock: '2020-data-analysis-with-python'
|
||||
superBlock: 'data-analysis-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f7f8ac417301a38fb92a',
|
||||
title: 'Medical Data Visualizer',
|
||||
link: `${dataAnalysisPyBase}/medical-data-visualizer`,
|
||||
superBlock: '2020-data-analysis-with-python'
|
||||
superBlock: 'data-analysis-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f802ac417301a38fb92b',
|
||||
title: 'Page View Time Series Visualizer',
|
||||
link: `${dataAnalysisPyBase}/page-view-time-series-visualizer`,
|
||||
superBlock: '2020-data-analysis-with-python'
|
||||
superBlock: 'data-analysis-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e4f5c4b570f7e3a4949899f',
|
||||
title: 'Sea Level Predictor',
|
||||
link: `${dataAnalysisPyBase}/sea-level-predictor`,
|
||||
superBlock: '2020-scientific-computing-with-python'
|
||||
superBlock: 'data-analysis-with-python-v7'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '5e46fc95ac417301a38fb935',
|
||||
title: 'Machine Learning with Python',
|
||||
slug: '2020-machine-learning-with-python',
|
||||
flag: 'is2020MachineLearningPyCert',
|
||||
slug: 'machine-learning-with-python-v7',
|
||||
flag: 'isMachineLearningPyCertV7',
|
||||
projects: [
|
||||
{
|
||||
id: '5e46f8d6ac417301a38fb92d',
|
||||
title: 'Rock Paper Scissors',
|
||||
link: `${machineLearningPyBase}/rock-paper-scissors`,
|
||||
superBlock: '2020-machine-learning-with-python'
|
||||
superBlock: 'machine-learning-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f8dcac417301a38fb92e',
|
||||
title: 'Cat and Dog Image Classifier',
|
||||
link: `${machineLearningPyBase}/cat-and-dog-image-classifier`,
|
||||
superBlock: '2020-machine-learning-with-python'
|
||||
superBlock: 'machine-learning-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f8e3ac417301a38fb92f',
|
||||
title: 'Book Recommendation Engine using KNN',
|
||||
link: `${machineLearningPyBase}/book-recommendation-engine-using-knn`,
|
||||
superBlock: '2020-machine-learning-with-python'
|
||||
superBlock: 'machine-learning-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f8edac417301a38fb930',
|
||||
title: 'Linear Regression Health Costs Calculator',
|
||||
link: `${machineLearningPyBase}/linear-regression-health-costs-calculator`,
|
||||
superBlock: '2020-machine-learning-with-python'
|
||||
superBlock: 'machine-learning-with-python-v7'
|
||||
},
|
||||
{
|
||||
id: '5e46f8edac417301a38fb931',
|
||||
title: 'Neural Network SMS Text Classifier',
|
||||
link: `${machineLearningPyBase}/neural-network-sms-text-classifier`,
|
||||
superBlock: '2020-machine-learning-with-python'
|
||||
superBlock: 'machine-learning-with-python-v7'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Data Analysis with Python Certificate",
|
||||
"dashedName": "2020-data-analysis-with-python-certificate",
|
||||
"dashedName": "data-analysis-with-python-v7-certificate",
|
||||
"order": 8,
|
||||
"time": "",
|
||||
"template": "",
|
||||
@ -14,5 +14,5 @@
|
||||
]
|
||||
],
|
||||
"isPrivate": true,
|
||||
"fileName": "12-certificates/2020-data-analysis-with-python-certificate.json"
|
||||
"fileName": "12-certificates/data-analysis-with-python-v7-certificate.json"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Information Security Certificate",
|
||||
"dashedName": "2020-information-security-certificate",
|
||||
"dashedName": "information-security-v7-certificate",
|
||||
"order": 9,
|
||||
"time": "",
|
||||
"template": "",
|
||||
@ -14,5 +14,5 @@
|
||||
]
|
||||
],
|
||||
"isPrivate": true,
|
||||
"fileName": "12-certificates/2020-information-security-certificate.json"
|
||||
"fileName": "12-certificates/information-security-v7-certificate.json"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Machine Learning with Python Certificate",
|
||||
"dashedName": "2020-machine-learning-with-python-certificate",
|
||||
"dashedName": "machine-learning-with-python-v7-certificate",
|
||||
"order": 10,
|
||||
"time": "",
|
||||
"template": "",
|
||||
@ -14,5 +14,5 @@
|
||||
]
|
||||
],
|
||||
"isPrivate": true,
|
||||
"fileName": "12-certificates/2020-machine-learning-with-python-certificate.json"
|
||||
"fileName": "12-certificates/machine-learning-with-python-v7-certificate.json"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Quality Assurance Certificate",
|
||||
"dashedName": "2020-quality-assurance-certificate",
|
||||
"dashedName": "quality-assurance-v7-certificate",
|
||||
"order": 6,
|
||||
"time": "",
|
||||
"template": "",
|
||||
@ -14,5 +14,5 @@
|
||||
]
|
||||
],
|
||||
"isPrivate": true,
|
||||
"fileName": "12-certificates/2020-quality-assurance-certificate.json"
|
||||
"fileName": "12-certificates/quality-assurance-v7-certificate.json"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Scientific Computing with Python Certificate",
|
||||
"dashedName": "2020-scientific-computing-with-python-certificate",
|
||||
"dashedName": "scientific-computing-with-python-v7-certificate",
|
||||
"order": 7,
|
||||
"time": "",
|
||||
"template": "",
|
||||
@ -14,5 +14,5 @@
|
||||
]
|
||||
],
|
||||
"isPrivate": true,
|
||||
"fileName": "12-certificates/2020-scientific-computing-with-python-certificate.json"
|
||||
"fileName": "12-certificates/scientific-computing-with-python-v7-certificate.json"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 5e6021435ac9d0ecd8b94b00
|
||||
title: 'Information Security Certificate'
|
||||
title: Information Security Certificate
|
||||
challengeType: 7
|
||||
isHidden: true
|
||||
isPrivate: true
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 5e611829481575a52dc59c0e
|
||||
title: 'Quality Assurance Certificate'
|
||||
title: Quality Assurance Certificate
|
||||
challengeType: 7
|
||||
isHidden: true
|
||||
isPrivate: true
|
||||
|
@ -63,12 +63,12 @@ MongoClient.connect(MONGOHQ_URL, { useNewUrlParser: true }, function(
|
||||
isJsAlgoDataStructCert: false,
|
||||
isApisMicroservicesCert: false,
|
||||
isInfosecQaCert: false,
|
||||
is2020QaCert: false,
|
||||
is2020InfosecCert: false,
|
||||
isQaCertV7: false,
|
||||
isInfosecCertV7: false,
|
||||
is2018FullStackCert: false,
|
||||
is2020SciCompPyCert: false,
|
||||
is2020DataAnalysisPyCert: false,
|
||||
is2020MachineLearningPyCert: false,
|
||||
isSciCompPyCertV7: false,
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
completedChallenges: [],
|
||||
portfolio: [],
|
||||
yearsTopContributor: [],
|
||||
|
@ -29,11 +29,11 @@ const specialPaths = {
|
||||
'Legacy Full Stack': 'Full Stack',
|
||||
'Legacy Information Security and Quality Assurance':
|
||||
'Information Security and Quality Assurance',
|
||||
'Scientific Computing with Python': '2020 Scientific Computing with Python',
|
||||
'Data Analysis with Python': '2020 Data Analysis with Python',
|
||||
'Machine Learning with Python': '2020 Machine Learning with Python',
|
||||
'Quality Assurance': '2020 Quality Assurance',
|
||||
'Information Security': '2020 Information Security'
|
||||
'Scientific Computing with Python': 'Scientific Computing with Python V7',
|
||||
'Data Analysis with Python': 'Data Analysis with Python V7',
|
||||
'Machine Learning with Python': 'Machine Learning with Python V7',
|
||||
'Quality Assurance': 'Quality Assurance V7',
|
||||
'Information Security': 'Information Security V7'
|
||||
};
|
||||
|
||||
for (const [id, title] of idToTitle) {
|
||||
|
Reference in New Issue
Block a user