Skip to content

Commit 86a30a2

Browse files
Merge pull request #32 from topcoder-platform/PROD-2456_orig-course
PROD-2456 Add Back Orig Responsive Web Design -> dev
2 parents 73e980b + bd46454 commit 86a30a2

File tree

1,052 files changed

+172554
-47
lines changed

Some content is hidden

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

1,052 files changed

+172554
-47
lines changed

api-server/src/server/middlewares/request-authorization.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ export default function getRequestAuthorisation({
7373
const { origin } = getRedirectParams(req);
7474
const { path } = req;
7575
if (!isAllowedPath(path)) {
76-
console.log('##### path:', path);
7776
const { accessToken, error, jwt } = getAccessTokenFromRequest(
7877
req,
7978
jwtSecret

client/i18n/locales/english/intro.json

Lines changed: 65 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -80,31 +80,36 @@
8080
"intro": [
8181
"This is one of the required projects to earn your certification.",
8282
"For this project, you will build a tribute page for a subject of your choosing, fictional or real."
83-
] },
83+
]
84+
},
8485
"build-a-personal-portfolio-webpage-project": {
8586
"title": "Personal Portfolio Webpage",
8687
"intro": [
8788
"This is one of the required projects to earn your certification.",
8889
"For this project, you will build your own personal portfolio page."
89-
] },
90+
]
91+
},
9092
"build-a-product-landing-page-project": {
9193
"title": "Product Landing Page",
9294
"intro": [
9395
"This is one of the required projects to earn your certification.",
9496
"For this project, you will build a product landing page to market a product of your choice."
95-
] },
97+
]
98+
},
9699
"build-a-survey-form-project": {
97100
"title": "Survey Form",
98101
"intro": [
99102
"This is one of the required projects to earn your certification.",
100103
"For this project, you will build a survey form to collect data from your users."
101-
] },
104+
]
105+
},
102106
"build-a-technical-documentation-page-project": {
103107
"title": "Technical Documentation Page",
104108
"intro": [
105109
"This is one of the required projects to earn your certification.",
106110
"For this project, you will build a technical documentation page to serve as instruction or reference for a topic."
107-
] },
111+
]
112+
},
108113
"learn-html-by-building-a-cat-photo-app": {
109114
"title": "Learn HTML by Building a Cat Photo App",
110115
"intro": [
@@ -181,24 +186,66 @@
181186
"In this course, you'll use typography to build a nutrition label webpage. You'll learn how to style text, adjust line height, and position your text using CSS."
182187
]
183188
},
184-
"learn-css-transforms-by-building-a-penguin": { "title": "Learn CSS Transforms by Building a Penguin", "intro": [
185-
"You can transform HTML elements to create appealing designs that draw your reader's eye. You can use transforms to rotate elements, scale them, and more.",
186-
"In this course, you'll build a penguin. You'll use CSS transforms to position and resize the parts of your penguin, create a background, and animate your work."
187-
] },
188-
"learn-css-animation-by-building-a-ferris-wheel": { "title": "Learn CSS Animation by Building a Ferris Wheel", "intro": [
189-
"You can use CSS animation to draw attention to specific sections of your webpage and make it more engaging.",
190-
"In this course, you'll build a Ferris wheel. You'll learn how to use CSS to animate elements, transform them, and adjust their speed."
191-
] },
192-
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": { "title": "Learn More About CSS Pseudo Selectors By Building A Balance Sheet", "intro": [
193-
"You can use CSS pseudo selectors to change specific HTML elements.",
194-
"In this course, you'll build a balance sheet using pseudo selectors. You'll learn how to change the style of an element when you hover over it with your mouse, and trigger other events on your webpage."
195-
] },
189+
"learn-css-transforms-by-building-a-penguin": {
190+
"title": "Learn CSS Transforms by Building a Penguin",
191+
"intro": [
192+
"You can transform HTML elements to create appealing designs that draw your reader's eye. You can use transforms to rotate elements, scale them, and more.",
193+
"In this course, you'll build a penguin. You'll use CSS transforms to position and resize the parts of your penguin, create a background, and animate your work."
194+
]
195+
},
196+
"learn-css-animation-by-building-a-ferris-wheel": {
197+
"title": "Learn CSS Animation by Building a Ferris Wheel",
198+
"intro": [
199+
"You can use CSS animation to draw attention to specific sections of your webpage and make it more engaging.",
200+
"In this course, you'll build a Ferris wheel. You'll learn how to use CSS to animate elements, transform them, and adjust their speed."
201+
]
202+
},
203+
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": {
204+
"title": "Learn More About CSS Pseudo Selectors By Building A Balance Sheet",
205+
"intro": [
206+
"You can use CSS pseudo selectors to change specific HTML elements.",
207+
"In this course, you'll build a balance sheet using pseudo selectors. You'll learn how to change the style of an element when you hover over it with your mouse, and trigger other events on your webpage."
208+
]
209+
},
196210
"learn-css-colors-by-building-a-set-of-colored-markers": {
197211
"title": "Learn CSS Colors by Building a Set of Colored Markers",
198212
"intro": [
199213
"Selecting the correct colors for your webpage can greatly improve the aesthetic appeal to your readers.",
200214
"In this course, you'll build a set of colored markers. You'll learn different ways to set color values and how to pair colors with each other."
201-
] }
215+
]
216+
}
217+
}
218+
},
219+
"2022/responsive-web-design-qa": {
220+
"title": "(New) Responsive Web Design QA",
221+
"intro": [
222+
"In this Responsive Web Design Certification, you'll learn the languages that developers use to build webpages: HTML (Hypertext Markup Language) for content, and CSS (Cascading Style Sheets) for design.",
223+
"First, you'll build a cat photo app to learn the basics of HTML and CSS. Later, you'll learn modern techniques like CSS variables by building a penguin, and best practices for accessibility by building a web form.",
224+
"Finally, you'll learn how to make webpages that respond to different screen sizes by building a Twitter card with Flexbox, and a complex blog layout with CSS Grid."
225+
],
226+
"note": "Note: Some browser extensions, such as ad-blockers and dark mode extensions can interfere with the tests. If you face issues, we recommend disabling extensions that modify the content or layout of pages, while taking the course.",
227+
"blocks": {
228+
"build-a-personal-portfolio-webpage-project-qa": {
229+
"title": "Personal Portfolio Webpage QA",
230+
"intro": [
231+
"This is one of the required projects to earn your certification.",
232+
"For this project, you will build your own personal portfolio page."
233+
]
234+
},
235+
"learn-html-by-building-a-cat-photo-app-qa": {
236+
"title": "Learn HTML by Building a Cat Photo App QA",
237+
"intro": [
238+
"HTML tags give a webpage its structure. You can use HTML tags to add photos, buttons, and other elements to your webpage.",
239+
"In this course, you'll learn the most common HTML tags by building your own cat photo app."
240+
]
241+
},
242+
"learn-basic-css-by-building-a-cafe-menu-qa": {
243+
"title": "Learn Basic CSS by Building a Cafe Menu QA",
244+
"intro": [
245+
"CSS tells the browser how to display your webpage. You can use CSS to set the color, font, size, and other aspects of HTML elements.",
246+
"In this course, you'll learn CSS by designing a menu page for a cafe webpage."
247+
]
248+
}
202249
}
203250
},
204251
"javascript-algorithms-and-data-structures": {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: Responsive Web Design QA
3+
superBlock: 2022/responsive-web-design-qa
4+
certification: responsive-web-design-qa
5+
---
6+
7+
## Introduction to Responsive Web Design
8+
9+
Welcome to Responsive Web Design!
10+
11+
Let's first take a look at what is in the scope of Responsive Web Design (and what is not).
12+
The Web part of Responsive Web Design means that the content you are creating is designed to be delivered over the web to users' browsers. To do this, you will need to learn the language that browsers use to describe web pages: HTML (Hypertext Markup Language) for content, and CSS (Cascading Style Sheets) for design.
13+
14+
That brings us to design. Web Design focuses on how websites should look and behave to the end user. There are plenty of additional aspects to websites, including how to host a website so people can access it, how to protect your websites and store your users' data, and the ethos behind what should go on a website in the first place. These are somewhat harder to teach, but do require a good understanding of the capabilities of the web in modern contexts.
15+
16+
And what of the word Responsive? Well, that brings us to the idea of modern contexts. In today's world, websites are expected to be just as accessible on laptops, tablets and phones. If you compare your user experience on a document-editing program on a computer versus a document-editing program on a mobile, the features on mobile are likely to be far more constrained. This applies in some way to websites as well, but developers have found interesting ways to adapt to the mobile experience, not in the least by harnessing powerful features built for flexible (a.k.a responsive) web displays such as CSS `flexbox` and CSS `grid`.
17+
18+
Ready to learn about good design practices for the web? Let's get started!
19+
20+
[Begin Course](https://www.freecodecamp.org/learn/responsive-web-design-qa/basic-html-and-html5/)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
title: Introduction to the Learn Basic CSS by Building a Cafe Menu Project QA
3+
block: Learn Basic CSS by Building a Cafe Menu QA
4+
superBlock: Responsive Web Design QA
5+
---
6+
7+
## Introduction to the Learn Basic CSS by Building a Cafe Menu Project
8+
9+
This is a test for the new project-based curriculum.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
title: Introduction to the Learn HTML by Building a Cat Photo App Project QA
3+
block: Learn HTML by Building a Cat Photo App QA
4+
superBlock: Responsive Web Design QA
5+
---
6+
7+
## Introduction to the Learn HTML by Building a Cat Photo App Project
8+
9+
This is a test for the new project-based curriculum.

client/src/resources/cert-and-project-map.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const { showUpcomingChanges } = config;
66
const responsiveWebBase =
77
'/learn/responsive-web-design/responsive-web-design-projects';
88
const responsiveWeb22Base = '/learn/2022/responsive-web-design';
9+
const responsiveWeb22BaseQA = '/learn/2022/responsive-web-design-qa';
910
const jsAlgoBase =
1011
'/learn/javascript-algorithms-and-data-structures/' +
1112
'javascript-algorithms-and-data-structures-projects';
@@ -332,7 +333,22 @@ const certMap = [
332333
}
333334
]
334335
},
335-
336+
{
337+
id: 'aaaaaaaaaaaaaaaaaaaaaaaa',
338+
title: 'Responsive Web Design QA',
339+
certSlug: SuperBlocks.RespWebDesignQA,
340+
flag: 'isRespWebDesignQACert',
341+
projects: [
342+
{
343+
id: 'bbbbbbbbbbbbbbbbbbbbbbbb',
344+
title: 'Build a Personal Portfolio Webpage QA',
345+
link: getResponsiveWebDesignPathQA(
346+
'build-a-personal-portfolio-webpage-qa'
347+
),
348+
certSlug: SuperBlocks.RespWebDesignQA
349+
}
350+
]
351+
},
336352
{
337353
id: '561abd10cb81ac38a17513bc',
338354
title: 'JavaScript Algorithms and Data Structures',
@@ -720,6 +736,10 @@ function getResponsiveWebDesignPath(project: string) {
720736
return `${responsiveWeb22Base}/${project}-project/${project}`;
721737
}
722738

739+
function getResponsiveWebDesignPathQA(project: string) {
740+
return `${responsiveWeb22BaseQA}/${project}-project/${project}`;
741+
}
742+
723743
function getJavaScriptAlgoPath(project: string) {
724744
return showUpcomingChanges
725745
? `${jsAlgo22Base}/${project}-project/${project}`

client/utils/help-category-map.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
"learn-typography-by-building-a-nutrition-label": "HTML-CSS",
8888
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": "HTML-CSS",
8989
"build-a-personal-portfolio-webpage-project": "HTML-CSS",
90+
"build-a-personal-portfolio-webpage-project-qa": "HTML-CSS",
9091
"build-a-product-landing-page-project": "HTML-CSS",
9192
"build-a-survey-form-project": "HTML-CSS",
9293
"build-a-technical-documentation-page-project": "HTML-CSS",

config/certification-settings.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export const certTypes = {
33
backEnd: 'isBackEndCert',
44
dataVis: 'isDataVisCert',
55
respWebDesign: 'isRespWebDesignCert',
6+
respWebDesignQA: 'isRespWebDesignQACert',
67
frontEndDevLibs: 'isFrontEndLibsCert',
78
dataVis2018: 'is2018DataVisCert',
89
jsAlgoDataStruct: 'isJsAlgoDataStructCert',
@@ -19,6 +20,7 @@ export const certTypes = {
1920

2021
export enum SuperBlocks {
2122
RespWebDesignNew = '2022/responsive-web-design',
23+
RespWebDesignQA = '2022/responsive-web-design-qa',
2224
RespWebDesign = 'responsive-web-design',
2325
JsAlgoDataStruct = 'javascript-algorithms-and-data-structures',
2426
JsAlgoDataStructNew = '2022/javascript-algorithms-and-data-structures',
@@ -41,6 +43,7 @@ export const certIds = {
4143
legacyInfosecQaId: '561add10cb82ac38a17213bc',
4244
legacyFullStackId: '561add10cb82ac38a17213bd',
4345
respWebDesignId: '561add10cb82ac38a17513bc',
46+
respWebDesignQAId: 'aaaaaaaaaaaaaaaaaaaaaaaa',
4447
frontEndDevLibsId: '561acd10cb82ac38a17513bc',
4548
dataVis2018Id: '5a553ca864b52e1d8bceea14',
4649
jsAlgoDataStructId: '561abd10cb81ac38a17513bc',
@@ -60,6 +63,7 @@ export const completionHours = {
6063
[certTypes.infosecQa]: 300,
6164
[certTypes.fullStack]: 1800,
6265
[certTypes.respWebDesign]: 300,
66+
[certTypes.respWebDesignQA]: 1,
6367
[certTypes.frontEndDevLibs]: 300,
6468
[certTypes.jsAlgoDataStruct]: 300,
6569
[certTypes.dataVis2018]: 300,
@@ -84,7 +88,7 @@ export const certSlugTypeMap = {
8488

8589
// modern
8690
[SuperBlocks.RespWebDesign]: certTypes.respWebDesign,
87-
[SuperBlocks.RespWebDesignNew]: certTypes.respWebDesign,
91+
[SuperBlocks.RespWebDesignNew]: certTypes.respWebDesignQA,
8892
[SuperBlocks.JsAlgoDataStruct]: certTypes.jsAlgoDataStruct,
8993
[SuperBlocks.JsAlgoDataStructNew]: certTypes.jsAlgoDataStruct,
9094
[SuperBlocks.FrontEndDevLibs]: certTypes.frontEndDevLibs,
@@ -122,6 +126,7 @@ export const superBlockCertTypeMap = {
122126
// post-modern
123127
// TODO: use enum
124128
[SuperBlocks.RespWebDesignNew]: certTypes.respWebDesign,
129+
[SuperBlocks.RespWebDesignQA]: certTypes.respWebDesignQA,
125130
[SuperBlocks.JsAlgoDataStructNew]: certTypes.jsAlgoDataStruct
126131
};
127132

@@ -132,6 +137,7 @@ export const certTypeIdMap = {
132137
[certTypes.infosecQa]: certIds.legacyInfosecQaId,
133138
[certTypes.fullStack]: certIds.legacyFullStackId,
134139
[certTypes.respWebDesign]: certIds.respWebDesignId,
140+
[certTypes.respWebDesignQA]: certIds.respWebDesignQAId,
135141
[certTypes.frontEndDevLibs]: certIds.frontEndDevLibsId,
136142
[certTypes.jsAlgoDataStruct]: certIds.jsAlgoDataStructId,
137143
[certTypes.dataVis2018]: certIds.dataVis2018Id,
@@ -151,6 +157,7 @@ export const certTypeTitleMap = {
151157
[certTypes.infosecQa]: 'Legacy Information Security and Quality Assurance',
152158
[certTypes.fullStack]: 'Legacy Full Stack',
153159
[certTypes.respWebDesign]: 'Responsive Web Design',
160+
[certTypes.respWebDesignQA]: 'Responsive Web Design QA',
154161
[certTypes.frontEndDevLibs]: 'Front End Development Libraries',
155162
[certTypes.jsAlgoDataStruct]: 'JavaScript Algorithms and Data Structures',
156163
[certTypes.dataVis2018]: 'Data Visualization',

curriculum-server/source-curriculum.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,21 @@ interface Curriculum {
66
[key: string]: unknown;
77
}
88

9-
const curriculumList = Object.keys(curriculum as Curriculum).map(key => {
9+
const curriculumList: Array<Curriculum> = Object.keys(curriculum as Curriculum)
10+
.map(key => {
1011
if (key === '2022/responsive-web-design') {
1112
return { '2022-responsive-web-design': (curriculum as Curriculum)[key] };
13+
} else if (key === '2022/responsive-web-design-qa') {
14+
return { '2022-responsive-web-design-qa': (curriculum as Curriculum)[key] };
1215
} else {
1316
return { [key]: (curriculum as Curriculum)[key] };
1417
}
1518
});
1619

17-
const patchedCurriculum = curriculumList.reduce((prev, curr) => {
18-
return { ...prev, ...curr };
19-
}, {});
20+
const patchedCurriculum = curriculumList
21+
.reduce((prev, curr) => {
22+
return { ...prev, ...curr };
23+
}, {});
2024

2125
void fs
2226
.mkdir('data', { recursive: true })
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "Build a Personal Portfolio Webpage Project QA",
3+
"isUpcomingChange": false,
4+
"usesMultifileEditor": true,
5+
"order": 19,
6+
"time": "30 hours",
7+
"template": "",
8+
"required": [],
9+
"superBlock": "2022/responsive-web-design-qa",
10+
"challengeOrder": [
11+
[
12+
"bbbbbbbbbbbbbbbbbbbbbbbb",
13+
"Build a Personal Portfolio Webpage QA"
14+
]
15+
]}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "Learn Basic CSS by Building a Cafe Menu QA",
3+
"isUpcomingChange": false,
4+
"usesMultifileEditor": true,
5+
"hasEditableBoundaries": true,
6+
"dashedName": "learn-basic-css-by-building-a-cafe-menu-qa",
7+
"order": 1,
8+
"time": "5 hours",
9+
"template": "",
10+
"required": [],
11+
"superBlock": "2022/responsive-web-design-qa",
12+
"challengeOrder": [
13+
[
14+
"eeeeeeeeeeeeeeeeeeeeeeee",
15+
"Step 1"
16+
],
17+
[
18+
"ffffffffffffffffffffffff",
19+
"Step 2"
20+
]
21+
]}

0 commit comments

Comments
 (0)