mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2025-12-19 18:18:27 -05:00
feat: release rdb and python certs (#64253)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
This commit is contained in:
@@ -124,8 +124,10 @@ model user {
|
||||
isJsAlgoDataStructCert Boolean? // Undefined
|
||||
isJsAlgoDataStructCertV8 Boolean? // Undefined
|
||||
isMachineLearningPyCertV7 Boolean? // Undefined
|
||||
isPythonCertV9 Boolean? // Undefined
|
||||
isQaCertV7 Boolean? // Undefined
|
||||
isRelationalDatabaseCertV8 Boolean? // Undefined
|
||||
isRelationalDatabaseCertV9 Boolean? // Undefined
|
||||
isRespWebDesignCert Boolean? // Undefined
|
||||
isRespWebDesignCertV9 Boolean? // Undefined
|
||||
isSciCompPyCertV7 Boolean? // Undefined
|
||||
|
||||
@@ -48,8 +48,10 @@ export const newUser = (email: string) => ({
|
||||
isJsAlgoDataStructCert: false,
|
||||
isJsAlgoDataStructCertV8: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isPythonCertV9: false,
|
||||
isQaCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isCollegeAlgebraPyCertV8: false,
|
||||
isRespWebDesignCert: false,
|
||||
isRespWebDesignCertV9: false,
|
||||
|
||||
@@ -26,8 +26,10 @@ const nullableFlags = [
|
||||
'isJsAlgoDataStructCert',
|
||||
'isJsAlgoDataStructCertV8',
|
||||
'isMachineLearningPyCertV7',
|
||||
'isPythonCertV9',
|
||||
'isQaCertV7',
|
||||
'isRelationalDatabaseCertV8',
|
||||
'isRelationalDatabaseCertV9',
|
||||
'isRespWebDesignCert',
|
||||
'isRespWebDesignCertV9',
|
||||
'isSciCompPyCertV7',
|
||||
|
||||
@@ -39,23 +39,25 @@ describe('certificate routes', () => {
|
||||
where: { email: defaultUserEmail },
|
||||
data: {
|
||||
completedChallenges: [],
|
||||
name: 'fcc',
|
||||
isA2EnglishCert: false,
|
||||
isRespWebDesignCert: false,
|
||||
isJsAlgoDataStructCert: false,
|
||||
isFrontEndLibsCert: false,
|
||||
is2018DataVisCert: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isA2EnglishCert: false,
|
||||
isApisMicroservicesCert: false,
|
||||
isQaCertV7: false,
|
||||
isSciCompPyCertV7: false,
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isInfosecCertV7: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isCollegeAlgebraPyCertV8: false,
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isFoundationalCSharpCertV8: false,
|
||||
isFrontEndLibsCert: false,
|
||||
isInfosecCertV7: false,
|
||||
isJsAlgoDataStructCert: false,
|
||||
isJavascriptCertV9: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isPythonCertV9: false,
|
||||
isQaCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isRespWebDesignCert: false,
|
||||
isRespWebDesignCertV9: false,
|
||||
isSciCompPyCertV7: false,
|
||||
name: 'fcc',
|
||||
username: 'fcc'
|
||||
}
|
||||
});
|
||||
@@ -154,8 +156,10 @@ describe('certificate routes', () => {
|
||||
isInfosecQaCert: false,
|
||||
isJsAlgoDataStructCert: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isPythonCertV9: false,
|
||||
isQaCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isRespWebDesignCert: false,
|
||||
isSciCompPyCertV7: false,
|
||||
isJavascriptCertV9: false,
|
||||
@@ -234,22 +238,24 @@ describe('certificate routes', () => {
|
||||
{ id: '587d78b0367417b2b2512b05', completedDate: 123456789 },
|
||||
{ id: 'bd7158d8c242eddfaeb5bd13', completedDate: 123456789 }
|
||||
],
|
||||
isRespWebDesignCert: false,
|
||||
isJsAlgoDataStructCertV8: true,
|
||||
isFrontEndLibsCert: true,
|
||||
is2018DataVisCert: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isA2EnglishCert: true,
|
||||
isApisMicroservicesCert: true,
|
||||
isQaCertV7: true,
|
||||
isSciCompPyCertV7: true,
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isInfosecCertV7: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isCollegeAlgebraPyCertV8: true,
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isFoundationalCSharpCertV8: true,
|
||||
isFrontEndLibsCert: true,
|
||||
isInfosecCertV7: true,
|
||||
isJavascriptCertV9: true,
|
||||
isJsAlgoDataStructCertV8: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isRespWebDesignCert: false,
|
||||
isRespWebDesignCertV9: true,
|
||||
isA2EnglishCert: true
|
||||
isSciCompPyCertV7: true
|
||||
}
|
||||
});
|
||||
|
||||
@@ -323,7 +329,9 @@ describe('certificate routes', () => {
|
||||
isMachineLearningPyCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isCollegeAlgebraPyCertV8: false,
|
||||
isFoundationalCSharpCertV8: false
|
||||
isFoundationalCSharpCertV8: false,
|
||||
isPythonCertV9: false,
|
||||
isRelationalDatabaseCertV9: false
|
||||
},
|
||||
completedChallenges: [
|
||||
{
|
||||
|
||||
@@ -123,78 +123,84 @@ export function createCertLookup(
|
||||
|
||||
interface CertI {
|
||||
isA2EnglishCert?: boolean;
|
||||
isRespWebDesignCert?: boolean;
|
||||
isApisMicroservicesCert?: boolean;
|
||||
isBackEndCert?: boolean;
|
||||
isCollegeAlgebraPyCertV8?: boolean;
|
||||
isDataAnalysisPyCertV7?: boolean;
|
||||
isDataVisCert?: boolean;
|
||||
isFrontEndCert?: boolean;
|
||||
isFrontEndLibsCert?: boolean;
|
||||
isFoundationalCSharpCertV8?: boolean;
|
||||
isFullStackCert?: boolean;
|
||||
isInfosecCertV7?: boolean;
|
||||
isInfosecQaCert?: boolean;
|
||||
isJavascriptCertV9?: boolean;
|
||||
isJsAlgoDataStructCert?: boolean;
|
||||
isJsAlgoDataStructCertV8?: boolean;
|
||||
isFrontEndLibsCert?: boolean;
|
||||
is2018DataVisCert?: boolean;
|
||||
isApisMicroservicesCert?: boolean;
|
||||
isInfosecQaCert?: boolean;
|
||||
isQaCertV7?: boolean;
|
||||
isInfosecCertV7?: boolean;
|
||||
isFrontEndCert?: boolean;
|
||||
isBackEndCert?: boolean;
|
||||
isDataVisCert?: boolean;
|
||||
isFullStackCert?: boolean;
|
||||
isSciCompPyCertV7?: boolean;
|
||||
isDataAnalysisPyCertV7?: boolean;
|
||||
isMachineLearningPyCertV7?: boolean;
|
||||
isPythonCertV9?: boolean;
|
||||
isQaCertV7?: boolean;
|
||||
isRelationalDatabaseCertV8?: boolean;
|
||||
isCollegeAlgebraPyCertV8?: boolean;
|
||||
isFoundationalCSharpCertV8?: boolean;
|
||||
isJavascriptCertV9?: boolean;
|
||||
isRelationalDatabaseCertV9?: boolean;
|
||||
isRespWebDesignCert?: boolean;
|
||||
isRespWebDesignCertV9?: boolean;
|
||||
isSciCompPyCertV7?: boolean;
|
||||
is2018DataVisCert?: boolean;
|
||||
}
|
||||
|
||||
function getUserIsCertMap(user: CertI) {
|
||||
const {
|
||||
isA2EnglishCert = false,
|
||||
isRespWebDesignCert = false,
|
||||
isApisMicroservicesCert = false,
|
||||
isBackEndCert = false,
|
||||
isCollegeAlgebraPyCertV8 = false,
|
||||
isDataAnalysisPyCertV7 = false,
|
||||
isDataVisCert = false,
|
||||
isFrontEndCert = false,
|
||||
isFrontEndLibsCert = false,
|
||||
isFoundationalCSharpCertV8 = false,
|
||||
isFullStackCert = false,
|
||||
isInfosecCertV7 = false,
|
||||
isInfosecQaCert = false,
|
||||
isJavascriptCertV9 = false,
|
||||
isJsAlgoDataStructCert = false,
|
||||
isJsAlgoDataStructCertV8 = false,
|
||||
isFrontEndLibsCert = false,
|
||||
is2018DataVisCert = false,
|
||||
isApisMicroservicesCert = false,
|
||||
isInfosecQaCert = false,
|
||||
isQaCertV7 = false,
|
||||
isInfosecCertV7 = false,
|
||||
isFrontEndCert = false,
|
||||
isBackEndCert = false,
|
||||
isDataVisCert = false,
|
||||
isFullStackCert = false,
|
||||
isSciCompPyCertV7 = false,
|
||||
isDataAnalysisPyCertV7 = false,
|
||||
isMachineLearningPyCertV7 = false,
|
||||
isPythonCertV9 = false,
|
||||
isQaCertV7 = false,
|
||||
isRelationalDatabaseCertV8 = false,
|
||||
isCollegeAlgebraPyCertV8 = false,
|
||||
isFoundationalCSharpCertV8 = false,
|
||||
isJavascriptCertV9 = false,
|
||||
isRespWebDesignCertV9 = false
|
||||
isRelationalDatabaseCertV9 = false,
|
||||
isRespWebDesignCert = false,
|
||||
isRespWebDesignCertV9 = false,
|
||||
isSciCompPyCertV7 = false,
|
||||
is2018DataVisCert = false
|
||||
} = user;
|
||||
|
||||
return {
|
||||
isA2EnglishCert,
|
||||
isRespWebDesignCert,
|
||||
isApisMicroservicesCert,
|
||||
isBackEndCert,
|
||||
isCollegeAlgebraPyCertV8,
|
||||
isDataAnalysisPyCertV7,
|
||||
isDataVisCert,
|
||||
isFrontEndCert,
|
||||
isFrontEndLibsCert,
|
||||
isFoundationalCSharpCertV8,
|
||||
isFullStackCert,
|
||||
isInfosecCertV7,
|
||||
isInfosecQaCert,
|
||||
isJavascriptCertV9,
|
||||
isJsAlgoDataStructCert,
|
||||
isJsAlgoDataStructCertV8,
|
||||
isFrontEndLibsCert,
|
||||
is2018DataVisCert,
|
||||
isApisMicroservicesCert,
|
||||
isInfosecQaCert,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndCert,
|
||||
isBackEndCert,
|
||||
isDataVisCert,
|
||||
isFullStackCert,
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7,
|
||||
isPythonCertV9,
|
||||
isQaCertV7,
|
||||
isRelationalDatabaseCertV8,
|
||||
isCollegeAlgebraPyCertV8,
|
||||
isFoundationalCSharpCertV8,
|
||||
isJavascriptCertV9,
|
||||
isRespWebDesignCertV9
|
||||
isRelationalDatabaseCertV9,
|
||||
isRespWebDesignCert,
|
||||
isRespWebDesignCertV9,
|
||||
isSciCompPyCertV7,
|
||||
is2018DataVisCert
|
||||
};
|
||||
}
|
||||
|
||||
@@ -335,33 +341,35 @@ export const protectedCertificateRoutes: FastifyPluginCallbackTypebox = (
|
||||
}
|
||||
},
|
||||
select: {
|
||||
username: true,
|
||||
completedChallenges: true,
|
||||
email: true,
|
||||
name: true,
|
||||
completedChallenges: true,
|
||||
username: true,
|
||||
is2018DataVisCert: true,
|
||||
is2018FullStackCert: true,
|
||||
isA2EnglishCert: true,
|
||||
isApisMicroservicesCert: true,
|
||||
isBackEndCert: true,
|
||||
isDataVisCert: true,
|
||||
isCollegeAlgebraPyCertV8: true,
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isDataVisCert: true,
|
||||
isFoundationalCSharpCertV8: true,
|
||||
isFrontEndCert: true,
|
||||
isFrontEndLibsCert: true,
|
||||
isFullStackCert: true,
|
||||
isInfosecCertV7: true,
|
||||
isInfosecQaCert: true,
|
||||
isJavascriptCertV9: true,
|
||||
isJsAlgoDataStructCert: true,
|
||||
isJsAlgoDataStructCertV8: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isRespWebDesignCert: true,
|
||||
isSciCompPyCertV7: true,
|
||||
isJavascriptCertV9: true,
|
||||
isRespWebDesignCertV9: true
|
||||
isRespWebDesignCertV9: true,
|
||||
isSciCompPyCertV7: true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -293,8 +293,10 @@ const publicUserData = {
|
||||
isJsAlgoDataStructCert: testUserData.isJsAlgoDataStructCert,
|
||||
isJsAlgoDataStructCertV8: testUserData.isJsAlgoDataStructCertV8,
|
||||
isMachineLearningPyCertV7: testUserData.isMachineLearningPyCertV7,
|
||||
isPythonCertV9: testUserData.isPythonCertV9,
|
||||
isQaCertV7: testUserData.isQaCertV7,
|
||||
isRelationalDatabaseCertV8: testUserData.isRelationalDatabaseCertV8,
|
||||
isRelationalDatabaseCertV9: testUserData.isRelationalDatabaseCertV9,
|
||||
isRespWebDesignCert: testUserData.isRespWebDesignCert,
|
||||
isRespWebDesignCertV9: testUserData.isRespWebDesignCertV9,
|
||||
isSciCompPyCertV7: testUserData.isSciCompPyCertV7,
|
||||
@@ -345,7 +347,9 @@ const baseProgressData = {
|
||||
isSciCompPyCertV7: false,
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isPythonCertV9: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isRespWebDesignCertV9: false,
|
||||
isCollegeAlgebraPyCertV8: false,
|
||||
completedChallenges: [],
|
||||
@@ -1018,8 +1022,10 @@ describe('userRoutes', () => {
|
||||
isJsAlgoDataStructCert: false,
|
||||
isJsAlgoDataStructCertV8: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isPythonCertV9: false,
|
||||
isQaCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isRespWebDesignCert: false,
|
||||
isRespWebDesignCertV9: false,
|
||||
isSciCompPyCertV7: false,
|
||||
|
||||
@@ -701,8 +701,10 @@ export const userGetRoutes: FastifyPluginCallbackTypebox = (
|
||||
isJsAlgoDataStructCert: true,
|
||||
isJsAlgoDataStructCertV8: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isRespWebDesignCert: true,
|
||||
isRespWebDesignCertV9: true,
|
||||
isSciCompPyCertV7: true,
|
||||
|
||||
@@ -74,12 +74,14 @@ export const unprotectedCertificateRoutes: FastifyPluginCallbackTypebox = (
|
||||
is2018DataVisCert: true,
|
||||
isApisMicroservicesCert: true,
|
||||
isInfosecQaCert: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isInfosecCertV7: true,
|
||||
isSciCompPyCertV7: true,
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isCollegeAlgebraPyCertV8: true,
|
||||
isFoundationalCSharpCertV8: true,
|
||||
isHonest: true,
|
||||
|
||||
@@ -206,8 +206,10 @@ const publicUserData = {
|
||||
isJsAlgoDataStructCert: testUserData.isJsAlgoDataStructCert,
|
||||
isJsAlgoDataStructCertV8: testUserData.isJsAlgoDataStructCertV8,
|
||||
isMachineLearningPyCertV7: testUserData.isMachineLearningPyCertV7,
|
||||
isPythonCertV9: testUserData.isPythonCertV9,
|
||||
isQaCertV7: testUserData.isQaCertV7,
|
||||
isRelationalDatabaseCertV8: testUserData.isRelationalDatabaseCertV8,
|
||||
isRelationalDatabaseCertV9: testUserData.isRelationalDatabaseCertV9,
|
||||
isRespWebDesignCert: testUserData.isRespWebDesignCert,
|
||||
isRespWebDesignCertV9: testUserData.isRespWebDesignCertV9,
|
||||
isSciCompPyCertV7: testUserData.isSciCompPyCertV7,
|
||||
|
||||
@@ -15,6 +15,7 @@ export const isCertMap = Type.Object({
|
||||
is2018DataVisCert: Type.Boolean(),
|
||||
isApisMicroservicesCert: Type.Boolean(),
|
||||
isInfosecQaCert: Type.Boolean(),
|
||||
isPythonCertV9: Type.Boolean(),
|
||||
isQaCertV7: Type.Boolean(),
|
||||
isInfosecCertV7: Type.Boolean(),
|
||||
isFrontEndCert: Type.Boolean(),
|
||||
@@ -25,6 +26,7 @@ export const isCertMap = Type.Object({
|
||||
isDataAnalysisPyCertV7: Type.Boolean(),
|
||||
isMachineLearningPyCertV7: Type.Boolean(),
|
||||
isRelationalDatabaseCertV8: Type.Boolean(),
|
||||
isRelationalDatabaseCertV9: Type.Boolean(),
|
||||
isCollegeAlgebraPyCertV8: Type.Boolean(),
|
||||
isFoundationalCSharpCertV8: Type.Boolean()
|
||||
});
|
||||
|
||||
@@ -86,8 +86,10 @@ export const getSessionUser = {
|
||||
isJsAlgoDataStructCert: Type.Boolean(),
|
||||
isJsAlgoDataStructCertV8: Type.Boolean(),
|
||||
isMachineLearningPyCertV7: Type.Boolean(),
|
||||
isPythonCertV9: Type.Boolean(),
|
||||
isQaCertV7: Type.Boolean(),
|
||||
isRelationalDatabaseCertV8: Type.Boolean(),
|
||||
isRelationalDatabaseCertV9: Type.Boolean(),
|
||||
isRespWebDesignCert: Type.Boolean(),
|
||||
isRespWebDesignCertV9: Type.Boolean(),
|
||||
isSciCompPyCertV7: Type.Boolean(),
|
||||
|
||||
@@ -72,8 +72,10 @@ export const getPublicProfile = {
|
||||
isJsAlgoDataStructCert: Type.Boolean(),
|
||||
isJsAlgoDataStructCertV8: Type.Boolean(),
|
||||
isMachineLearningPyCertV7: Type.Boolean(),
|
||||
isPythonCertV9: Type.Boolean(),
|
||||
isQaCertV7: Type.Boolean(),
|
||||
isRelationalDatabaseCertV8: Type.Boolean(),
|
||||
isRelationalDatabaseCertV9: Type.Boolean(),
|
||||
isRespWebDesignCert: Type.Boolean(),
|
||||
isRespWebDesignCertV9: Type.Boolean(),
|
||||
isSciCompPyCertV7: Type.Boolean(),
|
||||
|
||||
@@ -32,8 +32,10 @@ export const createResetProperties = () => ({
|
||||
isJsAlgoDataStructCert: false,
|
||||
isJsAlgoDataStructCertV8: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isPythonCertV9: false,
|
||||
isQaCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isRespWebDesignCert: false,
|
||||
isRespWebDesignCertV9: false,
|
||||
isSciCompPyCertV7: false,
|
||||
|
||||
@@ -5089,13 +5089,9 @@
|
||||
"title": "JavaScript Certification",
|
||||
"intro": [
|
||||
"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 qualify for the exam, you must complete the following projects:",
|
||||
"- Build a Markdown to HTML Converter",
|
||||
"- Build a Drum Machine",
|
||||
"- Build a Voting System",
|
||||
"- Build a Bank Account Management Program",
|
||||
"- Build a Weather App",
|
||||
"Pass the exam to earn your JavaScript Certification."
|
||||
"To earn your JavaScript Certification:",
|
||||
"- Complete the five required projects to qualify for the certification exam.",
|
||||
"- Pass the JavaScript Certification exam."
|
||||
],
|
||||
"chapters": {
|
||||
"javascript": "JavaScript",
|
||||
@@ -6666,7 +6662,6 @@
|
||||
},
|
||||
"python-v9": {
|
||||
"title": "Python Certification",
|
||||
"note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.",
|
||||
"intro": [
|
||||
"This course teaches you the fundamentals of Python programming.",
|
||||
"To earn your Python Certification:",
|
||||
@@ -7142,7 +7137,6 @@
|
||||
},
|
||||
"relational-databases-v9": {
|
||||
"title": "Relational Databases Certification",
|
||||
"note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.",
|
||||
"intro": [
|
||||
"This course teaches you the fundamentals of relational databases.",
|
||||
"To earn your Relational Databases Certification:",
|
||||
@@ -7734,13 +7728,9 @@
|
||||
"title": "Responsive Web Design Certification",
|
||||
"intro": [
|
||||
"This course teaches the fundamentals of HTML and CSS, including modern layout, design, accessibility, and responsive web development. You'll build practical projects and gain the skills to create professional, user-friendly webpages.",
|
||||
"To qualify for the exam, you must complete the following projects:",
|
||||
"- Build a Survey Form",
|
||||
"- Build a Page of Playing Cards",
|
||||
"- Build a Book Inventory App",
|
||||
"- Build a Technical Documentation Page",
|
||||
"- Build a Product Landing Page",
|
||||
"Pass the exam to earn your Responsive Web Design Certification."
|
||||
"To earn your Responsive Web Design Certification:",
|
||||
"- Complete the five required projects to qualify for the certification exam.",
|
||||
"- Pass the Responsive Web Design Certification exam."
|
||||
],
|
||||
"chapters": {
|
||||
"html": "HTML",
|
||||
|
||||
@@ -154,6 +154,8 @@ export function ShowSettings(props: ShowSettingsProps): JSX.Element {
|
||||
isFullStackCert,
|
||||
isRespWebDesignCert,
|
||||
isRespWebDesignCertV9,
|
||||
isPythonCertV9,
|
||||
isRelationalDatabaseCertV9,
|
||||
isSciCompPyCertV7,
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7,
|
||||
@@ -241,8 +243,10 @@ export function ShowSettings(props: ShowSettingsProps): JSX.Element {
|
||||
isInfosecQaCert={isInfosecQaCert}
|
||||
isJsAlgoDataStructCert={isJsAlgoDataStructCert}
|
||||
isMachineLearningPyCertV7={isMachineLearningPyCertV7}
|
||||
isPythonCertV9={isPythonCertV9}
|
||||
isQaCertV7={isQaCertV7}
|
||||
isRelationalDatabaseCertV8={isRelationalDatabaseCertV8}
|
||||
isRelationalDatabaseCertV9={isRelationalDatabaseCertV9}
|
||||
isRespWebDesignCert={isRespWebDesignCert}
|
||||
isRespWebDesignCertV9={isRespWebDesignCertV9}
|
||||
isSciCompPyCertV7={isSciCompPyCertV7}
|
||||
|
||||
@@ -12,6 +12,7 @@ export const getCertifications = (user: User) => {
|
||||
isJsAlgoDataStructCert,
|
||||
isApisMicroservicesCert,
|
||||
isInfosecQaCert,
|
||||
isPythonCertV9,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndCert,
|
||||
@@ -22,6 +23,7 @@ export const getCertifications = (user: User) => {
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7,
|
||||
isRelationalDatabaseCertV8,
|
||||
isRelationalDatabaseCertV9,
|
||||
isCollegeAlgebraPyCertV8,
|
||||
isFoundationalCSharpCertV8,
|
||||
isJsAlgoDataStructCertV8
|
||||
@@ -32,7 +34,9 @@ export const getCertifications = (user: User) => {
|
||||
isA2EnglishCert ||
|
||||
isRespWebDesignCertV9 ||
|
||||
isJavascriptCertV9 ||
|
||||
isFoundationalCSharpCertV8,
|
||||
isFoundationalCSharpCertV8 ||
|
||||
isPythonCertV9 ||
|
||||
isRelationalDatabaseCertV9,
|
||||
hasLegacyCert:
|
||||
isFrontEndCert ||
|
||||
isJsAlgoDataStructCert ||
|
||||
@@ -73,6 +77,16 @@ export const getCertifications = (user: User) => {
|
||||
show: isFoundationalCSharpCertV8,
|
||||
title: 'Foundational C# with Microsoft Certification',
|
||||
certSlug: Certification.FoundationalCSharp
|
||||
},
|
||||
{
|
||||
show: isPythonCertV9,
|
||||
title: 'Python Certification',
|
||||
certSlug: Certification.PythonV9
|
||||
},
|
||||
{
|
||||
show: isRelationalDatabaseCertV9,
|
||||
title: 'Relational Database Certification',
|
||||
certSlug: Certification.RelationalDbV9
|
||||
}
|
||||
],
|
||||
legacyCerts: [
|
||||
|
||||
@@ -63,6 +63,7 @@ const userProps = {
|
||||
isFrontEndLibsCert: true,
|
||||
isFullStackCert: true,
|
||||
isInfosecQaCert: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isInfosecCertV7: true,
|
||||
isJavascriptCertV9: true,
|
||||
@@ -73,6 +74,7 @@ const userProps = {
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isCollegeAlgebraPyCertV8: true,
|
||||
isFoundationalCSharpVertV8: true
|
||||
},
|
||||
|
||||
@@ -271,6 +271,7 @@ const defaultTestProps = {
|
||||
isFullStackCert: false,
|
||||
isHonest: false,
|
||||
isInfosecQaCert: false,
|
||||
isPythonCertV9: false,
|
||||
isQaCertV7: false,
|
||||
isInfosecCertV7: false,
|
||||
isJavascriptCertV9: false,
|
||||
@@ -282,6 +283,7 @@ const defaultTestProps = {
|
||||
isDataAnalysisPyCertV7: false,
|
||||
isMachineLearningPyCertV7: false,
|
||||
isRelationalDatabaseCertV8: false,
|
||||
isRelationalDatabaseCertV9: false,
|
||||
isCollegeAlgebraPyCertV8: false,
|
||||
isFoundationalCSharpCertV8: false,
|
||||
username: 'developmentuser',
|
||||
|
||||
@@ -49,6 +49,7 @@ const createCertifiedMap = ({
|
||||
isJavascriptCertV9,
|
||||
isJsAlgoDataStructCert,
|
||||
isInfosecQaCert,
|
||||
isPythonCertV9,
|
||||
isQaCertV7,
|
||||
isInfosecCertV7,
|
||||
isFrontEndLibsCert,
|
||||
@@ -61,6 +62,7 @@ const createCertifiedMap = ({
|
||||
isDataAnalysisPyCertV7,
|
||||
isMachineLearningPyCertV7,
|
||||
isRelationalDatabaseCertV8,
|
||||
isRelationalDatabaseCertV9,
|
||||
isCollegeAlgebraPyCertV8,
|
||||
isFoundationalCSharpCertV8,
|
||||
isJsAlgoDataStructCertV8
|
||||
@@ -91,8 +93,8 @@ const createCertifiedMap = ({
|
||||
[Certification.RespWebDesignV9]: isRespWebDesignCertV9,
|
||||
[Certification.JsV9]: isJavascriptCertV9,
|
||||
[Certification.FrontEndDevLibsV9]: false,
|
||||
[Certification.PythonV9]: false,
|
||||
[Certification.RelationalDbV9]: false,
|
||||
[Certification.PythonV9]: isPythonCertV9,
|
||||
[Certification.RelationalDbV9]: isRelationalDatabaseCertV9,
|
||||
[Certification.BackEndDevApisV9]: false,
|
||||
[Certification.FullStackDeveloperV9]: false,
|
||||
[Certification.A2English]: isA2EnglishCert,
|
||||
|
||||
@@ -474,10 +474,12 @@ export type ClaimedCertifications = {
|
||||
isFullStackCert: boolean;
|
||||
isInfosecQaCert: boolean;
|
||||
isJavascriptCertV9: boolean;
|
||||
isPythonCertV9: boolean;
|
||||
isQaCertV7: boolean;
|
||||
isInfosecCertV7: boolean;
|
||||
isJsAlgoDataStructCert: boolean;
|
||||
isRelationalDatabaseCertV8: boolean;
|
||||
isRelationalDatabaseCertV9: boolean;
|
||||
isRespWebDesignCert: boolean;
|
||||
isRespWebDesignCertV9: boolean;
|
||||
isSciCompPyCertV7: boolean;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Python Certification Exam",
|
||||
"blockLabel": "exam",
|
||||
"blockLayout": "link",
|
||||
"isUpcomingChange": true,
|
||||
"isUpcomingChange": false,
|
||||
"dashedName": "exam-python-certification",
|
||||
"helpCategory": "Python",
|
||||
"challengeOrder": [
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Relational Databases Certification Exam",
|
||||
"blockLabel": "exam",
|
||||
"blockLayout": "link",
|
||||
"isUpcomingChange": true,
|
||||
"isUpcomingChange": false,
|
||||
"dashedName": "exam-relational-databases-certification",
|
||||
"helpCategory": "Backend Development",
|
||||
"challengeOrder": [
|
||||
|
||||
@@ -148,10 +148,10 @@
|
||||
{
|
||||
"chapterType": "exam",
|
||||
"dashedName": "python-certification-exam",
|
||||
"comingSoon": true,
|
||||
"comingSoon": false,
|
||||
"modules": [
|
||||
{
|
||||
"comingSoon": true,
|
||||
"comingSoon": false,
|
||||
"dashedName": "python-certification-exam",
|
||||
"blocks": ["exam-python-certification"]
|
||||
}
|
||||
|
||||
@@ -93,10 +93,10 @@
|
||||
{
|
||||
"chapterType": "exam",
|
||||
"dashedName": "relational-databases-certification-exam",
|
||||
"comingSoon": true,
|
||||
"comingSoon": false,
|
||||
"modules": [
|
||||
{
|
||||
"comingSoon": true,
|
||||
"comingSoon": false,
|
||||
"dashedName": "relational-databases-certification-exam",
|
||||
"blocks": ["exam-relational-databases-certification"]
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ test.describe('Public profile certifications', () => {
|
||||
|
||||
await expect(
|
||||
page.getByRole('link', { name: /View.+Certification/ })
|
||||
).toHaveCount(22);
|
||||
).toHaveCount(24);
|
||||
});
|
||||
|
||||
test('Should show claimed certifications if the username includes uppercase characters', async ({
|
||||
@@ -48,7 +48,7 @@ test.describe('Public profile certifications', () => {
|
||||
await page.waitForURL('/certifiedboozer');
|
||||
await expect(
|
||||
page.getByRole('link', { name: /View.+Certification/ })
|
||||
).toHaveCount(22);
|
||||
).toHaveCount(24);
|
||||
});
|
||||
|
||||
test.afterAll(() => {
|
||||
|
||||
@@ -25,12 +25,12 @@ export enum Certification {
|
||||
MachineLearningPy = 'machine-learning-with-python-v7',
|
||||
CollegeAlgebraPy = 'college-algebra-with-python-v8',
|
||||
FoundationalCSharp = 'foundational-c-sharp-with-microsoft',
|
||||
PythonV9 = 'python-v9',
|
||||
RelationalDbV9 = 'relational-databases-v9',
|
||||
// Upcoming certifications
|
||||
RespWebDesignV9 = 'responsive-web-design-v9',
|
||||
JsV9 = 'javascript-v9',
|
||||
FrontEndDevLibsV9 = 'front-end-development-libraries-v9',
|
||||
PythonV9 = 'python-v9',
|
||||
RelationalDbV9 = 'relational-databases-v9',
|
||||
BackEndDevApisV9 = 'back-end-development-and-apis-v9',
|
||||
A2English = 'a2-english-for-developers',
|
||||
FullStackDeveloperV9 = 'full-stack-developer-v9',
|
||||
@@ -54,10 +54,12 @@ export function isCertification(x: string): x is Certification {
|
||||
// "Current" certifications are the subset of standard certifications that are
|
||||
// live and not legacy.
|
||||
export const currentCertifications = [
|
||||
Certification.RespWebDesignV9,
|
||||
Certification.JsV9,
|
||||
Certification.A2English,
|
||||
Certification.FoundationalCSharp
|
||||
Certification.FoundationalCSharp,
|
||||
Certification.JsV9,
|
||||
Certification.PythonV9,
|
||||
Certification.RelationalDbV9,
|
||||
Certification.RespWebDesignV9
|
||||
] as const;
|
||||
|
||||
// "Legacy" certifications are another class of standard certifications. They're
|
||||
@@ -92,8 +94,6 @@ export const legacyFullStackCertification = [
|
||||
// showUpcomingChanges is true.
|
||||
export const upcomingCertifications = [
|
||||
Certification.FrontEndDevLibsV9,
|
||||
Certification.PythonV9,
|
||||
Certification.RelationalDbV9,
|
||||
Certification.BackEndDevApisV9,
|
||||
Certification.FullStackDeveloperV9,
|
||||
Certification.B1English,
|
||||
@@ -199,10 +199,11 @@ export const certSlugTypeMap = {
|
||||
[Certification.CollegeAlgebraPy]: 'isCollegeAlgebraPyCertV8',
|
||||
[Certification.FoundationalCSharp]: 'isFoundationalCSharpCertV8',
|
||||
[Certification.A2English]: 'isA2EnglishCert',
|
||||
|
||||
// upcoming
|
||||
[Certification.PythonV9]: 'isPythonCertV9',
|
||||
[Certification.RelationalDbV9]: 'isRelationalDatabaseCertV9',
|
||||
[Certification.RespWebDesignV9]: 'isRespWebDesignCertV9',
|
||||
[Certification.JsV9]: 'isJavascriptCertV9'
|
||||
// upcoming
|
||||
} as const;
|
||||
|
||||
// TODO: use i18n keys instead of hardcoded titles
|
||||
|
||||
@@ -234,6 +234,7 @@ module.exports.fullyCertifiedUser = {
|
||||
isJsAlgoDataStructCertV8: true,
|
||||
isApisMicroservicesCert: true,
|
||||
isInfosecQaCert: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isInfosecCertV7: true,
|
||||
is2018FullStackCert: true,
|
||||
@@ -241,6 +242,7 @@ module.exports.fullyCertifiedUser = {
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isCollegeAlgebraPyCertV8: true,
|
||||
isFoundationalCSharpCertV8: true,
|
||||
completedChallenges: [
|
||||
|
||||
Reference in New Issue
Block a user