From d02bb663c4ebfb442f4e321b279375cdc508caff Mon Sep 17 00:00:00 2001 From: Tom <20648924+moT01@users.noreply.github.com> Date: Thu, 4 May 2023 01:46:58 -0500 Subject: [PATCH] refactor(curriculum): move helpCategory to block meta.json file (#50265) * refactor: move helpCategory to block meta * fix: test? --- client/utils/challenge-types.js | 3 - client/utils/help-category-map.json | 136 --- .../_meta/advanced-node-and-express/meta.json | 4 +- .../challenges/_meta/algorithms/meta.json | 4 +- .../_meta/applied-accessibility/meta.json | 4 +- .../_meta/applied-visual-design/meta.json | 4 +- .../meta.json | 3 +- .../_meta/basic-algorithm-scripting/meta.json | 4 +- .../challenges/_meta/basic-css/meta.json | 4 +- .../_meta/basic-data-structures/meta.json | 4 +- .../_meta/basic-html-and-html5/meta.json | 4 +- .../_meta/basic-javascript/meta.json | 4 +- .../_meta/basic-node-and-express/meta.json | 3 +- .../challenges/_meta/bootstrap/meta.json | 4 +- .../build-a-caesars-cipher-project/meta.json | 22 +- .../build-a-cash-register-project/meta.json | 30 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 30 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 30 +- .../meta.json | 4 +- .../build-a-survey-form-project/meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 30 +- .../build-a-tribute-page-project/meta.json | 4 +- .../meta.json | 4 +- .../build-three-math-games-project/meta.json | 4 +- .../meta.json | 1 + .../challenges/_meta/css-flexbox/meta.json | 4 +- .../challenges/_meta/css-grid/meta.json | 4 +- .../challenges/_meta/d3-dashboard/meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 3 +- .../_meta/data-structures/meta.json | 4 +- .../data-visualization-projects/meta.json | 4 +- .../data-visualization-with-d3/meta.json | 139 ++- .../challenges/_meta/debugging/meta.json | 4 +- curriculum/challenges/_meta/es6/meta.json | 4 +- .../meta.json | 4 +- .../_meta/functional-programming/meta.json | 4 +- .../_meta/how-neural-networks-work/meta.json | 4 +- .../information-security-projects/meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- curriculum/challenges/_meta/jquery/meta.json | 4 +- .../_meta/json-apis-and-ajax/meta.json | 4 +- .../meta.json | 1 + .../meta.json | 1 + .../meta.json | 4 +- .../meta.json | 1 + .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 1 + .../meta.json | 1 + .../meta.json | 1 + .../meta.json | 1 + .../meta.json | 1 + .../meta.json | 3 +- .../meta.json | 1 + .../meta.json | 3 +- .../meta.json | 3 +- .../meta.json | 3 +- .../meta.json | 4 +- .../meta.json | 1 + .../learn-exponents-and-logarithms/meta.json | 1 + .../meta.json | 1 + .../meta.json | 1 + .../learn-fractions-and-decimals/meta.json | 1 + .../meta.json | 4 +- .../learn-functions-and-graphing/meta.json | 1 + .../meta.json | 4 +- .../meta.json | 1 + .../_meta/learn-how-to-solve-for-x/meta.json | 1 + .../meta.json | 1 + .../meta.json | 3 +- .../meta.json | 1 + .../meta.json | 3 +- .../_meta/learn-linear-functions/meta.json | 1 + .../meta.json | 1 + .../meta.json | 1 + .../learn-nano-by-building-a-castle/meta.json | 4 +- .../meta.json | 1 + .../_meta/learn-quadratic-equations/meta.json | 1 + .../learn-ratios-and-proportions/meta.json | 1 + .../meta.json | 1 + .../meta.json | 4 +- .../meta.json | 3 +- .../meta.json | 1 + .../meta.json | 4 +- .../meta.json | 4 +- .../meta.json | 1 + .../meta.json | 1 + .../meta.json | 3 +- .../managing-packages-with-npm/meta.json | 3 +- .../_meta/mongodb-and-mongoose/meta.json | 3 +- curriculum/challenges/_meta/numpy/meta.json | 4 +- .../object-oriented-programming/meta.json | 4 +- .../project-euler-problems-1-to-100/meta.json | 1 + .../meta.json | 817 +++++++++--------- .../meta.json | 1 + .../meta.json | 817 +++++++++--------- .../meta.json | 657 +++++++------- .../_meta/python-for-everybody/meta.json | 3 +- .../python-for-penetration-testing/meta.json | 4 +- .../meta.json | 4 +- .../quality-assurance-projects/meta.json | 4 +- .../_meta/react-and-redux/meta.json | 4 +- curriculum/challenges/_meta/react/meta.json | 4 +- curriculum/challenges/_meta/redux/meta.json | 4 +- .../_meta/regular-expressions/meta.json | 4 +- .../meta.json | 4 +- .../responsive-web-design-projects/meta.json | 4 +- .../challenges/_meta/rosetta-code/meta.json | 4 +- curriculum/challenges/_meta/sass/meta.json | 4 +- .../meta.json | 3 +- .../_meta/take-home-projects/meta.json | 4 +- .../challenges/_meta/tensorflow/meta.json | 4 +- .../top-build-a-recipe-project/meta.json | 3 +- .../meta.json | 3 +- .../_meta/top-learn-css-foundations/meta.json | 3 +- .../top-learn-html-foundations/meta.json | 15 +- curriculum/get-challenges.js | 10 +- docs/curriculum-file-structure.md | 1 - .../create-project.ts | 33 +- .../helpers/project-metadata.ts | 1 + tools/scripts/build/external-data-schema.js | 6 + 135 files changed, 1647 insertions(+), 1488 deletions(-) delete mode 100644 client/utils/help-category-map.json diff --git a/client/utils/challenge-types.js b/client/utils/challenge-types.js index cad47d4894c..4542b2ab215 100644 --- a/client/utils/challenge-types.js +++ b/client/utils/challenge-types.js @@ -108,6 +108,3 @@ exports.submitTypes = { [theOdinProject]: 'tests', [colab]: 'project.backEnd' }; - -// determine which help forum questions should be posted to -exports.helpCategoryMap = require('./help-category-map.json'); diff --git a/client/utils/help-category-map.json b/client/utils/help-category-map.json deleted file mode 100644 index d318afc4c43..00000000000 --- a/client/utils/help-category-map.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "basic-html-and-html5": "HTML-CSS", - "basic-css": "HTML-CSS", - "applied-visual-design": "HTML-CSS", - "applied-accessibility": "HTML-CSS", - "responsive-web-design-principles": "HTML-CSS", - "css-flexbox": "HTML-CSS", - "css-grid": "HTML-CSS", - "learn-the-css-box-model-by-building-a-rothko-painting": "HTML-CSS", - "learn-intermediate-css-by-building-a-picasso-painting": "HTML-CSS", - "learn-responsive-web-design-by-building-a-piano": "HTML-CSS", - "responsive-web-design-projects": "HTML-CSS", - "basic-javascript": "JavaScript", - "es6": "JavaScript", - "regular-expressions": "JavaScript", - "debugging": "JavaScript", - "basic-data-structures": "JavaScript", - "basic-algorithm-scripting": "JavaScript", - "object-oriented-programming": "JavaScript", - "functional-programming": "JavaScript", - "intermediate-algorithm-scripting": "JavaScript", - "javascript-algorithms-and-data-structures-projects": "JavaScript", - "bootstrap": "HTML-CSS", - "jquery": "JavaScript", - "sass": "HTML-CSS", - "react": "JavaScript", - "redux": "JavaScript", - "react-and-redux": "JavaScript", - "front-end-development-libraries-projects": "JavaScript", - "data-visualization-with-d3": "JavaScript", - "json-apis-and-ajax": "JavaScript", - "data-visualization-projects": "JavaScript", - "managing-packages-with-npm": "JavaScript", - "basic-node-and-express": "JavaScript", - "mongodb-and-mongoose": "JavaScript", - "back-end-development-and-apis-projects": "JavaScript", - "information-security-with-helmetjs": "JavaScript", - "quality-assurance-and-testing-with-chai": "JavaScript", - "advanced-node-and-express": "JavaScript", - "quality-assurance-projects": "JavaScript", - "information-security-projects": "JavaScript", - "algorithms": "JavaScript", - "data-structures": "JavaScript", - "take-home-projects": "JavaScript", - "top-learn-html-foundations": "HTML-CSS", - "top-learn-css-foundations": "HTML-CSS", - "top-learn-css-foundations-projects": "HTML-CSS", - "top-build-a-recipe-project": "HTML-CSS", - "rosetta-code": "JavaScript", - "project-euler-problems-1-to-100": "JavaScript", - "project-euler-problems-101-to-200": "JavaScript", - "project-euler-problems-201-to-300": "JavaScript", - "project-euler-problems-301-to-400": "JavaScript", - "project-euler-problems-401-to-480": "JavaScript", - "scientific-computing-with-python": "Python", - "scientific-computing-with-python-projects": "Python", - "data-analysis-with-python": "Python", - "data-analysis-with-python-projects": "Python", - "machine-learning-with-python": "Python", - "machine-learning-with-python-projects": "Python", - "python-for-everybody": "Python", - "tensorflow": "Python", - "how-neural-networks-work": "Python", - "numpy": "Python", - "data-analysis-with-python-course": "Python", - "python-for-penetration-testing": "Python", - "learn-html-by-building-a-cat-photo-app": "HTML-CSS", - "learn-basic-css-by-building-a-cafe-menu": "HTML-CSS", - "learn-css-variables-by-building-a-city-skyline": "HTML-CSS", - "basic-javascript-rpg-game": "JavaScript", - "functional-programming-spreadsheet": "JavaScript", - "intermediate-javascript-calorie-counter": "JavaScript", - "d3-dashboard": "JavaScript", - "learn-bash-by-building-a-boilerplate": "Backend Development", - "learn-relational-databases-by-building-a-mario-database": "Backend Development", - "celestial-bodies-database": "Backend Development", - "learn-bash-scripting-by-building-five-programs": "Backend Development", - "learn-bash-and-sql-by-building-a-bike-rental-shop": "Backend Development", - "salon-appointment-scheduler": "Backend Development", - "learn-sql-by-building-a-student-database-part-1": "Backend Development", - "learn-sql-by-building-a-student-database-part-2": "Backend Development", - "learn-advanced-bash-by-building-a-kitty-ipsum-translator": "Backend Development", - "world-cup-database": "Backend Development", - "learn-nano-by-building-a-castle": "Backend Development", - "learn-git-by-building-an-sql-reference-object": "Backend Development", - "periodic-table-database": "Backend Development", - "number-guessing-game": "Backend Development", - "learn-accessibility-by-building-a-quiz": "HTML-CSS", - "learn-css-colors-by-building-a-set-of-colored-markers": "HTML-CSS", - "learn-html-forms-by-building-a-registration-form": "HTML-CSS", - "learn-css-animation-by-building-a-ferris-wheel": "HTML-CSS", - "learn-css-flexbox-by-building-a-photo-gallery": "HTML-CSS", - "learn-css-grid-by-building-a-magazine": "HTML-CSS", - "learn-css-transforms-by-building-a-penguin": "HTML-CSS", - "learn-typography-by-building-a-nutrition-label": "HTML-CSS", - "learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": "HTML-CSS", - "build-a-personal-portfolio-webpage-project": "HTML-CSS", - "build-a-product-landing-page-project": "HTML-CSS", - "build-a-survey-form-project": "HTML-CSS", - "build-a-technical-documentation-page-project": "HTML-CSS", - "build-a-tribute-page-project": "HTML-CSS", - "learn-basic-javascript-by-building-a-role-playing-game": "JavaScript", - "learn-form-validation-by-building-a-calorie-counter": "JavaScript", - "learn-functional-programming-by-building-a-spreadsheet": "JavaScript", - "build-a-caesars-cipher-project": "JavaScript", - "build-a-cash-register-project": "JavaScript", - "build-a-palindrome-checker-project": "JavaScript", - "build-a-roman-numeral-converter-project": "JavaScript", - "build-a-telephone-number-validator-project": "JavaScript", - "learn-modern-javascript-methods-by-building-football-team-cards": "JavaScript", - "learn-advanced-array-methods-by-building-a-statistics-calculator": "JavaScript", - "build-a-multi-function-calculator-project": "Python", - "build-a-graphing-calculator-project": "Python", - "build-three-math-games-project": "Python", - "build-a-financial-calculator-project": "Python", - "build-a-data-graph-explorer-project": "Python", - "learn-ratios-and-proportions": "Python", - "learn-how-to-solve-for-x": "Python", - "learn-applications-of-linear-systems": "Python", - "learn-business-applications-of-college-algebra": "Python", - "learn-common-factors-and-square-roots": "Python", - "learn-exponents-and-logarithms": "Python", - "learn-fractions-and-decimals": "Python", - "learn-functions-and-graphing": "Python", - "learn-how-to-graph-systems-of-equations": "Python", - "learn-how-to-solve-systems-of-equations": "Python", - "learn-linear-functions": "Python", - "learn-parent-graphs-and-polynomials": "Python", - "learn-quadratic-equations": "Python", - "learn-simple-and-compound-interest": "Python", - "college-algebra-with-python-conclusion": "Python", - "learn-data-structures-by-building-a-shopping-cart": "JavaScript", - "learn-regular-expressions-by-building-a-spam-filter": "JavaScript", - "learn-basic-algorithmic-thinking-by-building-a-number-sorter": "JavaScript", - "learn-fetch-and-promises-by-building-an-fcc-authors-page": "JavaScript" -} diff --git a/curriculum/challenges/_meta/advanced-node-and-express/meta.json b/curriculum/challenges/_meta/advanced-node-and-express/meta.json index 70b21a8d6ad..00b4cda3441 100644 --- a/curriculum/challenges/_meta/advanced-node-and-express/meta.json +++ b/curriculum/challenges/_meta/advanced-node-and-express/meta.json @@ -2,6 +2,7 @@ "name": "Advanced Node and Express", "isUpcomingChange": false, "dashedName": "advanced-node-and-express", + "helpCategory": "JavaScript", "order": 1, "time": "5 hours", "template": "", @@ -96,4 +97,5 @@ "589fc832f9fc0f352b528e79", "Send and Display Chat Messages" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/algorithms/meta.json b/curriculum/challenges/_meta/algorithms/meta.json index 6a032c862f9..6a7d3f739e3 100644 --- a/curriculum/challenges/_meta/algorithms/meta.json +++ b/curriculum/challenges/_meta/algorithms/meta.json @@ -2,6 +2,7 @@ "name": "Algorithms", "isUpcomingChange": false, "dashedName": "algorithms", + "helpCategory": "JavaScript", "order": 0, "time": "", "template": "", @@ -48,4 +49,5 @@ "61abc7ebf3029b56226de5b6", "Implement Binary Search" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/applied-accessibility/meta.json b/curriculum/challenges/_meta/applied-accessibility/meta.json index b0242507e7d..b697400f633 100644 --- a/curriculum/challenges/_meta/applied-accessibility/meta.json +++ b/curriculum/challenges/_meta/applied-accessibility/meta.json @@ -2,6 +2,7 @@ "name": "Applied Accessibility", "isUpcomingChange": false, "dashedName": "applied-accessibility", + "helpCategory": "HTML-CSS", "order": 3, "time": "5 hours", "template": "", @@ -96,4 +97,5 @@ "587d7790367417b2b2512ab1", "Use tabindex to Specify the Order of Keyboard Focus for Several Elements" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/applied-visual-design/meta.json b/curriculum/challenges/_meta/applied-visual-design/meta.json index 8377a93085d..5adb3567f62 100644 --- a/curriculum/challenges/_meta/applied-visual-design/meta.json +++ b/curriculum/challenges/_meta/applied-visual-design/meta.json @@ -2,6 +2,7 @@ "name": "Applied Visual Design", "isUpcomingChange": false, "dashedName": "applied-visual-design", + "helpCategory": "HTML-CSS", "order": 2, "time": "5 hours", "template": "", @@ -216,4 +217,5 @@ "587d78a9367417b2b2512aea", "Make Motion More Natural Using a Bezier Curve" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json b/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json index 2bd4ace1040..7bf43dbc2b8 100644 --- a/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json +++ b/curriculum/challenges/_meta/back-end-development-and-apis-projects/meta.json @@ -2,6 +2,7 @@ "name": "Back End Development and APIs Projects", "isUpcomingChange": false, "dashedName": "back-end-development-and-apis-projects", + "helpCategory": "JavaScript", "order": 3, "time": "150 hours", "superBlock": "back-end-development-and-apis", @@ -27,4 +28,4 @@ "File Metadata Microservice" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json b/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json index 9e3d3e3e4be..de51d0f1c91 100644 --- a/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json +++ b/curriculum/challenges/_meta/basic-algorithm-scripting/meta.json @@ -2,6 +2,7 @@ "name": "Basic Algorithm Scripting", "isUpcomingChange": false, "dashedName": "basic-algorithm-scripting", + "helpCategory": "JavaScript", "order": 5, "time": "50 hours", "template": "", @@ -72,4 +73,5 @@ "a9bd25c716030ec90084d8a1", "Chunky Monkey" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/basic-css/meta.json b/curriculum/challenges/_meta/basic-css/meta.json index ed2d3447ef2..f11bd466c3a 100644 --- a/curriculum/challenges/_meta/basic-css/meta.json +++ b/curriculum/challenges/_meta/basic-css/meta.json @@ -2,6 +2,7 @@ "name": "Basic CSS", "isUpcomingChange": false, "dashedName": "basic-css", + "helpCategory": "HTML-CSS", "order": 1, "time": "5 hours", "template": "", @@ -184,4 +185,5 @@ "5a9d72ad424fe3d0e10cad16", "Use a media query to change a variable" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/basic-data-structures/meta.json b/curriculum/challenges/_meta/basic-data-structures/meta.json index 4a53c0ce37f..e28f3857884 100644 --- a/curriculum/challenges/_meta/basic-data-structures/meta.json +++ b/curriculum/challenges/_meta/basic-data-structures/meta.json @@ -2,6 +2,7 @@ "name": "Basic Data Structures", "isUpcomingChange": false, "dashedName": "basic-data-structures", + "helpCategory": "JavaScript", "order": 4, "time": "1 hour", "template": "", @@ -88,4 +89,5 @@ "587d7b7d367417b2b2512b1f", "Modify an Array Stored in an Object" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/basic-html-and-html5/meta.json b/curriculum/challenges/_meta/basic-html-and-html5/meta.json index 98791626c6b..6e293b32e62 100644 --- a/curriculum/challenges/_meta/basic-html-and-html5/meta.json +++ b/curriculum/challenges/_meta/basic-html-and-html5/meta.json @@ -2,6 +2,7 @@ "name": "Basic HTML and HTML5", "isUpcomingChange": false, "dashedName": "basic-html-and-html5", + "helpCategory": "HTML-CSS", "order": 0, "time": "5 hours", "template": "", @@ -120,4 +121,5 @@ "587d78aa367417b2b2512aec", "Define the Head and Body of an HTML Document" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/basic-javascript/meta.json b/curriculum/challenges/_meta/basic-javascript/meta.json index 6c58d20dd33..9391832d87f 100644 --- a/curriculum/challenges/_meta/basic-javascript/meta.json +++ b/curriculum/challenges/_meta/basic-javascript/meta.json @@ -2,6 +2,7 @@ "name": "Basic JavaScript", "isUpcomingChange": false, "dashedName": "basic-javascript", + "helpCategory": "JavaScript", "order": 0, "time": "10 hours", "template": "", @@ -460,4 +461,5 @@ "5cc0bd7a49b71cb96132e54c", "Use Recursion to Create a Range of Numbers" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/basic-node-and-express/meta.json b/curriculum/challenges/_meta/basic-node-and-express/meta.json index 8fccbfe5a89..f94a6159343 100644 --- a/curriculum/challenges/_meta/basic-node-and-express/meta.json +++ b/curriculum/challenges/_meta/basic-node-and-express/meta.json @@ -2,6 +2,7 @@ "name": "Basic Node and Express", "isUpcomingChange": false, "dashedName": "basic-node-and-express", + "helpCategory": "JavaScript", "order": 1, "time": "5 hours", "superBlock": "back-end-development-and-apis", @@ -55,4 +56,4 @@ "Get Data from POST Requests" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/bootstrap/meta.json b/curriculum/challenges/_meta/bootstrap/meta.json index a445f13f32b..9dbe3e091c9 100644 --- a/curriculum/challenges/_meta/bootstrap/meta.json +++ b/curriculum/challenges/_meta/bootstrap/meta.json @@ -2,6 +2,7 @@ "name": "Bootstrap", "isUpcomingChange": false, "dashedName": "bootstrap", + "helpCategory": "HTML-CSS", "order": 0, "time": "5 hours", "template": "", @@ -136,4 +137,5 @@ "bad87fee1348bd9aec908857", "Use Comments to Clarify Code" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-caesars-cipher-project/meta.json b/curriculum/challenges/_meta/build-a-caesars-cipher-project/meta.json index e25c4f2c04e..dbf6f9cbde1 100644 --- a/curriculum/challenges/_meta/build-a-caesars-cipher-project/meta.json +++ b/curriculum/challenges/_meta/build-a-caesars-cipher-project/meta.json @@ -1,15 +1,17 @@ { - "name": "Build a Caesars Cipher Project", - "isUpcomingChange": true, - "usesMultifileEditor": false, - "order": 17, - "time": "30 hours", - "template": "", - "required": [], - "superBlock": "2022/javascript-algorithms-and-data-structures", - "challengeOrder": [ + "name": "Build a Caesars Cipher Project", + "isUpcomingChange": true, + "usesMultifileEditor": false, + "helpCategory": "JavaScript", + "order": 17, + "time": "30 hours", + "template": "", + "required": [], + "superBlock": "2022/javascript-algorithms-and-data-structures", + "challengeOrder": [ [ "56533eb9ac21ba0edf2244e2", "Build a Caesars Cipher" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-cash-register-project/meta.json b/curriculum/challenges/_meta/build-a-cash-register-project/meta.json index 2d1b9a5c063..9233b69cb21 100644 --- a/curriculum/challenges/_meta/build-a-cash-register-project/meta.json +++ b/curriculum/challenges/_meta/build-a-cash-register-project/meta.json @@ -1,15 +1,17 @@ { - "name": "Build a Cash Register Project", - "isUpcomingChange": true, - "usesMultifileEditor": false, - "order": 14, - "time": "30 hours", - "template": "", - "required": [], - "superBlock": "2022/javascript-algorithms-and-data-structures", - "challengeOrder": [ - [ - "aa2e6f85cab2ab736c9a9b24", - "Build a Cash Register" - ] - ]} + "name": "Build a Cash Register Project", + "isUpcomingChange": true, + "usesMultifileEditor": false, + "helpCategory": "JavaScript", + "order": 14, + "time": "30 hours", + "template": "", + "required": [], + "superBlock": "2022/javascript-algorithms-and-data-structures", + "challengeOrder": [ + [ + "aa2e6f85cab2ab736c9a9b24", + "Build a Cash Register" + ] + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-celestial-bodies-database-project/meta.json b/curriculum/challenges/_meta/build-a-celestial-bodies-database-project/meta.json index 88ecc38e2bd..cdcf4b18a56 100644 --- a/curriculum/challenges/_meta/build-a-celestial-bodies-database-project/meta.json +++ b/curriculum/challenges/_meta/build-a-celestial-bodies-database-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Celestial Bodies Database Project", "isUpcomingChange": false, "order": 2, + "helpCategory": "Backend Development", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "5f1a4ef5d5d6b5ab580fc6ae", "Build a Celestial Bodies Database" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-data-graph-explorer-project/meta.json b/curriculum/challenges/_meta/build-a-data-graph-explorer-project/meta.json index c6a0e236d07..c4a23874cc5 100644 --- a/curriculum/challenges/_meta/build-a-data-graph-explorer-project/meta.json +++ b/curriculum/challenges/_meta/build-a-data-graph-explorer-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Data Graph Explorer Project", "isUpcomingChange": false, "order": 19, + "helpCategory": "Python", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "63d8402e39c73468b059cd43", "Build a Data Graph Explorer" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-financial-calculator-project/meta.json b/curriculum/challenges/_meta/build-a-financial-calculator-project/meta.json index 72552edd4cf..91bb5c23be5 100644 --- a/curriculum/challenges/_meta/build-a-financial-calculator-project/meta.json +++ b/curriculum/challenges/_meta/build-a-financial-calculator-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Financial Calculator Project", "isUpcomingChange": false, "order": 17, + "helpCategory": "Python", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "63d8401e39c73468b059cd42", "Build a Financial Calculator" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-graphing-calculator-project/meta.json b/curriculum/challenges/_meta/build-a-graphing-calculator-project/meta.json index aef5e093f45..140cfee6912 100644 --- a/curriculum/challenges/_meta/build-a-graphing-calculator-project/meta.json +++ b/curriculum/challenges/_meta/build-a-graphing-calculator-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Graphing Calculator Project", "isUpcomingChange": false, "order": 11, + "helpCategory": "Python", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "63d83ffd39c73468b059cd40", "Build a Graphing Calculator" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-multi-function-calculator-project/meta.json b/curriculum/challenges/_meta/build-a-multi-function-calculator-project/meta.json index e1345c7dede..5e47c1a0e13 100644 --- a/curriculum/challenges/_meta/build-a-multi-function-calculator-project/meta.json +++ b/curriculum/challenges/_meta/build-a-multi-function-calculator-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Multi-Function Calculator Project", "isUpcomingChange": false, "order": 6, + "helpCategory": "Python", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "63d83ff239c73468b059cd3f", "Build a Multi-Function Calculator" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-number-guessing-game-project/meta.json b/curriculum/challenges/_meta/build-a-number-guessing-game-project/meta.json index 6456dcd700f..e1152f5adc9 100644 --- a/curriculum/challenges/_meta/build-a-number-guessing-game-project/meta.json +++ b/curriculum/challenges/_meta/build-a-number-guessing-game-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Number Guessing Game Project", "isUpcomingChange": false, "order": 13, + "helpCategory": "Backend Development", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "602da04c22201c65d2a019f4", "Build a Number Guessing Game" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-palindrome-checker-project/meta.json b/curriculum/challenges/_meta/build-a-palindrome-checker-project/meta.json index eb8d83795df..c7f813364b1 100644 --- a/curriculum/challenges/_meta/build-a-palindrome-checker-project/meta.json +++ b/curriculum/challenges/_meta/build-a-palindrome-checker-project/meta.json @@ -1,15 +1,17 @@ { - "name": "Build a Palindrome Checker Project", - "isUpcomingChange": true, - "usesMultifileEditor": false, - "order": 3, - "time": "30 hours", - "template": "", - "required": [], - "superBlock": "2022/javascript-algorithms-and-data-structures", - "challengeOrder": [ - [ - "aaa48de84e1ecc7c742e1124", - "Build a Palindrome Checker" - ] - ]} + "name": "Build a Palindrome Checker Project", + "isUpcomingChange": true, + "usesMultifileEditor": false, + "helpCategory": "JavaScript", + "order": 3, + "time": "30 hours", + "template": "", + "required": [], + "superBlock": "2022/javascript-algorithms-and-data-structures", + "challengeOrder": [ + [ + "aaa48de84e1ecc7c742e1124", + "Build a Palindrome Checker" + ] + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-periodic-table-database-project/meta.json b/curriculum/challenges/_meta/build-a-periodic-table-database-project/meta.json index d6814a81f1e..e6efb4a0039 100644 --- a/curriculum/challenges/_meta/build-a-periodic-table-database-project/meta.json +++ b/curriculum/challenges/_meta/build-a-periodic-table-database-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Periodic Table Database Project", "isUpcomingChange": false, "order": 12, + "helpCategory": "Backend Development", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "602d9ff222201c65d2a019f2", "Build a Periodic Table Database" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json b/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json index 7cb8cbf29dd..4bfa867903c 100644 --- a/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json +++ b/curriculum/challenges/_meta/build-a-personal-portfolio-webpage-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Personal Portfolio Webpage Project", "isUpcomingChange": false, "usesMultifileEditor": true, + "helpCategory": "HTML-CSS", "order": 19, "time": "30 hours", "template": "", @@ -12,4 +13,5 @@ "bd7158d8c242eddfaeb5bd13", "Build a Personal Portfolio Webpage" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json b/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json index cd4ca51b6bf..abae168424c 100644 --- a/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json +++ b/curriculum/challenges/_meta/build-a-product-landing-page-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Product Landing Page Project", "isUpcomingChange": false, "usesMultifileEditor": true, + "helpCategory": "HTML-CSS", "order": 16, "time": "30 hours", "template": "", @@ -12,4 +13,5 @@ "587d78af367417b2b2512b04", "Build a Product Landing Page" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-roman-numeral-converter-project/meta.json b/curriculum/challenges/_meta/build-a-roman-numeral-converter-project/meta.json index e8b38ed5773..4bdfd14c29c 100644 --- a/curriculum/challenges/_meta/build-a-roman-numeral-converter-project/meta.json +++ b/curriculum/challenges/_meta/build-a-roman-numeral-converter-project/meta.json @@ -1,15 +1,17 @@ { - "name": "Build a Roman Numeral Converter Project", - "isUpcomingChange": true, - "usesMultifileEditor": false, - "order": 6, - "time": "30 hours", - "template": "", - "required": [], - "superBlock": "2022/javascript-algorithms-and-data-structures", - "challengeOrder": [ - [ - "a7f4d8f2483413a6ce226cac", - "Build a Roman Numeral Converter" - ] - ]} + "name": "Build a Roman Numeral Converter Project", + "isUpcomingChange": true, + "usesMultifileEditor": false, + "helpCategory": "JavaScript", + "order": 6, + "time": "30 hours", + "template": "", + "required": [], + "superBlock": "2022/javascript-algorithms-and-data-structures", + "challengeOrder": [ + [ + "a7f4d8f2483413a6ce226cac", + "Build a Roman Numeral Converter" + ] + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-salon-appointment-scheduler-project/meta.json b/curriculum/challenges/_meta/build-a-salon-appointment-scheduler-project/meta.json index 151e920c3e7..8185305f94d 100644 --- a/curriculum/challenges/_meta/build-a-salon-appointment-scheduler-project/meta.json +++ b/curriculum/challenges/_meta/build-a-salon-appointment-scheduler-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Salon Appointment Scheduler Project", "isUpcomingChange": false, "order": 9, + "helpCategory": "Backend Development", "time": "30 hours", "template": "", "required": [], @@ -11,4 +12,5 @@ "5f87ac112ae598023a42df1a", "Build a Salon Appointment Scheduler" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-survey-form-project/meta.json b/curriculum/challenges/_meta/build-a-survey-form-project/meta.json index 3d238816275..032a879e6e3 100644 --- a/curriculum/challenges/_meta/build-a-survey-form-project/meta.json +++ b/curriculum/challenges/_meta/build-a-survey-form-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Survey Form Project", "isUpcomingChange": false, "usesMultifileEditor": true, + "helpCategory": "HTML-CSS", "order": 4, "time": "30 hours", "template": "", @@ -12,4 +13,5 @@ "587d78af367417b2b2512b03", "Build a Survey Form" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json b/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json index 86fb120d20f..fe2bb83360d 100644 --- a/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json +++ b/curriculum/challenges/_meta/build-a-technical-documentation-page-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Technical Documentation Page Project", "isUpcomingChange": false, "usesMultifileEditor": true, + "helpCategory": "HTML-CSS", "order": 13, "time": "30 hours", "template": "", @@ -12,4 +13,5 @@ "587d78b0367417b2b2512b05", "Build a Technical Documentation Page" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-telephone-number-validator-project/meta.json b/curriculum/challenges/_meta/build-a-telephone-number-validator-project/meta.json index b9857da1fc3..e6322749b1e 100644 --- a/curriculum/challenges/_meta/build-a-telephone-number-validator-project/meta.json +++ b/curriculum/challenges/_meta/build-a-telephone-number-validator-project/meta.json @@ -1,15 +1,17 @@ { - "name": "Build a Telephone Number Validator Project", - "isUpcomingChange": true, - "usesMultifileEditor": false, - "order": 10, - "time": "30 hours", - "template": "", - "required": [], - "superBlock": "2022/javascript-algorithms-and-data-structures", - "challengeOrder": [ - [ - "aff0395860f5d3034dc0bfc9", - "Build a Telephone Number Validator" - ] - ]} + "name": "Build a Telephone Number Validator Project", + "isUpcomingChange": true, + "usesMultifileEditor": false, + "helpCategory": "JavaScript", + "order": 10, + "time": "30 hours", + "template": "", + "required": [], + "superBlock": "2022/javascript-algorithms-and-data-structures", + "challengeOrder": [ + [ + "aff0395860f5d3034dc0bfc9", + "Build a Telephone Number Validator" + ] + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json b/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json index 020dc337d5f..c0903b18388 100644 --- a/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json +++ b/curriculum/challenges/_meta/build-a-tribute-page-project/meta.json @@ -2,6 +2,7 @@ "name": "Build a Tribute Page Project", "isUpcomingChange": false, "usesMultifileEditor": true, + "helpCategory": "HTML-CSS", "order": 9, "time": "30 hours", "template": "", @@ -12,4 +13,5 @@ "bd7158d8c442eddfaeb5bd18", "Build a Tribute Page" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-a-world-cup-database-project/meta.json b/curriculum/challenges/_meta/build-a-world-cup-database-project/meta.json index 95d26a56edc..73991429da6 100644 --- a/curriculum/challenges/_meta/build-a-world-cup-database-project/meta.json +++ b/curriculum/challenges/_meta/build-a-world-cup-database-project/meta.json @@ -1,6 +1,7 @@ { "name": "Build a World Cup Database Project", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 6, "time": "30 hours", "template": "", @@ -11,4 +12,5 @@ "5f9771307d4d22b9d2b75a94", "Build a World Cup Database" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/build-three-math-games-project/meta.json b/curriculum/challenges/_meta/build-three-math-games-project/meta.json index c0530cc3719..d7182341ce0 100644 --- a/curriculum/challenges/_meta/build-three-math-games-project/meta.json +++ b/curriculum/challenges/_meta/build-three-math-games-project/meta.json @@ -1,6 +1,7 @@ { "name": "Build Three Math Games Project", "isUpcomingChange": false, + "helpCategory": "Python", "order": 13, "time": "30 hours", "template": "", @@ -11,4 +12,5 @@ "63d8401039c73468b059cd41", "Build Three Math Games" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/college-algebra-with-python-conclusion/meta.json b/curriculum/challenges/_meta/college-algebra-with-python-conclusion/meta.json index 4c7974ee9f7..3aef368fa9d 100644 --- a/curriculum/challenges/_meta/college-algebra-with-python-conclusion/meta.json +++ b/curriculum/challenges/_meta/college-algebra-with-python-conclusion/meta.json @@ -2,6 +2,7 @@ "name": "College Algebra with Python: Conclusion", "isUpcomingChange": false, "dashedName": "college-algebra-with-python-conclusion", + "helpCategory": "Python", "order": 18, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/css-flexbox/meta.json b/curriculum/challenges/_meta/css-flexbox/meta.json index 801cc94bdae..1e32e72f390 100644 --- a/curriculum/challenges/_meta/css-flexbox/meta.json +++ b/curriculum/challenges/_meta/css-flexbox/meta.json @@ -2,6 +2,7 @@ "name": "CSS Flexbox", "isUpcomingChange": false, "dashedName": "css-flexbox", + "helpCategory": "HTML-CSS", "order": 5, "time": "5 hours", "template": "", @@ -76,4 +77,5 @@ "587d78af367417b2b2512b00", "Use the align-self Property" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/css-grid/meta.json b/curriculum/challenges/_meta/css-grid/meta.json index 2b2c9851a25..4c4152aba83 100644 --- a/curriculum/challenges/_meta/css-grid/meta.json +++ b/curriculum/challenges/_meta/css-grid/meta.json @@ -2,6 +2,7 @@ "name": "CSS Grid", "isUpcomingChange": false, "dashedName": "css-grid", + "helpCategory": "HTML-CSS", "order": 6, "time": "5 hours", "template": "", @@ -96,4 +97,5 @@ "5a94fe8569fb03452672e464", "Create Grids within Grids" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/d3-dashboard/meta.json b/curriculum/challenges/_meta/d3-dashboard/meta.json index f9f5c6e26b3..6479f1f60a2 100644 --- a/curriculum/challenges/_meta/d3-dashboard/meta.json +++ b/curriculum/challenges/_meta/d3-dashboard/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "d3-dashboard", + "helpCategory": "JavaScript", "order": 3, "time": "5 hours", "template": "", @@ -598,4 +599,5 @@ "5d8a4cfbe6b6180ed9a1ca72", "Step 146" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json b/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json index 3f3c16fb841..405019eaa53 100644 --- a/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json +++ b/curriculum/challenges/_meta/data-analysis-with-python-course/meta.json @@ -2,6 +2,7 @@ "name": "Data Analysis with Python Course", "isUpcomingChange": false, "dashedName": "data-analysis-with-python-course", + "helpCategory": "Python", "order": 0, "time": "15 hours", "template": "", @@ -120,4 +121,5 @@ "5e9a093a74c4063ca6f7c167", "Python Iteration and Modules" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json b/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json index f9b65cb74d6..24584e8ee9a 100644 --- a/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json +++ b/curriculum/challenges/_meta/data-analysis-with-python-projects/meta.json @@ -2,6 +2,7 @@ "name": "Data Analysis with Python Projects", "isUpcomingChange": false, "dashedName": "data-analysis-with-python-projects", + "helpCategory": "Python", "order": 2, "time": "150 hours", "superBlock": "data-analysis-with-python", @@ -27,4 +28,4 @@ "Sea Level Predictor" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/data-structures/meta.json b/curriculum/challenges/_meta/data-structures/meta.json index f3416838d69..f96f57993e9 100644 --- a/curriculum/challenges/_meta/data-structures/meta.json +++ b/curriculum/challenges/_meta/data-structures/meta.json @@ -2,6 +2,7 @@ "name": "Data Structures", "isUpcomingChange": false, "dashedName": "data-structures", + "helpCategory": "JavaScript", "order": 1, "time": "", "template": "", @@ -200,4 +201,5 @@ "587d825d367417b2b2512c96", "Depth-First Search" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/data-visualization-projects/meta.json b/curriculum/challenges/_meta/data-visualization-projects/meta.json index 4e4646beda6..32efcacdcaa 100644 --- a/curriculum/challenges/_meta/data-visualization-projects/meta.json +++ b/curriculum/challenges/_meta/data-visualization-projects/meta.json @@ -2,6 +2,7 @@ "name": "Data Visualization Projects", "isUpcomingChange": false, "dashedName": "data-visualization-projects", + "helpCategory": "JavaScript", "order": 2, "time": "150 hours", "template": "", @@ -28,4 +29,5 @@ "587d7fa6367417b2b2512bc0", "Visualize Data with a Treemap Diagram" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/data-visualization-with-d3/meta.json b/curriculum/challenges/_meta/data-visualization-with-d3/meta.json index 71b68b78167..76570d52f1b 100644 --- a/curriculum/challenges/_meta/data-visualization-with-d3/meta.json +++ b/curriculum/challenges/_meta/data-visualization-with-d3/meta.json @@ -2,6 +2,7 @@ "name": "Data Visualization with D3", "isUpcomingChange": false, "dashedName": "data-visualization-with-d3", + "helpCategory": "JavaScript", "order": 0, "time": "5 hours", "template": "", @@ -12,39 +13,121 @@ ], "superBlock": "data-visualization", "challengeOrder": [ - ["587d7fa6367417b2b2512bc2", "Add Document Elements with D3"], - ["587d7fa6367417b2b2512bc3", "Select a Group of Elements with D3"], - ["587d7fa7367417b2b2512bc4", "Work with Data in D3"], - ["587d7fa7367417b2b2512bc5", "Work with Dynamic Data in D3"], - ["587d7fa7367417b2b2512bc6", "Add Inline Styling to Elements"], - ["587d7fa7367417b2b2512bc7", "Change Styles Based on Data"], - ["587d7fa7367417b2b2512bc8", "Add Classes with D3"], - ["587d7fa8367417b2b2512bc9", "Update the Height of an Element Dynamically"], - ["587d7fa8367417b2b2512bca", "Change the Presentation of a Bar Chart"], - ["587d7fa8367417b2b2512bcb", "Learn About SVG in D3"], - ["587d7fa8367417b2b2512bcc", "Display Shapes with SVG"], - ["587d7fa8367417b2b2512bcd", "Create a Bar for Each Data Point in the Set"], + [ + "587d7fa6367417b2b2512bc2", + "Add Document Elements with D3" + ], + [ + "587d7fa6367417b2b2512bc3", + "Select a Group of Elements with D3" + ], + [ + "587d7fa7367417b2b2512bc4", + "Work with Data in D3" + ], + [ + "587d7fa7367417b2b2512bc5", + "Work with Dynamic Data in D3" + ], + [ + "587d7fa7367417b2b2512bc6", + "Add Inline Styling to Elements" + ], + [ + "587d7fa7367417b2b2512bc7", + "Change Styles Based on Data" + ], + [ + "587d7fa7367417b2b2512bc8", + "Add Classes with D3" + ], + [ + "587d7fa8367417b2b2512bc9", + "Update the Height of an Element Dynamically" + ], + [ + "587d7fa8367417b2b2512bca", + "Change the Presentation of a Bar Chart" + ], + [ + "587d7fa8367417b2b2512bcb", + "Learn About SVG in D3" + ], + [ + "587d7fa8367417b2b2512bcc", + "Display Shapes with SVG" + ], + [ + "587d7fa8367417b2b2512bcd", + "Create a Bar for Each Data Point in the Set" + ], [ "587d7fa9367417b2b2512bce", "Dynamically Set the Coordinates for Each Bar" ], - ["587d7fa9367417b2b2512bcf", "Dynamically Change the Height of Each Bar"], - ["587d7fa9367417b2b2512bd0", "Invert SVG Elements"], - ["587d7fa9367417b2b2512bd1", "Change the Color of an SVG Element"], - ["587d7faa367417b2b2512bd2", "Add Labels to D3 Elements"], - ["587d7faa367417b2b2512bd3", "Style D3 Labels"], - ["587d7faa367417b2b2512bd4", "Add a Hover Effect to a D3 Element"], - ["587d7faa367417b2b2512bd6", "Add a Tooltip to a D3 Element"], - ["587d7fab367417b2b2512bd7", "Create a Scatterplot with SVG Circles"], - ["587d7fab367417b2b2512bd8", "Add Attributes to the Circle Elements"], - ["587d7fab367417b2b2512bd9", "Add Labels to Scatter Plot Circles"], - ["587d7fab367417b2b2512bda", "Create a Linear Scale with D3"], - ["587d7fac367417b2b2512bdb", "Set a Domain and a Range on a Scale"], + [ + "587d7fa9367417b2b2512bcf", + "Dynamically Change the Height of Each Bar" + ], + [ + "587d7fa9367417b2b2512bd0", + "Invert SVG Elements" + ], + [ + "587d7fa9367417b2b2512bd1", + "Change the Color of an SVG Element" + ], + [ + "587d7faa367417b2b2512bd2", + "Add Labels to D3 Elements" + ], + [ + "587d7faa367417b2b2512bd3", + "Style D3 Labels" + ], + [ + "587d7faa367417b2b2512bd4", + "Add a Hover Effect to a D3 Element" + ], + [ + "587d7faa367417b2b2512bd6", + "Add a Tooltip to a D3 Element" + ], + [ + "587d7fab367417b2b2512bd7", + "Create a Scatterplot with SVG Circles" + ], + [ + "587d7fab367417b2b2512bd8", + "Add Attributes to the Circle Elements" + ], + [ + "587d7fab367417b2b2512bd9", + "Add Labels to Scatter Plot Circles" + ], + [ + "587d7fab367417b2b2512bda", + "Create a Linear Scale with D3" + ], + [ + "587d7fac367417b2b2512bdb", + "Set a Domain and a Range on a Scale" + ], [ "587d7fac367417b2b2512bdc", "Use the d3.max and d3.min Functions to Find Minimum and Maximum Values in a Dataset" ], - ["587d7fac367417b2b2512bdd", "Use Dynamic Scales"], - ["587d7fac367417b2b2512bde", "Use a Pre-Defined Scale to Place Elements"], - ["587d7fad367417b2b2512bdf", "Add Axes to a Visualization"] - ]} + [ + "587d7fac367417b2b2512bdd", + "Use Dynamic Scales" + ], + [ + "587d7fac367417b2b2512bde", + "Use a Pre-Defined Scale to Place Elements" + ], + [ + "587d7fad367417b2b2512bdf", + "Add Axes to a Visualization" + ] + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/debugging/meta.json b/curriculum/challenges/_meta/debugging/meta.json index ac4ebdd8751..41bf361d1a6 100644 --- a/curriculum/challenges/_meta/debugging/meta.json +++ b/curriculum/challenges/_meta/debugging/meta.json @@ -2,6 +2,7 @@ "name": "Debugging", "isUpcomingChange": false, "dashedName": "debugging", + "helpCategory": "JavaScript", "order": 3, "time": "1 hour", "template": "", @@ -56,4 +57,5 @@ "587d7b86367417b2b2512b3d", "Prevent Infinite Loops with a Valid Terminal Condition" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/es6/meta.json b/curriculum/challenges/_meta/es6/meta.json index fa11e53c135..61682248ac7 100644 --- a/curriculum/challenges/_meta/es6/meta.json +++ b/curriculum/challenges/_meta/es6/meta.json @@ -2,6 +2,7 @@ "name": "ES6", "isUpcomingChange": false, "dashedName": "es6", + "helpCategory": "JavaScript", "order": 1, "time": "5 hours", "template": "", @@ -124,4 +125,5 @@ "5cdafbe72913098997531682", "Handle a Rejected Promise with catch" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json b/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json index da95c741f43..c96e8fa21f5 100644 --- a/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json +++ b/curriculum/challenges/_meta/front-end-development-libraries-projects/meta.json @@ -2,6 +2,7 @@ "name": "Front End Development Libraries Projects", "isUpcomingChange": false, "dashedName": "front-end-development-libraries-projects", + "helpCategory": "JavaScript", "order": 6, "time": "150 hours", "template": "", @@ -28,4 +29,5 @@ "bd7158d8c442eddfaeb5bd0f", "Build a 25 + 5 Clock" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/functional-programming/meta.json b/curriculum/challenges/_meta/functional-programming/meta.json index f66cec96cb8..a57014b0e36 100644 --- a/curriculum/challenges/_meta/functional-programming/meta.json +++ b/curriculum/challenges/_meta/functional-programming/meta.json @@ -2,6 +2,7 @@ "name": "Functional Programming", "isUpcomingChange": false, "dashedName": "functional-programming", + "helpCategory": "JavaScript", "order": 7, "time": "5 hours", "template": "", @@ -104,4 +105,5 @@ "587d7dab367417b2b2512b70", "Introduction to Currying and Partial Application" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/how-neural-networks-work/meta.json b/curriculum/challenges/_meta/how-neural-networks-work/meta.json index ef4b26308c2..964105768b2 100644 --- a/curriculum/challenges/_meta/how-neural-networks-work/meta.json +++ b/curriculum/challenges/_meta/how-neural-networks-work/meta.json @@ -2,6 +2,7 @@ "name": "How Neural Networks Work", "isUpcomingChange": false, "dashedName": "how-neural-networks-work", + "helpCategory": "Python", "order": 1, "time": "10 hours", "template": "", @@ -24,4 +25,5 @@ "5e9a0e9ef99a403d019610cd", "How Convolutional Neural Networks work" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/information-security-projects/meta.json b/curriculum/challenges/_meta/information-security-projects/meta.json index ffd3dd18a2f..b5897bf2550 100644 --- a/curriculum/challenges/_meta/information-security-projects/meta.json +++ b/curriculum/challenges/_meta/information-security-projects/meta.json @@ -2,6 +2,7 @@ "name": "Information Security Projects", "isUpcomingChange": false, "dashedName": "information-security-projects", + "helpCategory": "JavaScript", "order": 2, "time": "150 hours", "template": "", @@ -28,4 +29,5 @@ "5e601c775ac9d0ecd8b94aff", "Secure Real Time Multiplayer Game" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json b/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json index 11aef89254b..8a1d07b1966 100644 --- a/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json +++ b/curriculum/challenges/_meta/information-security-with-helmetjs/meta.json @@ -2,6 +2,7 @@ "name": "Information Security with HelmetJS", "isUpcomingChange": false, "dashedName": "information-security-with-helmetjs", + "helpCategory": "JavaScript", "order": 0, "time": "5 hours", "template": "", @@ -64,4 +65,5 @@ "58a25bcff9fc0f352b528e7e", "Hash and Compare Passwords Synchronously" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json b/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json index ec326942ba9..1b24c1ad952 100644 --- a/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json +++ b/curriculum/challenges/_meta/intermediate-algorithm-scripting/meta.json @@ -2,6 +2,7 @@ "name": "Intermediate Algorithm Scripting", "isUpcomingChange": false, "dashedName": "intermediate-algorithm-scripting", + "helpCategory": "JavaScript", "order": 8, "time": "50 hours", "template": "", @@ -92,4 +93,5 @@ "af4afb223120f7348cdfc9fd", "Map the Debris" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json b/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json index 5589df7551b..795bc1f0960 100644 --- a/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json +++ b/curriculum/challenges/_meta/javascript-algorithms-and-data-structures-projects/meta.json @@ -2,6 +2,7 @@ "name": "JavaScript Algorithms and Data Structures Projects", "isUpcomingChange": false, "dashedName": "javascript-algorithms-and-data-structures-projects", + "helpCategory": "JavaScript", "order": 9, "time": "50 hours", "template": "", @@ -28,4 +29,5 @@ "aa2e6f85cab2ab736c9a9b24", "Cash Register" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/jquery/meta.json b/curriculum/challenges/_meta/jquery/meta.json index 20865be7e82..c9b5bd1ee30 100644 --- a/curriculum/challenges/_meta/jquery/meta.json +++ b/curriculum/challenges/_meta/jquery/meta.json @@ -2,6 +2,7 @@ "name": "jQuery", "isUpcomingChange": false, "dashedName": "jquery", + "helpCategory": "JavaScript", "order": 1, "time": "3 hours", "template": "", @@ -87,4 +88,5 @@ "bad87fee1348bd9aecb08826", "Use jQuery to Modify the Entire Page" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/json-apis-and-ajax/meta.json b/curriculum/challenges/_meta/json-apis-and-ajax/meta.json index f7d8b24f9a5..ca853578773 100644 --- a/curriculum/challenges/_meta/json-apis-and-ajax/meta.json +++ b/curriculum/challenges/_meta/json-apis-and-ajax/meta.json @@ -2,6 +2,7 @@ "name": "JSON APIs and AJAX", "isUpcomingChange": false, "dashedName": "json-apis-and-ajax", + "helpCategory": "JavaScript", "order": 1, "time": "2 hours", "template": "", @@ -52,4 +53,5 @@ "587d7faf367417b2b2512be9", "Post Data with the JavaScript XMLHttpRequest Method" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json b/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json index e08459d6766..01b727d12e7 100644 --- a/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json +++ b/curriculum/challenges/_meta/learn-accessibility-by-building-a-quiz/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-accessibility-by-building-a-quiz", + "helpCategory": "HTML-CSS", "order": 8, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-advanced-array-methods-by-building-a-statistics-calculator/meta.json b/curriculum/challenges/_meta/learn-advanced-array-methods-by-building-a-statistics-calculator/meta.json index b43593f0aa1..667df56e2eb 100644 --- a/curriculum/challenges/_meta/learn-advanced-array-methods-by-building-a-statistics-calculator/meta.json +++ b/curriculum/challenges/_meta/learn-advanced-array-methods-by-building-a-statistics-calculator/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-advanced-array-methods-by-building-a-statistics-calculator", + "helpCategory": "JavaScript", "order": 10, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-advanced-bash-by-building-a-kitty-ipsum-translator/meta.json b/curriculum/challenges/_meta/learn-advanced-bash-by-building-a-kitty-ipsum-translator/meta.json index f0c97ea1907..88ddf2818f6 100644 --- a/curriculum/challenges/_meta/learn-advanced-bash-by-building-a-kitty-ipsum-translator/meta.json +++ b/curriculum/challenges/_meta/learn-advanced-bash-by-building-a-kitty-ipsum-translator/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Advanced Bash by Building a Kitty Ipsum Translator", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 7, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "602da0de22201c65d2a019f6", "Build a Kitty Ipsum Translator" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-applications-of-linear-systems/meta.json b/curriculum/challenges/_meta/learn-applications-of-linear-systems/meta.json index 57fc9ed3aa2..0ba2053fe7c 100644 --- a/curriculum/challenges/_meta/learn-applications-of-linear-systems/meta.json +++ b/curriculum/challenges/_meta/learn-applications-of-linear-systems/meta.json @@ -2,6 +2,7 @@ "name": "Learn Applications of Linear Systems", "isUpcomingChange": false, "dashedName": "learn-applications-of-linear-systems", + "helpCategory": "Python", "order": 9, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-bash-and-sql-by-building-a-bike-rental-shop/meta.json b/curriculum/challenges/_meta/learn-bash-and-sql-by-building-a-bike-rental-shop/meta.json index f39348ff160..7a46bf66326 100644 --- a/curriculum/challenges/_meta/learn-bash-and-sql-by-building-a-bike-rental-shop/meta.json +++ b/curriculum/challenges/_meta/learn-bash-and-sql-by-building-a-bike-rental-shop/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Bash and SQL by Building a Bike Rental Shop", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 8, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "5f5b969a05380d2179fe6e18", "Build a Bike Rental Shop" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-bash-by-building-a-boilerplate/meta.json b/curriculum/challenges/_meta/learn-bash-by-building-a-boilerplate/meta.json index d81bb520455..a826a2963a4 100644 --- a/curriculum/challenges/_meta/learn-bash-by-building-a-boilerplate/meta.json +++ b/curriculum/challenges/_meta/learn-bash-by-building-a-boilerplate/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Bash by Building a Boilerplate", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 0, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "5ea8adfab628f68d805bfc5e", "Build a Boilerplate" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-bash-scripting-by-building-five-programs/meta.json b/curriculum/challenges/_meta/learn-bash-scripting-by-building-five-programs/meta.json index d4f9dd1ee05..1ad1434090f 100644 --- a/curriculum/challenges/_meta/learn-bash-scripting-by-building-five-programs/meta.json +++ b/curriculum/challenges/_meta/learn-bash-scripting-by-building-five-programs/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Bash Scripting by Building Five Programs", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 3, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "5f5904ac738bc2fa9efecf5a", "Build Five Programs" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-basic-algorithmic-thinking-by-building-a-number-sorter/meta.json b/curriculum/challenges/_meta/learn-basic-algorithmic-thinking-by-building-a-number-sorter/meta.json index bb0f5b89c68..3e5d13c40b6 100644 --- a/curriculum/challenges/_meta/learn-basic-algorithmic-thinking-by-building-a-number-sorter/meta.json +++ b/curriculum/challenges/_meta/learn-basic-algorithmic-thinking-by-building-a-number-sorter/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-basic-algorithmic-thinking-by-building-a-number-sorter", + "helpCategory": "JavaScript", "order": 9, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json b/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json index da083cf6ca4..b8b9e059079 100644 --- a/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json +++ b/curriculum/challenges/_meta/learn-basic-css-by-building-a-cafe-menu/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-basic-css-by-building-a-cafe-menu", + "helpCategory": "HTML-CSS", "order": 1, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-basic-javascript-by-building-a-role-playing-game/meta.json b/curriculum/challenges/_meta/learn-basic-javascript-by-building-a-role-playing-game/meta.json index b13c88a2b71..9d17d3fcc80 100644 --- a/curriculum/challenges/_meta/learn-basic-javascript-by-building-a-role-playing-game/meta.json +++ b/curriculum/challenges/_meta/learn-basic-javascript-by-building-a-role-playing-game/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-basic-javascript-by-building-a-role-playing-game", + "helpCategory": "JavaScript", "order": 0, "time": "2 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-business-applications-of-college-algebra/meta.json b/curriculum/challenges/_meta/learn-business-applications-of-college-algebra/meta.json index 4e48fdd19dc..7bbac766b37 100644 --- a/curriculum/challenges/_meta/learn-business-applications-of-college-algebra/meta.json +++ b/curriculum/challenges/_meta/learn-business-applications-of-college-algebra/meta.json @@ -2,6 +2,7 @@ "name": "Learn Business Applications of College Algebra", "isUpcomingChange": false, "dashedName": "learn-business-applications-of-college-algebra", + "helpCategory": "Python", "order": 14, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-common-factors-and-square-roots/meta.json b/curriculum/challenges/_meta/learn-common-factors-and-square-roots/meta.json index 5b90f5f08d9..fbe5c442073 100644 --- a/curriculum/challenges/_meta/learn-common-factors-and-square-roots/meta.json +++ b/curriculum/challenges/_meta/learn-common-factors-and-square-roots/meta.json @@ -2,6 +2,7 @@ "name": "Learn Common Factors and Square Roots", "isUpcomingChange": false, "dashedName": "learn-common-factors-and-square-roots", + "helpCategory": "Python", "order": 5, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json b/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json index d5e44bdc454..99d607726d2 100644 --- a/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json +++ b/curriculum/challenges/_meta/learn-css-animation-by-building-a-ferris-wheel/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-css-animation-by-building-a-ferris-wheel", + "helpCategory": "HTML-CSS", "order": 17, "time": "5 hours", "template": "", @@ -127,4 +128,4 @@ "Step 29" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-css-colors-by-building-a-set-of-colored-markers/meta.json b/curriculum/challenges/_meta/learn-css-colors-by-building-a-set-of-colored-markers/meta.json index 4ff8245bd38..e7539105f63 100644 --- a/curriculum/challenges/_meta/learn-css-colors-by-building-a-set-of-colored-markers/meta.json +++ b/curriculum/challenges/_meta/learn-css-colors-by-building-a-set-of-colored-markers/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-css-colors-by-building-a-set-of-colored-markers", + "helpCategory": "HTML-CSS", "order": 2, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json b/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json index 10c17a87f46..e3810816c1c 100644 --- a/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json +++ b/curriculum/challenges/_meta/learn-css-flexbox-by-building-a-photo-gallery/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-css-flexbox-by-building-a-photo-gallery", + "helpCategory": "HTML-CSS", "order": 6, "time": "5 hours", "template": "", @@ -95,4 +96,4 @@ "Step 21" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json b/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json index cd178413032..57bafb1383d 100644 --- a/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json +++ b/curriculum/challenges/_meta/learn-css-grid-by-building-a-magazine/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-css-grid-by-building-a-magazine", + "helpCategory": "HTML-CSS", "order": 15, "time": "5 hours", "template": "", @@ -331,4 +332,4 @@ "Step 80" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json b/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json index 1d919081c35..de1227fb7bc 100644 --- a/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json +++ b/curriculum/challenges/_meta/learn-css-transforms-by-building-a-penguin/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-css-transforms-by-building-a-penguin", + "helpCategory": "HTML-CSS", "order": 18, "time": "5 hours", "template": "", @@ -427,4 +428,4 @@ "Step 104" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json b/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json index 51400e1eebf..fef6a12b259 100644 --- a/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json +++ b/curriculum/challenges/_meta/learn-css-variables-by-building-a-city-skyline/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-css-variables-by-building-a-city-skyline", + "helpCategory": "HTML-CSS", "order": 14, "time": "5 hours", "template": "", @@ -482,4 +483,5 @@ "5d822fd413a79914d39e993e", "Step 118" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-data-structures-by-building-a-shopping-cart/meta.json b/curriculum/challenges/_meta/learn-data-structures-by-building-a-shopping-cart/meta.json index 1745a57ddbf..8e0c665fb92 100644 --- a/curriculum/challenges/_meta/learn-data-structures-by-building-a-shopping-cart/meta.json +++ b/curriculum/challenges/_meta/learn-data-structures-by-building-a-shopping-cart/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-data-structures-by-building-a-shopping-cart", + "helpCategory": "JavaScript", "order": 13, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-exponents-and-logarithms/meta.json b/curriculum/challenges/_meta/learn-exponents-and-logarithms/meta.json index 1706db12ae6..97a467ae855 100644 --- a/curriculum/challenges/_meta/learn-exponents-and-logarithms/meta.json +++ b/curriculum/challenges/_meta/learn-exponents-and-logarithms/meta.json @@ -2,6 +2,7 @@ "name": "Learn Exponents and Logarithms", "isUpcomingChange": false, "dashedName": "learn-exponents-and-logarithms", + "helpCategory": "Python", "order": 16, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-fetch-and-promises-by-building-an-fcc-authors-page/meta.json b/curriculum/challenges/_meta/learn-fetch-and-promises-by-building-an-fcc-authors-page/meta.json index 10f634a3f09..7b70f17d24e 100644 --- a/curriculum/challenges/_meta/learn-fetch-and-promises-by-building-an-fcc-authors-page/meta.json +++ b/curriculum/challenges/_meta/learn-fetch-and-promises-by-building-an-fcc-authors-page/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-fetch-and-promises-by-building-an-fcc-authors-page", + "helpCategory": "JavaScript", "order": 42, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-form-validation-by-building-a-calorie-counter/meta.json b/curriculum/challenges/_meta/learn-form-validation-by-building-a-calorie-counter/meta.json index 21b5f162b4f..fc6af9758d7 100644 --- a/curriculum/challenges/_meta/learn-form-validation-by-building-a-calorie-counter/meta.json +++ b/curriculum/challenges/_meta/learn-form-validation-by-building-a-calorie-counter/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-form-validation-by-building-a-calorie-counter", + "helpCategory": "JavaScript", "order": 1, "time": "2 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-fractions-and-decimals/meta.json b/curriculum/challenges/_meta/learn-fractions-and-decimals/meta.json index 40da1f1cf6b..d74069c0f53 100644 --- a/curriculum/challenges/_meta/learn-fractions-and-decimals/meta.json +++ b/curriculum/challenges/_meta/learn-fractions-and-decimals/meta.json @@ -2,6 +2,7 @@ "name": "Learn Fractions and Decimals", "isUpcomingChange": false, "dashedName": "learn-fractions-and-decimals", + "helpCategory": "Python", "order": 2, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-functional-programming-by-building-a-spreadsheet/meta.json b/curriculum/challenges/_meta/learn-functional-programming-by-building-a-spreadsheet/meta.json index 9144b4f7a59..2e96acf7182 100644 --- a/curriculum/challenges/_meta/learn-functional-programming-by-building-a-spreadsheet/meta.json +++ b/curriculum/challenges/_meta/learn-functional-programming-by-building-a-spreadsheet/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-functional-programming-by-building-a-spreadsheet", + "helpCategory": "JavaScript", "order": 8, "time": "2 hours", "template": "", @@ -575,4 +576,5 @@ "5dc10b8b93704f41d279eb5b", "Step 141" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-functions-and-graphing/meta.json b/curriculum/challenges/_meta/learn-functions-and-graphing/meta.json index aeda26d57dc..81fbae5a00a 100644 --- a/curriculum/challenges/_meta/learn-functions-and-graphing/meta.json +++ b/curriculum/challenges/_meta/learn-functions-and-graphing/meta.json @@ -2,6 +2,7 @@ "name": "Learn Functions and Graphing", "isUpcomingChange": false, "dashedName": "learn-functions-and-graphing", + "helpCategory": "Python", "order": 3, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-git-by-building-an-sql-reference-object/meta.json b/curriculum/challenges/_meta/learn-git-by-building-an-sql-reference-object/meta.json index 1952706d55d..8c5b99caabe 100644 --- a/curriculum/challenges/_meta/learn-git-by-building-an-sql-reference-object/meta.json +++ b/curriculum/challenges/_meta/learn-git-by-building-an-sql-reference-object/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Git by Building an SQL Reference Object", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 11, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "5fa323cdaf6a73463d590659", "Build an SQL Reference Object" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-how-to-graph-systems-of-equations/meta.json b/curriculum/challenges/_meta/learn-how-to-graph-systems-of-equations/meta.json index bd45c6ee47a..5aba97d2fc0 100644 --- a/curriculum/challenges/_meta/learn-how-to-graph-systems-of-equations/meta.json +++ b/curriculum/challenges/_meta/learn-how-to-graph-systems-of-equations/meta.json @@ -2,6 +2,7 @@ "name": "Learn How to Graph Systems of Equations", "isUpcomingChange": false, "dashedName": "learn-how-to-graph-systems-of-equations", + "helpCategory": "Python", "order": 7, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-how-to-solve-for-x/meta.json b/curriculum/challenges/_meta/learn-how-to-solve-for-x/meta.json index 963cae31d54..b62c8265855 100644 --- a/curriculum/challenges/_meta/learn-how-to-solve-for-x/meta.json +++ b/curriculum/challenges/_meta/learn-how-to-solve-for-x/meta.json @@ -2,6 +2,7 @@ "name": "Learn How to Solve for X", "isUpcomingChange": false, "dashedName": "learn-how-to-solve-for-x", + "helpCategory": "Python", "order": 1, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-how-to-solve-systems-of-equations/meta.json b/curriculum/challenges/_meta/learn-how-to-solve-systems-of-equations/meta.json index c5beca08f36..bcd9b45b6f2 100644 --- a/curriculum/challenges/_meta/learn-how-to-solve-systems-of-equations/meta.json +++ b/curriculum/challenges/_meta/learn-how-to-solve-systems-of-equations/meta.json @@ -2,6 +2,7 @@ "name": "Learn How to Solve Systems of Equations", "isUpcomingChange": false, "dashedName": "learn-how-to-solve-systems-of-equations", + "helpCategory": "Python", "order": 8, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json b/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json index 508ba7bd29d..37dcc41f76c 100644 --- a/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json +++ b/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-html-by-building-a-cat-photo-app", + "helpCategory": "HTML-CSS", "order": 0, "time": "5 hours", "template": "", @@ -287,4 +288,4 @@ "Step 69" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json b/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json index 11993a3f6e1..c82471e43fd 100644 --- a/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json +++ b/curriculum/challenges/_meta/learn-html-forms-by-building-a-registration-form/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-html-forms-by-building-a-registration-form", + "helpCategory": "HTML-CSS", "order": 3, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json b/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json index 14555f6d110..fcd3df05c98 100644 --- a/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json +++ b/curriculum/challenges/_meta/learn-intermediate-css-by-building-a-picasso-painting/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-intermediate-css-by-building-a-picasso-painting", + "helpCategory": "HTML-CSS", "order": 11, "time": "5 hours", "template": "", @@ -367,4 +368,4 @@ "Step 89" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-linear-functions/meta.json b/curriculum/challenges/_meta/learn-linear-functions/meta.json index 45ba422bc37..03e8a2f4608 100644 --- a/curriculum/challenges/_meta/learn-linear-functions/meta.json +++ b/curriculum/challenges/_meta/learn-linear-functions/meta.json @@ -2,6 +2,7 @@ "name": "Learn Linear Functions", "isUpcomingChange": false, "dashedName": "learn-linear-functions", + "helpCategory": "Python", "order": 4, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-modern-javascript-methods-by-building-football-team-cards/meta.json b/curriculum/challenges/_meta/learn-modern-javascript-methods-by-building-football-team-cards/meta.json index 0d1a6323762..afa23a1e136 100644 --- a/curriculum/challenges/_meta/learn-modern-javascript-methods-by-building-football-team-cards/meta.json +++ b/curriculum/challenges/_meta/learn-modern-javascript-methods-by-building-football-team-cards/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-modern-javascript-methods-by-building-football-team-cards", + "helpCategory": "JavaScript", "order": 4, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json b/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json index e7d579792c1..20f80045aec 100644 --- a/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json +++ b/curriculum/challenges/_meta/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet", + "helpCategory": "HTML-CSS", "order": 10, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-nano-by-building-a-castle/meta.json b/curriculum/challenges/_meta/learn-nano-by-building-a-castle/meta.json index c27e3dc5626..eb4dcde4677 100644 --- a/curriculum/challenges/_meta/learn-nano-by-building-a-castle/meta.json +++ b/curriculum/challenges/_meta/learn-nano-by-building-a-castle/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Nano by Building a Castle", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 10, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "5f32db63eb37f7e17323f459", "Build a Castle" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-parent-graphs-and-polynomials/meta.json b/curriculum/challenges/_meta/learn-parent-graphs-and-polynomials/meta.json index 2f1c1ede776..d70d3ce9546 100644 --- a/curriculum/challenges/_meta/learn-parent-graphs-and-polynomials/meta.json +++ b/curriculum/challenges/_meta/learn-parent-graphs-and-polynomials/meta.json @@ -2,6 +2,7 @@ "name": "Learn Parent Graphs and Polynomials", "isUpcomingChange": false, "dashedName": "learn-parent-graphs-and-polynomials", + "helpCategory": "Python", "order": 12, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-quadratic-equations/meta.json b/curriculum/challenges/_meta/learn-quadratic-equations/meta.json index 8cee962eef7..10c882f0bbd 100644 --- a/curriculum/challenges/_meta/learn-quadratic-equations/meta.json +++ b/curriculum/challenges/_meta/learn-quadratic-equations/meta.json @@ -2,6 +2,7 @@ "name": "Learn Quadratic Equations", "isUpcomingChange": false, "dashedName": "learn-quadratic-equations", + "helpCategory": "Python", "order": 10, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-ratios-and-proportions/meta.json b/curriculum/challenges/_meta/learn-ratios-and-proportions/meta.json index 926493ef7e2..cf976bd5140 100644 --- a/curriculum/challenges/_meta/learn-ratios-and-proportions/meta.json +++ b/curriculum/challenges/_meta/learn-ratios-and-proportions/meta.json @@ -2,6 +2,7 @@ "name": "Learn Ratios and Proportions", "isUpcomingChange": false, "dashedName": "learn-ratios-and-proportions", + "helpCategory": "Python", "order": 0, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-regular-expressions-by-building-a-spam-filter/meta.json b/curriculum/challenges/_meta/learn-regular-expressions-by-building-a-spam-filter/meta.json index 4920499a723..114d40c8f73 100644 --- a/curriculum/challenges/_meta/learn-regular-expressions-by-building-a-spam-filter/meta.json +++ b/curriculum/challenges/_meta/learn-regular-expressions-by-building-a-spam-filter/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-regular-expressions-by-building-a-spam-filter", + "helpCategory": "JavaScript", "order": 12, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-relational-databases-by-building-a-mario-database/meta.json b/curriculum/challenges/_meta/learn-relational-databases-by-building-a-mario-database/meta.json index 2257d224edd..c1355b402b7 100644 --- a/curriculum/challenges/_meta/learn-relational-databases-by-building-a-mario-database/meta.json +++ b/curriculum/challenges/_meta/learn-relational-databases-by-building-a-mario-database/meta.json @@ -1,6 +1,7 @@ { "name": "Learn Relational Databases by Building a Mario Database", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 1, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "5f2c289f164c29556da632fd", "Build a Mario Database" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json b/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json index f6fc54b77fc..3edb099d70c 100644 --- a/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json +++ b/curriculum/challenges/_meta/learn-responsive-web-design-by-building-a-piano/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-responsive-web-design-by-building-a-piano", + "helpCategory": "HTML-CSS", "order": 12, "time": "5 hours", "template": "", @@ -143,4 +144,4 @@ "Step 33" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-simple-and-compound-interest/meta.json b/curriculum/challenges/_meta/learn-simple-and-compound-interest/meta.json index 8e164866211..0ce1b2f344e 100644 --- a/curriculum/challenges/_meta/learn-simple-and-compound-interest/meta.json +++ b/curriculum/challenges/_meta/learn-simple-and-compound-interest/meta.json @@ -2,6 +2,7 @@ "name": "Learn Simple and Compound Interest", "isUpcomingChange": false, "dashedName": "learn-simple-and-compound-interest", + "helpCategory": "Python", "order": 15, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-1/meta.json b/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-1/meta.json index 333e643b125..5e9a46ff3c2 100644 --- a/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-1/meta.json +++ b/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-1/meta.json @@ -1,6 +1,7 @@ { "name": "Learn SQL by Building a Student Database: Part 1", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 4, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "602da0c222201c65d2a019f5", "Build a Student Database: Part 1" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-2/meta.json b/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-2/meta.json index fe70fa6405f..c3367cd9e2d 100644 --- a/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-2/meta.json +++ b/curriculum/challenges/_meta/learn-sql-by-building-a-student-database-part-2/meta.json @@ -1,6 +1,7 @@ { "name": "Learn SQL by Building a Student Database: Part 2", "isUpcomingChange": false, + "helpCategory": "Backend Development", "order": 5, "time": "5 hours", "template": "", @@ -11,4 +12,5 @@ "618590adb0730ca724e37672", "Build a Student Database: Part 2" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json b/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json index 3fc2298a1f8..8ec1b1e454a 100644 --- a/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json +++ b/curriculum/challenges/_meta/learn-the-css-box-model-by-building-a-rothko-painting/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-the-css-box-model-by-building-a-rothko-painting", + "helpCategory": "HTML-CSS", "order": 5, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json b/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json index a647ab21730..6e588c3a10d 100644 --- a/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json +++ b/curriculum/challenges/_meta/learn-typography-by-building-a-nutrition-label/meta.json @@ -4,6 +4,7 @@ "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-typography-by-building-a-nutrition-label", + "helpCategory": "HTML-CSS", "order": 7, "time": "5 hours", "template": "", diff --git a/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json b/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json index f11889802e1..b8b9c7f21c1 100644 --- a/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json +++ b/curriculum/challenges/_meta/machine-learning-with-python-projects/meta.json @@ -2,6 +2,7 @@ "name": "Machine Learning with Python Projects", "isUpcomingChange": false, "dashedName": "machine-learning-with-python-projects", + "helpCategory": "Python", "order": 2, "time": "150 hours", "superBlock": "machine-learning-with-python", @@ -27,4 +28,4 @@ "Neural Network SMS Text Classifier" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/managing-packages-with-npm/meta.json b/curriculum/challenges/_meta/managing-packages-with-npm/meta.json index cc3bd08d1bb..f1f69c9994d 100644 --- a/curriculum/challenges/_meta/managing-packages-with-npm/meta.json +++ b/curriculum/challenges/_meta/managing-packages-with-npm/meta.json @@ -2,6 +2,7 @@ "name": "Managing Packages with npm", "isUpcomingChange": false, "dashedName": "managing-packages-with-npm", + "helpCategory": "JavaScript", "order": 0, "time": "5 hours", "superBlock": "back-end-development-and-apis", @@ -47,4 +48,4 @@ "Remove a Package from Your Dependencies" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json b/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json index ea86f4a2ef9..36dbcf93d05 100644 --- a/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json +++ b/curriculum/challenges/_meta/mongodb-and-mongoose/meta.json @@ -2,6 +2,7 @@ "name": "MongoDB and Mongoose", "isUpcomingChange": false, "dashedName": "mongodb-and-mongoose", + "helpCategory": "JavaScript", "order": 2, "time": "5 hours", "superBlock": "back-end-development-and-apis", @@ -55,4 +56,4 @@ "Chain Search Query Helpers to Narrow Search Results" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/numpy/meta.json b/curriculum/challenges/_meta/numpy/meta.json index 20b855a87bc..b111b94473b 100644 --- a/curriculum/challenges/_meta/numpy/meta.json +++ b/curriculum/challenges/_meta/numpy/meta.json @@ -2,6 +2,7 @@ "name": "Numpy", "isUpcomingChange": false, "dashedName": "numpy", + "helpCategory": "Python", "order": 1, "time": "5 hours", "template": "", @@ -44,4 +45,5 @@ "5e9a0a8e09c5df3cc3600eda", "Loading Data and Advanced Indexing" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/object-oriented-programming/meta.json b/curriculum/challenges/_meta/object-oriented-programming/meta.json index 76950368f5d..4d1c0bd21de 100644 --- a/curriculum/challenges/_meta/object-oriented-programming/meta.json +++ b/curriculum/challenges/_meta/object-oriented-programming/meta.json @@ -2,6 +2,7 @@ "name": "Object Oriented Programming", "isUpcomingChange": false, "dashedName": "object-oriented-programming", + "helpCategory": "JavaScript", "order": 6, "time": "5 hours", "template": "", @@ -112,4 +113,5 @@ "587d7db2367417b2b2512b8c", "Use an IIFE to Create a Module" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/project-euler-problems-1-to-100/meta.json b/curriculum/challenges/_meta/project-euler-problems-1-to-100/meta.json index 543f2f9dc45..ab6d8e72427 100644 --- a/curriculum/challenges/_meta/project-euler-problems-1-to-100/meta.json +++ b/curriculum/challenges/_meta/project-euler-problems-1-to-100/meta.json @@ -1,6 +1,7 @@ { "name": "project euler problems 1 to 100", "isUpcomingChange": false, + "helpCategory": "JavaScript", "order": 0, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/project-euler-problems-101-to-200/meta.json b/curriculum/challenges/_meta/project-euler-problems-101-to-200/meta.json index 9ec9c10f4ab..33ec041d095 100644 --- a/curriculum/challenges/_meta/project-euler-problems-101-to-200/meta.json +++ b/curriculum/challenges/_meta/project-euler-problems-101-to-200/meta.json @@ -1,409 +1,412 @@ { - "name": "project euler problems 101 to 200", - "isUpcomingChange": false, - "order": 1, - "time": "", - "template": "", - "required": [], - "superBlock": "project-euler", - "challengeOrder": [[ - "5900f3d21000cf542c50fee4", - "Problem 101: Optimum polynomial" - ], - [ - "5900f3d21000cf542c50fee5", - "Problem 102: Triangle containment" - ], - [ - "5900f3d61000cf542c50fee7", - "Problem 103: Special subset sums: optimum" - ], - [ - "5900f3d51000cf542c50fee6", - "Problem 104: Pandigital Fibonacci ends" - ], - [ - "5900f3d61000cf542c50fee8", - "Problem 105: Special subset sums: testing" - ], - [ - "5900f3d71000cf542c50fee9", - "Problem 106: Special subset sums: meta-testing" - ], - [ - "5900f3d91000cf542c50feea", - "Problem 107: Minimal network" - ], - [ - "5900f3d91000cf542c50feeb", - "Problem 108: Diophantine Reciprocals I" - ], - [ - "5900f3db1000cf542c50feec", - "Problem 109: Darts" - ], - [ - "5900f3db1000cf542c50feed", - "Problem 110: Diophantine Reciprocals II" - ], - [ - "5900f3db1000cf542c50feee", - "Problem 111: Primes with runs" - ], - [ - "5900f3dd1000cf542c50feef", - "Problem 112: Bouncy numbers" - ], - [ - "5900f3dd1000cf542c50fef0", - "Problem 113: Non-bouncy numbers" - ], - [ - "5900f3e01000cf542c50fef2", - "Problem 114: Counting block combinations I" - ], - [ - "5900f3df1000cf542c50fef1", - "Problem 115: Counting block combinations II" - ], - [ - "5900f3e01000cf542c50fef3", - "Problem 116: Red, green or blue tiles" - ], - [ - "5900f3e21000cf542c50fef4", - "Problem 117: Red, green, and blue tiles" - ], - [ - "5900f3e21000cf542c50fef5", - "Problem 118: Pandigital prime sets" - ], - [ - "5900f3e41000cf542c50fef6", - "Problem 119: Digit power sum" - ], - [ - "5900f3e41000cf542c50fef7", - "Problem 120: Square remainders" - ], - [ - "5900f3e51000cf542c50fef8", - "Problem 121: Disc game prize fund" - ], - [ - "5900f3e61000cf542c50fef9", - "Problem 122: Efficient exponentiation" - ], - [ - "5900f3e71000cf542c50fefa", - "Problem 123: Prime square remainders" - ], - [ - "5900f3e81000cf542c50fefb", - "Problem 124: Ordered radicals" - ], - [ - "5900f3e91000cf542c50fefc", - "Problem 125: Palindromic sums" - ], - [ - "5900f3ea1000cf542c50fefd", - "Problem 126: Cuboid layers" - ], - [ - "5900f3ec1000cf542c50fefe", - "Problem 127: abc-hits" - ], - [ - "5900f3ec1000cf542c50feff", - "Problem 128: Hexagonal tile differences" - ], - [ - "5900f3ef1000cf542c50ff01", - "Problem 129: Repunit divisibility" - ], - [ - "5900f3ee1000cf542c50ff00", - "Problem 130: Composites with prime repunit property" - ], - [ - "5900f3ef1000cf542c50ff02", - "Problem 131: Prime cube partnership" - ], - [ - "5900f3f11000cf542c50ff03", - "Problem 132: Large repunit factors" - ], - [ - "5900f3f21000cf542c50ff04", - "Problem 133: Repunit nonfactors" - ], - [ - "5900f3f21000cf542c50ff05", - "Problem 134: Prime pair connection" - ], - [ - "5900f3f31000cf542c50ff06", - "Problem 135: Same differences" - ], - [ - "5900f3f51000cf542c50ff07", - "Problem 136: Singleton difference" - ], - [ - "5900f3f51000cf542c50ff08", - "Problem 137: Fibonacci golden nuggets" - ], - [ - "5900f3f61000cf542c50ff09", - "Problem 138: Special isosceles triangles" - ], - [ - "5900f3f71000cf542c50ff0a", - "Problem 139: Pythagorean tiles" - ], - [ - "5900f3fa1000cf542c50ff0c", - "Problem 140: Modified Fibonacci golden nuggets" - ], - [ - "5900f3f91000cf542c50ff0b", - "Problem 141: Investigating progressive numbers, n, which are also square" - ], - [ - "5900f3fa1000cf542c50ff0d", - "Problem 142: Perfect Square Collection" - ], - [ - "5900f3fc1000cf542c50ff0e", - "Problem 143: Investigating the Torricelli point of a triangle" - ], - [ - "5900f3fc1000cf542c50ff0f", - "Problem 144: Investigating multiple reflections of a laser beam" - ], - [ - "5900f3fd1000cf542c50ff10", - "Problem 145: How many reversible numbers are there below one-billion?" - ], - [ - "5900f3fe1000cf542c50ff11", - "Problem 146: Investigating a Prime Pattern" - ], - [ - "5900f3ff1000cf542c50ff12", - "Problem 147: Rectangles in cross-hatched grids" - ], - [ - "5900f4021000cf542c50ff14", - "Problem 148: Exploring Pascal's triangle" - ], - [ - "5900f4021000cf542c50ff13", - "Problem 149: Searching for a maximum-sum subsequence" - ], - [ - "5900f4031000cf542c50ff15", - "Problem 150: Searching a triangular array for a sub-triangle having minimum-sum" - ], - [ - "5900f4031000cf542c50ff16", - "Problem 151: Paper sheets of standard sizes: an expected-value problem" - ], - [ - "5900f4041000cf542c50ff17", - "Problem 152: Writing one half as a sum of inverse squares" - ], - [ - "5900f4051000cf542c50ff18", - "Problem 153: Investigating Gaussian Integers" - ], - [ - "5900f4071000cf542c50ff19", - "Problem 154: Exploring Pascal's pyramid" - ], - [ - "5900f4081000cf542c50ff1a", - "Problem 155: Counting Capacitor Circuits" - ], - [ - "5900f4091000cf542c50ff1b", - "Problem 156: Counting Digits" - ], - [ - "5900f4091000cf542c50ff1c", - "Problem 157: Solving the diophantine equation" - ], - [ - "5900f40a1000cf542c50ff1d", - "Problem 158: Exploring strings for which only one character comes lexicographically after its neighbour to the left" - ], - [ - "5900f40c1000cf542c50ff1e", - "Problem 159: Digital root sums of factorisations" - ], - [ - "5900f40d1000cf542c50ff1f", - "Problem 160: Factorial trailing digits" - ], - [ - "5900f40d1000cf542c50ff20", - "Problem 161: Triominoes" - ], - [ - "5900f40e1000cf542c50ff21", - "Problem 162: Hexadecimal numbers" - ], - [ - "5900f40f1000cf542c50ff22", - "Problem 163: Cross-hatched triangles" - ], - [ - "5900f4111000cf542c50ff23", - "Problem 164: Numbers for which no three consecutive digits have a sum greater than a given value" - ], - [ - "5900f4111000cf542c50ff24", - "Problem 165: Intersections" - ], - [ - "5900f4131000cf542c50ff25", - "Problem 166: Criss Cross" - ], - [ - "5900f4141000cf542c50ff26", - "Problem 167: Investigating Ulam sequences" - ], - [ - "5900f4151000cf542c50ff27", - "Problem 168: Number Rotations" - ], - [ - "5900f4151000cf542c50ff28", - "Problem 169: Exploring the number of different ways a number can be expressed as a sum of powers of 2" - ], - [ - "5900f4161000cf542c50ff29", - "Problem 170: Find the largest 0 to 9 pandigital that can be formed by concatenating products" - ], - [ - "5900f4181000cf542c50ff2a", - "Problem 171: Finding numbers for which the sum of the squares of the digits is a square" - ], - [ - "5900f4181000cf542c50ff2b", - "Problem 172: Investigating numbers with few repeated digits" - ], - [ - "5900f41a1000cf542c50ff2c", - "Problem 173: Using up to one million tiles how many different \"hollow\" square laminae can be formed?" - ], - [ - "5900f41a1000cf542c50ff2d", - "Problem 174: Counting the number of \"hollow\" square laminae that can form one, two, three, ... distinct arrangements" - ], - [ - "5900f41c1000cf542c50ff2e", - "Problem 175: Fractions involving the number of different ways a number can be expressed as a sum of powers of 2" - ], - [ - "5900f41c1000cf542c50ff2f", - "Problem 176: Right-angled triangles that share a cathetus" - ], - [ - "5900f41e1000cf542c50ff30", - "Problem 177: Integer angled Quadrilaterals" - ], - [ - "5900f41e1000cf542c50ff31", - "Problem 178: Step Numbers" - ], - [ - "5900f41f1000cf542c50ff32", - "Problem 179: Consecutive positive divisors" - ], - [ - "5900f4201000cf542c50ff33", - "Problem 180: Rational zeros of a function of three variables" - ], - [ - "5900f4231000cf542c50ff34", - "Problem 181: Investigating in how many ways objects of two different colours can be grouped" - ], - [ - "5900f4231000cf542c50ff35", - "Problem 182: RSA encryption" - ], - [ - "5900f4231000cf542c50ff36", - "Problem 183: Maximum product of parts" - ], - [ - "5900f4241000cf542c50ff37", - "Problem 184: Triangles containing the origin" - ], - [ - "5900f4251000cf542c50ff38", - "Problem 185: Number Mind" - ], - [ - "5900f4281000cf542c50ff39", - "Problem 186: Connectedness of a network" - ], - [ - "5900f4291000cf542c50ff3a", - "Problem 187: Semiprimes" - ], - [ - "5900f4291000cf542c50ff3b", - "Problem 188: The hyperexponentiation of a number" - ], - [ - "5900f4291000cf542c50ff3c", - "Problem 189: Tri-colouring a triangular grid" - ], - [ - "5900f42b1000cf542c50ff3d", - "Problem 190: Maximising a weighted product" - ], - [ - "5900f42b1000cf542c50ff3e", - "Problem 191: Prize Strings" - ], - [ - "5900f42c1000cf542c50ff3f", - "Problem 192: Best Approximations" - ], - [ - "5900f42f1000cf542c50ff41", - "Problem 193: Squarefree Numbers" - ], - [ - "5900f42f1000cf542c50ff40", - "Problem 194: Coloured Configurations" - ], - [ - "5900f4311000cf542c50ff43", - "Problem 195: Inscribed circles of triangles with one angle of 60 degrees" - ], - [ - "5900f4301000cf542c50ff42", - "Problem 196: Prime triplets" - ], - [ - "5900f4311000cf542c50ff44", - "Problem 197: Investigating the behaviour of a recursively defined sequence" - ], - [ - "5900f4331000cf542c50ff45", - "Problem 198: Ambiguous Numbers" - ], - [ - "5900f4341000cf542c50ff46", - "Problem 199: Iterative Circle Packing" - ], - [ - "5900f4351000cf542c50ff47", - "Problem 200: Find the 200th prime-proof sqube containing the contiguous sub-string \"200\"" - ]] + "name": "project euler problems 101 to 200", + "isUpcomingChange": false, + "helpCategory": "JavaScript", + "order": 1, + "time": "", + "template": "", + "required": [], + "superBlock": "project-euler", + "challengeOrder": [ + [ + "5900f3d21000cf542c50fee4", + "Problem 101: Optimum polynomial" + ], + [ + "5900f3d21000cf542c50fee5", + "Problem 102: Triangle containment" + ], + [ + "5900f3d61000cf542c50fee7", + "Problem 103: Special subset sums: optimum" + ], + [ + "5900f3d51000cf542c50fee6", + "Problem 104: Pandigital Fibonacci ends" + ], + [ + "5900f3d61000cf542c50fee8", + "Problem 105: Special subset sums: testing" + ], + [ + "5900f3d71000cf542c50fee9", + "Problem 106: Special subset sums: meta-testing" + ], + [ + "5900f3d91000cf542c50feea", + "Problem 107: Minimal network" + ], + [ + "5900f3d91000cf542c50feeb", + "Problem 108: Diophantine Reciprocals I" + ], + [ + "5900f3db1000cf542c50feec", + "Problem 109: Darts" + ], + [ + "5900f3db1000cf542c50feed", + "Problem 110: Diophantine Reciprocals II" + ], + [ + "5900f3db1000cf542c50feee", + "Problem 111: Primes with runs" + ], + [ + "5900f3dd1000cf542c50feef", + "Problem 112: Bouncy numbers" + ], + [ + "5900f3dd1000cf542c50fef0", + "Problem 113: Non-bouncy numbers" + ], + [ + "5900f3e01000cf542c50fef2", + "Problem 114: Counting block combinations I" + ], + [ + "5900f3df1000cf542c50fef1", + "Problem 115: Counting block combinations II" + ], + [ + "5900f3e01000cf542c50fef3", + "Problem 116: Red, green or blue tiles" + ], + [ + "5900f3e21000cf542c50fef4", + "Problem 117: Red, green, and blue tiles" + ], + [ + "5900f3e21000cf542c50fef5", + "Problem 118: Pandigital prime sets" + ], + [ + "5900f3e41000cf542c50fef6", + "Problem 119: Digit power sum" + ], + [ + "5900f3e41000cf542c50fef7", + "Problem 120: Square remainders" + ], + [ + "5900f3e51000cf542c50fef8", + "Problem 121: Disc game prize fund" + ], + [ + "5900f3e61000cf542c50fef9", + "Problem 122: Efficient exponentiation" + ], + [ + "5900f3e71000cf542c50fefa", + "Problem 123: Prime square remainders" + ], + [ + "5900f3e81000cf542c50fefb", + "Problem 124: Ordered radicals" + ], + [ + "5900f3e91000cf542c50fefc", + "Problem 125: Palindromic sums" + ], + [ + "5900f3ea1000cf542c50fefd", + "Problem 126: Cuboid layers" + ], + [ + "5900f3ec1000cf542c50fefe", + "Problem 127: abc-hits" + ], + [ + "5900f3ec1000cf542c50feff", + "Problem 128: Hexagonal tile differences" + ], + [ + "5900f3ef1000cf542c50ff01", + "Problem 129: Repunit divisibility" + ], + [ + "5900f3ee1000cf542c50ff00", + "Problem 130: Composites with prime repunit property" + ], + [ + "5900f3ef1000cf542c50ff02", + "Problem 131: Prime cube partnership" + ], + [ + "5900f3f11000cf542c50ff03", + "Problem 132: Large repunit factors" + ], + [ + "5900f3f21000cf542c50ff04", + "Problem 133: Repunit nonfactors" + ], + [ + "5900f3f21000cf542c50ff05", + "Problem 134: Prime pair connection" + ], + [ + "5900f3f31000cf542c50ff06", + "Problem 135: Same differences" + ], + [ + "5900f3f51000cf542c50ff07", + "Problem 136: Singleton difference" + ], + [ + "5900f3f51000cf542c50ff08", + "Problem 137: Fibonacci golden nuggets" + ], + [ + "5900f3f61000cf542c50ff09", + "Problem 138: Special isosceles triangles" + ], + [ + "5900f3f71000cf542c50ff0a", + "Problem 139: Pythagorean tiles" + ], + [ + "5900f3fa1000cf542c50ff0c", + "Problem 140: Modified Fibonacci golden nuggets" + ], + [ + "5900f3f91000cf542c50ff0b", + "Problem 141: Investigating progressive numbers, n, which are also square" + ], + [ + "5900f3fa1000cf542c50ff0d", + "Problem 142: Perfect Square Collection" + ], + [ + "5900f3fc1000cf542c50ff0e", + "Problem 143: Investigating the Torricelli point of a triangle" + ], + [ + "5900f3fc1000cf542c50ff0f", + "Problem 144: Investigating multiple reflections of a laser beam" + ], + [ + "5900f3fd1000cf542c50ff10", + "Problem 145: How many reversible numbers are there below one-billion?" + ], + [ + "5900f3fe1000cf542c50ff11", + "Problem 146: Investigating a Prime Pattern" + ], + [ + "5900f3ff1000cf542c50ff12", + "Problem 147: Rectangles in cross-hatched grids" + ], + [ + "5900f4021000cf542c50ff14", + "Problem 148: Exploring Pascal's triangle" + ], + [ + "5900f4021000cf542c50ff13", + "Problem 149: Searching for a maximum-sum subsequence" + ], + [ + "5900f4031000cf542c50ff15", + "Problem 150: Searching a triangular array for a sub-triangle having minimum-sum" + ], + [ + "5900f4031000cf542c50ff16", + "Problem 151: Paper sheets of standard sizes: an expected-value problem" + ], + [ + "5900f4041000cf542c50ff17", + "Problem 152: Writing one half as a sum of inverse squares" + ], + [ + "5900f4051000cf542c50ff18", + "Problem 153: Investigating Gaussian Integers" + ], + [ + "5900f4071000cf542c50ff19", + "Problem 154: Exploring Pascal's pyramid" + ], + [ + "5900f4081000cf542c50ff1a", + "Problem 155: Counting Capacitor Circuits" + ], + [ + "5900f4091000cf542c50ff1b", + "Problem 156: Counting Digits" + ], + [ + "5900f4091000cf542c50ff1c", + "Problem 157: Solving the diophantine equation" + ], + [ + "5900f40a1000cf542c50ff1d", + "Problem 158: Exploring strings for which only one character comes lexicographically after its neighbour to the left" + ], + [ + "5900f40c1000cf542c50ff1e", + "Problem 159: Digital root sums of factorisations" + ], + [ + "5900f40d1000cf542c50ff1f", + "Problem 160: Factorial trailing digits" + ], + [ + "5900f40d1000cf542c50ff20", + "Problem 161: Triominoes" + ], + [ + "5900f40e1000cf542c50ff21", + "Problem 162: Hexadecimal numbers" + ], + [ + "5900f40f1000cf542c50ff22", + "Problem 163: Cross-hatched triangles" + ], + [ + "5900f4111000cf542c50ff23", + "Problem 164: Numbers for which no three consecutive digits have a sum greater than a given value" + ], + [ + "5900f4111000cf542c50ff24", + "Problem 165: Intersections" + ], + [ + "5900f4131000cf542c50ff25", + "Problem 166: Criss Cross" + ], + [ + "5900f4141000cf542c50ff26", + "Problem 167: Investigating Ulam sequences" + ], + [ + "5900f4151000cf542c50ff27", + "Problem 168: Number Rotations" + ], + [ + "5900f4151000cf542c50ff28", + "Problem 169: Exploring the number of different ways a number can be expressed as a sum of powers of 2" + ], + [ + "5900f4161000cf542c50ff29", + "Problem 170: Find the largest 0 to 9 pandigital that can be formed by concatenating products" + ], + [ + "5900f4181000cf542c50ff2a", + "Problem 171: Finding numbers for which the sum of the squares of the digits is a square" + ], + [ + "5900f4181000cf542c50ff2b", + "Problem 172: Investigating numbers with few repeated digits" + ], + [ + "5900f41a1000cf542c50ff2c", + "Problem 173: Using up to one million tiles how many different \"hollow\" square laminae can be formed?" + ], + [ + "5900f41a1000cf542c50ff2d", + "Problem 174: Counting the number of \"hollow\" square laminae that can form one, two, three, ... distinct arrangements" + ], + [ + "5900f41c1000cf542c50ff2e", + "Problem 175: Fractions involving the number of different ways a number can be expressed as a sum of powers of 2" + ], + [ + "5900f41c1000cf542c50ff2f", + "Problem 176: Right-angled triangles that share a cathetus" + ], + [ + "5900f41e1000cf542c50ff30", + "Problem 177: Integer angled Quadrilaterals" + ], + [ + "5900f41e1000cf542c50ff31", + "Problem 178: Step Numbers" + ], + [ + "5900f41f1000cf542c50ff32", + "Problem 179: Consecutive positive divisors" + ], + [ + "5900f4201000cf542c50ff33", + "Problem 180: Rational zeros of a function of three variables" + ], + [ + "5900f4231000cf542c50ff34", + "Problem 181: Investigating in how many ways objects of two different colours can be grouped" + ], + [ + "5900f4231000cf542c50ff35", + "Problem 182: RSA encryption" + ], + [ + "5900f4231000cf542c50ff36", + "Problem 183: Maximum product of parts" + ], + [ + "5900f4241000cf542c50ff37", + "Problem 184: Triangles containing the origin" + ], + [ + "5900f4251000cf542c50ff38", + "Problem 185: Number Mind" + ], + [ + "5900f4281000cf542c50ff39", + "Problem 186: Connectedness of a network" + ], + [ + "5900f4291000cf542c50ff3a", + "Problem 187: Semiprimes" + ], + [ + "5900f4291000cf542c50ff3b", + "Problem 188: The hyperexponentiation of a number" + ], + [ + "5900f4291000cf542c50ff3c", + "Problem 189: Tri-colouring a triangular grid" + ], + [ + "5900f42b1000cf542c50ff3d", + "Problem 190: Maximising a weighted product" + ], + [ + "5900f42b1000cf542c50ff3e", + "Problem 191: Prize Strings" + ], + [ + "5900f42c1000cf542c50ff3f", + "Problem 192: Best Approximations" + ], + [ + "5900f42f1000cf542c50ff41", + "Problem 193: Squarefree Numbers" + ], + [ + "5900f42f1000cf542c50ff40", + "Problem 194: Coloured Configurations" + ], + [ + "5900f4311000cf542c50ff43", + "Problem 195: Inscribed circles of triangles with one angle of 60 degrees" + ], + [ + "5900f4301000cf542c50ff42", + "Problem 196: Prime triplets" + ], + [ + "5900f4311000cf542c50ff44", + "Problem 197: Investigating the behaviour of a recursively defined sequence" + ], + [ + "5900f4331000cf542c50ff45", + "Problem 198: Ambiguous Numbers" + ], + [ + "5900f4341000cf542c50ff46", + "Problem 199: Iterative Circle Packing" + ], + [ + "5900f4351000cf542c50ff47", + "Problem 200: Find the 200th prime-proof sqube containing the contiguous sub-string \"200\"" + ] + ] } \ No newline at end of file diff --git a/curriculum/challenges/_meta/project-euler-problems-201-to-300/meta.json b/curriculum/challenges/_meta/project-euler-problems-201-to-300/meta.json index 0a4c9bf3580..f91a6f374ed 100644 --- a/curriculum/challenges/_meta/project-euler-problems-201-to-300/meta.json +++ b/curriculum/challenges/_meta/project-euler-problems-201-to-300/meta.json @@ -1,6 +1,7 @@ { "name": "project euler problems 201 to 300", "isUpcomingChange": false, + "helpCategory": "JavaScript", "order": 2, "time": "", "template": "", diff --git a/curriculum/challenges/_meta/project-euler-problems-301-to-400/meta.json b/curriculum/challenges/_meta/project-euler-problems-301-to-400/meta.json index b0d9adfb8ec..a32685dfb34 100644 --- a/curriculum/challenges/_meta/project-euler-problems-301-to-400/meta.json +++ b/curriculum/challenges/_meta/project-euler-problems-301-to-400/meta.json @@ -1,411 +1,412 @@ { - "name": "project euler problems 301 to 400", - "isUpcomingChange": false, - "order": 3, - "time": "", - "template": "", - "required": [], - "superBlock": "project-euler", - "challengeOrder": [ - [ - "5900f4991000cf542c50ffab", - "Problem 301: Nim" - ], - [ - "5900f49b1000cf542c50ffad", - "Problem 302: Strong Achilles Numbers" - ], - [ - "5900f49b1000cf542c50ffae", - "Problem 303: Multiples with small digits" - ], - [ - "5900f49d1000cf542c50ffaf", - "Problem 304: Primonacci" - ], - [ - "5900f49d1000cf542c50ffb0", - "Problem 305: Reflexive Position" - ], - [ - "5900f49f1000cf542c50ffb1", - "Problem 306: Paper-strip Game" - ], - [ - "5900f4a01000cf542c50ffb2", - "Problem 307: Chip Defects" - ], - [ - "5900f4a11000cf542c50ffb3", - "Problem 308: An amazing Prime-generating Automaton" - ], - [ - "5900f4a11000cf542c50ffb4", - "Problem 309: Integer Ladders" - ], - [ - "5900f4a21000cf542c50ffb5", - "Problem 310: Nim Square" - ], - [ - "5900f4a31000cf542c50ffb6", - "Problem 311: Biclinic Integral Quadrilaterals" - ], - [ - "5900f4a51000cf542c50ffb7", - "Problem 312: Cyclic paths on Sierpiński graphs" - ], - [ - "5900f4a61000cf542c50ffb8", - "Problem 313: Sliding game" - ], - [ - "5900f4a71000cf542c50ffb9", - "Problem 314: The Mouse on the Moon" - ], - [ - "5900f4a71000cf542c50ffba", - "Problem 315: Digital root clocks" - ], - [ - "5900f4a81000cf542c50ffbb", - "Problem 316: Numbers in decimal expansions" - ], - [ - "5900f4aa1000cf542c50ffbc", - "Problem 317: Firecracker" - ], - [ - "5900f4ab1000cf542c50ffbd", - "Problem 318: 2011 nines" - ], - [ - "5900f4ab1000cf542c50ffbe", - "Problem 319: Bounded Sequences" - ], - [ - "5900f4ae1000cf542c50ffbf", - "Problem 320: Factorials divisible by a huge integer" - ], - [ - "5900f4ae1000cf542c50ffc0", - "Problem 321: Swapping Counters" - ], - [ - "5900f4af1000cf542c50ffc1", - "Problem 322: Binomial coefficients divisible by 10" - ], - [ - "5900f4b01000cf542c50ffc2", - "Problem 323: Bitwise-OR operations on random integers" - ], - [ - "5900f4b11000cf542c50ffc3", - "Problem 324: Building a tower" - ], - [ - "5900f4b11000cf542c50ffc4", - "Problem 325: Stone Game II" - ], - [ - "5900f4b21000cf542c50ffc5", - "Problem 326: Modulo Summations" - ], - [ - "5900f4b31000cf542c50ffc6", - "Problem 327: Rooms of Doom" - ], - [ - "5900f4b41000cf542c50ffc7", - "Problem 328: Lowest-cost Search" - ], - [ - "5900f4b51000cf542c50ffc8", - "Problem 329: Prime Frog" - ], - [ - "5900f4b71000cf542c50ffc9", - "Problem 330: Euler's Number" - ], - [ - "5900f4b71000cf542c50ffca", - "Problem 331: Cross flips" - ], - [ - "5900f4b91000cf542c50ffcb", - "Problem 332: Spherical triangles" - ], - [ - "5900f4b91000cf542c50ffcc", - "Problem 333: Special partitions" - ], - [ - "5900f4ba1000cf542c50ffcd", - "Problem 334: Spilling the beans" - ], - [ - "5900f4bd1000cf542c50ffce", - "Problem 335: Gathering the beans" - ], - [ - "5900f4bd1000cf542c50ffcf", - "Problem 336: Maximix Arrangements" - ], - [ - "5900f4be1000cf542c50ffd0", - "Problem 337: Totient Stairstep Sequences" - ], - [ - "5900f4be1000cf542c50ffd1", - "Problem 338: Cutting Rectangular Grid Paper" - ], - [ - "5900f4c01000cf542c50ffd2", - "Problem 339: Peredur fab Efrawg" - ], - [ - "5900f4c21000cf542c50ffd4", - "Problem 340: Crazy Function" - ], - [ - "5900f4c11000cf542c50ffd3", - "Problem 341: Golomb's self-describing sequence" - ], - [ - "5900f4c31000cf542c50ffd5", - "Problem 342: The totient of a square is a cube" - ], - [ - "5900f4c41000cf542c50ffd6", - "Problem 343: Fractional Sequences" - ], - [ - "5900f4c51000cf542c50ffd7", - "Problem 344: Silver dollar game" - ], - [ - "5900f4c81000cf542c50ffda", - "Problem 345: Matrix Sum" - ], - [ - "5900f4c71000cf542c50ffd8", - "Problem 346: Strong Repunits" - ], - [ - "5900f4c81000cf542c50ffd9", - "Problem 347: Largest integer divisible by two primes" - ], - [ - "5900f4c81000cf542c50ffdb", - "Problem 348: Sum of a square and a cube" - ], - [ - "5900f4ca1000cf542c50ffdc", - "Problem 349: Langton's ant" - ], - [ - "5900f4cb1000cf542c50ffdd", - "Problem 350: Constraining the least greatest and the greatest least" - ], - [ - "5900f4cb1000cf542c50ffde", - "Problem 351: Hexagonal orchards" - ], - [ - "5900f4cd1000cf542c50ffdf", - "Problem 352: Blood tests" - ], - [ - "5900f4cd1000cf542c50ffe0", - "Problem 353: Risky moon" - ], - [ - "5900f4cf1000cf542c50ffe1", - "Problem 354: Distances in a bee's honeycomb" - ], - [ - "5900f4d01000cf542c50ffe2", - "Problem 355: Maximal coprime subset" - ], - [ - "5900f4d01000cf542c50ffe3", - "Problem 356: Largest roots of cubic polynomials" - ], - [ - "5900f4d11000cf542c50ffe4", - "Problem 357: Prime generating integers" - ], - [ - "5900f4d21000cf542c50ffe5", - "Problem 358: Cyclic numbers" - ], - [ - "5900f4d31000cf542c50ffe6", - "Problem 359: Hilbert's New Hotel" - ], - [ - "5900f4d41000cf542c50ffe7", - "Problem 360: Scary Sphere" - ], - [ - "5900f4d51000cf542c50ffe8", - "Problem 361: Subsequence of Thue-Morse sequence" - ], - [ - "5900f4d61000cf542c50ffe9", - "Problem 362: Squarefree factors" - ], - [ - "5900f4d91000cf542c50ffeb", - "Problem 363: Bézier Curves" - ], - [ - "5900f4d91000cf542c50ffea", - "Problem 364: Comfortable distance" - ], - [ - "5900f4da1000cf542c50ffec", - "Problem 365: A huge binomial coefficient" - ], - [ - "5900f4da1000cf542c50ffed", - "Problem 366: Stone Game III" - ], - [ - "5900f4db1000cf542c50ffee", - "Problem 367: Bozo sort" - ], - [ - "5900f4dd1000cf542c50ffef", - "Problem 368: A Kempner-like series" - ], - [ - "5900f4de1000cf542c50fff0", - "Problem 369: Badugi" - ], - [ - "5900f4de1000cf542c50fff1", - "Problem 370: Geometric triangles" - ], - [ - "5900f4e01000cf542c50fff2", - "Problem 371: Licence plates" - ], - [ - "5900f4e11000cf542c50fff3", - "Problem 372: Pencils of rays" - ], - [ - "5900f4e11000cf542c50fff4", - "Problem 373: Circumscribed Circles" - ], - [ - "5900f4e51000cf542c50fff6", - "Problem 374: Maximum Integer Partition Product" - ], - [ - "5900f4e41000cf542c50fff5", - "Problem 375: Minimum of subsequences" - ], - [ - "5900f4e51000cf542c50fff7", - "Problem 376: Nontransitive sets of dice" - ], - [ - "5900f4e51000cf542c50fff8", - "Problem 377: Sum of digits, experience 13" - ], - [ - "5900f4e61000cf542c50fff9", - "Problem 378: Triangle Triples" - ], - [ - "5900f4e81000cf542c50fffa", - "Problem 379: Least common multiple count" - ], - [ - "5900f4e81000cf542c50fffb", - "Problem 380: Amazing Mazes!" - ], - [ - "5900f4ea1000cf542c50fffc", - "Problem 381: (prime-k) factorial" - ], - [ - "5900f4eb1000cf542c50fffd", - "Problem 382: Generating polygons" - ], - [ - "5900f4ed1000cf542c50ffff", - "Problem 383: Divisibility comparison between factorials" - ], - [ - "5900f4ed1000cf542c50fffe", - "Problem 384: Rudin-Shapiro sequence" - ], - [ - "5900f4ee1000cf542c510000", - "Problem 385: Ellipses inside triangles" - ], - [ - "5900f4ef1000cf542c510001", - "Problem 386: Maximum length of an antichain" - ], - [ - "5900f4f11000cf542c510003", - "Problem 387: Harshad Numbers" - ], - [ - "5900f4f11000cf542c510002", - "Problem 388: Distinct Lines" - ], - [ - "5900f4f21000cf542c510004", - "Problem 389: Platonic Dice" - ], - [ - "5900f4f21000cf542c510005", - "Problem 390: Triangles with non rational sides and integral area" - ], - [ - "5900f4f31000cf542c510006", - "Problem 391: Hopping Game" - ], - [ - "5900f4f41000cf542c510007", - "Problem 392: Enmeshed unit circle" - ], - [ - "5900f4f61000cf542c510008", - "Problem 393: Migrating ants" - ], - [ - "5900f4f71000cf542c510009", - "Problem 394: Eating pie" - ], - [ - "5900f4f71000cf542c51000a", - "Problem 395: Pythagorean tree" - ], - [ - "5900f4f81000cf542c51000b", - "Problem 396: Weak Goodstein sequence" - ], - [ - "5900f4f91000cf542c51000c", - "Problem 397: Triangle on parabola" - ], - [ - "5900f4fa1000cf542c51000d", - "Problem 398: Cutting rope" - ], - [ - "5900f4fc1000cf542c51000e", - "Problem 399: Squarefree Fibonacci Numbers" - ], - [ - "5900f4fe1000cf542c510010", - "Problem 400: Fibonacci tree game" - ] + "name": "project euler problems 301 to 400", + "isUpcomingChange": false, + "helpCategory": "JavaScript", + "order": 3, + "time": "", + "template": "", + "required": [], + "superBlock": "project-euler", + "challengeOrder": [ + [ + "5900f4991000cf542c50ffab", + "Problem 301: Nim" + ], + [ + "5900f49b1000cf542c50ffad", + "Problem 302: Strong Achilles Numbers" + ], + [ + "5900f49b1000cf542c50ffae", + "Problem 303: Multiples with small digits" + ], + [ + "5900f49d1000cf542c50ffaf", + "Problem 304: Primonacci" + ], + [ + "5900f49d1000cf542c50ffb0", + "Problem 305: Reflexive Position" + ], + [ + "5900f49f1000cf542c50ffb1", + "Problem 306: Paper-strip Game" + ], + [ + "5900f4a01000cf542c50ffb2", + "Problem 307: Chip Defects" + ], + [ + "5900f4a11000cf542c50ffb3", + "Problem 308: An amazing Prime-generating Automaton" + ], + [ + "5900f4a11000cf542c50ffb4", + "Problem 309: Integer Ladders" + ], + [ + "5900f4a21000cf542c50ffb5", + "Problem 310: Nim Square" + ], + [ + "5900f4a31000cf542c50ffb6", + "Problem 311: Biclinic Integral Quadrilaterals" + ], + [ + "5900f4a51000cf542c50ffb7", + "Problem 312: Cyclic paths on Sierpiński graphs" + ], + [ + "5900f4a61000cf542c50ffb8", + "Problem 313: Sliding game" + ], + [ + "5900f4a71000cf542c50ffb9", + "Problem 314: The Mouse on the Moon" + ], + [ + "5900f4a71000cf542c50ffba", + "Problem 315: Digital root clocks" + ], + [ + "5900f4a81000cf542c50ffbb", + "Problem 316: Numbers in decimal expansions" + ], + [ + "5900f4aa1000cf542c50ffbc", + "Problem 317: Firecracker" + ], + [ + "5900f4ab1000cf542c50ffbd", + "Problem 318: 2011 nines" + ], + [ + "5900f4ab1000cf542c50ffbe", + "Problem 319: Bounded Sequences" + ], + [ + "5900f4ae1000cf542c50ffbf", + "Problem 320: Factorials divisible by a huge integer" + ], + [ + "5900f4ae1000cf542c50ffc0", + "Problem 321: Swapping Counters" + ], + [ + "5900f4af1000cf542c50ffc1", + "Problem 322: Binomial coefficients divisible by 10" + ], + [ + "5900f4b01000cf542c50ffc2", + "Problem 323: Bitwise-OR operations on random integers" + ], + [ + "5900f4b11000cf542c50ffc3", + "Problem 324: Building a tower" + ], + [ + "5900f4b11000cf542c50ffc4", + "Problem 325: Stone Game II" + ], + [ + "5900f4b21000cf542c50ffc5", + "Problem 326: Modulo Summations" + ], + [ + "5900f4b31000cf542c50ffc6", + "Problem 327: Rooms of Doom" + ], + [ + "5900f4b41000cf542c50ffc7", + "Problem 328: Lowest-cost Search" + ], + [ + "5900f4b51000cf542c50ffc8", + "Problem 329: Prime Frog" + ], + [ + "5900f4b71000cf542c50ffc9", + "Problem 330: Euler's Number" + ], + [ + "5900f4b71000cf542c50ffca", + "Problem 331: Cross flips" + ], + [ + "5900f4b91000cf542c50ffcb", + "Problem 332: Spherical triangles" + ], + [ + "5900f4b91000cf542c50ffcc", + "Problem 333: Special partitions" + ], + [ + "5900f4ba1000cf542c50ffcd", + "Problem 334: Spilling the beans" + ], + [ + "5900f4bd1000cf542c50ffce", + "Problem 335: Gathering the beans" + ], + [ + "5900f4bd1000cf542c50ffcf", + "Problem 336: Maximix Arrangements" + ], + [ + "5900f4be1000cf542c50ffd0", + "Problem 337: Totient Stairstep Sequences" + ], + [ + "5900f4be1000cf542c50ffd1", + "Problem 338: Cutting Rectangular Grid Paper" + ], + [ + "5900f4c01000cf542c50ffd2", + "Problem 339: Peredur fab Efrawg" + ], + [ + "5900f4c21000cf542c50ffd4", + "Problem 340: Crazy Function" + ], + [ + "5900f4c11000cf542c50ffd3", + "Problem 341: Golomb's self-describing sequence" + ], + [ + "5900f4c31000cf542c50ffd5", + "Problem 342: The totient of a square is a cube" + ], + [ + "5900f4c41000cf542c50ffd6", + "Problem 343: Fractional Sequences" + ], + [ + "5900f4c51000cf542c50ffd7", + "Problem 344: Silver dollar game" + ], + [ + "5900f4c81000cf542c50ffda", + "Problem 345: Matrix Sum" + ], + [ + "5900f4c71000cf542c50ffd8", + "Problem 346: Strong Repunits" + ], + [ + "5900f4c81000cf542c50ffd9", + "Problem 347: Largest integer divisible by two primes" + ], + [ + "5900f4c81000cf542c50ffdb", + "Problem 348: Sum of a square and a cube" + ], + [ + "5900f4ca1000cf542c50ffdc", + "Problem 349: Langton's ant" + ], + [ + "5900f4cb1000cf542c50ffdd", + "Problem 350: Constraining the least greatest and the greatest least" + ], + [ + "5900f4cb1000cf542c50ffde", + "Problem 351: Hexagonal orchards" + ], + [ + "5900f4cd1000cf542c50ffdf", + "Problem 352: Blood tests" + ], + [ + "5900f4cd1000cf542c50ffe0", + "Problem 353: Risky moon" + ], + [ + "5900f4cf1000cf542c50ffe1", + "Problem 354: Distances in a bee's honeycomb" + ], + [ + "5900f4d01000cf542c50ffe2", + "Problem 355: Maximal coprime subset" + ], + [ + "5900f4d01000cf542c50ffe3", + "Problem 356: Largest roots of cubic polynomials" + ], + [ + "5900f4d11000cf542c50ffe4", + "Problem 357: Prime generating integers" + ], + [ + "5900f4d21000cf542c50ffe5", + "Problem 358: Cyclic numbers" + ], + [ + "5900f4d31000cf542c50ffe6", + "Problem 359: Hilbert's New Hotel" + ], + [ + "5900f4d41000cf542c50ffe7", + "Problem 360: Scary Sphere" + ], + [ + "5900f4d51000cf542c50ffe8", + "Problem 361: Subsequence of Thue-Morse sequence" + ], + [ + "5900f4d61000cf542c50ffe9", + "Problem 362: Squarefree factors" + ], + [ + "5900f4d91000cf542c50ffeb", + "Problem 363: Bézier Curves" + ], + [ + "5900f4d91000cf542c50ffea", + "Problem 364: Comfortable distance" + ], + [ + "5900f4da1000cf542c50ffec", + "Problem 365: A huge binomial coefficient" + ], + [ + "5900f4da1000cf542c50ffed", + "Problem 366: Stone Game III" + ], + [ + "5900f4db1000cf542c50ffee", + "Problem 367: Bozo sort" + ], + [ + "5900f4dd1000cf542c50ffef", + "Problem 368: A Kempner-like series" + ], + [ + "5900f4de1000cf542c50fff0", + "Problem 369: Badugi" + ], + [ + "5900f4de1000cf542c50fff1", + "Problem 370: Geometric triangles" + ], + [ + "5900f4e01000cf542c50fff2", + "Problem 371: Licence plates" + ], + [ + "5900f4e11000cf542c50fff3", + "Problem 372: Pencils of rays" + ], + [ + "5900f4e11000cf542c50fff4", + "Problem 373: Circumscribed Circles" + ], + [ + "5900f4e51000cf542c50fff6", + "Problem 374: Maximum Integer Partition Product" + ], + [ + "5900f4e41000cf542c50fff5", + "Problem 375: Minimum of subsequences" + ], + [ + "5900f4e51000cf542c50fff7", + "Problem 376: Nontransitive sets of dice" + ], + [ + "5900f4e51000cf542c50fff8", + "Problem 377: Sum of digits, experience 13" + ], + [ + "5900f4e61000cf542c50fff9", + "Problem 378: Triangle Triples" + ], + [ + "5900f4e81000cf542c50fffa", + "Problem 379: Least common multiple count" + ], + [ + "5900f4e81000cf542c50fffb", + "Problem 380: Amazing Mazes!" + ], + [ + "5900f4ea1000cf542c50fffc", + "Problem 381: (prime-k) factorial" + ], + [ + "5900f4eb1000cf542c50fffd", + "Problem 382: Generating polygons" + ], + [ + "5900f4ed1000cf542c50ffff", + "Problem 383: Divisibility comparison between factorials" + ], + [ + "5900f4ed1000cf542c50fffe", + "Problem 384: Rudin-Shapiro sequence" + ], + [ + "5900f4ee1000cf542c510000", + "Problem 385: Ellipses inside triangles" + ], + [ + "5900f4ef1000cf542c510001", + "Problem 386: Maximum length of an antichain" + ], + [ + "5900f4f11000cf542c510003", + "Problem 387: Harshad Numbers" + ], + [ + "5900f4f11000cf542c510002", + "Problem 388: Distinct Lines" + ], + [ + "5900f4f21000cf542c510004", + "Problem 389: Platonic Dice" + ], + [ + "5900f4f21000cf542c510005", + "Problem 390: Triangles with non rational sides and integral area" + ], + [ + "5900f4f31000cf542c510006", + "Problem 391: Hopping Game" + ], + [ + "5900f4f41000cf542c510007", + "Problem 392: Enmeshed unit circle" + ], + [ + "5900f4f61000cf542c510008", + "Problem 393: Migrating ants" + ], + [ + "5900f4f71000cf542c510009", + "Problem 394: Eating pie" + ], + [ + "5900f4f71000cf542c51000a", + "Problem 395: Pythagorean tree" + ], + [ + "5900f4f81000cf542c51000b", + "Problem 396: Weak Goodstein sequence" + ], + [ + "5900f4f91000cf542c51000c", + "Problem 397: Triangle on parabola" + ], + [ + "5900f4fa1000cf542c51000d", + "Problem 398: Cutting rope" + ], + [ + "5900f4fc1000cf542c51000e", + "Problem 399: Squarefree Fibonacci Numbers" + ], + [ + "5900f4fe1000cf542c510010", + "Problem 400: Fibonacci tree game" ] + ] } \ No newline at end of file diff --git a/curriculum/challenges/_meta/project-euler-problems-401-to-480/meta.json b/curriculum/challenges/_meta/project-euler-problems-401-to-480/meta.json index 9a5f856f01c..de1390dff95 100644 --- a/curriculum/challenges/_meta/project-euler-problems-401-to-480/meta.json +++ b/curriculum/challenges/_meta/project-euler-problems-401-to-480/meta.json @@ -1,329 +1,332 @@ { - "name": "project euler problems 401 to 480", - "isUpcomingChange": false, - "order": 4, - "time": "", - "template": "", - "required": [], - "superBlock": "project-euler", - "challengeOrder": [ [ - "5900f4fd1000cf542c51000f", - "Problem 401: Sum of squares of divisors" - ], - [ - "5900f4ff1000cf542c510011", - "Problem 402: Integer-valued polynomials" - ], - [ - "5900f5001000cf542c510013", - "Problem 403: Lattice points enclosed by parabola and line" - ], - [ - "5900f5001000cf542c510012", - "Problem 404: Crisscross Ellipses" - ], - [ - "5900f5021000cf542c510014", - "Problem 405: A rectangular tiling" - ], - [ - "5900f5021000cf542c510015", - "Problem 406: Guessing Game" - ], - [ - "5900f5041000cf542c510016", - "Problem 407: Idempotents" - ], - [ - "5900f5091000cf542c51001b", - "Problem 408: Admissible paths through a grid" - ], - [ - "5900f5061000cf542c510017", - "Problem 409: Nim Extreme" - ], - [ - "5900f5071000cf542c510018", - "Problem 410: Circle and tangent line" - ], - [ - "5900f5081000cf542c510019", - "Problem 411: Uphill paths" - ], - [ - "5900f5081000cf542c51001a", - "Problem 412: Gnomon numbering" - ], - [ - "5900f50a1000cf542c51001c", - "Problem 413: One-child Numbers" - ], - [ - "5900f50b1000cf542c51001d", - "Problem 414: Kaprekar constant" - ], - [ - "5900f50c1000cf542c51001e", - "Problem 415: Titanic sets" - ], - [ - "5900f50e1000cf542c510020", - "Problem 416: A frog's trip" - ], - [ - "5900f50d1000cf542c51001f", - "Problem 417: Reciprocal cycles II" - ], - [ - "5900f50f1000cf542c510021", - "Problem 418: Factorisation triples" - ], - [ - "5900f5101000cf542c510022", - "Problem 419: Look and say sequence" - ], - [ - "5900f5111000cf542c510023", - "Problem 420: 2x2 positive integer matrix" - ], - [ - "5900f5131000cf542c510024", - "Problem 421: Prime factors of n15+1" - ], - [ - "5900f5131000cf542c510025", - "Problem 422: Sequence of points on a hyperbola" - ], - [ - "5900f5141000cf542c510027", - "Problem 423: Consecutive die throws" - ], - [ - "5900f5141000cf542c510026", - "Problem 424: Kakuro" - ], - [ - "5900f5151000cf542c510028", - "Problem 425: Prime connection" - ], - [ - "5900f5171000cf542c510029", - "Problem 426: Box-ball system" - ], - [ - "5900f5181000cf542c51002a", - "Problem 427: n-sequences" - ], - [ - "5900f5191000cf542c51002b", - "Problem 428: Necklace of Circles" - ], - [ - "5900f5191000cf542c51002c", - "Problem 429: Sum of squares of unitary divisors" - ], - [ - "5900f51a1000cf542c51002d", - "Problem 430: Range flips" - ], - [ - "5900f51b1000cf542c51002e", - "Problem 431: Square Space Silo" - ], - [ - "5900f51e1000cf542c510030", - "Problem 432: Totient sum" - ], - [ - "5900f51d1000cf542c51002f", - "Problem 433: Steps in Euclid's algorithm" - ], - [ - "5900f51f1000cf542c510031", - "Problem 434: Rigid graphs" - ], - [ - "5900f5201000cf542c510032", - "Problem 435: Polynomials of Fibonacci numbers" - ], - [ - "5900f5221000cf542c510033", - "Problem 436: Unfair wager" - ], - [ - "5900f5241000cf542c510036", - "Problem 437: Fibonacci primitive roots" - ], - [ - "5900f5231000cf542c510034", - "Problem 438: Integer part of polynomial equation's solutions" - ], - [ - "5900f5231000cf542c510035", - "Problem 439: Sum of sum of divisors" - ], - [ - "5900f5241000cf542c510037", - "Problem 440: GCD and Tiling" - ], - [ - "5900f5261000cf542c510038", - "Problem 441: The inverse summation of coprime couples" - ], - [ - "5900f5271000cf542c510039", - "Problem 442: Eleven-free integers" - ], - [ - "5900f5271000cf542c51003a", - "Problem 443: GCD sequence" - ], - [ - "5900f52a1000cf542c51003b", - "Problem 444: The Roundtable Lottery" - ], - [ - "5900f52a1000cf542c51003c", - "Problem 445: Retractions A" - ], - [ - "5900f52c1000cf542c51003d", - "Problem 446: Retractions B" - ], - [ - "5900f52c1000cf542c51003e", - "Problem 447: Retractions C" - ], - [ - "5900f52c1000cf542c51003f", - "Problem 448: Average least common multiple" - ], - [ - "5900f52d1000cf542c510040", - "Problem 449: Chocolate covered candy" - ], - [ - "5900f52e1000cf542c510041", - "Problem 450: Hypocycloid and Lattice points" - ], - [ - "5900f5311000cf542c510042", - "Problem 451: Modular inverses" - ], - [ - "5900f5311000cf542c510043", - "Problem 452: Long Products" - ], - [ - "5900f5311000cf542c510044", - "Problem 453: Lattice Quadrilaterals" - ], - [ - "5900f5331000cf542c510045", - "Problem 454: Diophantine reciprocals III" - ], - [ - "5900f5331000cf542c510046", - "Problem 455: Powers With Trailing Digits" - ], - [ - "5900f5351000cf542c510047", - "Problem 456: Triangles containing the origin II" - ], - [ - "5900f5361000cf542c510048", - "Problem 457: A polynomial modulo the square of a prime" - ], - [ - "5900f5361000cf542c510049", - "Problem 458: Permutations of Project" - ], - [ - "5900f5371000cf542c51004a", - "Problem 459: Flipping game" - ], - [ - "5900f5381000cf542c51004b", - "Problem 460: An ant on the move" - ], - [ - "5900f53a1000cf542c51004c", - "Problem 461: Almost Pi" - ], - [ - "5900f53b1000cf542c51004d", - "Problem 462: Permutation of 3-smooth numbers" - ], - [ - "5900f53c1000cf542c51004e", - "Problem 463: A weird recurrence relation" - ], - [ - "5900f53d1000cf542c51004f", - "Problem 464: Möbius function and intervals" - ], - [ - "5900f53d1000cf542c510050", - "Problem 465: Polar polygons" - ], - [ - "5900f53e1000cf542c510051", - "Problem 466: Distinct terms in a multiplication table" - ], - [ - "5900f5411000cf542c510052", - "Problem 467: Superinteger" - ], - [ - "5900f5411000cf542c510054", - "Problem 468: Smooth divisors of binomial coefficients" - ], - [ - "5900f5411000cf542c510053", - "Problem 469: Empty chairs" - ], - [ - "5900f5431000cf542c510055", - "Problem 470: Super Ramvok" - ], - [ - "5900f5431000cf542c510056", - "Problem 471: Triangle inscribed in ellipse" - ], - [ - "5900f5451000cf542c510057", - "Problem 472: Comfortable Distance II" - ], - [ - "5900f5461000cf542c510058", - "Problem 473: Phigital number base" - ], - [ - "5900f5471000cf542c510059", - "Problem 474: Last digits of divisors" - ], - [ - "5900f5481000cf542c51005a", - "Problem 475: Music festival" - ], - [ - "5900f5481000cf542c51005b", - "Problem 476: Circle Packing II" - ], - [ - "5900f54a1000cf542c51005c", - "Problem 477: Number Sequence Game" - ], - [ - "5900f54c1000cf542c51005e", - "Problem 478: Mixtures" - ], - [ - "5900f54b1000cf542c51005d", - "Problem 479: Roots on the Rise" - ], - [ - "5900f54c1000cf542c51005f", - "Problem 480: The Last Question" - ]] + "name": "project euler problems 401 to 480", + "isUpcomingChange": false, + "helpCategory": "JavaScript", + "order": 4, + "time": "", + "template": "", + "required": [], + "superBlock": "project-euler", + "challengeOrder": [ + [ + "5900f4fd1000cf542c51000f", + "Problem 401: Sum of squares of divisors" + ], + [ + "5900f4ff1000cf542c510011", + "Problem 402: Integer-valued polynomials" + ], + [ + "5900f5001000cf542c510013", + "Problem 403: Lattice points enclosed by parabola and line" + ], + [ + "5900f5001000cf542c510012", + "Problem 404: Crisscross Ellipses" + ], + [ + "5900f5021000cf542c510014", + "Problem 405: A rectangular tiling" + ], + [ + "5900f5021000cf542c510015", + "Problem 406: Guessing Game" + ], + [ + "5900f5041000cf542c510016", + "Problem 407: Idempotents" + ], + [ + "5900f5091000cf542c51001b", + "Problem 408: Admissible paths through a grid" + ], + [ + "5900f5061000cf542c510017", + "Problem 409: Nim Extreme" + ], + [ + "5900f5071000cf542c510018", + "Problem 410: Circle and tangent line" + ], + [ + "5900f5081000cf542c510019", + "Problem 411: Uphill paths" + ], + [ + "5900f5081000cf542c51001a", + "Problem 412: Gnomon numbering" + ], + [ + "5900f50a1000cf542c51001c", + "Problem 413: One-child Numbers" + ], + [ + "5900f50b1000cf542c51001d", + "Problem 414: Kaprekar constant" + ], + [ + "5900f50c1000cf542c51001e", + "Problem 415: Titanic sets" + ], + [ + "5900f50e1000cf542c510020", + "Problem 416: A frog's trip" + ], + [ + "5900f50d1000cf542c51001f", + "Problem 417: Reciprocal cycles II" + ], + [ + "5900f50f1000cf542c510021", + "Problem 418: Factorisation triples" + ], + [ + "5900f5101000cf542c510022", + "Problem 419: Look and say sequence" + ], + [ + "5900f5111000cf542c510023", + "Problem 420: 2x2 positive integer matrix" + ], + [ + "5900f5131000cf542c510024", + "Problem 421: Prime factors of n15+1" + ], + [ + "5900f5131000cf542c510025", + "Problem 422: Sequence of points on a hyperbola" + ], + [ + "5900f5141000cf542c510027", + "Problem 423: Consecutive die throws" + ], + [ + "5900f5141000cf542c510026", + "Problem 424: Kakuro" + ], + [ + "5900f5151000cf542c510028", + "Problem 425: Prime connection" + ], + [ + "5900f5171000cf542c510029", + "Problem 426: Box-ball system" + ], + [ + "5900f5181000cf542c51002a", + "Problem 427: n-sequences" + ], + [ + "5900f5191000cf542c51002b", + "Problem 428: Necklace of Circles" + ], + [ + "5900f5191000cf542c51002c", + "Problem 429: Sum of squares of unitary divisors" + ], + [ + "5900f51a1000cf542c51002d", + "Problem 430: Range flips" + ], + [ + "5900f51b1000cf542c51002e", + "Problem 431: Square Space Silo" + ], + [ + "5900f51e1000cf542c510030", + "Problem 432: Totient sum" + ], + [ + "5900f51d1000cf542c51002f", + "Problem 433: Steps in Euclid's algorithm" + ], + [ + "5900f51f1000cf542c510031", + "Problem 434: Rigid graphs" + ], + [ + "5900f5201000cf542c510032", + "Problem 435: Polynomials of Fibonacci numbers" + ], + [ + "5900f5221000cf542c510033", + "Problem 436: Unfair wager" + ], + [ + "5900f5241000cf542c510036", + "Problem 437: Fibonacci primitive roots" + ], + [ + "5900f5231000cf542c510034", + "Problem 438: Integer part of polynomial equation's solutions" + ], + [ + "5900f5231000cf542c510035", + "Problem 439: Sum of sum of divisors" + ], + [ + "5900f5241000cf542c510037", + "Problem 440: GCD and Tiling" + ], + [ + "5900f5261000cf542c510038", + "Problem 441: The inverse summation of coprime couples" + ], + [ + "5900f5271000cf542c510039", + "Problem 442: Eleven-free integers" + ], + [ + "5900f5271000cf542c51003a", + "Problem 443: GCD sequence" + ], + [ + "5900f52a1000cf542c51003b", + "Problem 444: The Roundtable Lottery" + ], + [ + "5900f52a1000cf542c51003c", + "Problem 445: Retractions A" + ], + [ + "5900f52c1000cf542c51003d", + "Problem 446: Retractions B" + ], + [ + "5900f52c1000cf542c51003e", + "Problem 447: Retractions C" + ], + [ + "5900f52c1000cf542c51003f", + "Problem 448: Average least common multiple" + ], + [ + "5900f52d1000cf542c510040", + "Problem 449: Chocolate covered candy" + ], + [ + "5900f52e1000cf542c510041", + "Problem 450: Hypocycloid and Lattice points" + ], + [ + "5900f5311000cf542c510042", + "Problem 451: Modular inverses" + ], + [ + "5900f5311000cf542c510043", + "Problem 452: Long Products" + ], + [ + "5900f5311000cf542c510044", + "Problem 453: Lattice Quadrilaterals" + ], + [ + "5900f5331000cf542c510045", + "Problem 454: Diophantine reciprocals III" + ], + [ + "5900f5331000cf542c510046", + "Problem 455: Powers With Trailing Digits" + ], + [ + "5900f5351000cf542c510047", + "Problem 456: Triangles containing the origin II" + ], + [ + "5900f5361000cf542c510048", + "Problem 457: A polynomial modulo the square of a prime" + ], + [ + "5900f5361000cf542c510049", + "Problem 458: Permutations of Project" + ], + [ + "5900f5371000cf542c51004a", + "Problem 459: Flipping game" + ], + [ + "5900f5381000cf542c51004b", + "Problem 460: An ant on the move" + ], + [ + "5900f53a1000cf542c51004c", + "Problem 461: Almost Pi" + ], + [ + "5900f53b1000cf542c51004d", + "Problem 462: Permutation of 3-smooth numbers" + ], + [ + "5900f53c1000cf542c51004e", + "Problem 463: A weird recurrence relation" + ], + [ + "5900f53d1000cf542c51004f", + "Problem 464: Möbius function and intervals" + ], + [ + "5900f53d1000cf542c510050", + "Problem 465: Polar polygons" + ], + [ + "5900f53e1000cf542c510051", + "Problem 466: Distinct terms in a multiplication table" + ], + [ + "5900f5411000cf542c510052", + "Problem 467: Superinteger" + ], + [ + "5900f5411000cf542c510054", + "Problem 468: Smooth divisors of binomial coefficients" + ], + [ + "5900f5411000cf542c510053", + "Problem 469: Empty chairs" + ], + [ + "5900f5431000cf542c510055", + "Problem 470: Super Ramvok" + ], + [ + "5900f5431000cf542c510056", + "Problem 471: Triangle inscribed in ellipse" + ], + [ + "5900f5451000cf542c510057", + "Problem 472: Comfortable Distance II" + ], + [ + "5900f5461000cf542c510058", + "Problem 473: Phigital number base" + ], + [ + "5900f5471000cf542c510059", + "Problem 474: Last digits of divisors" + ], + [ + "5900f5481000cf542c51005a", + "Problem 475: Music festival" + ], + [ + "5900f5481000cf542c51005b", + "Problem 476: Circle Packing II" + ], + [ + "5900f54a1000cf542c51005c", + "Problem 477: Number Sequence Game" + ], + [ + "5900f54c1000cf542c51005e", + "Problem 478: Mixtures" + ], + [ + "5900f54b1000cf542c51005d", + "Problem 479: Roots on the Rise" + ], + [ + "5900f54c1000cf542c51005f", + "Problem 480: The Last Question" + ] + ] } \ No newline at end of file diff --git a/curriculum/challenges/_meta/python-for-everybody/meta.json b/curriculum/challenges/_meta/python-for-everybody/meta.json index cea2fcb1c1d..e81ba302510 100644 --- a/curriculum/challenges/_meta/python-for-everybody/meta.json +++ b/curriculum/challenges/_meta/python-for-everybody/meta.json @@ -2,6 +2,7 @@ "name": "Python for Everybody", "isUpcomingChange": false, "dashedName": "python-for-everybody", + "helpCategory": "Python", "order": 0, "time": "15 hours", "superBlock": "scientific-computing-with-python", @@ -231,4 +232,4 @@ "Data Visualization: Mailing Lists" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/python-for-penetration-testing/meta.json b/curriculum/challenges/_meta/python-for-penetration-testing/meta.json index 953f55e1e8a..2e95015d9a4 100644 --- a/curriculum/challenges/_meta/python-for-penetration-testing/meta.json +++ b/curriculum/challenges/_meta/python-for-penetration-testing/meta.json @@ -2,6 +2,7 @@ "name": "Python for Penetration Testing", "isUpcomingChange": false, "dashedName": "python-for-penetration-testing", + "helpCategory": "Python", "order": 1, "time": "5 hours", "template": "", @@ -36,4 +37,5 @@ "5ea9997bbec2e9bc47e94db4", "Developing a Port Scanner" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json b/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json index 829b268edba..2cdf84aaa9b 100644 --- a/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json +++ b/curriculum/challenges/_meta/quality-assurance-and-testing-with-chai/meta.json @@ -2,6 +2,7 @@ "name": "Quality Assurance and Testing with Chai", "isUpcomingChange": false, "dashedName": "quality-assurance-and-testing-with-chai", + "helpCategory": "JavaScript", "order": 0, "time": "5 hours", "template": "", @@ -108,4 +109,5 @@ "5f8884f4c46685731aabfc41", "Run Functional Tests Using a Headless Browser II" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/quality-assurance-projects/meta.json b/curriculum/challenges/_meta/quality-assurance-projects/meta.json index b8d579ba2bb..cbd441284d9 100644 --- a/curriculum/challenges/_meta/quality-assurance-projects/meta.json +++ b/curriculum/challenges/_meta/quality-assurance-projects/meta.json @@ -2,6 +2,7 @@ "name": "Quality Assurance Projects", "isUpcomingChange": false, "dashedName": "quality-assurance-projects", + "helpCategory": "JavaScript", "order": 2, "time": "150 hours", "template": "", @@ -28,4 +29,5 @@ "5e601c0d5ac9d0ecd8b94afe", "American British Translator" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/react-and-redux/meta.json b/curriculum/challenges/_meta/react-and-redux/meta.json index fec9173d445..617d882f20b 100644 --- a/curriculum/challenges/_meta/react-and-redux/meta.json +++ b/curriculum/challenges/_meta/react-and-redux/meta.json @@ -2,6 +2,7 @@ "name": "React and Redux", "isUpcomingChange": false, "dashedName": "react-and-redux", + "helpCategory": "JavaScript", "order": 5, "time": "5 hours", "template": "
${ source || '' }", @@ -61,4 +62,5 @@ "5a24c314108439a4d403614a", "Moving Forward From Here" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/react/meta.json b/curriculum/challenges/_meta/react/meta.json index b56b4ba7375..589579837cb 100644 --- a/curriculum/challenges/_meta/react/meta.json +++ b/curriculum/challenges/_meta/react/meta.json @@ -2,6 +2,7 @@ "name": "React", "isUpcomingChange": false, "dashedName": "react", + "helpCategory": "JavaScript", "order": 3, "time": "5 hours", "template": "
${ source || '' }", @@ -203,4 +204,5 @@ "5a24c314108439a4d403618d", "Render React on the Server with renderToString" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/redux/meta.json b/curriculum/challenges/_meta/redux/meta.json index fa4ff76aa00..2216be9c073 100644 --- a/curriculum/challenges/_meta/redux/meta.json +++ b/curriculum/challenges/_meta/redux/meta.json @@ -2,6 +2,7 @@ "name": "Redux", "isUpcomingChange": false, "dashedName": "redux", + "helpCategory": "JavaScript", "order": 4, "time": "5 hours", "template": "", @@ -83,4 +84,5 @@ "5a24c314108439a4d403615b", "Copy an Object with Object.assign" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/regular-expressions/meta.json b/curriculum/challenges/_meta/regular-expressions/meta.json index d7c808b5de1..72bf331623f 100644 --- a/curriculum/challenges/_meta/regular-expressions/meta.json +++ b/curriculum/challenges/_meta/regular-expressions/meta.json @@ -2,6 +2,7 @@ "name": "Regular Expressions", "isUpcomingChange": false, "dashedName": "regular-expressions", + "helpCategory": "JavaScript", "order": 2, "time": "5 hours", "template": "", @@ -140,4 +141,5 @@ "587d7dbb367417b2b2512bac", "Remove Whitespace from Start and End" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/responsive-web-design-principles/meta.json b/curriculum/challenges/_meta/responsive-web-design-principles/meta.json index dc6d1f4a955..c6106f91bee 100644 --- a/curriculum/challenges/_meta/responsive-web-design-principles/meta.json +++ b/curriculum/challenges/_meta/responsive-web-design-principles/meta.json @@ -2,6 +2,7 @@ "name": "Responsive Web Design Principles", "isUpcomingChange": false, "dashedName": "responsive-web-design-principles", + "helpCategory": "HTML-CSS", "order": 4, "time": "1 hour", "template": "", @@ -24,4 +25,5 @@ "587d78b1367417b2b2512b0c", "Make Typography Responsive" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/responsive-web-design-projects/meta.json b/curriculum/challenges/_meta/responsive-web-design-projects/meta.json index 494c1d02b6c..b01ab529e97 100644 --- a/curriculum/challenges/_meta/responsive-web-design-projects/meta.json +++ b/curriculum/challenges/_meta/responsive-web-design-projects/meta.json @@ -3,6 +3,7 @@ "isUpcomingChange": false, "usesMultifileEditor": true, "dashedName": "responsive-web-design-projects", + "helpCategory": "HTML-CSS", "order": 7, "time": "150 hours", "template": "", @@ -29,4 +30,5 @@ "bd7158d8c242eddfaeb5bd13", "Build a Personal Portfolio Webpage" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/rosetta-code/meta.json b/curriculum/challenges/_meta/rosetta-code/meta.json index bbc73b9bd2d..1d41f5dcb66 100644 --- a/curriculum/challenges/_meta/rosetta-code/meta.json +++ b/curriculum/challenges/_meta/rosetta-code/meta.json @@ -2,6 +2,7 @@ "name": "Rosetta Code", "isUpcomingChange": false, "dashedName": "rosetta-code", + "helpCategory": "JavaScript", "order": 3, "time": "", "template": "", @@ -648,4 +649,5 @@ "594810f028c0303b75339ad8", "Zig-zag matrix" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/sass/meta.json b/curriculum/challenges/_meta/sass/meta.json index 430380d8168..e521261a5ab 100644 --- a/curriculum/challenges/_meta/sass/meta.json +++ b/curriculum/challenges/_meta/sass/meta.json @@ -2,6 +2,7 @@ "name": "Sass", "isUpcomingChange": false, "dashedName": "sass", + "helpCategory": "HTML-CSS", "order": 2, "time": "5 hours", "template": "", @@ -44,4 +45,5 @@ "587d7fa5367417b2b2512bbd", "Extend One Set of CSS Styles to Another Element" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json b/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json index 25dc1515165..5bdedc14371 100644 --- a/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json +++ b/curriculum/challenges/_meta/scientific-computing-with-python-projects/meta.json @@ -2,6 +2,7 @@ "name": "Scientific Computing with Python Projects", "isUpcomingChange": false, "dashedName": "scientific-computing-with-python-projects", + "helpCategory": "Python", "order": 1, "time": "150 hours", "superBlock": "scientific-computing-with-python", @@ -27,4 +28,4 @@ "Probability Calculator" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/take-home-projects/meta.json b/curriculum/challenges/_meta/take-home-projects/meta.json index e6d74a81708..a847ce6abb4 100644 --- a/curriculum/challenges/_meta/take-home-projects/meta.json +++ b/curriculum/challenges/_meta/take-home-projects/meta.json @@ -2,6 +2,7 @@ "name": "Take Home Projects", "isUpcomingChange": false, "dashedName": "take-home-projects", + "helpCategory": "JavaScript", "order": 2, "time": "", "template": "", @@ -88,4 +89,5 @@ "5a5d02bd919fcf9ca8cf46cb", "Build a Light-Bright App" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/tensorflow/meta.json b/curriculum/challenges/_meta/tensorflow/meta.json index d28ae876ba2..99254f67d9a 100644 --- a/curriculum/challenges/_meta/tensorflow/meta.json +++ b/curriculum/challenges/_meta/tensorflow/meta.json @@ -2,6 +2,7 @@ "name": "TensorFlow", "isUpcomingChange": false, "dashedName": "tensorflow", + "helpCategory": "Python", "order": 0, "time": "15 hours", "superBlock": "machine-learning-with-python", @@ -134,4 +135,5 @@ "5e8f2f13c4cdbe86b5c72da6", "Conclusion" ] - ]} + ] +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/top-build-a-recipe-project/meta.json b/curriculum/challenges/_meta/top-build-a-recipe-project/meta.json index df2b93d2096..669b0ef5bb9 100644 --- a/curriculum/challenges/_meta/top-build-a-recipe-project/meta.json +++ b/curriculum/challenges/_meta/top-build-a-recipe-project/meta.json @@ -1,6 +1,7 @@ { "name": "TOP build a recipe project", "isUpcomingChange": true, + "helpCategory": "HTML-CSS", "order": 1, "time": "", "template": "", @@ -12,4 +13,4 @@ "Build a Recipe Page Project" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/top-learn-css-foundations-projects/meta.json b/curriculum/challenges/_meta/top-learn-css-foundations-projects/meta.json index 75bfbe1fe5a..9b431a6034a 100644 --- a/curriculum/challenges/_meta/top-learn-css-foundations-projects/meta.json +++ b/curriculum/challenges/_meta/top-learn-css-foundations-projects/meta.json @@ -1,6 +1,7 @@ { "name": "TOP Learn CSS Foundations Projects", "isUpcomingChange": true, + "helpCategory": "HTML-CSS", "order": 3, "time": "", "template": "", @@ -28,4 +29,4 @@ "CSS Foundations Exercise E" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/top-learn-css-foundations/meta.json b/curriculum/challenges/_meta/top-learn-css-foundations/meta.json index acca9f4ee5c..76623b5a33c 100644 --- a/curriculum/challenges/_meta/top-learn-css-foundations/meta.json +++ b/curriculum/challenges/_meta/top-learn-css-foundations/meta.json @@ -1,6 +1,7 @@ { "name": "TOP Learn CSS Foundations", "isUpcomingChange": true, + "helpCategory": "HTML-CSS", "order": 2, "time": "", "template": "", @@ -40,4 +41,4 @@ "CSS Foundations Question H" ] ] -} +} \ No newline at end of file diff --git a/curriculum/challenges/_meta/top-learn-html-foundations/meta.json b/curriculum/challenges/_meta/top-learn-html-foundations/meta.json index b15490e569c..0e8a42599ca 100644 --- a/curriculum/challenges/_meta/top-learn-html-foundations/meta.json +++ b/curriculum/challenges/_meta/top-learn-html-foundations/meta.json @@ -1,6 +1,7 @@ { "name": "TOP Learn HTML Foundations", "isUpcomingChange": true, + "helpCategory": "HTML-CSS", "order": 0, "time": "", "template": "", @@ -103,17 +104,21 @@ "637f702872c65bc8e73dfe33", "Links and Images Question D" ], - [ "637f702372c65bc8e73dfe32", + [ + "637f702372c65bc8e73dfe32", "Links and Images Question E" ], - [ "637f701c72c65bc8e73dfe31", + [ + "637f701c72c65bc8e73dfe31", "Links and Images Question F" ], - [ "637f701572c65bc8e73dfe30", + [ + "637f701572c65bc8e73dfe30", "Links and Images Question G" ], - [ "637f700b72c65bc8e73dfe2f", + [ + "637f700b72c65bc8e73dfe2f", "Links and Images Question D" ] ] -} +} \ No newline at end of file diff --git a/curriculum/get-challenges.js b/curriculum/get-challenges.js index 26f5b3811c9..2cd636d6781 100644 --- a/curriculum/get-challenges.js +++ b/curriculum/get-challenges.js @@ -4,7 +4,6 @@ const util = require('util'); const yaml = require('js-yaml'); const { findIndex } = require('lodash'); const readDirP = require('readdirp'); -const { helpCategoryMap } = require('../client/utils/challenge-types'); const { showUpcomingChanges } = require('../config/env.json'); const { curriculum: curriculumLangs } = require('../config/i18n').availableLangs; @@ -173,7 +172,7 @@ async function buildBlocks({ basename: blockName }, curriculum, superBlock) { } else { const blockMeta = JSON.parse(fs.readFileSync(metaPath)); - const { isUpcomingChange } = blockMeta; + const { isUpcomingChange, helpCategory } = blockMeta; if (typeof isUpcomingChange !== 'boolean') { throw Error( @@ -181,6 +180,10 @@ async function buildBlocks({ basename: blockName }, curriculum, superBlock) { ); } + if (!helpCategory) { + throw Error(`meta file at ${metaPath} is missing 'helpCategory'`); + } + if (!isUpcomingChange || showUpcomingChanges) { // add the block to the superBlock const blockInfo = { meta: blockMeta, challenges: [] }; @@ -323,8 +326,7 @@ Challenges that have been already audited cannot fall back to their English vers challenge.required = (meta.required || []).concat(challenge.required || []); challenge.template = meta.template; challenge.time = meta.time; - challenge.helpCategory = - challenge.helpCategory || helpCategoryMap[challenge.block]; + challenge.helpCategory = challenge.helpCategory || meta.helpCategory; challenge.translationPending = lang !== 'english' && !isAuditedCert(lang, meta.superBlock); challenge.usesMultifileEditor = !!meta.usesMultifileEditor; diff --git a/docs/curriculum-file-structure.md b/docs/curriculum-file-structure.md index b821c57d074..52b87a9aefa 100644 --- a/docs/curriculum-file-structure.md +++ b/docs/curriculum-file-structure.md @@ -85,7 +85,6 @@ When renaming a curriculum block, you need to: 1. Change the name of the same block folder in _all_ of the other language directories to match. These must all be the same as the English structure or the build will error out. 1. Change the name of the block folder in the `_meta` directory. 1. Update the `name` and `dashedName` property for that block's `meta.json` file. -1. Update the `client/utils/help-category-map.json` to use the new block name as the key. 1. Update the block folder in `client/src/pages/learn/{superBlock}`. 1. In the `index.md` file of the above folder, update the `block` value in the frontmatter. 1. In the `client/i18n/locales/{language}/intro.json` files, update the block name to the new name for all the languages. In the English `intro.json` file, update the `title` as well. diff --git a/tools/challenge-helper-scripts/create-project.ts b/tools/challenge-helper-scripts/create-project.ts index 7fb952897ab..fc9fe46650d 100644 --- a/tools/challenge-helper-scripts/create-project.ts +++ b/tools/challenge-helper-scripts/create-project.ts @@ -10,7 +10,12 @@ import { createStepFile } from './utils'; import { getSuperBlockSubPath } from './fs-utils'; import { Meta } from './helpers/project-metadata'; -const helpCategories = ['HTML-CSS', 'JavaScript', 'Python'] as const; +const helpCategories = [ + 'HTML-CSS', + 'JavaScript', + 'Backend Development', + 'Python' +] as const; type BlockInfo = { title: string; @@ -42,10 +47,16 @@ async function createProject( title = block; } void updateIntroJson(superBlock, block, title); - void updateHelpCategoryMap(block, helpCategory); const challengeId = await createFirstChallenge(superBlock, block); - void createMetaJson(superBlock, block, title, order, challengeId); + void createMetaJson( + superBlock, + block, + title, + helpCategory, + order, + challengeId + ); // TODO: remove once we stop relying on markdown in the client. void createIntroMD(superBlock, block, title); } @@ -71,24 +82,11 @@ async function updateIntroJson( ); } -async function updateHelpCategoryMap(block: string, helpCategory: string) { - const helpCategoryPath = path.resolve( - __dirname, - '../../client/utils/help-category-map.json' - ); - const helpMap = await parseJson>(helpCategoryPath); - helpMap[block] = helpCategory; - void withTrace( - fs.writeFile, - helpCategoryPath, - format(JSON.stringify(helpMap), { parser: 'json' }) - ); -} - async function createMetaJson( superBlock: SuperBlocks, block: string, title: string, + helpCategory: string, order: number, challengeId: ObjectID ) { @@ -96,6 +94,7 @@ async function createMetaJson( const newMeta = await parseJson('./base-meta.json'); newMeta.name = title; newMeta.dashedName = block; + newMeta.helpCategory = helpCategory; newMeta.order = order; newMeta.superOrder = Object.values(SuperBlocks).indexOf(superBlock) + 1; newMeta.superBlock = superBlock; diff --git a/tools/challenge-helper-scripts/helpers/project-metadata.ts b/tools/challenge-helper-scripts/helpers/project-metadata.ts index 2640ed54c2c..f48748fc041 100644 --- a/tools/challenge-helper-scripts/helpers/project-metadata.ts +++ b/tools/challenge-helper-scripts/helpers/project-metadata.ts @@ -7,6 +7,7 @@ export type Meta = { name: string; isUpcomingChange: boolean; dashedName: string; + helpCategory: string; order: number; time: string; template: string; diff --git a/tools/scripts/build/external-data-schema.js b/tools/scripts/build/external-data-schema.js index f6c50f85b09..d88c8a336b1 100644 --- a/tools/scripts/build/external-data-schema.js +++ b/tools/scripts/build/external-data-schema.js @@ -9,6 +9,12 @@ const blockSchema = Joi.object({}).keys({ hasEditableBoundaries: Joi.bool().optional(), isBeta: Joi.bool().optional(), dashedName: Joi.string(), + helpCategory: Joi.valid( + 'JavaScript', + 'HTML-CSS', + 'Python', + 'Backend Development' + ), order: Joi.number(), time: Joi.string().allow(''), template: Joi.string().allow(''),