feat(learn): split InforSec and QA into individual certs (#38347)

Co-authored-by: Mrugesh Mohapatra <me@raisedadead.com>
Co-authored-by: Kris Koishigawa <scissorsneedfoodtoo@gmail.com>
This commit is contained in:
Beau Carnes
2020-04-23 09:08:50 -04:00
committed by Mrugesh Mohapatra
parent c75d212831
commit 256ed00fb9
25 changed files with 251 additions and 160 deletions

View File

@ -13,12 +13,12 @@ import {
legacyFrontEndChallengeId,
legacyBackEndChallengeId,
legacyDataVisId,
legacyInfosecQaId,
respWebDesignId,
frontEndLibsId,
jsAlgoDataStructId,
dataVis2018Id,
apisMicroservicesId,
infosecQaId,
infosecId,
qaId,
fullStackId,
@ -98,6 +98,7 @@ function createCertTypeIds(app) {
[certTypes.frontEnd]: getIdsForCert$(legacyFrontEndChallengeId, Challenge),
[certTypes.backEnd]: getIdsForCert$(legacyBackEndChallengeId, Challenge),
[certTypes.dataVis]: getIdsForCert$(legacyDataVisId, Challenge),
[certTypes.infosecQa]: getIdsForCert$(legacyInfosecQaId, Challenge),
// modern
[certTypes.respWebDesign]: getIdsForCert$(respWebDesignId, Challenge),
@ -108,7 +109,6 @@ function createCertTypeIds(app) {
apisMicroservicesId,
Challenge
),
[certTypes.infosecQa]: getIdsForCert$(infosecQaId, Challenge),
[certTypes.qa]: getIdsForCert$(qaId, Challenge),
[certTypes.infosec]: getIdsForCert$(infosecId, Challenge),
[certTypes.fullStack]: getIdsForCert$(fullStackId, Challenge),
@ -131,12 +131,12 @@ const certIds = {
[certTypes.frontEnd]: legacyFrontEndChallengeId,
[certTypes.backEnd]: legacyBackEndChallengeId,
[certTypes.dataVis]: legacyDataVisId,
[certTypes.infosecQa]: legacyInfosecQaId,
[certTypes.respWebDesign]: respWebDesignId,
[certTypes.frontEndLibs]: frontEndLibsId,
[certTypes.jsAlgoDataStruct]: jsAlgoDataStructId,
[certTypes.dataVis2018]: dataVis2018Id,
[certTypes.apisMicroservices]: apisMicroservicesId,
[certTypes.infosecQa]: infosecQaId,
[certTypes.qa]: qaId,
[certTypes.infosec]: infosecId,
[certTypes.fullStack]: fullStackId,
@ -149,13 +149,13 @@ const certText = {
[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]: 'Full Stack',
[certTypes.respWebDesign]: 'Responsive Web Design',
[certTypes.frontEndLibs]: 'Front End Libraries',
[certTypes.jsAlgoDataStruct]: 'JavaScript Algorithms and Data Structures',
[certTypes.dataVis2018]: 'Data Visualization',
[certTypes.apisMicroservices]: 'APIs and Microservices',
[certTypes.infosecQa]: 'Information Security and Quality Assurance',
[certTypes.qa]: 'Quality Assurance',
[certTypes.infosec]: 'Information Security',
[certTypes.sciCompPy]: 'Scientific Computing with Python',
@ -167,13 +167,13 @@ const completionHours = {
[certTypes.frontEnd]: 400,
[certTypes.backEnd]: 400,
[certTypes.dataVis]: 400,
[certTypes.infosecQa]: 300,
[certTypes.fullStack]: 1800,
[certTypes.respWebDesign]: 300,
[certTypes.frontEndLibs]: 300,
[certTypes.jsAlgoDataStruct]: 300,
[certTypes.dataVis2018]: 300,
[certTypes.apisMicroservices]: 300,
[certTypes.infosecQa]: 300,
[certTypes.qa]: 300,
[certTypes.infosec]: 300,
[certTypes.sciCompPy]: 400,
@ -202,7 +202,6 @@ function sendCertifiedEmail(
isJsAlgoDataStructCert,
isDataVisCert,
isApisMicroservicesCert,
isInfosecQaCert,
isQaCert,
isInfosecCert,
isSciCompPyCert,
@ -218,7 +217,6 @@ function sendCertifiedEmail(
!isJsAlgoDataStructCert ||
!isDataVisCert ||
!isApisMicroservicesCert ||
!isInfosecQaCert ||
!isQaCert ||
!isInfosecCert ||
!isSciCompPyCert ||

View File

@ -4,13 +4,13 @@
"legacyFrontEndChallengeId": "561add10cb82ac38a17513be",
"legacyBackEndChallengeId": "660add10cb82ac38a17513be",
"legacyDataVisId": "561add10cb82ac39a17513bc",
"legacyInfosecQaId": "561add10cb82ac38a17213bc",
"respWebDesignId": "561add10cb82ac38a17513bc",
"frontEndLibsId": "561acd10cb82ac38a17513bc",
"dataVis2018Id": "5a553ca864b52e1d8bceea14",
"jsAlgoDataStructId": "561abd10cb81ac38a17513bc",
"apisMicroservicesId": "561add10cb82ac38a17523bc",
"infosecQaId": "561add10cb82ac38a17213bc",
"qaId": "5e611829481575a52dc59c0e",
"infosecId": "5e6021435ac9d0ecd8b94b00",
"fullStackId": "561add10cb82ac38a17213bd",

View File

@ -3,7 +3,6 @@ function getCompletedCertCount(user) {
'isApisMicroservicesCert',
'is2018DataVisCert',
'isFrontEndLibsCert',
'isInfosecQaCert',
'isQaCert',
'isInfosecCert',
'isJsAlgoDataStructCert',
@ -15,10 +14,12 @@ function getCompletedCertCount(user) {
}
function getLegacyCertCount(user) {
return ['isFrontEndCert', 'isBackEndCert', 'isDataVisCert'].reduce(
(sum, key) => (user[key] ? sum + 1 : sum),
0
);
return [
'isFrontEndCert',
'isBackEndCert',
'isDataVisCert',
'isInfosecQaCert'
].reduce((sum, key) => (user[key] ? sum + 1 : sum), 0);
}
export default function populateUser(db, user) {

View File

@ -5,6 +5,7 @@ const superBlockCertTypeMap = {
'legacy-front-end': certTypes.frontEnd,
'legacy-back-end': certTypes.backEnd,
'legacy-data-visualization': certTypes.dataVis,
'legacy-information-security-and-quality-assurance': certTypes.infosecQa,
// modern
'responsive-web-design': certTypes.respWebDesign,
@ -12,7 +13,6 @@ const superBlockCertTypeMap = {
'front-end-libraries': certTypes.frontEndLibs,
'data-visualization': certTypes.dataVis2018,
'apis-and-microservices': certTypes.apisMicroservices,
'information-security-and-quality-assurance': certTypes.infosecQa,
'quality-assurance': certTypes.qa,
'information-security': certTypes.infosec,
'full-stack': certTypes.fullStack,

View File

@ -142,7 +142,6 @@ function getCompletedCertCount(user) {
'isApisMicroservicesCert',
'is2018DataVisCert',
'isFrontEndLibsCert',
'isInfosecQaCert',
'isQaCert',
'isInfosecCert',
'isJsAlgoDataStructCert',
@ -154,8 +153,10 @@ function getCompletedCertCount(user) {
}
function getLegacyCertCount(user) {
return ['isFrontEndCert', 'isBackEndCert', 'isDataVisCert'].reduce(
(sum, key) => (user[key] ? sum + 1 : sum),
0
);
return [
'isFrontEndCert',
'isBackEndCert',
'isDataVisCert',
'isInfosecQaCert'
].reduce((sum, key) => (user[key] ? sum + 1 : sum), 0);
}