Files
freeCodeCamp/curriculum/superblock-structure/full-stack.json
2024-12-06 10:28:30 +01:00

672 lines
24 KiB
JSON

{
"chapters": [
{
"dashedName": "freecodecamp",
"modules": [
{
"dashedName": "getting-started-with-freecodecamp",
"blocks": [{ "dashedName": "lecture-welcome-to-freecodecamp" }]
}
]
},
{
"dashedName": "html",
"modules": [
{
"dashedName": "basic-html",
"blocks": [
{ "dashedName": "lecture-what-is-html" },
{ "dashedName": "workshop-cat-photo-app" },
{ "dashedName": "lab-recipe-page" },
{ "dashedName": "lecture-html-fundamentals" },
{ "dashedName": "lab-travel-agency-page" },
{ "dashedName": "lecture-working-with-media" },
{ "dashedName": "lab-video-compilation-page" },
{ "dashedName": "lecture-working-with-links" },
{ "dashedName": "review-basic-html" },
{ "dashedName": "quiz-basic-html" }
]
},
{
"dashedName": "semantic-html",
"blocks": [
{ "dashedName": "lecture-importance-of-semantic-html" },
{ "dashedName": "workshop-blog-page" },
{ "dashedName": "lab-event-hub" },
{ "dashedName": "review-semantic-html" },
{ "dashedName": "quiz-semantic-html" }
]
},
{
"dashedName": "html-forms-and-tables",
"blocks": [
{ "dashedName": "lecture-working-with-forms" },
{ "dashedName": "workshop-hotel-feedback-form" },
{ "dashedName": "lab-survey-form" },
{ "dashedName": "lecture-working-with-tables" },
{ "dashedName": "workshop-final-exams-table" },
{ "dashedName": "lab-book-catalog-table" },
{ "dashedName": "lecture-working-with-html-tools" },
{ "dashedName": "review-html-tables-and-forms" },
{ "dashedName": "quiz-html-tables-and-forms" }
]
},
{
"dashedName": "html-and-accessibility",
"blocks": [
{
"dashedName": "lecture-importance-of-accessibility-and-good-html-structure"
},
{ "dashedName": "lab-checkout-page" },
{ "dashedName": "review-html-accessibility" },
{ "dashedName": "quiz-html-accessibility" }
]
},
{
"moduleType": "review",
"dashedName": "review-html",
"blocks": [{ "dashedName": "review-html" }]
}
]
},
{
"dashedName": "css",
"modules": [
{
"dashedName": "computer-basics",
"blocks": [
{
"dashedName": "lecture-understanding-computer-internet-and-tooling-basics"
},
{ "dashedName": "lecture-working-with-file-systems" },
{ "dashedName": "lecture-browsing-the-web-effectively" },
{ "dashedName": "review-computer-basics" },
{ "dashedName": "quiz-computer-basics" }
]
},
{
"dashedName": "basic-css",
"blocks": [
{ "dashedName": "lecture-what-is-css" },
{ "dashedName": "workshop-cafe-menu" },
{ "dashedName": "lab-business-card" },
{
"dashedName": "lecture-css-specificity-the-cascade-algorithm-and-inheritance"
},
{ "dashedName": "review-basic-css" },
{ "dashedName": "quiz-basic-css" },
{ "dashedName": "lecture-styling-lists-and-links" },
{ "dashedName": "lab-stylized-to-do-list" },
{ "dashedName": "lecture-working-with-backgrounds-and-borders" },
{ "dashedName": "lab-blog-post-card" },
{ "dashedName": "review-css-backgrounds-and-borders" },
{ "dashedName": "quiz-css-backgrounds-and-borders" }
]
},
{
"dashedName": "design-for-developers",
"blocks": [
{ "dashedName": "lecture-user-interface-design-fundamentals" },
{ "dashedName": "lecture-user-centered-design" },
{ "dashedName": "lecture-common-design-tools" },
{ "dashedName": "review-design-fundamentals" },
{ "dashedName": "quiz-design-fundamentals" }
]
},
{
"dashedName": "absolute-and-relative-units",
"blocks": [
{
"dashedName": "lecture-working-with-relative-and-absolute-units"
},
{ "dashedName": "lab-event-flyer-page" },
{ "dashedName": "review-css-relative-and-absolute-units" },
{ "dashedName": "quiz-css-relative-and-absolute-units" }
]
},
{
"dashedName": "pseudo-classes-and-elements",
"blocks": [
{
"dashedName": "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css"
},
{ "dashedName": "workshop-greeting-card" },
{ "dashedName": "lab-job-application-form" },
{ "dashedName": "review-css-pseudo-classes" },
{ "dashedName": "quiz-css-pseudo-classes" }
]
},
{
"dashedName": "css-colors",
"blocks": [
{ "dashedName": "lecture-working-with-colors-in-css" },
{ "dashedName": "workshop-colored-markers" },
{ "dashedName": "review-css-colors" },
{ "dashedName": "quiz-css-colors" }
]
},
{
"dashedName": "styling-forms",
"blocks": [
{ "dashedName": "lecture-best-practices-for-styling-forms" },
{ "dashedName": "workshop-registration-form" },
{ "dashedName": "lab-contact-form" },
{ "dashedName": "review-styling-forms" },
{ "dashedName": "quiz-styling-forms" }
]
},
{
"dashedName": "css-box-model",
"blocks": [
{
"dashedName": "lecture-working-with-css-transforms-overflow-and-filters"
},
{ "dashedName": "workshop-rothko-painting" },
{ "dashedName": "lab-confidential-email-page" },
{ "dashedName": "review-css-layout-and-effects" },
{ "dashedName": "quiz-css-layout-and-effects" }
]
},
{
"dashedName": "css-flexbox",
"blocks": [
{ "dashedName": "lecture-working-with-css-flexbox" },
{ "dashedName": "workshop-flexbox-photo-gallery" },
{ "dashedName": "lab-page-of-playing-cards" },
{ "dashedName": "review-css-flexbox" },
{ "dashedName": "quiz-css-flexbox" }
]
},
{
"dashedName": "css-typography",
"blocks": [
{ "dashedName": "lecture-working-with-css-fonts" },
{ "dashedName": "workshop-nutritional-label" },
{ "dashedName": "lab-newspaper-article" },
{ "dashedName": "review-css-typography" },
{ "dashedName": "quiz-css-typography" }
]
},
{
"dashedName": "css-and-accessibility",
"blocks": [
{
"dashedName": "lecture-best-practices-for-accessibility-and-css"
},
{ "dashedName": "workshop-accessibility-quiz" },
{ "dashedName": "lab-tribute-page" },
{ "dashedName": "review-css-accessibility" },
{ "dashedName": "quiz-css-accessibility" }
]
},
{
"dashedName": "attribute-selectors",
"blocks": [
{ "dashedName": "lecture-working-with-attribute-selectors" },
{ "dashedName": "workshop-balance-sheet" },
{ "dashedName": "lab-book-inventory-app" },
{ "dashedName": "review-css-attribute-selectors" },
{ "dashedName": "quiz-css-attribute-selectors" }
]
},
{
"dashedName": "css-positioning",
"blocks": [
{
"dashedName": "lecture-understanding-how-to-work-with-floats-and-positioning-in-css"
},
{ "dashedName": "workshop-cat-painting" },
{ "dashedName": "lab-house-painting" },
{ "dashedName": "review-css-positioning" },
{ "dashedName": "quiz-css-positioning" }
]
},
{
"dashedName": "responsive-design",
"blocks": [
{
"dashedName": "lecture-best-practices-for-responsive-web-design"
},
{ "dashedName": "workshop-piano" },
{ "dashedName": "lab-technical-documentation-page" },
{ "dashedName": "review-responsive-web-design" },
{ "dashedName": "quiz-responsive-web-design" }
]
},
{
"dashedName": "css-variables",
"blocks": [
{ "dashedName": "lecture-working-with-css-variables" },
{ "dashedName": "workshop-city-skyline" },
{ "dashedName": "lab-availability-table" },
{ "dashedName": "review-css-variables" },
{ "dashedName": "quiz-css-variables" }
]
},
{
"dashedName": "css-grid",
"blocks": [
{ "dashedName": "lecture-working-with-css-grid" },
{ "dashedName": "workshop-magazine" },
{ "dashedName": "lecture-debugging-css" },
{ "dashedName": "lab-product-landing-page" },
{ "dashedName": "review-css-grid" },
{ "dashedName": "quiz-css-grid" }
]
},
{
"dashedName": "css-animations",
"blocks": [
{ "dashedName": "lecture-animations-and-accessibility" },
{ "dashedName": "workshop-ferris-wheel" },
{ "dashedName": "lab-moon-orbit" },
{ "dashedName": "workshop-flappy-penguin" },
{ "dashedName": "lab-personal-portfolio" },
{ "dashedName": "review-css-animations" },
{ "dashedName": "quiz-css-animations" }
]
},
{
"moduleType": "review",
"dashedName": "review-css",
"blocks": [{ "dashedName": "review-css" }]
}
]
},
{
"dashedName": "javascript",
"modules": [
{
"dashedName": "code-editors",
"blocks": [
{ "dashedName": "lecture-working-with-code-editors-and-ides" }
]
},
{
"dashedName": "javascript-variables-and-strings",
"blocks": [
{ "dashedName": "lecture-introduction-to-javascript" },
{ "dashedName": "workshop-greeting-bot" },
{ "dashedName": "lab-javascript-trivia-bot" },
{ "dashedName": "lecture-working-with-data-types" },
{ "dashedName": "review-javascript-variables-and-data-types" },
{ "dashedName": "quiz-javascript-variables-and-data-types" },
{ "dashedName": "lecture-working-with-strings-in-javascript" },
{ "dashedName": "workshop-teacher-chatbot" },
{ "dashedName": "lecture-working-with-common-string-methods" },
{ "dashedName": "review-javascript-strings" },
{ "dashedName": "quiz-javascript-strings" }
]
},
{
"dashedName": "javascript-booleans-and-numbers",
"blocks": [
{
"dashedName": "lecture-working-with-numbers-booleans-and-the-math-object"
},
{ "dashedName": "workshop-mathbot" },
{ "dashedName": "lab-fortune-teller" },
{
"dashedName": "lecture-working-with-numbers-and-common-number-methods"
},
{ "dashedName": "review-javascript-math" },
{ "dashedName": "quiz-javascript-math" },
{
"dashedName": "lecture-understanding-comparisons-and-conditionals"
},
{ "dashedName": "review-javascript-comparisons-and-conditionals" },
{ "dashedName": "quiz-javascript-comparisons-and-conditionals" }
]
},
{
"dashedName": "javascript-functions",
"blocks": [
{ "dashedName": "lecture-working-with-functions" },
{ "dashedName": "workshop-calculator" },
{ "dashedName": "lab-email-masker" },
{ "dashedName": "lab-sentence-maker" },
{ "dashedName": "workshop-loan-qualification-checker" },
{ "dashedName": "lab-leap-year-calculator" },
{ "dashedName": "review-javascript-functions" },
{ "dashedName": "quiz-javascript-functions" }
]
},
{
"dashedName": "javascript-arrays",
"blocks": [
{ "dashedName": "lecture-working-with-arrays" },
{ "dashedName": "workshop-shopping-list" },
{ "dashedName": "lecture-working-with-common-array-methods" },
{ "dashedName": "lab-lunch-picker-program" },
{ "dashedName": "review-javascript-arrays" },
{ "dashedName": "quiz-javascript-arrays" }
]
},
{
"dashedName": "javascript-objects",
"blocks": [
{ "dashedName": "lecture-working-with-objects" },
{ "dashedName": "workshop-recipe-tracker" },
{ "dashedName": "lab-quiz-game" },
{ "dashedName": "review-javascript-objects" },
{ "dashedName": "quiz-javascript-objects" }
]
},
{
"dashedName": "javascript-loops",
"blocks": [
{ "dashedName": "lecture-working-with-loops" },
{ "dashedName": "workshop-sentence-analyzer" },
{ "dashedName": "lab-factorial-calculator" },
{ "dashedName": "review-javascript-loops" },
{ "dashedName": "quiz-javascript-loops" }
]
},
{
"dashedName": "review-javascript-fundamentals",
"blocks": [
{
"dashedName": "lecture-understanding-core-javascript-fundamentals"
},
{ "dashedName": "lab-pyramid-generator" },
{ "dashedName": "lab-gradebook-app" },
{ "dashedName": "lecture-the-var-keyword-and-hoisting" },
{ "dashedName": "lab-inventory-management-program" },
{
"dashedName": "lecture-understanding-modules-imports-and-exports"
},
{ "dashedName": "review-javascript-fundamentals" },
{ "dashedName": "quiz-javascript-fundamentals" }
]
},
{
"dashedName": "higher-order-functions-and-callbacks",
"blocks": [
{
"dashedName": "lecture-working-with-higher-order-functions-and-callbacks"
},
{ "dashedName": "workshop-library-manager" },
{ "dashedName": "lab-book-organizer" },
{ "dashedName": "review-javascript-higher-order-functions" },
{ "dashedName": "quiz-javascript-higher-order-functions" }
]
},
{
"dashedName": "dom-manipulation-and-events",
"blocks": [
{
"dashedName": "lecture-working-with-the-dom-click-events-and-web-apis"
},
{ "dashedName": "workshop-storytelling-app" },
{ "dashedName": "lab-favorite-icon-toggler" },
{
"dashedName": "review-dom-manipulation-and-click-events-with-javascript"
},
{
"dashedName": "quiz-dom-manipulation-and-click-event-with-javascript"
},
{
"dashedName": "lecture-understanding-the-event-object-and-event-delegation"
},
{ "dashedName": "workshop-music-instrument-filter" },
{ "dashedName": "lab-real-time-counter" },
{ "dashedName": "lab-lightbox-viewer" },
{ "dashedName": "workshop-rps-game" },
{ "dashedName": "lab-palindrome-checker" },
{ "dashedName": "lab-football-team-cards" },
{ "dashedName": "review-javascript-events" },
{ "dashedName": "quiz-javascript-events" }
]
},
{
"dashedName": "debugging-javascript",
"blocks": [
{ "dashedName": "lecture-debugging-techniques" },
{ "dashedName": "lab-random-background-color-changer" },
{ "dashedName": "review-debugging-javascript" },
{ "dashedName": "quiz-debugging-javascript" }
]
},
{
"dashedName": "basic-regex",
"blocks": [
{ "dashedName": "lecture-working-with-regular-expressions" },
{ "dashedName": "workshop-spam-filter" },
{ "dashedName": "lab-markdown-to-html-converter" },
{ "dashedName": "lab-regex-sandbox" },
{ "dashedName": "review-javascript-regular-expressions" },
{ "dashedName": "quiz-javascript-regular-expressions" }
]
},
{
"dashedName": "form-validation",
"blocks": [
{ "dashedName": "lecture-understanding-form-validation" },
{ "dashedName": "workshop-calorie-counter" },
{ "dashedName": "review-form-validation-with-javascript" },
{ "dashedName": "quiz-form-validation-with-javascript" }
]
},
{
"dashedName": "javascript-dates",
"blocks": [
{ "dashedName": "lecture-working-with-dates" },
{ "dashedName": "lab-date-conversion" },
{ "dashedName": "review-javascript-dates" },
{ "dashedName": "quiz-javascript-dates" }
]
},
{
"dashedName": "audio-and-video-events",
"blocks": [
{ "dashedName": "lecture-working-with-audio-and-video" },
{ "dashedName": "review-javascript-audio-and-video" },
{ "dashedName": "quiz-javascript-audio-and-video" }
]
},
{
"dashedName": "maps-and-sets",
"blocks": [
{ "dashedName": "lecture-working-with-maps-and-sets" },
{ "dashedName": "review-javascript-maps-and-sets" },
{ "dashedName": "quiz-javascript-maps-and-sets" }
]
},
{
"dashedName": "localstorage-and-crud-operations",
"blocks": [
{
"dashedName": "lecture-working-with-client-side-storage-and-crud-operations"
},
{ "dashedName": "workshop-todo-app" },
{ "dashedName": "lab-bookmark-manager-app" },
{ "dashedName": "review-local-storage-and-crud" },
{ "dashedName": "quiz-local-storage-and-crud" }
]
},
{
"dashedName": "classes-and-the-this-keyword",
"blocks": [
{
"dashedName": "lecture-understanding-how-to-work-with-classes-in-javascript"
},
{ "dashedName": "workshop-shopping-cart" },
{ "dashedName": "lab-project-idea-board" },
{ "dashedName": "lab-bank-account-manager" },
{ "dashedName": "review-javascript-classes" },
{ "dashedName": "quiz-javascript-classes" }
]
},
{
"dashedName": "recursion",
"blocks": [
{
"dashedName": "lecture-understanding-recursion-and-the-call-stack"
},
{ "dashedName": "workshop-decimal-to-binary-converter" },
{ "dashedName": "lab-permutation-generator" },
{ "dashedName": "review-recursion" },
{ "dashedName": "quiz-recursion" }
]
},
{
"dashedName": "functional-programming",
"blocks": [
{ "dashedName": "lecture-understanding-functional-programming" },
{ "dashedName": "workshop-recipe-ingredient-converter" },
{ "dashedName": "review-javascript-functional-programming" },
{ "dashedName": "quiz-javascript-functional-programming" }
]
},
{
"dashedName": "asynchronous-javascript",
"blocks": [
{ "dashedName": "lecture-understanding-asynchronous-programming" },
{ "dashedName": "workshop-fcc-authors-page" },
{ "dashedName": "review-asynchronous-javascript" },
{ "dashedName": "quiz-asynchronous-javascript" }
]
},
{
"moduleType": "review",
"dashedName": "review-javascript",
"blocks": [{ "dashedName": "review-javascript" }]
}
]
},
{
"dashedName": "frontend-libraries",
"modules": [
{
"dashedName": "react-fundamentals",
"blocks": [
{
"dashedName": "lecture-introduction-to-javascript-libraries-and-frameworks"
},
{ "dashedName": "lecture-working-with-data-in-react" },
{ "dashedName": "quiz-react-basics" }
]
},
{
"dashedName": "react-state-hooks-and-routing",
"blocks": [
{ "dashedName": "quiz-react-state-and-hooks" },
{ "dashedName": "quiz-advanced-react" }
]
},
{
"dashedName": "performance",
"blocks": [
{ "dashedName": "review-web-performance" },
{ "dashedName": "quiz-web-performance" }
]
},
{
"dashedName": "css-libraries-and-frameworks",
"blocks": [
{ "dashedName": "review-css-libraries-and-frameworks" },
{ "dashedName": "quiz-css-libraries-and-frameworks" }
]
},
{
"dashedName": "testing",
"blocks": [
{ "dashedName": "review-testing" },
{ "dashedName": "quiz-testing" }
]
},
{
"dashedName": "typescript-fundamentals",
"blocks": [
{ "dashedName": "review-typescript" },
{ "dashedName": "quiz-typescript" }
]
},
{
"moduleType": "review",
"dashedName": "review-front-end-libraries",
"blocks": [{ "dashedName": "review-front-end-libraries" }]
}
]
},
{
"dashedName": "relational-databases",
"modules": [
{
"dashedName": "bash-fundamentals",
"blocks": [
{ "dashedName": "workshop-bash-boilerplate" },
{ "dashedName": "review-bash-commands" },
{ "dashedName": "quiz-bash-commands" }
]
},
{
"dashedName": "relational-databases",
"blocks": [
{ "dashedName": "workshop-mario-database" },
{ "dashedName": "lab-celestial-bodies-database" },
{ "dashedName": "review-relational-database" },
{ "dashedName": "quiz-relational-database" }
]
},
{
"dashedName": "bash-scripting",
"blocks": [
{ "dashedName": "workshop-bash-five-programs" },
{ "dashedName": "review-bash-scripting" },
{ "dashedName": "quiz-bash-scripting" }
]
},
{
"dashedName": "sql-and-bash",
"blocks": [
{ "dashedName": "workshop-sql-student-database-part-1" },
{ "dashedName": "workshop-sql-student-database-part-2" },
{ "dashedName": "lab-world-cup-database" },
{ "dashedName": "workshop-kitty-ipsum-translator" },
{ "dashedName": "workshop-bike-rental-shop" },
{ "dashedName": "lab-salon-appointment-scheduler" },
{ "dashedName": "review-bash-and-sql" },
{ "dashedName": "quiz-bash-and-sql" }
]
},
{
"dashedName": "nano",
"blocks": [
{ "dashedName": "workshop-castle" },
{ "dashedName": "review-nano" },
{ "dashedName": "quiz-nano" }
]
},
{
"dashedName": "git",
"blocks": [
{ "dashedName": "workshop-sql-reference-object" },
{ "dashedName": "lab-periodic-table-database" },
{ "dashedName": "lab-number-guessing-game" },
{ "dashedName": "review-git" },
{ "dashedName": "quiz-git" }
]
},
{
"moduleType": "review",
"dashedName": "review-relational-databases",
"blocks": [{ "dashedName": "review-relational-databases" }]
}
]
},
{
"chapterType": "exam",
"dashedName": "exam-certified-full-stack-developer",
"modules": [
{
"moduleType": "exam",
"dashedName": "exam-certified-full-stack-developer",
"blocks": [{ "dashedName": "exam-certified-full-stack-developer" }]
}
]
}
]
}