Stuart Taylor 4e645a5ff6 Package: Validate challenges on test (#17216)
This PR allows us to validate the schema during test.

It also removes some cruft from the seed files and ensures only the required data is packaged and consumable, reducing the package weight somewhat.
2018-05-22 18:13:14 +05:30

freeCodeCamp Curriculum

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

Installation

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

Usage

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

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

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()"
        ]
    }
  }
},
Description
Languages
JavaScript 47.2%
TypeScript 46.3%
CSS 6.1%
Shell 0.2%
Dockerfile 0.1%
Other 0.1%