{ "chapters": [ { "dashedName": "html", "modules": [ { "dashedName": "basic-html", "blocks": [ "workshop-curriculum-outline", "lecture-welcome-to-freecodecamp", "lab-debug-camperbots-profile-page", "lecture-understanding-html-attributes", "lab-debug-pet-adoption-page", "lecture-understanding-the-html-boilerplate", "workshop-cat-photo-app", "lab-recipe-page", "lecture-html-fundamentals", "lecture-understanding-how-html-affects-seo", "lab-travel-agency-page", "lecture-working-with-audio-and-video-elements", "lecture-working-with-images-and-svgs", "workshop-build-a-heart-icon", "lecture-working-with-media", "lab-video-compilation-page", "lecture-working-with-links", "review-basic-html", "quiz-basic-html" ] }, { "dashedName": "semantic-html", "blocks": [ "lecture-importance-of-semantic-html", "lecture-understanding-nuanced-semantic-elements", "lecture-working-with-text-and-time-semantic-elements", "lecture-working-with-specialized-semantic-elements", "workshop-blog-page", "lab-event-hub", "review-semantic-html", "quiz-semantic-html" ] }, { "dashedName": "html-forms-and-tables", "blocks": [ "lecture-working-with-forms", "workshop-hotel-feedback-form", "lab-survey-form", "lecture-working-with-tables", "workshop-final-exams-table", "lab-book-catalog-table", "lecture-working-with-html-tools", "review-html-tables-and-forms", "quiz-html-tables-and-forms" ] }, { "dashedName": "html-and-accessibility", "blocks": [ "lecture-importance-of-accessibility-and-good-html-structure", "lecture-accessible-tables-forms", "lecture-introduction-to-aria", "lecture-accessible-media-elements", "lab-checkout-page", "lab-movie-review-page", "lab-multimedia-player", "review-html-accessibility", "quiz-html-accessibility" ] }, { "moduleType": "review", "dashedName": "review-html", "blocks": ["review-html"] } ] }, { "dashedName": "css", "modules": [ { "dashedName": "computer-basics", "blocks": [ "lecture-understanding-computer-internet-and-tooling-basics", "lecture-working-with-file-systems", "lecture-browsing-the-web-effectively", "review-computer-basics", "quiz-computer-basics" ] }, { "dashedName": "basic-css", "blocks": [ "lecture-what-is-css", "workshop-cafe-menu", "lab-business-card", "lecture-css-specificity-the-cascade-algorithm-and-inheritance", "review-basic-css", "quiz-basic-css", "lecture-styling-lists-and-links", "lab-stylized-to-do-list", "lecture-working-with-backgrounds-and-borders", "lab-blog-post-card", "review-css-backgrounds-and-borders", "quiz-css-backgrounds-and-borders" ] }, { "dashedName": "design-for-developers", "blocks": [ "lecture-user-interface-design-fundamentals", "lecture-user-centered-design", "lecture-common-design-tools", "review-design-fundamentals", "quiz-design-fundamentals" ] }, { "dashedName": "absolute-and-relative-units", "blocks": [ "lecture-working-with-relative-and-absolute-units", "lab-event-flyer-page", "review-css-relative-and-absolute-units", "quiz-css-relative-and-absolute-units" ] }, { "dashedName": "pseudo-classes-and-elements", "blocks": [ "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css", "workshop-greeting-card", "lab-job-application-form", "review-css-pseudo-classes", "quiz-css-pseudo-classes" ] }, { "dashedName": "css-colors", "blocks": [ "lecture-working-with-colors-in-css", "workshop-colored-markers", "lab-colored-boxes", "review-css-colors", "quiz-css-colors" ] }, { "dashedName": "styling-forms", "blocks": [ "lecture-best-practices-for-styling-forms", "workshop-registration-form", "lab-contact-form", "review-styling-forms", "quiz-styling-forms" ] }, { "dashedName": "css-box-model", "blocks": [ "lecture-working-with-css-transforms-overflow-and-filters", "workshop-rothko-painting", "lab-confidential-email-page", "review-css-layout-and-effects", "quiz-css-layout-and-effects" ] }, { "dashedName": "css-flexbox", "blocks": [ "lecture-working-with-css-flexbox", "workshop-flexbox-photo-gallery", "lab-page-of-playing-cards", "review-css-flexbox", "quiz-css-flexbox" ] }, { "dashedName": "css-typography", "blocks": [ "lecture-working-with-css-fonts", "workshop-nutritional-label", "lab-newspaper-article", "review-css-typography", "quiz-css-typography" ] }, { "dashedName": "css-and-accessibility", "blocks": [ "lecture-best-practices-for-accessibility-and-css", "workshop-accessibility-quiz", "lab-tribute-page", "review-css-accessibility", "quiz-css-accessibility" ] }, { "dashedName": "css-positioning", "blocks": [ "lecture-understanding-how-to-work-with-floats-and-positioning-in-css", "workshop-cat-painting", "lab-house-painting", "review-css-positioning", "quiz-css-positioning" ] }, { "dashedName": "attribute-selectors", "blocks": [ "lecture-working-with-attribute-selectors", "workshop-balance-sheet", "lab-book-inventory-app", "review-css-attribute-selectors", "quiz-css-attribute-selectors" ] }, { "dashedName": "responsive-design", "blocks": [ "lecture-best-practices-for-responsive-web-design", "workshop-piano", "lab-technical-documentation-page", "review-responsive-web-design", "quiz-responsive-web-design" ] }, { "dashedName": "css-variables", "blocks": [ "lecture-working-with-css-variables", "workshop-city-skyline", "lab-availability-table", "review-css-variables", "quiz-css-variables" ] }, { "dashedName": "css-grid", "blocks": [ "lecture-working-with-css-grid", "workshop-magazine", "lab-newspaper-layout", "lecture-debugging-css", "lab-product-landing-page", "review-css-grid", "quiz-css-grid" ] }, { "dashedName": "css-animations", "blocks": [ "lecture-animations-and-accessibility", "workshop-ferris-wheel", "lab-moon-orbit", "workshop-flappy-penguin", "lab-personal-portfolio", "review-css-animations", "quiz-css-animations" ] }, { "moduleType": "review", "dashedName": "review-css", "blocks": ["review-css"] } ] }, { "dashedName": "javascript", "modules": [ { "dashedName": "code-editors", "blocks": ["lecture-working-with-code-editors-and-ides"] }, { "dashedName": "javascript-variables-and-strings", "blocks": [ "lecture-introduction-to-javascript", "lecture-introduction-to-strings", "lecture-understanding-code-clarity", "workshop-greeting-bot", "lab-javascript-trivia-bot", "lab-sentence-maker", "lecture-working-with-data-types", "review-javascript-variables-and-data-types", "quiz-javascript-variables-and-data-types", "lecture-working-with-strings-in-javascript", "workshop-teacher-chatbot", "lecture-working-with-string-character-methods", "lecture-working-with-string-search-and-slice-methods", "lecture-working-with-string-formatting-methods", "lecture-working-with-string-modification-methods", "review-javascript-strings", "quiz-javascript-strings" ] }, { "dashedName": "javascript-booleans-and-numbers", "blocks": [ "lecture-working-with-numbers-and-arithmetic-operators", "lecture-working-with-operator-behavior", "lecture-working-with-comparison-and-boolean-operators", "lecture-working-with-unary-and-bitwise-operators", "lecture-working-with-conditional-logic-and-math-methods", "workshop-mathbot", "lab-fortune-teller", "lecture-working-with-numbers-and-common-number-methods", "review-javascript-math", "quiz-javascript-math", "lecture-understanding-comparisons-and-conditionals", "review-javascript-comparisons-and-conditionals", "quiz-javascript-comparisons-and-conditionals" ] }, { "dashedName": "javascript-functions", "blocks": [ "lecture-working-with-functions", "workshop-calculator", "lab-boolean-check", "lab-email-masker", "workshop-loan-qualification-checker", "lab-celsius-to-fahrenheit-converter", "lab-counting-cards", "lab-leap-year-calculator", "lab-truncate-string", "lab-string-ending-checker", "review-javascript-functions", "quiz-javascript-functions" ] }, { "dashedName": "javascript-arrays", "blocks": [ "lecture-working-with-arrays", "workshop-shopping-list", "lab-lunch-picker-program", "lab-golf-score-translator", "lab-reverse-a-string", "lecture-working-with-common-array-methods", "review-javascript-arrays", "quiz-javascript-arrays" ] }, { "dashedName": "javascript-objects", "blocks": [ "lecture-introduction-to-javascript-objects-and-their-properties", "lecture-working-with-json", "lecture-working-with-optional-chaining-and-object-destructuring", "workshop-recipe-tracker", "lab-quiz-game", "lab-record-collection", "review-javascript-objects", "quiz-javascript-objects" ] }, { "dashedName": "javascript-loops", "blocks": [ "lecture-working-with-loops", "workshop-sentence-analyzer", "lab-longest-word-in-a-string", "lab-factorial-calculator", "lab-mutations", "lab-chunky-monkey", "lab-profile-lookup", "lab-repeat-a-string", "review-javascript-loops", "quiz-javascript-loops" ] }, { "dashedName": "review-javascript-fundamentals", "blocks": [ "lecture-working-with-types-and-objects", "lecture-working-with-arrays-variables-and-naming-practices", "lecture-working-with-code-quality-and-execution-concepts", "lab-largest-number-finder", "lab-first-element-finder", "lab-slice-and-splice", "lab-pyramid-generator", "lab-gradebook-app", "lecture-the-var-keyword-and-hoisting", "lab-title-case-converter", "lab-falsy-remover", "lab-inventory-management-program", "lecture-understanding-modules-imports-and-exports", "lecture-working-with-the-arguments-object-and-rest-parameters", "lab-password-generator", "lab-sum-all-numbers-algorithm", "lab-dna-pair-generator", "lab-html-entitiy-converter", "lab-optional-arguments-sum-function", "review-javascript-fundamentals", "quiz-javascript-fundamentals" ] }, { "dashedName": "higher-order-functions-and-callbacks", "blocks": [ "lecture-working-with-higher-order-functions-and-callbacks", "workshop-library-manager", "lab-book-organizer", "lab-sorted-index-finder", "lab-symmetric-difference", "lab-matching-object-filter", "lab-sum-all-primes-calculator", "lab-deep-flattening-tool", "review-javascript-higher-order-functions", "quiz-javascript-higher-order-functions" ] }, { "dashedName": "dom-manipulation-and-events", "blocks": [ "lecture-working-with-the-dom-click-events-and-web-apis", "workshop-storytelling-app", "lab-favorite-icon-toggler", "lecture-understanding-the-event-object-and-event-delegation", "workshop-music-instrument-filter", "lab-real-time-counter", "lab-lightbox-viewer", "workshop-rps-game", "lab-football-team-cards", "review-dom-manipulation-and-click-events-with-javascript", "quiz-dom-manipulation-and-click-event-with-javascript" ] }, { "dashedName": "js-a11y", "blocks": [ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states", "workshop-planets-tablist", "workshop-note-taking-app", "lab-theme-switcher", "review-js-a11y", "quiz-js-a11y" ] }, { "dashedName": "debugging-javascript", "blocks": [ "lecture-debugging-techniques", "lab-random-background-color-changer", "review-debugging-javascript", "quiz-debugging-javascript" ] }, { "dashedName": "basic-regex", "blocks": [ "lecture-working-with-regular-expressions", "workshop-spam-filter", "lab-palindrome-checker", "lab-markdown-to-html-converter", "lab-regex-sandbox", "lab-smart-word-replacement", "review-javascript-regular-expressions", "quiz-javascript-regular-expressions" ] }, { "dashedName": "form-validation", "blocks": [ "lecture-understanding-form-validation", "workshop-calorie-counter", "lab-customer-complaint-form", "review-form-validation-with-javascript", "quiz-form-validation-with-javascript" ] }, { "dashedName": "javascript-dates", "blocks": [ "lecture-working-with-dates", "lab-date-conversion", "review-javascript-dates", "quiz-javascript-dates" ] }, { "dashedName": "audio-and-video-events", "blocks": [ "lecture-working-with-audio-and-video", "workshop-music-player", "lab-drum-machine", "review-javascript-audio-and-video", "quiz-javascript-audio-and-video" ] }, { "dashedName": "maps-and-sets", "blocks": [ "lecture-working-with-maps-and-sets", "workshop-plant-nursery-catalog", "lab-voting-system", "review-javascript-maps-and-sets", "quiz-javascript-maps-and-sets" ] }, { "dashedName": "localstorage-and-crud-operations", "blocks": [ "lecture-working-with-client-side-storage-and-crud-operations", "workshop-todo-app", "lab-bookmark-manager-app", "review-local-storage-and-crud", "quiz-local-storage-and-crud" ] }, { "dashedName": "classes-and-the-this-keyword", "blocks": [ "lecture-understanding-how-to-work-with-classes-in-javascript", "workshop-shopping-cart", "lab-project-idea-board", "lab-bank-account-manager", "review-javascript-classes", "quiz-javascript-classes" ] }, { "dashedName": "recursion", "blocks": [ "lecture-understanding-recursion-and-the-call-stack", "workshop-decimal-to-binary-converter", "lab-permutation-generator", "review-recursion", "quiz-recursion" ] }, { "dashedName": "functional-programming", "blocks": [ "lecture-understanding-functional-programming", "workshop-recipe-ingredient-converter", "lab-sorting-visualizer", "review-javascript-functional-programming", "quiz-javascript-functional-programming" ] }, { "dashedName": "asynchronous-javascript", "blocks": [ "lecture-understanding-asynchronous-programming", "workshop-fcc-authors-page", "lab-fcc-forum-leaderboard", "lab-weather-app", "review-asynchronous-javascript", "quiz-asynchronous-javascript" ] }, { "moduleType": "review", "dashedName": "review-javascript", "blocks": ["review-javascript"] } ] }, { "dashedName": "frontend-libraries", "modules": [ { "dashedName": "react-fundamentals", "blocks": [ "lecture-introduction-to-javascript-libraries-and-frameworks", "workshop-reusable-mega-navbar", "lab-reusable-footer", "lecture-working-with-data-in-react", "workshop-reusable-profile-card-component", "lab-mood-board", "review-react-basics", "quiz-react-basics" ] }, { "dashedName": "react-state-hooks-and-routing", "blocks": [ "lecture-working-with-state-and-responding-to-events-in-react", "workshop-toggle-text-app", "lab-color-picker", "lecture-understanding-effects-and-referencing-values-in-react", "workshop-fruit-search-app", "lab-one-time-password-generator", "review-react-state-and-hooks", "quiz-react-state-and-hooks", "lecture-working-with-forms-in-react", "workshop-superhero-application-form", "lab-event-rsvp", "lecture-working-with-data-fetching-and-memoization-in-react", "workshop-shopping-list-app", "lab-currency-converter", "lecture-routing-react-frameworks-and-dependency-management-tools", "lab-tic-tac-toe", "lecture-react-strategies-and-debugging", "review-react-forms-data-fetching-and-routing", "quiz-react-forms-data-fetching-and-routing" ] }, { "dashedName": "performance", "blocks": [ "lecture-understanding-performance-in-web-applications", "review-web-performance", "quiz-web-performance" ] }, { "dashedName": "testing", "blocks": [ "lecture-understanding-the-different-types-of-testing", "review-testing", "quiz-testing" ] }, { "dashedName": "css-libraries-and-frameworks", "blocks": [ "lecture-working-with-css-libraries-and-frameworks", "workshop-error-message-component", "workshop-tailwind-cta-component", "workshop-tailwind-pricing-component", "lab-music-shopping-cart-page", "lab-photography-exhibit", "review-css-libraries-and-frameworks", "quiz-css-libraries-and-frameworks" ] }, { "dashedName": "typescript-fundamentals", "comingSoon": true, "blocks": [ "lecture-introduction-to-typescript", "lecture-working-with-generics-and-type-narrowing", "lecture-working-with-typescript-configuration-files", "review-typescript", "quiz-typescript" ] }, { "moduleType": "review", "comingSoon": true, "dashedName": "review-front-end-libraries", "blocks": ["review-front-end-libraries"] } ] }, { "dashedName": "python", "comingSoon": false, "modules": [ { "dashedName": "python-basics", "comingSoon": false, "blocks": [ "lecture-introduction-to-python", "workshop-caesar-cipher", "lab-rpg-character", "review-python-basics", "quiz-python-basics" ] }, { "dashedName": "python-loops-and-sequences", "comingSoon": false, "blocks": [ "lecture-working-with-loops-and-sequences", "workshop-pin-extractor", "lab-number-pattern-generator", "review-loops-and-sequences", "quiz-loops-and-sequences" ] }, { "dashedName": "python-dictionaries-and-sets", "comingSoon": false, "blocks": [ "lecture-working-with-dictionaries-and-sets", "lecture-working-with-modules", "workshop-medical-data-validator", "lab-user-configuration-manager", "review-dictionaries-and-sets", "quiz-dictionaries-and-sets" ] }, { "dashedName": "python-error-handling", "comingSoon": false, "blocks": [ "lecture-understanding-error-handling", "lab-isbn-validator", "review-error-handling", "quiz-error-handling" ] }, { "dashedName": "python-classes-and-objects", "comingSoon": true, "blocks": [ "lecture-classes-and-objects", "lab-budget-app", "review-classes-and-objects", "quiz-classes-and-objects" ] }, { "dashedName": "python-object-oriented-programming", "comingSoon": true, "blocks": [ "lecture-understanding-object-oriented-programming-and-encapsulation", "lecture-understanding-inheritance-and-polymorphism", "workshop-media-catalogue", "lab-polygon-area-calculator", "lecture-understanding-abstraction", "review-object-oriented-programming", "quiz-object-oriented-programming" ] }, { "dashedName": "python-linear-data-structures", "comingSoon": true, "blocks": [ "lecture-working-with-common-data-structures", "lab-hash-table", "review-data-structures", "quiz-data-structures" ] }, { "dashedName": "python-algorithms", "comingSoon": true, "blocks": [ "lecture-searching-and-sorting-algorithms", "workshop-binary-search", "lab-bisection-method", "workshop-merge-sort", "lab-quicksort", "lab-selection-sort", "lab-luhn-algorithm", "lab-tower-of-hanoi", "review-searching-and-sorting-algorithms", "quiz-searching-and-sorting-algorithms" ] }, { "dashedName": "python-graphs-and-trees", "comingSoon": true, "blocks": [ "lecture-understanding-graphs-and-trees", "lab-adjacency-list-to-matrix-converter", "review-graphs-and-trees", "quiz-graphs-and-trees" ] }, { "dashedName": "python-dynamic-programming", "comingSoon": true, "blocks": [ "lecture-understanding-dynamic-programming", "review-dynamic-programming", "quiz-dynamic-programming" ] }, { "comingSoon": true, "moduleType": "review", "dashedName": "review-python", "blocks": ["review-python"] } ] }, { "dashedName": "relational-databases", "comingSoon": true, "modules": [ { "dashedName": "bash-fundamentals", "comingSoon": true, "blocks": [ "lecture-understanding-the-command-line-and-working-with-bash", "workshop-bash-boilerplate", "review-bash-commands", "quiz-bash-commands" ] }, { "dashedName": "relational-databases", "comingSoon": true, "blocks": [ "lecture-working-with-relational-databases", "workshop-database-of-video-game-characters", "lab-celestial-bodies-database", "review-relational-database", "quiz-relational-database" ] }, { "dashedName": "bash-scripting", "comingSoon": true, "blocks": [ "lecture-understanding-bash-scripting", "workshop-bash-five-programs", "review-bash-scripting", "quiz-bash-scripting" ] }, { "dashedName": "sql-and-bash", "comingSoon": true, "blocks": [ "lecture-working-with-sql", "workshop-sql-student-database-part-1", "workshop-sql-student-database-part-2", "lab-world-cup-database", "workshop-kitty-ipsum-translator", "workshop-bike-rental-shop", "lab-salon-appointment-scheduler", "review-bash-and-sql", "quiz-bash-and-sql" ] }, { "dashedName": "git", "comingSoon": true, "blocks": [ "lecture-working-with-nano", "workshop-castle", "lecture-introduction-to-git-and-github", "lecture-working-with-code-reviews-branching-deployment-and-ci-cd", "workshop-sql-reference-object", "lab-periodic-table-database", "lab-number-guessing-game", "review-git", "quiz-git" ] }, { "moduleType": "review", "comingSoon": true, "dashedName": "review-relational-databases", "blocks": ["review-relational-databases"] } ] }, { "dashedName": "backend-javascript", "comingSoon": true, "modules": [ { "dashedName": "nodejs-core-libraries", "comingSoon": true, "blocks": [] }, { "dashedName": "node-package-manager", "comingSoon": true, "blocks": [] }, { "dashedName": "http-and-the-web-standards-model", "comingSoon": true, "blocks": [] }, { "dashedName": "rest-api-and-web-services", "comingSoon": true, "blocks": [] }, { "dashedName": "introduction-to-express", "comingSoon": true, "blocks": [] }, { "dashedName": "express-middleware", "comingSoon": true, "blocks": [] }, { "dashedName": "error-handling-in-express", "comingSoon": true, "blocks": [] }, { "dashedName": "websockets", "comingSoon": true, "blocks": [] }, { "dashedName": "node-and-sql", "comingSoon": true, "blocks": [] }, { "dashedName": "security-and-privacy", "comingSoon": true, "blocks": [] }, { "dashedName": "authentication", "comingSoon": true, "blocks": [] }, { "dashedName": "tooling-and-deployment", "comingSoon": true, "blocks": [] } ] }, { "dashedName": "career", "comingSoon": true, "modules": [ { "dashedName": "how-to-get-a-developer-job", "comingSoon": true, "blocks": [] }, { "dashedName": "capstone-project", "comingSoon": true, "blocks": [] }, { "dashedName": "certified-full-stack-developer-exam", "comingSoon": true, "blocks": ["exam-certified-full-stack-developer"] } ] } ] }