add multi-lingual placeholders and update announcement modal

This commit is contained in:
Quincy Larson
2015-05-28 01:32:56 -07:00
parent 87e2697b93
commit 28d2f700c2
17 changed files with 2258 additions and 364 deletions

View File

@ -16,7 +16,17 @@ var challengeSchema = new mongoose.Schema({
tests: Array,
challengeSeed: Array,
challengeType: Number, // 0 = html, 1 = javascript only, 2 = video, 3 = zipline, 4 = basejump
MDNlinks: Array
MDNlinks: Array,
nameCn: String,
descriptionCn: Array,
nameFr: String,
descriptionFr: Array,
nameRu: String,
descriptionRu: Array,
nameEs: String,
descriptionEs: Array,
namePt: String,
descriptionPt: Array
});
module.exports = mongoose.model('Challenge', challengeSchema);

View File

@ -1,6 +1,6 @@
{
"name": "Advanced Algorithm Scripting",
"order" : 0.011,
"order": 0.011,
"challenges": [
{
"_id": "aff0395860f5d3034dc0bfc9",
@ -47,8 +47,20 @@
"",
"telephoneCheck(\"555-555-5555\");"
],
"MDNlinks" : ["RegExp"],
"challengeType": 5
"MDNlinks": [
"RegExp"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a3f503de51cf954ede28891d",
@ -72,15 +84,30 @@
"assert.deepEqual(sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]), [1, 4, 5], 'should return an array of unique values');",
"assert.deepEqual(sym([1, 1]), [1], 'should return an array of unique values');"
],
"MDNlinks" : ["Array.reduce()"],
"challengeType": 5
"MDNlinks": [
"Array.reduce()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "aa2e6f85cab2ab736c9a9b24",
"name": "Bonfire: Exact Change",
"difficulty": "4.03",
"description": [
"Design a cash register drawer function that accepts purchase price as the first argument, payment as the second argument, and cash-in-drawer (cid) as the third argument.", "cid is a 2d array listing available currency.", "Return the string \"Insufficient Funds\" if cash-in-drawer is less than the change due. Return the string \"Closed\" if cash-in-drawer is equal to the change due.", "Otherwise, return change in coin and bills, sorted in highest to lowest order.",
"Design a cash register drawer function that accepts purchase price as the first argument, payment as the second argument, and cash-in-drawer (cid) as the third argument.",
"cid is a 2d array listing available currency.",
"Return the string \"Insufficient Funds\" if cash-in-drawer is less than the change due. Return the string \"Closed\" if cash-in-drawer is equal to the change due.",
"Otherwise, return change in coin and bills, sorted in highest to lowest order.",
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
@ -112,8 +139,20 @@
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 0.01], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]]), 'Insufficient Funds', 'insufficient funds');",
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 0.50], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]]), \"Closed\", 'cash-in-drawer equals change');"
],
"MDNlinks" : ["Global Object"],
"challengeType": 5
"MDNlinks": [
"Global Object"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a56138aff60341a09ed6c480",
@ -154,8 +193,20 @@
"assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[67, 'Bowling Ball'], [2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [7, 'Toothpaste']]);",
"assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair Pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [0, 'Dirty Sock'], [1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [0, 'Microphone'], [1, 'Toothpaste']]);"
],
"MDNlinks" : ["Global Array Object"],
"challengeType": 5
"MDNlinks": [
"Global Array Object"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a7bf700cd123b9a54eef01d5",
@ -182,8 +233,21 @@
"expect(permAlone('abfdefa')).to.equal(2640);",
"expect(permAlone('zzzzzzzz')).to.equal(0);"
],
"MDNlinks" : ["Permutations", "RegExp"],
"challengeType": 5
"MDNlinks": [
"Permutations",
"RegExp"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a19f0fbe1872186acd434d5a",
@ -212,8 +276,22 @@
"assert.deepEqual(friendly(['2017-01-01', '2017-01-01']), ['January 1st, 2017'], 'since we do not duplicate only return once');",
"assert.deepEqual(friendly(['2022-09-05', '2023-09-04']), ['September 5th, 2022','September 4th, 2023']);"
],
"MDNlinks": ["String.split()", "String.substr()", "parseInt()"],
"challengeType": 5
"MDNlinks": [
"String.split()",
"String.substr()",
"parseInt()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Full Stack JavaScript Projects",
"order" : 0.014,
"order": 0.014,
"challenges": [
{
"_id": "bd7158d8c443eddfaeb5bcef",
@ -86,7 +86,17 @@
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 4,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c443eddfaeb5bdff",
@ -107,7 +117,17 @@
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 4,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c443eddfaeb5bd0e",
@ -128,7 +148,17 @@
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 4,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c443eddfaeb5bd0f",
@ -149,7 +179,17 @@
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 4,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c443eddfaeb5bdee",
@ -173,7 +213,17 @@
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 4,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Basic Algorithm Scripting",
"order" : 0.007,
"order": 0.007,
"challenges": [
{
"_id": "bd7139d8c441eddfaeb5bdef",
@ -27,7 +27,17 @@
"Mark this Waypoint complete and move on."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "ad7123c8c441eddfaeb5bdef",
@ -56,7 +66,17 @@
"",
"meetBonfire(\"You can do this!\");"
],
"challengeType": 5
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a202eed8fc186c8434cb6d61",
@ -81,8 +101,23 @@
"",
"reverseString('hello');"
],
"MDNlinks": ["Global String Object", "String.split()", "Array.reverse()", "Array.join()"],
"challengeType": 5
"MDNlinks": [
"Global String Object",
"String.split()",
"Array.reverse()",
"Array.join()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a302f7aae1aa3152a5b413bc",
@ -108,8 +143,20 @@
"",
"factorialize(5);"
],
"MDNlinks": ["Arithmetic Operators"],
"challengeType": 5
"MDNlinks": [
"Arithmetic Operators"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "aaa48de84e1ecc7c742e1124",
@ -141,8 +188,21 @@
"",
"palindrome(\"eye\");"
],
"MDNlinks": ["String.replace()", "String.toLowerCase()"],
"challengeType": 5
"MDNlinks": [
"String.replace()",
"String.toLowerCase()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a26cbbe9ad8655a977e1ceb5",
@ -167,8 +227,21 @@
"expect(findLongestWord('Google do a barrel roll')).to.equal(6);",
"expect(findLongestWord('What is the average airspeed velocity of an unladen swallow')).to.equal(8);"
],
"MDNlinks": ["String.split()", "String.length"],
"challengeType": 5
"MDNlinks": [
"String.split()",
"String.length"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "ab6137d4e35944e21037b769",
@ -192,8 +265,20 @@
"expect(titleCase(\"sHoRt AnD sToUt\")).to.equal(\"Short And Stout\");",
"expect(titleCase(\"HERE IS MY HANDLE HERE IS MY SPOUT\")).to.equal(\"Here Is My Handle Here Is My Spout\");"
],
"MDNlinks": ["String.charAt()"],
"challengeType": 5
"MDNlinks": [
"String.charAt()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a789b3483989747d63b0e427",
@ -218,8 +303,20 @@
"(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])).should.eql([5,27,39,1001]);",
"assert(largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]).should.eql([9,35,97,1000000]));"
],
"MDNlinks": ["Comparison Operators"],
"challengeType": 5
"MDNlinks": [
"Comparison Operators"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "acda2fb1324d9b0fa741e6b5",
@ -229,7 +326,6 @@
"Check if a string (first argument) ends with the given target string (second argument).",
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function end(str, target) {",
" // \"Never give up and good luck will find you.\"",
@ -244,8 +340,20 @@
"assert.strictEqual(end('He has to give me a new name', 'name'), true, 'should equal true if target equals end of string');",
"assert.strictEqual(end('If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing', 'mountain'), false, 'should equal false if target does not equal end of string');"
],
"MDNlinks": ["String.substr()"],
"challengeType": 5
"MDNlinks": [
"String.substr()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "afcc8d540bea9ea2669306b6",
@ -268,8 +376,20 @@
"assert.strictEqual(repeat('abc', 3), 'abcabcabc', 'should repeat a string n times');",
"assert.strictEqual(repeat('abc', -2), '', 'should return an empty string for negative numbers');"
],
"MDNlinks": ["Global String Object"],
"challengeType": 5
"MDNlinks": [
"Global String Object"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "ac6993d51946422351508a41",
@ -293,8 +413,20 @@
"assert(truncate('A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length) === 'A-tisket a-tasket A green and yellow basket', 'should not truncate if string is = length');",
"assert.strictEqual(truncate('A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length + 2), 'A-tisket a-tasket A green and yellow basket', 'should not truncate if string is < length');"
],
"MDNlinks": ["String.slice()"],
"challengeType": 5
"MDNlinks": [
"String.slice()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a9bd25c716030ec90084d8a1",
@ -317,8 +449,20 @@
"assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 3), [[0, 1, 2], [3, 4, 5]], 'should return chunked arrays');",
"assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 4), [[0, 1, 2, 3], [4, 5]], 'should return the last chunk as remaining elements');"
],
"MDNlinks": ["Array.push()"],
"challengeType": 5
"MDNlinks": [
"Array.push()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "ab31c21b530c0dafa9e241ee",
@ -341,8 +485,21 @@
"assert.deepEqual(slasher([1, 2, 3], 0), [1, 2, 3], 'should return all elements when n < 1');",
"assert.deepEqual(slasher([1, 2, 3], 9), [], 'should return an empty array when n >= array.length');"
],
"MDNlinks": ["Array.slice()", "Array.splice()"],
"challengeType": 5
"MDNlinks": [
"Array.slice()",
"Array.splice()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "af2170cad53daa0770fabdea",
@ -371,8 +528,20 @@
"expect(mutation(['Mary', 'Aarmy'])).to.be.false;",
"expect(mutation(['Alien', 'line'])).to.be.true;"
],
"MDNlinks": ["Array.sort()"],
"challengeType": 5
"MDNlinks": [
"Array.sort()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "adf08ec01beb4f99fc7a68f2",
@ -396,14 +565,27 @@
"assert.deepEqual(bouncer(['a', 'b', 'c']), ['a', 'b', 'c'], 'should return full array if no falsey elements');",
"assert.deepEqual(bouncer([false, null, 0]), [], 'should return empty array if all elements are falsey');"
],
"MDNlinks": ["Boolean Objects", "Array.filter()"],
"challengeType": 5
"MDNlinks": [
"Boolean Objects",
"Array.filter()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id":"a8e512fbe388ac2f9198f0fa",
"_id": "a8e512fbe388ac2f9198f0fa",
"name": "Bonfire: Where art thou",
"difficulty":"1.55",
"description":[
"difficulty": "1.55",
"description": [
"Make a function that looks through a list (first argument) and returns an array of all objects that have equivalent property values (second argument).",
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
],
@ -416,18 +598,32 @@
"",
"where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' });"
],
"tests":[
"tests": [
"assert.deepEqual(where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' }), [{ first: 'Tybalt', last: 'Capulet' }], 'should return an array of objects');",
"assert.deepEqual(where([{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], { 'a': 1 }), [{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], 'should return with multiples');"
],
"MDNlinks": ["Global Object", "Object.hasOwnProperty()", "Object.keys()"],
"challengeType": 5
"MDNlinks": [
"Global Object",
"Object.hasOwnProperty()",
"Object.keys()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id":"a39963a4c10bc8b4d4f06d7e",
"_id": "a39963a4c10bc8b4d4f06d7e",
"name": "Bonfire: Seek and Destroy",
"difficulty":"1.60",
"description":[
"difficulty": "1.60",
"description": [
"You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments.",
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
],
@ -443,8 +639,21 @@
"assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1], 'should remove correct values from an array');",
"assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1], 'should remove correct values from an array');"
],
"MDNlinks": ["Arguments object","Array.filter()"],
"challengeType": 5
"MDNlinks": [
"Arguments object",
"Array.filter()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a24c1a4622e3c05097f71d67",
@ -463,12 +672,24 @@
"",
"where([40, 60], 50);"
],
"MDNlinks" : ["Array.sort()"],
"MDNlinks": [
"Array.sort()"
],
"tests": [
"expect(where([10, 20, 30, 40, 50], 35)).to.equal(3);",
"expect(where([10, 20, 30, 40, 50], 30)).to.equal(2);"
],
"challengeType": 5
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a3566b1109230028080c9345",
@ -493,8 +714,22 @@
"expect(sumAll([5, 10])).to.equal(45);",
"expect(sumAll([10, 5])).to.equal(45);"
],
"MDNlinks": ["Math.max()", "Math.min()", "Array.reduce()"],
"challengeType": 5
"MDNlinks": [
"Math.max()",
"Math.min()",
"Array.reduce()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a5de63ebea8dbee56860f4f2",
@ -522,9 +757,24 @@
"assert.includeMembers(diff([1, 'calf', 3, 'piglet'], [1, 'calf', 3, 4]), ['piglet', 4], 'arrays with numbers and strings');",
"assert.deepEqual(diff([], ['snuffleupagus', 'cookie monster', 'elmo']), ['snuffleupagus', 'cookie monster', 'elmo'], 'empty array');"
],
"MDNlinks" : ["Comparison Operators", "String.slice()", "Array.filter()", "Array.indexOf()", "String.concat()"],
"challengeType": 5
"MDNlinks": [
"Comparison Operators",
"String.slice()",
"Array.filter()",
"Array.indexOf()",
"String.concat()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a7f4d8f2483413a6ce226cac",
@ -549,8 +799,22 @@
"",
"convert(36);"
],
"MDNlinks": ["Array.splice()", "Array.indexOf()", "Array.join()"],
"challengeType": 5
"MDNlinks": [
"Array.splice()",
"Array.indexOf()",
"Array.join()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a0b5010f579e69b815e7c5d6",
@ -578,8 +842,22 @@
"",
"replace(\"A quick brown fox jumped over the lazy dog\", \"jumped\", \"leaped\");"
],
"MDNlinks": ["Array.splice()", "String.replace()", "Array.join()"],
"challengeType": 5
"MDNlinks": [
"Array.splice()",
"String.replace()",
"Array.join()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "aa7697ea2477d1316795783b",
@ -605,8 +883,24 @@
"",
"translate(\"consonant\");"
],
"MDNlinks": ["Array.indexOf()", "Array.push()", "Array.join()", "String.substr()", "String.split()"],
"challengeType": 5
"MDNlinks": [
"Array.indexOf()",
"Array.push()",
"Array.join()",
"String.substr()",
"String.split()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "afd15382cdfb22c9efe8b7de",
@ -630,14 +924,27 @@
"",
"pair(\"GCG\");"
],
"MDNlinks": ["Array.push()", "String.split()"],
"challengeType": 5
"MDNlinks": [
"Array.push()",
"String.split()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "af7588ade1100bde429baf20",
"name" : "Bonfire: Missing letters",
"name": "Bonfire: Missing letters",
"difficulty": "2.05",
"description" : [
"description": [
"Find the missing letter in the passed letter range and return it.",
"If all letters are present in the range, return undefined.",
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
@ -655,8 +962,20 @@
"expect(fearNotLetter('abcdefghjklmno')).to.equal('i');",
"expect(fearNotLetter('yz')).to.be.undefined;"
],
"MDNlinks": ["String.charCodeAt()"],
"challengeType": 5
"MDNlinks": [
"String.charCodeAt()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a77dbc43c33f39daa4429b4f",
@ -685,8 +1004,20 @@
"assert.strictEqual(boo(NaN), false);",
"assert.strictEqual(boo('a'), false);"
],
"MDNlinks": ["Boolean Objects"],
"challengeType": 5
"MDNlinks": [
"Boolean Objects"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a105e963526e7de52b219be9",
@ -710,8 +1041,20 @@
"assert.deepEqual(unite([1, 3, 2], [5, 2, 1, 4], [2, 1]), [1, 3, 2, 5, 4], 'should return the union of the given arrays');",
"assert.deepEqual(unite([1, 3, 2], [1, [5]], [2, [4]]), [1, 3, 2, [5], [4]], 'should not flatten nested arrays');"
],
"MDNlinks" : ["Array.reduce()"],
"challengeType": 5
"MDNlinks": [
"Array.reduce()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a6b0bb188d873cb2c8729495",
@ -733,8 +1076,20 @@
"assert.strictEqual(convert('Dolce & Gabbana'), 'Dolce &amp; Gabbana', 'should escape characters');",
"assert.strictEqual(convert('abc'), 'abc', 'should handle strings with nothing to escape');"
],
"MDNlinks": ["RegExp"],
"challengeType": 5
"MDNlinks": [
"RegExp"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a103376db3ba46b2d50db289",
@ -759,8 +1114,21 @@
"assert.strictEqual(spinalCase('The_Andy_Griffith_Show'), 'the-andy-griffith-show', 'should return spinal case from string with snake case');",
"assert.strictEqual(spinalCase('Teletubbies say Eh-oh'), 'teletubbies-say-eh-oh', 'should return spinal case from string with spaces and hyphens');"
],
"MDNlinks": ["RegExp", "String.replace()"],
"challengeType": 5
"MDNlinks": [
"RegExp",
"String.replace()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a5229172f011153519423690",
@ -787,8 +1155,20 @@
"expect(sumFibs(75024)).to.equal(60696);",
"expect(sumFibs(75025)).to.equal(135721);"
],
"MDNlinks": ["Remainder"],
"challengeType": 5
"MDNlinks": [
"Remainder"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a3bfc1673c0526e06d3ac698",
@ -812,8 +1192,21 @@
"expect(sumPrimes(10)).to.equal(17);",
"expect(sumPrimes(977)).to.equal(73156);"
],
"MDNlinks" : ["For Loops", "Array.push()"],
"challengeType": 5
"MDNlinks": [
"For Loops",
"Array.push()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "ae9defd7acaf69703ab432ea",
@ -838,8 +1231,20 @@
"expect(smallestCommons([5,1])).to.equal(60);",
"expect(smallestCommons([1,13])).to.equal(360360);"
],
"MDNlinks" : ["Smallest Common Multiple"],
"challengeType": 5
"MDNlinks": [
"Smallest Common Multiple"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a6e40f1041b06c996f7b2406",
@ -861,8 +1266,20 @@
"assert.strictEqual(find([1, 3, 5, 8, 9, 10], function(num) { return num % 2 === 0; }), 8, 'should return first found value');",
"assert.strictEqual(find([1, 3, 5, 9], function(num) { return num % 2 === 0; }), undefined, 'should return undefined if not found');"
],
"MDNlinks": ["Array.some()"],
"challengeType": 5
"MDNlinks": [
"Array.some()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a5deed1811a43193f9f1c841",
@ -885,8 +1302,21 @@
"expect(drop([1, 2, 3], function(n) {return n > 0; })).to.eqls([1, 2, 3]);",
"expect(drop([1, 2, 3, 4], function(n) {return n > 5; })).to.eqls([]);"
],
"MDNlinks": ["Arguments object", "Array.shift()"],
"challengeType": 5
"MDNlinks": [
"Arguments object",
"Array.shift()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "ab306dbdcc907c7ddfc30830",
@ -909,8 +1339,20 @@
"assert.deepEqual(steamroller([1, [2], [3, [[4]]]]), [1, 2, 3, 4], 'should flatten nested arrays');",
"assert.deepEqual(steamroller([1, [], [3, [[4]]]]), [1, 3, 4], 'should work with empty arrays');"
],
"MDNlinks": ["Array.isArray()"],
"challengeType": 5
"MDNlinks": [
"Array.isArray()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a8d97bd4c764e91f9d2bda01",
@ -932,9 +1374,21 @@
"expect(binaryAgent('01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111')).to.equal(\"Aren't bonfires fun!?\");",
"expect(binaryAgent('01001001 00100000 01101100 01101111 01110110 01100101 00100000 01000110 01110010 01100101 01100101 01000011 01101111 01100100 01100101 01000011 01100001 01101101 01110000 00100001')).to.equal(\"I love FreeCodeCamp!\");"
],
"MDNlinks": ["String.charCodeAt()", "String.fromCharCode()"
"MDNlinks": [
"String.charCodeAt()",
"String.fromCharCode()"
],
"challengeType": 5
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a10d2431ad0c6a099a4b8b52",
@ -958,8 +1412,21 @@
"assert.strictEqual(every([{'user': 'Tinky-Winky', 'sex': 'male'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa', 'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], 'sex'), true, 'should return true if predicate returns truthy for all elements in the collection');",
"assert.strictEqual(every([{'user': 'Tinky-Winky', 'sex': 'male'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa', 'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], {'sex': 'female'}), false, 'should return false if predicate returns falsey for any element in the collection');"
],
"MDNlinks": ["Object.hasOwnProperty()", "Object.getOwnPropertyNames()"],
"challengeType": 5
"MDNlinks": [
"Object.hasOwnProperty()",
"Object.getOwnPropertyNames()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "a97fd23d9b809dac9921074f",
@ -985,8 +1452,21 @@
"expect(add(2, '3')).to.be.undefined;",
"expect(add(2)([3])).to.be.undefined;"
],
"MDNlinks": ["Global Function Object", "Arguments object"],
"challengeType": 5
"MDNlinks": [
"Global Function Object",
"Arguments object"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Basic HTML5 and CSS",
"order" : 0.002,
"order": 0.002,
"challenges": [
{
"_id": "bd7123c8c441eddfaeb5bdef",
@ -21,7 +21,17 @@
"challengeSeed": [
"<h1>Hello</h1>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf0887a",
@ -41,7 +51,17 @@
"challengeSeed": [
"<h1>Hello World</h1>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08801",
@ -60,7 +80,17 @@
"<h1>Hello World</h1>",
"<h2>CatPhotoApp</h2>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aeaf08801",
@ -80,7 +110,17 @@
"<h2>CatPhotoApp</h2>",
"<p>Hello Paragraph</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08802",
@ -108,7 +148,17 @@
"<p>Hello Paragraph</p>",
"-->"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08804",
@ -135,7 +185,17 @@
"<p>Hello Paragraph</p>",
"-->"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08833",
@ -160,7 +220,17 @@
"",
"<p>Hello Paragraph</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fed1348bd9aedf08833",
@ -186,7 +256,17 @@
"",
"<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08803",
@ -196,7 +276,7 @@
"Change the <code>h2</code> element's style so that its text color is red.",
"We can do this by changing the <code>style</code> of the <code>h2</code> element.",
"The style that is responsible for the color of an element's text is the \"color\" style.",
"Here's how you would set your <code>h2</code> element's text color to blue: <code>&#60;h2 style=\"color: blue\"&#62;CatPhotoApp&#60;\/h2&#62;</code>"
"Here's how you would set your <code>h2</code> element's text color to blue: <code>&#60;h2 style=\"color: blue\"&#62;CatPhotoApp&#60;/h2&#62;</code>"
],
"tests": [
"assert($('h2').css('color') === 'rgb(255, 0, 0)', 'Your h2 element should be red.')"
@ -206,7 +286,17 @@
"",
"<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08805",
@ -230,7 +320,17 @@
"",
"<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aecf08806",
@ -261,7 +361,17 @@
"",
"<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aefe08806",
@ -288,7 +398,17 @@
"",
"<p>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08806",
@ -315,7 +435,17 @@
"",
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aede08807",
@ -345,7 +475,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08807",
@ -378,7 +518,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08808",
@ -417,7 +567,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08809",
@ -460,9 +620,18 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08812",
"name": "Waypoint: Add Images to your Website",
@ -499,7 +668,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9acdf08812",
@ -538,7 +717,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9bedf08813",
@ -582,7 +771,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08814",
@ -631,7 +830,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08815",
@ -679,7 +888,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08816",
@ -730,7 +949,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aede08817",
@ -784,9 +1013,18 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08817",
"name": "Waypoint: Make Dead Links using the Hash Symbol",
@ -837,7 +1075,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08820",
@ -890,7 +1138,17 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08818",
@ -943,13 +1201,22 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08827",
"_id": "bad87fee1348bd9aedf08827",
"name": "Waypoint: Create a Bulleted Unordered List",
"difficulty" : 0.036,
"difficulty": 0.036,
"description": [
"Replace the paragraph elements with an unordered list of three things that cats love.",
"HTML has a special element for creating unordered lists, or bullet point-style lists.",
@ -997,13 +1264,22 @@
"<p class='red-text'>Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p>",
"<p class='red-text'>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</p>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08828",
"_id": "bad87fee1348bd9aedf08828",
"name": "Waypoint: Create an Ordered List",
"difficulty" : 0.037,
"difficulty": 0.037,
"description": [
"Create an <code>ordered list</code> of the the top 3 things cats hate the most.",
"HTML has a special element for creating ordered lists, or numbered-style lists.",
@ -1057,13 +1333,22 @@
" <li>lasagna</li>",
"</ul>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08829",
"_id": "bad87fee1348bd9aedf08829",
"name": "Waypoint: Create a Text Field",
"difficulty" : 0.038,
"difficulty": 0.038,
"description": [
"Now we'll create a web form. Create a text field under your lists.",
"Text inputs are a convenient way to get input from your user.",
@ -1119,13 +1404,22 @@
" <li>other cats</li>",
"</ol>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08830",
"_id": "bad87fee1348bd9aedf08830",
"name": "Waypoint: Add Placeholder Text to a Text Field",
"difficulty" : 0.039,
"difficulty": 0.039,
"description": [
"Add the placeholder text \"type a cat photo URL here\" to your text field.",
"Placeholder text will appear in your text field before your user has inputed anything.",
@ -1183,13 +1477,22 @@
"</ol>",
"<input type='text'>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aede08830",
"_id": "bad87fee1348bd9aede08830",
"name": "Waypoint: Create a Form Element",
"difficulty" : 0.040,
"difficulty": 0.040,
"description": [
"Wrap your text field in a <code>&#60;form&#62;</code> element. Add the <code>action=\"/submit-cat-photo\"</code> attribute to this form element.",
"You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an action on your <code>form</code> element.",
@ -1247,13 +1550,22 @@
"</ol>",
"<input type='text' placeholder='cat photo URL'>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedd08830",
"_id": "bad87fee1348bd9aedd08830",
"name": "Waypoint: Add a Submit Button to a Form",
"difficulty" : 0.041,
"difficulty": 0.041,
"description": [
"Add a submit button to your form field.",
"Let's add a submit button to your form. Clicking this button will send the date from your form to the URL you specified with your form's <code>action</code> attribute.",
@ -1312,13 +1624,22 @@
" <input type='text' placeholder='cat photo URL'>",
"</form>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedc08830",
"_id": "bad87fee1348bd9aedc08830",
"name": "Waypoint: Use HTML5 to Require a Field",
"difficulty" : 0.042,
"difficulty": 0.042,
"description": [
"Make it required for your user to input text into your form before being able to submit it.",
"You can require your user to complete specific form fields before they will be able to submit your form.",
@ -1379,13 +1700,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08834",
"_id": "bad87fee1348bd9aedf08834",
"name": "Waypoint: Create a Set of Radio Buttons",
"difficulty" : 0.043,
"difficulty": 0.043,
"description": [
"Add to your form a pair of <code>radio buttons</code> that are wrapped in <code>label</code> elements and share a <code>name</code> attribute, with the options of \"indoor\" and \"outdoor\".",
"You can use <code>radio buttons</code> for questions where you want the user to only give you one answer.",
@ -1450,13 +1780,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08835",
"_id": "bad87fee1348bd9aedf08835",
"name": "Waypoint: Create a Set of Checkboxes",
"difficulty" : 0.044,
"difficulty": 0.044,
"description": [
"Add to your form a set of three <code>checkbox</code> elements that are wrapped in <code>label</code> elements and share the same <code>name</code> attribute.",
"Forms commonly use <code>checkbox</code> elements for questions that may have more than one answer.",
@ -1519,13 +1858,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType" : 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aede08835",
"_id": "bad87fee1348bd9aede08835",
"name": "Waypoint: Clean up your form using Linebreaks",
"difficulty" : 0.045,
"difficulty": 0.045,
"description": [
"Clean up your form by adding linebreaks between form elements.",
"Remember that you can create a linebreak element by using the code: <code>&#60;br&#62;</code>"
@ -1589,13 +1937,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType" : 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedd08835",
"_id": "bad87fee1348bd9aedd08835",
"name": "Waypoint: Check Radio Buttons and Checkboxes by Default",
"difficulty" : 0.046,
"difficulty": 0.046,
"description": [
"Set the first of your radio buttons and the first of your checkboxes to both be checked by default.",
"You set a checkbox or radio button to be checked by default using the <code>checked</code> attribute.",
@ -1663,7 +2020,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType" : 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad88fee1348bd9aedf08825",
@ -1714,7 +2081,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08822",
@ -1767,7 +2144,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08823",
@ -1819,7 +2206,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08824",
@ -1872,7 +2269,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1248bd9aedf08824",
@ -1925,7 +2332,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08826",
@ -1976,7 +2393,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd9aedf08726",
@ -2027,7 +2454,17 @@
" <h5 class=\"box green-box\">padding</h5>",
"</div>"
],
"challengeType": 0
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Basic JavaScript",
"order" : 0.006,
"order": 0.006,
"challenges": [
{
"_id": "bd7129d8c441eddfaeb5bdef",
@ -15,7 +15,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-x9DnD/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-x9DnD/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7130d8c441eddfaeb5bdef",
@ -28,7 +38,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7131d8c441eddfaeb5bdef",
@ -41,7 +61,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-XEDZA/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-XEDZA/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7132d8c441eddfaeb5bdef",
@ -53,7 +83,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7133d8c441eddfaeb5bdef",
@ -67,7 +107,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-ZA2rb/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-ZA2rb/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7134d8c441eddfaeb5bdef",
@ -80,7 +130,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7135d8c441eddfaeb5bdef",
@ -93,7 +153,17 @@
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/building-an-address-book/0/1?curriculum_id=506324b3a7dffd00020bf661' target='_blank'>http://www.codecademy.com/courses/building-an-address-book/0/1?curriculum_id=506324b3a7dffd00020bf661</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7136d8c441eddfaeb5bdef",
@ -106,7 +176,17 @@
"Be sure to also complete the final section: <a href='http://www.codecademy.com/courses/close-the-super-makert/0/1' target='_blank'>http://www.codecademy.com/courses/close-the-super-makert/0/1</a>."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7118d8c441eddfaeb5bdef",
@ -127,7 +207,17 @@
"Complete \"Chapter 7: Memory Profiling\"."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7138d8c441eddfaeb5bdef",
@ -149,7 +239,17 @@
"Once you've completed these challenges, move on to our next Waypoint."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Responsive Design with Bootstrap",
"order" : 0.003,
"order": 0.003,
"challenges": [
{
"_id": "bad87fee1348bd9acde08812",
@ -76,7 +76,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348bd8acde08812",
@ -149,7 +159,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348cd8acdf08812",
@ -221,7 +241,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348cd8acef08812",
@ -295,7 +325,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348cd8acef08811",
@ -370,7 +410,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348cd8acef08813",
@ -445,7 +495,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad87fee1348ce8acef08814",
@ -521,7 +581,17 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bad88fee1348ce8acef08815",
@ -602,13 +672,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedf08845",
"_id": "bad87fee1348bd9aedf08845",
"name": "Waypoint: Ditch Custom CSS for Bootstrap",
"difficulty" : 0.055,
"difficulty": 0.055,
"description": [
"Delete the following from your style tag: <code>.red-text</code>, <code>p</code>, <code>.smaller-image</code>. Delete the <code>p</code> element with the dead link. Remove your <code>red-text</code> class from your <code>h2</code> element and instead apply the <code>text-primary</code> Bootstrap class. Replace the <code>smaller-image</code> class on your top image with the <code>img-responsive</code> class.",
"We can clean up our code and make our Cat Photo App look more conventional by using Bootstrap's built-in styles instead of the custom styles we created earlier.",
@ -691,13 +770,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aede08845",
"_id": "bad87fee1348bd9aede08845",
"name": "Waypoint: Create a Custom Heading",
"difficulty" : 0.056,
"difficulty": 0.056,
"description": [
"Wrap your first image and your h2 element within a single <code>&#60;div class='row'&#62;</code> element. Wrap your h2 text within a <code>&#60;div class='col-xs-8'&#62;</code> and your image in a <code>&#60;div class='col-xs-4'&#62;</code> so that they are on the same line.",
"We will make a simple heading for our Cat Photo App by putting them in the same row.",
@ -770,13 +858,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedd08845",
"_id": "bad87fee1348bd9aedd08845",
"name": "Waypoint: Add Font Awesome Icons to our Buttons",
"difficulty" : 0.057,
"difficulty": 0.057,
"description": [
"Use Font Awesome to add a \"like\" icon to your like button.",
"Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the <code>.svg</code> file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.",
@ -846,13 +943,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedc08845",
"_id": "bad87fee1348bd9aedc08845",
"name": "Waypoint: Add Font Awesome Icons all of our Buttons",
"difficulty" : 0.058,
"difficulty": 0.058,
"description": [
"Use Font Awesome to add a \"info-circle\" icon to your info button and a \"trash\" icon to your delete button.",
"Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the <code>.svg</code> file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.",
@ -923,13 +1029,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aedb08845",
"_id": "bad87fee1348bd9aedb08845",
"name": "Waypoint: Responsively Style a Radio Buttons",
"difficulty" : 0.059,
"difficulty": 0.059,
"description": [
"Wrap all of your radio buttons within a <code>&#60;div class='row'&#62;</code> element. Then wrap each of them within a <code>&#60;div class='col-xs-6'&#62;</code> element.",
"You can use Bootstrap's <code>col-xs-*</code> classes on form elements, too! This way, our radio buttons will be evenly spread out across the page, regardless of how wide the screen resolution is."
@ -999,13 +1114,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aeda08845",
"_id": "bad87fee1348bd9aeda08845",
"name": "Waypoint: Responsively Style Checkboxes",
"difficulty" : 0.060,
"difficulty": 0.060,
"description": [
"Wrap all your checkboxes in a <code>&#60;div class='row'&#62;</code> element. Then wrap each of them in a <code>&#60;div class='col-xs-4'&#62;</code> element.",
"You can use Bootstrap's <code>col-xs-*</code> classes on form elements, too! This way, our checkboxes will be evenly spread out across the page, regardless of how wide the screen resolution is."
@ -1082,13 +1206,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aed908845",
"_id": "bad87fee1348bd9aed908845",
"name": "Waypoint: Style Text Inputs as Form Controls",
"difficulty" : 0.061,
"difficulty": 0.061,
"description": [
"Give your form's text input field in a class of \"form-control\". Give your form's submit button the classes \"btn btn-primary\" and give it the Font Awesome icon of \"fa-paper-plane\"."
],
@ -1174,13 +1307,22 @@
" <button type='submit'>Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "bad87fee1348bd9aec908845",
"_id": "bad87fee1348bd9aec908845",
"name": "Waypoint: Line up Form Elements Responsively with Bootstrap",
"difficulty" : 0.062,
"difficulty": 0.062,
"description": [
"Wrap both your form's text input field and submit button within a div with the class \"row\". Wrap your form's text input field within a div with the class of \"col-xs-7\". Wrap your form's submit button the in a div with the class \"col-xs-5\".",
"Now let's get your form input and your submission button on the same line. We'll do this the same way we have previously: by using a \"row\" element with \"col-xs-*\" elements withing it.",
@ -1268,7 +1410,17 @@
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
"</form>"
],
"challengeType": 0
"challengeType": 0,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Computer Science",
"order" : 0.005,
"order": 0.005,
"challenges": [
{
"_id": "bd7123d8c441eddfaeb5bdef",
@ -13,8 +13,18 @@
"Despite being completely self-paced, Stanford's CS101 course is broken up into weeks. Each of the following challenges will address one of those weeks.",
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z54/z1/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z54/z1/</a> and complete the first week's course work."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd8124d8c441eddfaeb5bdef",
@ -26,8 +36,18 @@
"This will introduce us to loops, a fundamental feature of every programming language.",
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/</a> and complete Week 2."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd8125d8c441eddfaeb5bdef",
@ -39,8 +59,18 @@
"This challenge will also give you an understanding of how bits and bytes work.",
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/</a> and complete Week 3."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd8126d8c441eddfaeb5bdef",
@ -52,8 +82,18 @@
"Particularly important, you will learn about networks and TCP/IP - the protocol that powers the internet.",
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/</a> and complete Week 4."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd8127d8c441eddfaeb5bdef",
@ -65,8 +105,18 @@
"We'll also learn the difference between digital data and analog data.",
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/</a> and complete Week 5."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd8128d8c441eddfaeb5bdef",
@ -79,8 +129,18 @@
"We'll also learn about Computer Security and some of the more common vulnerabilities software systems have.",
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/</a> and complete Week 6, the final week of the course."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Full Stack JavaScript",
"order" : 0.013,
"order": 0.013,
"challenges": [
{
"_id": "bd7154d8c441eddfaeb5bdef",
@ -12,8 +12,18 @@
"In this course, we'll build a virtual shop entirely in Angular.js.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/1/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/1/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7155d8c441eddfaeb5bdef",
@ -25,8 +35,18 @@
"Let's learn how these powerful directives work, and how to use them to make your web apps more dynamic",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/2/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/2/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7156d8c441eddfaeb5bdef",
@ -38,8 +58,18 @@
"Learn how to create reactive Angular.js forms, including real-time form validation.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/3/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/3/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7157d8c441eddfaeb5bdef",
@ -50,8 +80,18 @@
"Now we'll learn how to modify existing Angular.js directives, and even build directives of your own.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/4/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/4/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c441eddfaeb5bdef",
@ -63,8 +103,18 @@
"We'll learn how to use services in this final Code School Angular.js challenge.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/5/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/5/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7153d8c441eddfaeb5bd0f",
@ -105,8 +155,18 @@
"Complete \"Finale\"",
"Once you've completed these first 7 challenges, move on to our next waypoint."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7153d8c441eddfaeb5bdff",
@ -137,8 +197,18 @@
"Complete \"HTTP Client\"",
"Once you've completed these first 7 challenges, move on to our next waypoint."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7153d8c441eddfaeb5bdfe",
@ -154,8 +224,18 @@
"Complete \"Time Server\"",
"Once you've completed these 3 challenges, move on to our next waypoint."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7153d8c441eddfaeb5bdfd",
@ -171,8 +251,18 @@
"Complete \"HTTP JSON API Server\"",
"Once you've completed these final 3 challenges, move on to our next waypoint."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7153d8c441eddfaeb5bd1f",
@ -202,8 +292,18 @@
"Complete \"Time Server\"",
"Once you've completed these challenges, move on to our next waypoint."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7140d8c441eddfaeb5bdef",
@ -215,8 +315,18 @@
"Git is also a great way to share and contribute to open source software.",
"Go to <a href='https://www.codeschool.com/courses/try-git' target='_blank'>https://www.codeschool.com/courses/try-git</a> and complete this short interactive course."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Functional Programming",
"order" : 0.010,
"order": 0.010,
"challenges": [
{
"_id": "bd7129d8c441eddfbeb5bddf",
@ -15,8 +15,18 @@
"This challenge will take several hours, but don't worry. Jafar's website will save your progress (using your browser's local storage) so you don't need to finish it in one sitting.",
"If you've spent several minutes on one of these challenges, and still can't figure out its correct answer, you can click \"show answer\", then click \"run\" to advance to the next challenge. Be sure to read the correct answer and make sure you understand it before moving on."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Get Set for Free Code Camp",
"order" : 0.001,
"order": 0.001,
"challenges": [
{
"_id": "bd7124d8c441eddfaeb5bdef",
@ -17,8 +17,18 @@
"Once you make it through Free Code Camp, you will be able to get a coding job. There are far more job openings out there than there are qualified coders to fill them.",
"Now it's time to join our chat room. Click the \"I've completed this challenge\" button to move on to your next challenge."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7125d8c441eddfaeb5bd0f",
@ -37,8 +47,18 @@
"You can also access this chat room by clicking the \"Chat\" button in the upper right hand corner.",
"In order to keep our community a friendly and positive place to learn to code, please read and follow our Code of Conduct: <a href='/field-guide/what-is-the-free-code-camp-code-of-conduct?' target='_blank'>http://freecodecamp.com/field-guide/what-is-the-free-code-camp-code-of-conduct?</a>"
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7125d8c441eddfaeb5bdff",
@ -53,8 +73,18 @@
"This challenge map is just for your reference. You can always just press the \"Learn\" button, and it will take you to your next challenge.",
"Finally, please note that our open-source curriculum is a work in progress. Our volunteer community is constantly improving it. If you think you've encountered a bug, typo, or something that seems confusing, please open a GitHub issue: <a href='https://github.com/FreeCodeCamp/freecodecamp/issues'>https://github.com/FreeCodeCamp/freecodecamp/issues</a>."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7125d8c441eddfaeb5bd1f",
@ -68,8 +98,18 @@
"When you click the Field Guide button, it will always take you back to whichever article you were last reading.",
"Read a few field guide articles, then move on to your next challenge."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7125d8c441eddfaeb5bd2f",
@ -85,8 +125,18 @@
"Be sure to click the \"Update my Bio\" or \"Update my Social Links\" button to save this new information to your portfolio page.",
"Once you're happy with your portfolio page, you can move on to your next challenge."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7126d8c441eddfaeb5bd3f",
@ -104,8 +154,18 @@
"When you submit a link, you'll get a point. You will also get a point each time someone upvotes your link.",
"Now that you've learned how to use Camper News, let's move on to your next challenge."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7126d8c441eddfaeb5bd3e",
@ -122,8 +182,18 @@
"Our groups allow you to create events, coordinate those events, and share photos from the events afterward.",
"Whether you're hosting a study group, pair programming at your local library, or going to a weekend hackathon, your city's group will help you make it happen."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7137d8c441eddfaeb5bdef",
@ -140,8 +210,18 @@
"Here's our detailed field guide on getting help: <a href='/field-guide/how-do-i-get-help-when-i-get-stuck' target='_blank'>http://freecodecamp.com/field-guide/how-do-i-get-help-when-i-get-stuck</a>.",
"Now you have a clear algorithm to follow when you need help! Let's start coding! Move on to your next challenge."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "Intermediate Algorithm Scripting",
"order" : 0.009,
"order": 0.009,
"challenges": [
{
"_id": "a2f1d72d9b908d0bd72bb9f6",
@ -37,8 +37,21 @@
"expect(bob.getFullName()).to.eql('George Carlin');",
"bob.setFullName('Bob Ross');"
],
"MDNlinks": ["Closures", "Details of the Object Model"],
"challengeType": 5
"MDNlinks": [
"Closures",
"Details of the Object Model"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "af4afb223120f7348cdfc9fd",
@ -65,11 +78,23 @@
"expect(orbitalPeriod([{name : \"sputkin\", avgAlt : 35873.5553}])).to.eqls([{name: \"sputkin\", orbitalPeriod: 86400}]);",
"expect(orbitalPeriod([{name: \"iss\", avgAlt: 413.6}, {name: \"hubble\", avgAlt: 556.7}, {name: \"moon\", avgAlt: 378632.553}])).to.eqls([{name : \"iss\", orbitalPeriod: 5557}, {name: \"hubble\", orbitalPeriod: 5734}, {name: \"moon\", orbitalPeriod: 2377399}]);"
],
"MDNlinks": ["Math.pow()"],
"challengeType": 5
"MDNlinks": [
"Math.pow()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id" : "a3f503de51cfab748ff001aa",
"_id": "a3f503de51cfab748ff001aa",
"name": "Bonfire: Pairwise",
"difficulty": "3.03",
"description": [
@ -92,8 +117,20 @@
"expect(pairwise([0, 0, 0, 0, 1, 1], 1)).to.equal(10);",
"expect(pairwise([], 100)).to.equal(0);"
],
"MDNlinks" : ["Array.reduce()"],
"challengeType": 5
"MDNlinks": [
"Array.reduce()"
],
"challengeType": 5,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "jQuery",
"order" : 0.004,
"order": 0.004,
"challenges": [
{
"_id": "bd7112d8c441eddfaeb5bded",
@ -14,8 +14,18 @@
"Codecademy has an excellent free course that will walk us through the basics of jQuery.",
"Go to <a href='http://www.codecademy.com/courses/web-beginner-en-bay3D/0/1' target='_blank'>http://www.codecademy.com/courses/web-beginner-en-bay3D/0/1</a> and complete the first section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7113d8c441eddfaeb5bdef",
@ -28,8 +38,18 @@
"First, you'll learn about one of the most important jQuery functions of all: <code>$(document).ready()</code>.",
"Go to <a href='http://www.codecademy.com/courses/web-beginner-en-GfjC6/0/1' target='_blank'>http://www.codecademy.com/courses/web-beginner-en-GfjC6/0/1</a> and complete the second section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7114d8c441eddfaeb5bdef",
@ -41,8 +61,18 @@
"Let's learn some more advanced ways to use jQuery to manipulate the DOM.",
"Go to <a href='http://www.codecademy.com/courses/web-beginner-en-v6phg/0/1' target='_blank'>http://www.codecademy.com/courses/web-beginner-en-v6phg/0/1</a> and complete the third section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7115d8c441eddfaeb5bdef",
@ -54,8 +84,18 @@
"Here we'll learn how to use the jQuery <code>click()</code> function to respond to events in the browser.",
"Go to <a href='http://www.codecademy.com/courses/web-beginner-en-JwhI1/0/1' target='_blank'>http://www.codecademy.com/courses/web-beginner-en-JwhI1/0/1</a> and complete the fourth section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7116d8c441eddfaeb5bdef",
@ -67,8 +107,18 @@
"Let's explore some of the fun ways we can manipulate DOM elements with jQuery.",
"Go to <a href='http://www.codecademy.com/courses/web-beginner-en-jtFIC/0/1' target='_blank'>http://www.codecademy.com/courses/web-beginner-en-jtFIC/0/1</a> and complete the fifth section."
],
"challengeType": 2,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -16,7 +16,17 @@
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2593668697/m-2541189051' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2593668697/m-2541189051</a> and start the course.",
"Once you've completed this first section of scopes, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2
"challengeType": 2,
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7131d8c441eddfaeb5bdbf",
@ -32,7 +42,17 @@
"Once you've completed this section of using the keyword <code>this</code>, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7132d8c441eddfaeb5bdaf",
@ -47,7 +67,17 @@
"Once you've completed this section on prototype chain traversal, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7133d8c441eddfaeb5bd0f",
@ -63,7 +93,17 @@
"Once you've completed this section of decorators, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7134d8c441eddfaeb5bd1f",
@ -79,7 +119,17 @@
"Once you've completed this section of functional classes, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7135d8c441eddfaeb5bd2f",
@ -95,7 +145,17 @@
"Once you've completed this section of prototypal classes, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7136d8c441eddfaeb5bd3f",
@ -111,7 +171,17 @@
"Once you've completed this section pseudoclasses, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7136d8c441eddfaeb5bd4f",
@ -126,7 +196,17 @@
"Once you've completed this section on subclassing, mark this Waypoint complete and move on to the next one."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7136d8c441eddfaeb5bd5f",
@ -140,7 +220,17 @@
"Once you've completed this final section on pseudoclassical subclassing, mark this Waypoint complete and move on."
],
"challengeType": 2,
"tests": []
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}

View File

@ -1,6 +1,6 @@
{
"name": "Front End Development Projects",
"order" : 0.012,
"order": 0.012,
"challenges": [
{
"_id": "bd7158d8c442eddfbeb5bd1f",
@ -22,8 +22,18 @@
"Now add the following code to your JavaScript: <code>$(document).ready(function() { $('.text-primary').text('Hi CodePen!') });</code>. Click the \"Save\" button at the top. Your \"Hello CodePen!\" should change to \"Hi CodePen!\". This means that jQuery is working.",
"Now you're ready for your first Zipline. Click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair."
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd1f",
@ -47,8 +57,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd13",
@ -67,8 +87,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd10",
@ -89,8 +119,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd18",
@ -112,8 +152,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd19",
@ -134,8 +184,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd0f",
@ -155,8 +215,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd17",
@ -176,8 +246,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
},
{
"_id": "bd7158d8c442eddfaeb5bd1c",
@ -198,8 +278,18 @@
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
],
"challengeType": 3,
"tests": []
"challengeType": 0,
"tests": [],
"nameCn": "",
"descriptionCn": [],
"nameFr": "",
"descriptionFr": [],
"nameRu": "",
"descriptionRu": [],
"nameEs": "",
"descriptionEs": [],
"namePt": "",
"descriptionPt": []
}
]
}
}

View File

@ -296,6 +296,7 @@
" <li><a href='https://www.facebook.com/groups/free.code.camp.berkeley/' target='_blank'>Berkeley</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.berlin/' target='_blank'>Berlin</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.bhaktapur/' target='_blank'>Bhaktapur</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.bismarck.north.dakota/' target='_blank'>Bismarck, ND</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.boston/' target='_blank'>Boston</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.boulder/' target='_blank'>Boulder</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.brussels/' target='_blank'>Brussels</a></li>",
@ -303,6 +304,8 @@
" <li><a href='https://www.facebook.com/groups/free.code.camp.bucharest/' target='_blank'>Bucharest</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.budapest/' target='_blank'>Budapest</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.cairo/' target='_blank'>Cairo</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.calgary/' target='_blank'>Calgary</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.campinas/' target='_blank'>Campinas</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.cape.town/' target='_blank'>Cape Town</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.charlotte.nc/' target='_blank'>Charlotte</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.chennai/' target='_blank'>Chennai</a></li>",
@ -311,6 +314,7 @@
" <li><a href='https://www.facebook.com/groups/free.code.camp.cluj' target='_blank'>Cluj</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.coimbatore' target='_blank'>Coimbatore</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.coventry/' target='_blank'>Coventry</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.curitiba/' target='_blank'>Curitiba</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.dallas/' target='_blank'>Dallas</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.delhi/' target='_blank'>Delhi</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.denver/' target='_blank'>Denver</a></li>",
@ -318,6 +322,7 @@
" <li><a href='https://www.facebook.com/groups/free.code.camp.dubai/' target='_blank'>Dubai</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.edmonton/' target='_blank'>Edmonton</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.northern.arizona/' target='_blank'>Flagstaff</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.florianopolis/' target='_blank'>Florianopolis</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.dallas/' target='_blank'>Fort Worth</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.frankfurt.main/' target='_blank'>Frankfurt</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.geneva/' target='_blank'>Geneva</a></li>",
@ -335,6 +340,7 @@
" <li><a href='https://www.facebook.com/groups/free.code.camp.hyderabad/' target='_blank'>Hyderabad</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.kalamazoo/' target='_blank'>Kalamazoo</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.karachi/' target='_blank'>Karachi</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.kathmandu/' target='_blank'>Kathmandu</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.kemerovo/' target='_blank'>Kemerovo</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.kiev/' target='_blank'>Kiev</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.kolkata/' target='_blank'>Kolkata</a></li>",
@ -356,6 +362,7 @@
" <li><a href='https://www.facebook.com/groups/free.code.camp.neworleans/' target='_blank'>New Orleans</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.new.york.city/' target='_blank'>New York City</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.berkeley/' target='_blank'>Oakland</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.oklahoma.city/' target='_blank'>Oklahoma City</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.omaha/' target='_blank'>Omaha</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.orange.county/' target='_blank'>Orange County</a></li>",
" <li><a href='https://www.facebook.com/groups/free.code.camp.orlando.fl/' target='_blank'>Orlando</a></li>",
@ -733,6 +740,47 @@
"</div>"
]
},
{
"_id": "bd7158d9c436eddfaeb5dd3b",
"name": "What other resources does Free Code Camp recommend to nonprofits?",
"description": [
"<div class=\"col-xs-12 col-sm-10 col-sm-offset-1\">",
" <h2>Here are some excellent resources for nonprofits.</h2>",
" <h3>Please note that Free Code Camp is not partnered with, nor do we receive a referral fee from, any of the following providers. We simply want to help guide you towards a solution for your organization.</h3>",
" <h3>Skills-based Volunteer Organizations:</h3>",
" <p class='large-p'><a href='http://www.volunteermatch.com'>http://www.volunteermatch.com</a></p>",
" <p class='large-p'><a href='http://www.catchafire.org'>http://www.catchafire.org</a></p>",
" <h3>Building a website:</h3>",
" <p class='large-p'><a href='http://www.wix.com/'>http://www.wix.com/</p>",
" <p class='large-p'><a href='https://wordpress.com/'>https://wordpress.com/</p>",
" <p class='large-p'><a href='http://www.freecodecamp.com/field-guide/how-can-i-deploy-a-website-without-writing-any-code-at-all'>Build it yourself for free with no code</a></p>",
" <h3>Donor and Volunteer Management Systems</h3>",
" <p class='large-p'><a href='https://www.thedatabank.com/'>https://www.thedatabank.com/</a></p>",
" <p class='large-p'><a href='http://www.donorsnap.com/'>http://www.donorsnap.com/</a></p>",
" <p class='large-p'><a href='http://www.donorperfect.com/'>http://www.donorperfect.com/</a></p>",
" <p class='large-p'><a href='https://www.blackbaud.com/fundraising-crm/etapestry-donor-management'>https://www.blackbaud.com/fundraising-crm/etapestry-donor-management</a></p>",
" <p class='large-p'><a href='http://www.z2systems.com/'>http://www.z2systems.com</a></p>",
" <p class='large-p'><a href='http://www.regpacks.com/volunteer-management/'</a>http://www.regpacks.com/volunteer-management</a></p>",
" <p class='large-p'><a href='http://sumac.com/'>http://sumac.com</a></p>",
" <p class='large-p'><a href='http://www.volgistics.com'>http://www.volgistics.com</a></p>",
" <h3>Inventory Management Systems</h3>",
" <p class='large-p'><a href='https://www.ezofficeinventory.com/industries/non-profits'>https://www.ezofficeinventory.com/industries/non-profits</a></p>",
" <p class='large-p'><a href='https://www.ordoro.com'>https://www.ordoro.com</a></p>",
" <p class='large-p'><a href='http://www.unleashedsoftware.com'>http://www.unleashedsoftware.com</a></p>",
" <h3>E-Learning platforms</h3>",
" <p class='large-p'><a href='http://www.dokeos.com/'>http://www.dokeos.com</a></p>",
" <p class='large-p'><a href='http://www.efrontlearning.net/'>http://www.efrontlearning.net/</a></p>",
" <p class='large-p'><a href='https://moodle.org/'>https://moodle.org/</a></p>",
" <p class='large-p'><a href='https://sakaiproject.org/'>https://sakaiproject.org/</a></p>",
" <h3>Community Management</h3>",
" <p class='large-p'><a href='https://civicrm.org/'>https://civicrm.org/</a></p>",
" <p class='large-p'><a href='http://tcmgr.com/'>http://tcmgr.com/</a></p>",
" <h3>Electronic Forms</h3>",
" <p class='large-p'><a href='http://www.google.com/forms'>http://www.google.com/forms</a></p>",
" <p class='large-p'><a href='http://www.typeform.com'>http://www.typeform.com</a></p>",
"</div>"
]
},
{
"_id": "bd7158d9c436eddfadb5bd3e",
"name": "How can I contribute to this guide?",

View File

@ -56,18 +56,30 @@ block content
#announcementModal.modal(tabindex='-1')
.modal-dialog.animated.fadeInUp.fast-animation
.modal-content
.modal-header.challenge-list-header Share deep comics about coding
.modal-header.challenge-list-header We're adding new languages!
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
.modal-body
h3.text-left Submit your favorite profound comic about coding to Camper News. Start the headline with: "Deep Code Comic:" then add a clever description that doesn't ruin the punchline.
img.img-responsive.img-center(src='http://imgs.xkcd.com/comics/wisdom_of_the_ancients.png')
h3.text-left We'll publish the top 25 comics (and the campers who submitted them) in Wednesday's blog post. You'll also get 1 point for every upvote.
a.btn.btn-lg.btn-info.btn-block(name='_csrf', value=_csrf, aria-hidden='true', href='/news', target='_blank') Take me to Camper News
.spacer
h4.text-left 我們正在研究將Free Code Camp翻成中文! &thinsp;
a(href='https://freecode.slack.com/messages/chinese') 請按這裡來參觀我們的中文聊天室
| .
h4.text-left Estamos trabajando a traducir Free Code Camp en español! &thinsp;
a(href='https://freecode.slack.com/messages/espanol') Haz clic aquí para ir a nuestra sala de chat españal
| .
h4.text-left Nós estamos trabalhando para traduzir o Free Code Camp para o Português! &thinsp;
a(href='https://freecode.slack.com/messages/portugues') Clique aqui para visitar nossa sala de bate-papo em Português
| .
h4.text-left Nous travaillons pour traduire Free Code Camp en Français! &thinsp;
a(href='https://freecode.slack.com/messages/francais') Cliquez ici pour visiter notre salle de chat Français
| .
h4.text-left Мы работаем над переводом Free Code Camp на русский язык! &thinsp;
a(href='https://freecode.slack.com/messages/russian') Нажмите здесь, чтобы посетить русский чат
| .
a.btn.btn-lg.btn-primary.btn-block(href='#', data-dismiss='modal', aria-hidden='true') Thanks for the heads-up!
script.
$(document).ready(function () {
if (!localStorage || !localStorage.deepComic) {
if (!localStorage || !localStorage.multiLingual) {
$('#announcementModal').modal('show');
localStorage.deepComic = "true";
localStorage.multiLingual = "true";
}
});