freeCodeCamp.org 的开源代码库和课程。免费学习编码。
Go to file
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
challenges Package: Validate challenges on test (#17216) 2018-05-22 18:13:14 +05:30
formattingConversion feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
math-challenges fix(seed): Remove redundant seed files from math directory 2017-09-09 10:52:12 -05:00
requiresTests feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
schema Package: Validate challenges on test (#17216) 2018-05-22 18:13:14 +05:30
.gitignore feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
.npmignore feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
addAssertsToTapTest.js feat(seed): "unpack" and "repack" scripts 2018-04-03 19:52:56 +05:30
challenge-style-guide.md docs(seed): Document how to edit and test challenges (#16511) 2018-01-20 22:00:21 +05:30
challengeTitles.js fix(seed): Simplify Unique Titles Test (#17056) 2018-04-13 15:15:40 +01:00
create-challenge-bundle.js restructure challenges within directories 2015-12-14 13:19:30 -08:00
createPathMigrationMap.js feat(challenge-redirect): Make '/challenge' and '/map' redirect to learn (#17144) 2018-05-14 13:04:51 +05:30
get-emails.js Chore: Update User model (#17171) 2018-05-15 19:26:26 +05:30
getChallenges.js Package: Validate challenges on test (#17216) 2018-05-22 18:13:14 +05:30
gulpfile.js feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
index.js feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
LICENSE.md docs(license): Update License fix for GitHub (#16113) 2017-11-25 11:47:27 -06:00
mongoIds.js feat(seed): "unpack" and "repack" scripts 2018-04-03 19:52:56 +05:30
package-entry.js feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
package-lock.json chore(package): Version Bump (#17206) 2018-05-22 12:24:40 +05:30
package.json Package: Validate challenges on test (#17216) 2018-05-22 18:13:14 +05:30
README.md feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
repack.js feat(seed): add dasherized titles to unpacked filenames 2018-04-03 19:53:44 +05:30
test-challenges.js Package: Validate challenges on test (#17216) 2018-05-22 18:13:14 +05:30
unpack.js feat(seed): add dasherized titles to unpacked filenames 2018-04-03 19:53:44 +05:30
unpacked.css feat(seed): "unpack" and "repack" scripts 2018-04-03 19:52:56 +05:30
unpacked.js feat(seed): "unpack" and "repack" scripts 2018-04-03 19:52:56 +05:30
unpackedChallenge.js feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +05:30
utils.js feat(package): Initial Curriculum separation (#17174) 2018-05-21 19:26:49 +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()"
        ]
    }
  }
},