Skip to content

Commit df0fb64

Browse files
Merge pull request #736 from freeCodeCamp/main
Create a new pull request by comparing changes across two branches.
2 parents f30781c + 0e9f97c commit df0fb64

File tree

126 files changed

+5140
-3076
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+5140
-3076
lines changed

api/src/routes/protected/certificate.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ describe('certificate routes', () => {
127127
isCertMap: {
128128
is2018DataVisCert: false,
129129
isA2EnglishCert: false,
130+
isB1EnglishCert: false,
130131
isApisMicroservicesCert: false,
131132
isBackEndCert: false,
132133
isCollegeAlgebraPyCertV8: false,
@@ -223,6 +224,7 @@ describe('certificate routes', () => {
223224
],
224225
is2018DataVisCert: true,
225226
isA2EnglishCert: true,
227+
isB1EnglishCert: true,
226228
isApisMicroservicesCert: true,
227229
isCollegeAlgebraPyCertV8: true,
228230
isDataAnalysisPyCertV7: true,

api/src/routes/protected/user.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ const sessionUserData = {
337337
const baseProgressData = {
338338
currentChallengeId: '',
339339
isA2EnglishCert: false,
340+
isB1EnglishCert: false,
340341
isRespWebDesignCert: false,
341342
is2018DataVisCert: false,
342343
isFrontEndLibsCert: false,

api/src/routes/public/user.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ const publicUserData = {
188188
is2018DataVisCert: testUserData.is2018DataVisCert,
189189
is2018FullStackCert: testUserData.is2018FullStackCert, // TODO: should this be returned? The client doesn't use it at the moment.
190190
isA2EnglishCert: testUserData.isA2EnglishCert,
191+
isB1EnglishCert: testUserData.isB1EnglishCert,
191192
isApisMicroservicesCert: testUserData.isApisMicroservicesCert,
192193
isBackEndCert: testUserData.isBackEndCert,
193194
isCheater: testUserData.isCheater,

api/src/schemas/users/get-public-profile.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const getPublicProfile = {
5353
is2018DataVisCert: Type.Boolean(),
5454
is2018FullStackCert: Type.Boolean(),
5555
isA2EnglishCert: Type.Boolean(),
56+
isB1EnglishCert: Type.Boolean(),
5657
isApisMicroservicesCert: Type.Boolean(),
5758
isBackEndCert: Type.Boolean(),
5859
isCheater: Type.Boolean(),

client/i18n/locales/chinese-traditional/intro.json

Lines changed: 79 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1832,7 +1832,6 @@
18321832
"git": "Git",
18331833
"review-relational-databases": "Relational Databases Review",
18341834
"exam-relational-databases": "Relational Databases Exam",
1835-
"introduction-to-nodejs": "Introduction to Node.js",
18361835
"nodejs-core-libraries": "Node.js Core Libraries",
18371836
"node-package-manager": "Node Package Manager",
18381837
"http-and-the-web-standards-model": "HTTP and the Web Standards Model",
@@ -6683,53 +6682,39 @@
66836682
"review-python": "Python Review",
66846683
"python-certification-exam": "Python Certification Exam"
66856684
},
6686-
"module-intros": {
6687-
"python-classes-and-objects": {
6688-
"note": "Coming Winter 2025",
6689-
"intro": [
6690-
"In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
6691-
]
6692-
},
6693-
"python-object-oriented-programming": {
6694-
"note": "Coming Winter 2025",
6685+
"blocks": {
6686+
"lecture-introduction-to-python": {
6687+
"title": "Introduction to Python",
66956688
"intro": [
6696-
"In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
6689+
"In these lessons, you will learn what Python is, how to set up your development environment."
66976690
]
66986691
},
6699-
"python-linear-data-structures": {
6700-
"note": "Coming Winter 2025",
6692+
"lecture-understanding-variables-and-data-types": {
6693+
"title": "Understanding Variables and Data Types",
67016694
"intro": [
6702-
"In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge."
6695+
"In these lessons, you will learn about variables and data types in Python."
67036696
]
67046697
},
6705-
"python-algorithms": {
6706-
"note": "Coming Winter 2025",
6707-
"intro": [
6708-
"In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge."
6709-
]
6698+
"lecture-introduction-to-python-strings": {
6699+
"title": "Introduction to Strings",
6700+
"intro": ["In these lessons, you will learn about strings in Python."]
67106701
},
6711-
"python-graphs-and-trees": {
6712-
"note": "Coming Winter 2025",
6702+
"lecture-numbers-and-mathematical-operations": {
6703+
"title": "Numbers and Mathematical Operations",
67136704
"intro": [
6714-
"In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge."
6705+
"In these lessons, you will learn about numbers and mathematical operations in Python."
67156706
]
67166707
},
6717-
"python-dynamic-programming": {
6718-
"note": "Coming Winter 2025",
6708+
"lecture-booleans-and-conditionals": {
6709+
"title": "Booleans and Conditionals",
67196710
"intro": [
6720-
"In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge."
6711+
"In these lessons, you will learn about booleans and conditionals in Python."
67216712
]
67226713
},
6723-
"python-certification-exam": {
6724-
"note": "Coming Winter 2025",
6725-
"intro": ["Pass this exam to earn your Python Certification."]
6726-
}
6727-
},
6728-
"blocks": {
6729-
"lecture-introduction-to-python": {
6730-
"title": "Introduction to Python",
6714+
"lecture-understanding-functions-and-scope": {
6715+
"title": "Understanding Functions and Scope",
67316716
"intro": [
6732-
"In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more."
6717+
"In these lessons, you will learn about functions and scope in Python."
67336718
]
67346719
},
67356720
"workshop-caesar-cipher": {
@@ -6739,7 +6724,7 @@
67396724
]
67406725
},
67416726
"lab-rpg-character": {
6742-
"title": "Build an RPG character",
6727+
"title": "Build an RPG Character",
67436728
"intro": [
67446729
"In this lab you will practice basic python by building an RPG character."
67456730
]
@@ -7154,14 +7139,6 @@
71547139
"lab-number-guessing-game": "Build a Number Guessing Game",
71557140
"relational-databases-certification-exam": "Relational Databases Certification Exam"
71567141
},
7157-
"module-intros": {
7158-
"relational-databases-certification-exam": {
7159-
"note": "Coming Winter 2025",
7160-
"intro": [
7161-
"Pass this exam to earn your Relational Databases Certification."
7162-
]
7163-
}
7164-
},
71657142
"blocks": {
71667143
"lecture-working-with-code-editors-and-ides": {
71677144
"title": "Working with Code Editors and IDEs",
@@ -7353,6 +7330,12 @@
73537330
"Review relational databases concepts to prepare for the exam."
73547331
]
73557332
},
7333+
"quiz-node-js-core-modules": {
7334+
"title": "NodeJS Core Modules Quiz",
7335+
"intro": [
7336+
"Test what you've learned about Node.js core modules with this quiz."
7337+
]
7338+
},
73567339
"exam-relational-databases-certification": {
73577340
"title": "Relational Databases Certification Exam",
73587341
"intro": [
@@ -7375,7 +7358,8 @@
73757358
"back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam"
73767359
},
73777360
"modules": {
7378-
"nodejs-core-libraries": "Node.js Core Libraries",
7361+
"introduction-to-nodejs": "Introduction to Node.js",
7362+
"nodejs-core-modules": "Node.js Core Modules",
73797363
"node-package-manager": "Node Package Manager",
73807364
"http-and-the-web-standards-model": "HTTP and the Web Standards Model",
73817365
"rest-api-and-web-services": "REST API and Web Services",
@@ -7390,10 +7374,16 @@
73907374
"back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam"
73917375
},
73927376
"module-intros": {
7393-
"nodejs-core-libraries": {
7377+
"introduction-to-nodejs": {
73947378
"note": "Coming Late 2026",
73957379
"intro": [
7396-
"In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz."
7380+
"In this module, you will learn the basics of working with Node.js."
7381+
]
7382+
},
7383+
"nodejs-core-modules": {
7384+
"note": "Coming Late 2026",
7385+
"intro": [
7386+
"In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz."
73977387
]
73987388
},
73997389
"node-package-manager": {
@@ -7470,6 +7460,24 @@
74707460
}
74717461
},
74727462
"blocks": {
7463+
"lecture-working-with-nodejs-and-event-driven-architecture": {
7464+
"title": "Working with NodeJS and event driven architecture",
7465+
"intro": [
7466+
"Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend."
7467+
]
7468+
},
7469+
"review-node-js-core-modules": {
7470+
"title": "Node JS Core Modules Review",
7471+
"intro": [
7472+
"Review Node JS Core Modules concepts to prepare for the upcoming quiz."
7473+
]
7474+
},
7475+
"review-node-js-intro": {
7476+
"title": "NodeJS Intro Review",
7477+
"intro": [
7478+
"Review the basics of NodeJS to prepare for the upcoming quiz."
7479+
]
7480+
},
74737481
"quiz-node-js-intro": {
74747482
"title": "NodeJS Intro Quiz",
74757483
"intro": ["Test what you have learned about NodeJS in this quiz."]
@@ -8419,6 +8427,13 @@
84198427
"In this workshop, you'll use Flexbox to build a responsive photo gallery webpage."
84208428
]
84218429
},
8430+
"lab-pricing-plans-layout": {
8431+
"title": "Design a Pricing Plans Layout Page",
8432+
"intro": [
8433+
"In this lab, you'll use flexbox to create a common three-card tier layout.",
8434+
"You'll practice aligning elements using flexbox properties like <code>flex</code>, <code>flex-grow</code>, <code>order</code>, and more."
8435+
]
8436+
},
84228437
"lab-page-of-playing-cards": {
84238438
"title": "Build a Page of Playing Cards",
84248439
"intro": [
@@ -8792,46 +8807,38 @@
87928807
"zh-a1-module-discussing-team-skills": "Discussing Team Skills"
87938808
},
87948809
"module-intros": {
8795-
"zh-a1-module-introduction-and-certification-overview": {
8796-
"note": "Coming Winter 2025",
8797-
"intro": ["PLACEHOLDER: Write the module intro here."]
8798-
},
8799-
"zh-a1-module-initials-and-finals": {
8800-
"note": "Coming Winter 2025",
8801-
"intro": ["PLACEHOLDER: Write the module intro here."]
8802-
},
8803-
"zh-a1-module-greetings-and-basic-introductions": {
8804-
"note": "Coming Winter 2025",
8805-
"intro": ["PLACEHOLDER: Write the module intro here."]
8806-
},
8807-
"zh-a1-module-asking-and-giving-basic-information": {
8808-
"note": "Coming Winter 2025",
8809-
"intro": ["PLACEHOLDER: Write the module intro here."]
8810-
},
88118810
"zh-a1-module-introducing-others": {
8812-
"note": "Coming Winter 2025",
8813-
"intro": ["PLACEHOLDER: Write the module intro here."]
8811+
"note": "Coming 2026",
8812+
"intro": [
8813+
"In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age."
8814+
]
88148815
},
88158816
"zh-a1-module-getting-to-know-the-team": {
8816-
"note": "Coming Winter 2025",
8817-
"intro": ["PLACEHOLDER: Write the module intro here."]
8817+
"note": "Coming 2026",
8818+
"intro": [
8819+
"In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues."
8820+
]
88188821
},
88198822
"zh-a1-module-talking-about-personal-skills": {
8820-
"note": "Coming Winter 2025",
8821-
"intro": ["PLACEHOLDER: Write the module intro here."]
8823+
"note": "Coming 2026",
8824+
"intro": [
8825+
"In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills."
8826+
]
88228827
},
88238828
"zh-a1-module-discussing-team-skills": {
8824-
"note": "Coming Winter 2025",
8825-
"intro": ["PLACEHOLDER: Write the module intro here."]
8829+
"note": "Coming 2026",
8830+
"intro": [
8831+
"In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts."
8832+
]
88268833
}
88278834
},
88288835
"blocks": {
88298836
"zh-a1-learn-certification-introduction": {
88308837
"title": "Certification Introduction",
88318838
"intro": ["", ""]
88328839
},
8833-
"zh-a1-learn-single-finals": {
8834-
"title": "Single Finals",
8840+
"zh-a1-learn-simple-finals": {
8841+
"title": "Simple Finals",
88358842
"intro": ["", ""]
88368843
},
88378844
"zh-a1-learn-initials": {

client/i18n/locales/chinese-traditional/translations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@
208208
"core-certs-heading": "推薦課程(測試版):",
209209
"learn-english-heading": "學習面向開發者的英語課程:",
210210
"learn-spanish-heading": "Learn Professional Spanish:",
211+
"learn-chinese-heading": "Learn Professional Chinese:",
211212
"professional-certs-heading": "專業認證:",
212213
"interview-prep-heading": "爲開發人員面試求職做好準備:",
213214
"legacy-curriculum-heading": "我們已存檔的課程:",
@@ -1115,6 +1116,7 @@
11151116
"issued": "發佈日期",
11161117
"fulltext": "<0>特證明</0> <1>{{user}}</1> <2>已完成</2> <3>{{title}}</3> <4>開發者認證課程,日期爲 {{time}}</4>,<5>約 {{completionTime}} 課時</5>",
11171118
"fulltextNoHours": "<0>特證明</0> <1>{{user}}</1> <2>已完成</2> <3>{{title}}</3> <4>開發者認證課程,日期爲 {{time}}</4>",
1119+
"fulltextLanguageExam": "<0>This certifies that</0> <1>{{user}}</1> <2>has successfully passed the</2> <3>{{title}}</3> <4>exam on {{time}}</4> <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.</5>",
11181120
"quincy-larson-signature": "Quincy Larson 的簽名",
11191121
"julia-liuson-signature": "Julia Liuson 的簽名",
11201122
"project": {

0 commit comments

Comments
 (0)