/curriculum

The freeCodeCamp curriculum and lesson editor

Primary LanguageJavaScriptCreative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

freeCodeCamp Social Banner

freeCodeCamp Curriculum

Build Status npm (scoped) Pull Requests Welcome first-timers-only Friendly

This package contains the "challenge" files used in the freeCodeCamp Curriculum.

Installation

npm i @freecodecamp/curriculum
# or
yarn add @freecodecamp/curriculum

Usage

import { getChallenges } from '@freecodecamp/curriculum';

// fetch an array of blocks
// i.e. basic CSS, functional programming, etc.
getChallenges()

block Structure

{
  "name": "ES6",
  "order": 2,
  "time": "5 hours",
  "helpRoom": "Help",
  "challenges": [/*<challenge>*/],
  "fileName": "02-javascript-algorithms-and-data-structures/es6.json",
  "superBlock": "javascript-algorithms-and-data-structures",
  "superOrder": 2
}

challenge Structure

{
  "id": "ObjectId()",
  "title": "Declare a Read-Only Variable with the const Keyword",
  "description": [
    "A Description of the challenge and what is required to pass"
  ],
  "tests": [
    {
      "text": "should return \"foo\"",
      "testString": "a stringified function using Chai asserts"
    }
  ],
  "challengeType": 1,
  "translations": {},
  "files": {
    "indexjs": {
      "key": "indexjs",
      "ext": "js",
      "name": "index",
      "contents": [
        "Initial editor seed"
      ],
      "head": [
        "A place for test set up",
        "Can be thought of as mocha's beforeEach()"
      ],
      "tail": [
        "A place for test tear down",
        "Can be thought of as mocha's afterEach()"
        ]
    }
  }
},

Contributing

  1. 🍴 Fork this repo
  2. 👀️ Follow the contributing guidelines outlined in Contributing Guidelines.
  3. 🔧 Make some awesome changes!
  4. 👉 Make a pull request
  5. 🎉 Get your pull request approved - success!

License

Copyright (c) 2018 freeCodeCamp.

The curricular content in this repo is licensed under the CC-BY-SA-4.0