Update seed directory to use loopback
This commit is contained in:
297
challenges/advanced-bonfires.json
Normal file
297
challenges/advanced-bonfires.json
Normal file
@@ -0,0 +1,297 @@
|
||||
{
|
||||
"name": "Advanced Algorithm Scripting",
|
||||
"order": 0.011,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "aff0395860f5d3034dc0bfc9",
|
||||
"name": "Bonfire: Validate US Telephone Numbers",
|
||||
"difficulty": "4.01",
|
||||
"description": [
|
||||
"Return true if the passed string is a valid US phone number",
|
||||
"The user may fill out the form field any way they choose as long as it is a valid US number. The following are all valid formats for US numbers:",
|
||||
"555-555-5555, (555)555-5555, (555) 555-5555, 555 555 5555, 5555555555, 1 555 555 5555",
|
||||
"For this challenge you will be presented with a string such as \"800-692-7753\" or \"8oo-six427676;laskdjf\". Your job is to validate or reject the US phone number based on any combination of the formats provided above. The area code is required. If the country code is provided, you must confirm that the country code is \"1\". Return true if the string is a valid US phone number; otherwise false.",
|
||||
"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."
|
||||
],
|
||||
"tests": [
|
||||
"expect(telephoneCheck(\"555-555-5555\")).to.be.a(\"boolean\");",
|
||||
"assert.deepEqual(telephoneCheck(\"1 555-555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1 (555) 555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"5555555555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"555-555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"(555)555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1(555)555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1 555 555 5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"555-555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1 456 789 4444\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"123**&!!asdf#\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"55555555\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"(6505552368)\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"0 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"-1 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2 757 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"10 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"27576227382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"(275)76227382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2(757)6227382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2(757)622-7382\"), false);"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function telephoneCheck(str) {",
|
||||
" // Good luck!",
|
||||
" return true;",
|
||||
"}",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"telephoneCheck(\"555-555-5555\");"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"RegExp"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "a3f503de51cf954ede28891d",
|
||||
"name": "Bonfire: Symmetric Difference",
|
||||
"difficulty": "4.02",
|
||||
"description": [
|
||||
"Create a function that takes two or more arrays and returns an array of the symmetric difference of the provided arrays.",
|
||||
"The mathematical term symmetric difference refers to the elements in two sets that are in either the first or second set, but not in both.",
|
||||
"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 sym(args) {",
|
||||
" return arguments;",
|
||||
"}",
|
||||
"",
|
||||
"sym([1, 2, 3], [5, 2, 1, 4]);"
|
||||
],
|
||||
"tests": [
|
||||
"expect(sym([1, 2, 3], [5, 2, 1, 4])).to.eqls([3, 5, 4])",
|
||||
"assert.deepEqual(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]), [1, 4, 5], 'should return the symmetric difference of the given arrays');",
|
||||
"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,
|
||||
"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.",
|
||||
"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 drawer(price, cash, cid) {",
|
||||
" var change;",
|
||||
" // Here is your change, ma'am.",
|
||||
" return change;",
|
||||
"}",
|
||||
"",
|
||||
"// Example cash-in-drawer array:",
|
||||
"// [['PENNY', 1.01],",
|
||||
"// ['NICKEL', 2.05],",
|
||||
"// ['DIME', 3.10],",
|
||||
"// ['QUARTER', 4.25],",
|
||||
"// ['ONE', 90.00],",
|
||||
"// ['FIVE', 55.00],",
|
||||
"// ['TEN', 20.00],",
|
||||
"// ['TWENTY', 60.00],",
|
||||
"// ['ONE HUNDRED', 100.00]]",
|
||||
"",
|
||||
"drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]);"
|
||||
],
|
||||
"tests": [
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]])).to.be.a('array');",
|
||||
"expect(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]])).to.be.a('string');",
|
||||
"expect(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]])).to.be.a('string');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]), [['QUARTER', 0.50]], 'return correct change');",
|
||||
"assert.deepEqual(drawer(3.26, 100.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]), [['TWENTY', 60.00], ['TEN', 20.00], ['FIVE', 15], ['ONE', 1], ['QUARTER', 0.50], ['DIME', 0.20], ['PENNY', 0.04] ], 'return correct change with multiple coins and bills');",
|
||||
"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,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "a56138aff60341a09ed6c480",
|
||||
"name": "Bonfire: Inventory Update",
|
||||
"difficulty": "4.04",
|
||||
"description": [
|
||||
"Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical 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": [
|
||||
"function inventory(arr1, arr2) {",
|
||||
" // All inventory must be accounted for or you're fired!",
|
||||
" return arr1;",
|
||||
"}",
|
||||
"",
|
||||
"// Example inventory lists",
|
||||
"var curInv = [",
|
||||
" [21, 'Bowling Ball'],",
|
||||
" [2, 'Dirty Sock'],",
|
||||
" [1, 'Hair Pin'],",
|
||||
" [5, 'Microphone']",
|
||||
"];",
|
||||
"",
|
||||
"var newInv = [",
|
||||
" [2, 'Hair Pin'],",
|
||||
" [3, 'Half-Eaten Apple'],",
|
||||
" [67, 'Bowling Ball'],",
|
||||
" [7, 'Toothpaste']",
|
||||
"];",
|
||||
"",
|
||||
"inventory(curInv, newInv);"
|
||||
],
|
||||
"tests": [
|
||||
"expect(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']])).to.be.a('array');",
|
||||
"assert.equal(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]).length, 6);",
|
||||
"assert.deepEqual(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[88, 'Bowling Ball'], [2, 'Dirty Sock'], [3, 'Hair Pin'], [3, 'Half-Eaten Apple'], [5, 'Microphone'], [7, 'Toothpaste']]);",
|
||||
"assert.deepEqual(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], []), [[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']]);",
|
||||
"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,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "a7bf700cd123b9a54eef01d5",
|
||||
"name": "Bonfire: No repeats please",
|
||||
"difficulty": "4.05",
|
||||
"description": [
|
||||
"Return the number of total permutations of the provided string that don't have repeated consecutive letters.",
|
||||
"For example, 'aab' should return 2 because it has 6 total permutations, but only 2 of them don't have the same letter (in this case 'a') repeating.",
|
||||
"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 permAlone(str) {",
|
||||
" return str;",
|
||||
"}",
|
||||
"",
|
||||
"permAlone('aab');"
|
||||
],
|
||||
"tests": [
|
||||
"expect(permAlone('aab')).to.be.a.number;",
|
||||
"expect(permAlone('aab')).to.equal(2);",
|
||||
"expect(permAlone('aaa')).to.equal(0);",
|
||||
"expect(permAlone('aabb')).to.equal(8);",
|
||||
"expect(permAlone('abcdefa')).to.equal(3600);",
|
||||
"expect(permAlone('abfdefa')).to.equal(2640);",
|
||||
"expect(permAlone('zzzzzzzz')).to.equal(0);"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Permutations",
|
||||
"RegExp"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "a19f0fbe1872186acd434d5a",
|
||||
"name": "Bonfire: Friendly Date Ranges",
|
||||
"difficulty": "4.06",
|
||||
"description": [
|
||||
"Implement a way of converting two dates into a more friendly date range that could be presented to a user.",
|
||||
"It must not show any redundant information in the date range.",
|
||||
"For example, if the year and month are the same then only the day range should be displayed.",
|
||||
"Secondly, if the starting year is the current year, and the ending year can be inferred by the reader, the year should be omitted.",
|
||||
"Input date is formatted as YYYY-MM-DD",
|
||||
"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 friendly(str) {",
|
||||
" return str;",
|
||||
"}",
|
||||
"",
|
||||
"friendly(['2015-07-01', '2015-07-04']);"
|
||||
],
|
||||
"tests": [
|
||||
"assert.deepEqual(friendly(['2015-07-01', '2015-07-04']), ['July 1st','4th'], 'ending month should be omitted since it is already mentioned');",
|
||||
"assert.deepEqual(friendly(['2015-12-01', '2016-02-03']), ['December 1st','February 3rd'], 'one month apart can be inferred it is the next year');",
|
||||
"assert.deepEqual(friendly(['2015-12-01', '2017-02-03']), ['December 1st, 2015','February 3rd, 2017']);",
|
||||
"assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th, 2016']);",
|
||||
"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,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
229
challenges/basejumps.json
Normal file
229
challenges/basejumps.json
Normal file
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"name": "Full Stack JavaScript Projects",
|
||||
"order": 0.014,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bcef",
|
||||
"name": "Waypoint: Get Set for Basejumps",
|
||||
"difficulty": 2.00,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Get the MEAN stack running on Cloud 9, push your code to GitHub, and deploy it to Heroku.",
|
||||
"We'll build our Basejumps on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
|
||||
"If you don't already have Cloud 9 account, create one now at <a href='http://c9.io' target='_blank'>http://c9.io</a>.",
|
||||
"Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.",
|
||||
"Open up <a href='http://c9.io' target='_blank'>http://c9.io</a> and sign in to your account.",
|
||||
"Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
|
||||
"Give your workspace a name.",
|
||||
"Choose Node.js in the selection area below the name field.",
|
||||
"Click the Create button.",
|
||||
"Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button.",
|
||||
"Click the \"Start Editing\" button.",
|
||||
"In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
|
||||
"Never run this command on your local machine. But in your Cloud 9 terminal window, run: <code>rm -rf * && echo \"export NODE_PATH=$NODE_PATH:/home/ubuntu/.nvm/v0.10.35/lib/node_modules\" >> ~/.bashrc && source ~/.bashrc && npm install -g yo grunt grunt-cli generator-angular-fullstack && yo angular-fullstack</code>",
|
||||
"Yeoman will prompt you to answer some questions. Answer them like this:",
|
||||
"What would you like to write scripts with? <span class='text-success'>JavaScript</span>",
|
||||
"What would you like to write markup with? <span class='text-success'>HTML</span>",
|
||||
"What would you like to write stylesheets with? <span class='text-success'>CSS</span>",
|
||||
"What Angular router would you like to use? <span class='text-success'>ngRoute</span>",
|
||||
"Would you like to include Bootstrap? <span class='text-success'>Yes</span>",
|
||||
"Would you like to include UI Bootstrap? <span class='text-success'>Yes</span>",
|
||||
"Would you like to use MongoDB with Mongoose for data modeling? <span class='text-success'>Yes</span>",
|
||||
"Would you scaffold out an authentication boilerplate? <span class='text-success'>Yes</span>",
|
||||
"Would you like to include additional oAuth strategies? <span class='text-success'>Twitter</span>",
|
||||
"Would you like to use socket.io? <span class='text-success'>No</span>",
|
||||
"May bower anonymously report usage statistics to improve the tool over time? (Y/n) <span class='text-success'>Y</span>",
|
||||
"You may get an error similar to <code> ERR! EEXIST, open ‘/home/ubuntu/.npm</code>. This is caused when Cloud9 runs out of memory and kills an install. If you get this, simply re-run this process with the command <code>yo angular-fullstack</code>. You will then be asked a few questions regarding the re-install. Answer them as follows:",
|
||||
"Existing .yo-rc configuration found, would you like to use it? (Y/n) <span class='text-success'>Y</span>",
|
||||
"Overwrite client/favicon.ico? (Ynaxdh) <span class='text-success'>Y</span>",
|
||||
"To finish the installation run the commands: <code>bower install && npm install</code>",
|
||||
"To start MongoDB, run the following commands in your terminal: <code>mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod && chmod a+x mongod && ./mongod</code>",
|
||||
"You will want to open up a new terminal to work from by clicking on the + icon and select New Terminal",
|
||||
"Start the application by running the following command in your new terminal window: <code>grunt serve</code>",
|
||||
"Wait for the following message to appear: <code>xdg-open: no method available for opening 'http://localhost:8080' </code>. Now you can open the internal Cloud9 browser. To launch the browser select Preview in the toolbar then select the dropdown option Preview Running Application.",
|
||||
"Turn the folder in which your application is running into a Git repository by running the following commands: <code>git init && git add . && git commit -am 'initial commit'</code>.",
|
||||
"Now we need to add your GitHub SSH key to c9.io. Click the \"Add-on Services\" button in the lower left of your C9 dashboard. Click \"activate\" next to the GitHub icon.",
|
||||
"A pop up will appear. Allow access to your account.",
|
||||
"While still on the dashboard, under “Account Settings”, click the link for \"Show your SSH key\". Copy the key to you clipboard.",
|
||||
"Sign in to <a href='http://github.com' target='_blank'>http://github.com</a> and navigate to the GitHub SSH settings page. Click the \"Add SSH Key\". Give your key the title \"cloud 9\". Paste your SSH Key into the \"Key\" box, then click \"Add Key\".",
|
||||
"Create a new GitHub repository by and clicking on the + button next to your username in the upper-right hand side of your screen, then selecting \"New Repository\".",
|
||||
"Enter a project name, then click the \"Create Repository\" button.",
|
||||
"Find the \"...or push an existing repository from the command line\" section and click the Copy to Clipboard button beside it.",
|
||||
"Paste the commands from your clipboard into the Cloud9 terminal prompt. This will push your changes to your repository on Cloud 9 up to GitHub.",
|
||||
"Check back on your GitHub profile to verify the changes were successfully pushed up to GitHub.",
|
||||
"Now let's push your code to Heroku. If you don't already have a Heroku account, create one at <a href='http://heroku.com' target='_blank'>http://heroku.com</a>. You shouldn't be charged for anything, but you will need to add your credit card information to your Heroku before you will be able to use Heroku's free MongoLab add on.",
|
||||
"Before you publish to Heroku, you should free up as much memory as possible on Cloud9. In each of the Cloud9 terminal prompt tabs where MongoDB and Grunt are running, press the <code>control + c</code> hotkey to shut down these processes.",
|
||||
"Run the following command in a Cloud9 terminal prompt tab: <code>npm install grunt-contrib-imagemin --save-dev && npm install --save-dev && heroku login</code>. At this point, the terminal will prompt you to log in to Heroku from the command line.",
|
||||
"Now run <code>yo angular-fullstack:heroku</code>. You can choose a name for your Heroku project, or Heroku will create a random one for you. You can choose whether you want to deploy to servers the US or the EU.",
|
||||
"Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: <code>cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab</code>.",
|
||||
"As you build your app, you should frequently commit changes to your codebase. Make sure you're in the <code>~/workspace</code> directory by running <code>cd ~/workspace</code>. Then you can this code to stage the changes to your changes and commit them: <code>git commit -am \"your commit message\"</code>. Note that you should replace \"your commit message\" with a short summary of the changes you made to your code, such as \"added a records controller and corresponding routes\".",
|
||||
"You can push these new commits to GitHub by running <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
|
||||
"Now you're ready to move on to your first Basejump. Click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bdef",
|
||||
"name": "Basejump: Build a Voting App",
|
||||
"difficulty": 2.01,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a full stack JavaScript app that successfully reverse-engineers this: <a href='http://voteplex.herokuapp.com/' target='_blank'>http://voteplex.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-basejumps'>http://freecodecamp.com/challenges/get-set-for-basejumps</a>.",
|
||||
"As you build your app, you should frequently commit changes to your codebase. You can do this by running <code>git commit -am \"your commit message\"</code>. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
|
||||
"You can push these new commits to GitHub by running <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
|
||||
"Here are the specific User Stories you should implement for this Basejump:",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can keep my polls and come back later to access them.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can share my polls with my friends.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can see the aggregate results of my polls.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can delete polls that I decide I don't want anymore.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can create a poll with any number of possible items.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As an unauthenticated user, I can see everyone's polls, but I can't vote on anything.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As an unauthenticated or authenticated user, I can see the results of polls in chart form. (This could be implemented using Chart.js or Google Charts.)",
|
||||
"<span class='text-info'>Bonus User Story:</span> As an authenticated user, if I don't like the options on a poll, I can create a new option.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bdff",
|
||||
"name": "Basejump: Build a Nightlife Coordination App",
|
||||
"difficulty": 2.02,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a full stack JavaScript app that successfully reverse-engineers this: <a href='http://sociallife.herokuapp.com/' target='_blank'>http://sociallife.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-basejumps'>http://freecodecamp.com/challenges/get-set-for-basejumps</a>.",
|
||||
"As you build your app, you should frequently commit changes to your codebase. You can do this by running <code>git commit -am \"your commit message\"</code>. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
|
||||
"You can push these new commits to GitHub by running <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
|
||||
"Here are the specific User Stories you should implement for this Basejump:",
|
||||
"<span class='text-info'>User Story:</span> As an unauthenticated user, I can view all bars in my area.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can add myself to a bar to indicate I am going there tonight.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can remove myself from a bar if I no longer want to go there.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As an unauthenticated user, when I login I should not have to search again.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bd0e",
|
||||
"name": "Basejump: Chart the Stock Market",
|
||||
"difficulty": 2.03,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a full stack JavaScript app that successfully reverse-engineers this: <a href='http://stockjump.herokuapp.com/' target='_blank'>http://stockjump.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-basejumps'>http://freecodecamp.com/challenges/get-set-for-basejumps</a>.",
|
||||
"As you build your app, you should frequently commit changes to your codebase. You can do this by running <code>git commit -am \"your commit message\"</code>. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
|
||||
"You can push these new commits to GitHub by running <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
|
||||
"Here are the specific User Stories you should implement for this Basejump:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can view a graph displaying the recent trend lines for each added stock.",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can add new stocks by their symbol name.",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can remove stocks.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can see changes in real-time when any other user adds or removes a stock.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bd0f",
|
||||
"name": "Basejump: Manage a Book Trading Club",
|
||||
"difficulty": 2.04,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a full stack JavaScript app that successfully reverse-engineers this: <a href='http://bookoutpost.herokuapp.com/' target='_blank'>http://bookoutpost.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-basejumps'>http://freecodecamp.com/challenges/get-set-for-basejumps</a>.",
|
||||
"As you build your app, you should frequently commit changes to your codebase. You can do this by running <code>git commit -am \"your commit message\"</code>. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
|
||||
"You can push these new commits to GitHub by running <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
|
||||
"Here are the specific User Stories you should implement for this Basejump:",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can view all books posted by every user.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can add a new book.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can update my settings to store my full name, city, and state.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As an authenticated user, I can propose a trade and wait for the other user to accept the trade.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bdee",
|
||||
"name": "Basejump: Build a Pinterest Clone",
|
||||
"difficulty": 2.05,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a full stack JavaScript app that successfully reverse-engineers this: <a href='http://linkterest.herokuapp.com/' target='_blank'>http://linkterest.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-basejumps'>http://freecodecamp.com/challenges/get-set-for-basejumps</a>.",
|
||||
"As you build your app, you should frequently commit changes to your codebase. You can do this by running <code>git commit -am \"your commit message\"</code>. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
|
||||
"You can push these new commits to GitHub by running <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
|
||||
"Here are the specific User Stories you should implement for this Basejump:",
|
||||
"<span class='text-info'>User Story:</span> As an unauthenticated user, I can login with Twitter.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can link to images.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can delete images that I've linked to.",
|
||||
"<span class='text-info'>User Story:</span> As an authenticated user, I can see a Pinterest-style wall of all the images I've linked to.",
|
||||
"<span class='text-info'>User Story:</span> As an unauthenticated user, I can browse other users' walls of images.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As an authenticated user, if I upload an image that is broken, it will be replaced by a placeholder image. (can use jQuery broken image detection)",
|
||||
"<span class='text-info'>Hint:</span> <a href='http://masonry.desandro.com/' target='_blank'>Masonry.js</a> is a library that allows for Pinterest-style image grids.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
1473
challenges/basic-bonfires.json
Normal file
1473
challenges/basic-bonfires.json
Normal file
File diff suppressed because it is too large
Load Diff
2740
challenges/basic-html5-and-css.json
Normal file
2740
challenges/basic-html5-and-css.json
Normal file
File diff suppressed because it is too large
Load Diff
255
challenges/basic-javascript.json
Normal file
255
challenges/basic-javascript.json
Normal file
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"name": "Basic JavaScript",
|
||||
"order": 0.006,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7129d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build an Adventure Game",
|
||||
"difficulty": 0.24,
|
||||
"challengeSeed": "114604814",
|
||||
"description": [
|
||||
"Now that you understand some Computer Science fundamentals, let's focus on programming JavaScript!",
|
||||
"We're going to work through Codecademy's famous interactive JavaScript course.",
|
||||
"This course will teach us some JavaScript fundamentals while guiding us through the process of building interesting web apps, all within Codecademy's learner-friendly environment!",
|
||||
"Go to <a href='http://www.codecademy.com/courses/getting-started-v2/0/1' target='_blank'>http://www.codecademy.com/courses/getting-started-v2/0/1</a> and complete the section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7130d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build Rock Paper Scissors",
|
||||
"difficulty": 0.25,
|
||||
"challengeSeed": "114604815",
|
||||
"description": [
|
||||
"Now we'll learn how JavaScript functions work, and use them to build a simple Rock Paper Scissors game.",
|
||||
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-6LzGd/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-6LzGd/0/1</a> and complete the section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7131d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn JavaScript For Loops",
|
||||
"difficulty": 0.26,
|
||||
"challengeSeed": "114614220",
|
||||
"description": [
|
||||
"Let's learn more about the loops that make virtually all programs possible - the \"For Loop\" and \"While Loop\". First, we'll learn the For Loop.",
|
||||
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1web</a> and complete both the both For and While loop section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7132d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn JavaScript While Loops",
|
||||
"difficulty": 0.27,
|
||||
"challengeSeed": "114612889",
|
||||
"description": [
|
||||
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1</a> and complete the section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7133d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Control Flow",
|
||||
"difficulty": 0.28,
|
||||
"challengeSeed": "114612888",
|
||||
"description": [
|
||||
"Much of human reasoning can be broken down into what we call Boolean Logic. Lucky for us, computers can think the same way! Let's learn how to instruct our computers by writing \"If Statements\" and \"Else Statements\".",
|
||||
"We'll also learn some advanced \"Control Flow\" principals, such as ways we can exit loops early.",
|
||||
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-qDwp0/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-qDwp0/0/1</a> and complete the section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7134d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build a Contact List",
|
||||
"difficulty": 0.29,
|
||||
"challengeSeed": "114612887",
|
||||
"description": [
|
||||
"Up to this point, you've been working mostly with strings and numbers. Now we're going to learn more complicated data structures, like \"Arrays\" and \"Objects\".",
|
||||
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-9Sgpi/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-9Sgpi/0/1</a> and complete the section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7135d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build an Address Book",
|
||||
"difficulty": 0.30,
|
||||
"challengeSeed": "114612885",
|
||||
"description": [
|
||||
"Let's learn more about objects.",
|
||||
"Go to <a href='http://www.codecademy.com/courses/spencer-sandbox/0/1' target='_blank'>http://www.codecademy.com/courses/spencer-sandbox/0/1</a> and complete the section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7136d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build a Cash Register",
|
||||
"difficulty": 0.31,
|
||||
"challengeSeed": "114612882",
|
||||
"description": [
|
||||
"In this final Codecademy section, we'll learn even more about JavaScript objects.",
|
||||
"Go to <a href='http://www.codecademy.com/courses/objects-ii/0/1' target='_blank'>http://www.codecademy.com/courses/objects-ii/0/1</a> and complete this section.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7118d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Discover Chrome DevTools",
|
||||
"difficulty": 0.32,
|
||||
"challengeSeed": "110752743",
|
||||
"description": [
|
||||
"It's time to learn the most powerful tool your browser has - the Development Tools!",
|
||||
"If you aren't already using Chrome, you'll want to download it here: <a href='http://www.google.com/chrome/' target='_blank'>http://www.google.com/chrome/</a>. While it's true that Firefox has a tool called Firebug that is very similar to Chrome's DevTools, we will use Chrome for this challenge.",
|
||||
"Note that this course, jointly produced by Google and Code School, is technologically impressive, but occasionally buggy. If you encounter a bug, just ignore it and keep going.",
|
||||
"Go to <a href='http://discover-devtools.codeschool.com' target='_blank'>http://discover-devtools.codeschool.com</a>.",
|
||||
"Complete \"Chapter 1: Getting Started & Basic DOM and Styles\".",
|
||||
"Complete \"Chapter 2: Advanced DOM and Styles\".",
|
||||
"Complete \"Chapter 3: Working with the Console\".",
|
||||
"Complete \"Chapter 4: Debugging JavaScript\".",
|
||||
"Complete \"Chapter 5: Improving Network Performance\".",
|
||||
"Complete \"Chapter 6: Improving Performance\".",
|
||||
"Complete \"Chapter 7: Memory Profiling\"."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7138d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Regular Expressions",
|
||||
"difficulty": 0.33,
|
||||
"challengeSeed": "112547802",
|
||||
"description": [
|
||||
"You can use a Regular Expression, or \"Regex\", to select specific types of characters in text.",
|
||||
"Check out <a href='http://www.regexr.com' target='_blank'>http://www.regexr.com</a>. It's a Regular Expression Sandbox for experimenting with Regular Expressions.",
|
||||
"Now go to <a href='http://www.regexone.com' target='_blank'>http://www.regexone.com</a>.",
|
||||
"Note that you can click \"continue\" to move on to the next step as soon as all the tasks have green check marks beside them. You can often do this just by using the wildcard \"dot\" operator, but try to use the techniques that each lesson recommends.",
|
||||
"Complete \"Complete the 15-lesson tutorial\"",
|
||||
"Complete \"Complete Practical Example 1: Matching a scientific or decimal number\"",
|
||||
"Complete \"Complete Practical Example 2: Matching phone numbers\"",
|
||||
"Complete \"Complete Practical Example 3: Matching emails\"",
|
||||
"Complete \"Complete Practical Example 4: Matching HTML\"",
|
||||
"Complete \"Complete Practical Example 5: Matching specific filenames\"",
|
||||
"Complete \"Complete Practical Example 6: Trimming whitespace from start and end of line\"",
|
||||
"Once you've completed these challenges, move on to our next Waypoint."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
1449
challenges/bootstrap.json
Normal file
1449
challenges/bootstrap.json
Normal file
File diff suppressed because it is too large
Load Diff
172
challenges/computer-science.json
Normal file
172
challenges/computer-science.json
Normal file
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"name": "Computer Science",
|
||||
"order": 0.005,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7123d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Basic Computer Science",
|
||||
"difficulty": 0.90,
|
||||
"challengeSeed": "114628241",
|
||||
"description": [
|
||||
"Stanford has an excellent free online Computer Science curriculum. This interactive course uses a modified version of JavaScript. It will cover a lot of concepts quickly.",
|
||||
"Note that Harvard also has an excellent introduction to computer science course called CS50, but it takes more than 100 hours to complete, and doesn't use JavaScript.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende Informática Básica",
|
||||
"descriptionEs": [
|
||||
"Stanford tiene en internet un excelente currículo gratuito sobre Informática. Este curso interactivo utiliza una versión modificada de JavaScript. En él se cubrirán varios conceptos rápidamente.",
|
||||
"Vale recalcar que Harvard también tiene un excelente curso de introducción a la informática llamado CS50, pero éste toma más de 100 horas para completar y no utiliza JavaScript.",
|
||||
"A pesar de que puedes llevarlo a tu propio ritmo, el curso de Stanford CS101 está separado en semanas. Cada uno de los desafíos apuntará a cada una de esas semanas.",
|
||||
"Ingresa a <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> y completa la primera semana del curso."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd8124d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Loops",
|
||||
"difficulty": 0.19,
|
||||
"challengeSeed": "114597348",
|
||||
"description": [
|
||||
"Now let's tackle week 2 of Stanford's Intro to Computer Science course.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende Loops",
|
||||
"descriptionEs": [
|
||||
"Ahora apuntaremos a completar la semana 2 del curso de Introducción a Informática de Stanford.",
|
||||
"Esto nos introducirá a los loops (bucles), una característica fundamental de todos los lenguajes de programación",
|
||||
"Ingresa a <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> y completa la segunda semana del curso."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd8125d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Computer Hardware",
|
||||
"difficulty": 0.20,
|
||||
"challengeSeed": "114597347",
|
||||
"description": [
|
||||
"Week 3 of Stanford's Intro to Computer Science covers computer hardware and explains Moore's law of exponential growth in the price-performance of processors.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende sobre el Hardware de las Computadoras",
|
||||
"descriptionEs": [
|
||||
"La semana 3 del curso de Introducción a Informática de Stanford cubrirá el hardware de las computadoras y explicará la ley de Moore sobre el crecimiento exponencial del precio-desempeño de los procesadores.",
|
||||
"Este desafío también te dará un entendimiento más amplio sobre como funcionan los bits y bytes.",
|
||||
"Ingresa a <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> y completa la tercera semana del curso."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd8126d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Computer Networking",
|
||||
"difficulty": 0.21,
|
||||
"challengeSeed": "114604811",
|
||||
"description": [
|
||||
"Now that you've learned about computer hardware, it's time to learn about the software that runs on top of it.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende sobre Redes de Computadoras",
|
||||
"descriptionEs": [
|
||||
"Ahora que ya hemos aprendido sobre hardware, es hora de aprender sobre el software que corre encima de él.",
|
||||
"Es importante recalcar que aprenderás sobre como funcionan las redes y TCP/IP - el protocolo que potencia el internet.",
|
||||
"Ingresa a <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> y completa la cuarta semana del curso."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd8127d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Boolean Logic",
|
||||
"difficulty": 0.22,
|
||||
"challengeSeed": "114604812",
|
||||
"description": [
|
||||
"Now we'll do some more table exercises and learn boolean logic.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende Lógica Booleana",
|
||||
"descriptionEs": [
|
||||
"Ahora trabajaremos más ejercicios de tablas y aprenderemos lógica booleana.",
|
||||
"También aprenderemos la diferencia entre datos digitales y datos análogos.",
|
||||
"Ingresa a <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> y completa la quinta semana del curso."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd8128d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Computer Security",
|
||||
"difficulty": 0.23,
|
||||
"challengeSeed": "114604813",
|
||||
"description": [
|
||||
"We're almost done with Stanford's Introduction to Computer Science course!",
|
||||
"We'll learn about one of the most important inventions of the 20th century - spreadsheets.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende sobre Seguridad Informática",
|
||||
"descriptionEs": [
|
||||
"¡Ya casi completamos el curso de Introducción a la Informática!",
|
||||
"Aprenderemos sobre una de la más importante invención del siglo 20 - la hoja de cálculo.",
|
||||
"También aprenderemos sobre la Seguridad Informática y sobre algunas de las vulnerabilidades más comúnes en los sistemas de software.",
|
||||
"Ingresa a <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> y completa la sexta y última semana del curso."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
333
challenges/full-stack-javascript.json
Normal file
333
challenges/full-stack-javascript.json
Normal file
@@ -0,0 +1,333 @@
|
||||
{
|
||||
"name": "Full Stack JavaScript",
|
||||
"order": 0.013,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7154d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Get Started with Angular.js",
|
||||
"difficulty": 0.34,
|
||||
"challengeSeed": "114684726",
|
||||
"description": [
|
||||
"Code School has a short, free Angular.js course. This will give us a quick tour of Angular.js's mechanics and features.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7155d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Apply Angular.js Directives",
|
||||
"difficulty": 0.35,
|
||||
"challengeSeed": "114684727",
|
||||
"description": [
|
||||
"Directives serve as markers in your HTML. When Angular.js compiles your HTML, it will can alter the behavior of DOM elements based on the directives you've used.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7156d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Power Forms with Angular.js",
|
||||
"difficulty": 0.36,
|
||||
"challengeSeed": "114684729",
|
||||
"description": [
|
||||
"One area where Angular.js really shines is its powerful web forms.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7157d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Customize Angular.js Directives",
|
||||
"difficulty": 0.37,
|
||||
"challengeSeed": "114685062",
|
||||
"description": [
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Create Angular.js Services",
|
||||
"difficulty": 0.38,
|
||||
"challengeSeed": "114685060",
|
||||
"description": [
|
||||
"Services are functions that you can use and reuse throughout your Angular.js app to get things done.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Manage Packages with NPM",
|
||||
"difficulty": 0.39,
|
||||
"challengeSeed": "126433450",
|
||||
"description": [
|
||||
"We'll build this Waypoint on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
|
||||
"If you don't already have Cloud 9 account, create one now at <a href='http://c9.io' target='_blank'>http://c9.io</a>.",
|
||||
"Open up <a href='http://c9.io' target='_blank'>http://c9.io</a> and sign in to your account.",
|
||||
"Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
|
||||
"Give your workspace a name.",
|
||||
"Choose Node.js in the selection area below the name field.",
|
||||
"Click the Create button.",
|
||||
"Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button.",
|
||||
"Click the \"Start Editing\" button.",
|
||||
"In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
|
||||
"Run this command: <code>npm install how-to-npm -g</code>",
|
||||
"Now start this tutorial by running <code>npm install how-to-npm@2.0.0</code>.",
|
||||
"Note that you can resize the c9.io's windows by dragging their borders.",
|
||||
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
||||
"Note that you can only add dist tags to the specific version numbers published in steps 8 and 10. If you receive a 403 or 404 error, run <code>how-to-npm</code> and try again.",
|
||||
"Also, if you experience a bug, and you think you understand the concept, you can skip a step by running <code>how-to-npm verify skip</code> in the terminal.",
|
||||
"Complete \"Install NPM\"",
|
||||
"Complete \"Dev Environment\"",
|
||||
"Complete \"Login\"",
|
||||
"Complete \"Start a Project\"",
|
||||
"Complete \"Install a Module\"",
|
||||
"Complete \"Listing Dependencies\"",
|
||||
"Complete \"NPM Test\"",
|
||||
"Complete \"Package Niceties\"",
|
||||
"Complete \"Publish\"",
|
||||
"Complete \"Version\"",
|
||||
"Complete \"Publish Again\"",
|
||||
"Complete \"Dist Tag\"",
|
||||
"Complete \"Dist Tag Removal\"",
|
||||
"Complete \"Outdated\"",
|
||||
"Complete \"Update\"",
|
||||
"Complete \"RM\"",
|
||||
"Complete \"Finale\""
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bdff",
|
||||
"name": "Waypoint: Start a Node.js Server",
|
||||
"difficulty": 0.40,
|
||||
"challengeSeed": "126411561",
|
||||
"description": [
|
||||
"We'll build this Waypoint on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud. We'll do the first 7 steps of Node School's LearnYouNode challenges.",
|
||||
"If you don't already have Cloud 9 account, create one now at <a href='http://c9.io' target='_blank'>http://c9.io</a>.",
|
||||
"Open up <a href='http://c9.io' target='_blank'>http://c9.io</a> and sign in to your account.",
|
||||
"Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
|
||||
"Give your workspace a name.",
|
||||
"Choose Node.js in the selection area below the name field.",
|
||||
"Click the Create button.",
|
||||
"Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button.",
|
||||
"Click the \"Start Editing\" button.",
|
||||
"In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
|
||||
"Run this command: <code>sudo npm install learnyounode -g</code>",
|
||||
"Now start this tutorial by running <code>learnyounode</code>",
|
||||
"Note that you can resize the c9.io's windows by dragging their borders.",
|
||||
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
||||
"Complete \"Hello World\"",
|
||||
"Complete \"Baby Steps\"",
|
||||
"Complete \"My First I/O\"",
|
||||
"Complete \"My First Async I/O\"",
|
||||
"Complete \"Filtered LS\"",
|
||||
"Complete \"Make it Modular\"",
|
||||
"Complete \"HTTP Client\"",
|
||||
"Once you've completed these first 7 challenges, move on to our next waypoint."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bdfe",
|
||||
"name": "Waypoint: Continue working with Node.js Servers",
|
||||
"difficulty": 0.41,
|
||||
"challengeSeed": "128836506",
|
||||
"description": [
|
||||
"Let's continue the LearnYouNode Node School challenge. For this Waypoint, we'll do challenges 8 through 10.",
|
||||
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
||||
"Return to the c9.io workspace you created Now start this tutorial by running <code>learnyounode</code>",
|
||||
"Complete \"HTTP Collect\"",
|
||||
"Complete \"Juggling Async\"",
|
||||
"Complete \"Time Server\"",
|
||||
"Once you've completed these 3 challenges, move on to our next waypoint."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bdfd",
|
||||
"name": "Waypoint: Finish working with Node.js Servers",
|
||||
"difficulty": 0.42,
|
||||
"challengeSeed": "128836507",
|
||||
"description": [
|
||||
"Let's continue the LearnYouNode Node School challenge. For this Waypoint, we'll do challenges 11 through 13.",
|
||||
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
||||
"Return to the c9.io workspace you created for the previous LearnYouNode challenges and start the tutorial by running <code>learnyounode</code>",
|
||||
"Complete \"HTTP File Server\"",
|
||||
"Complete \"HTTP Uppercaserer\"",
|
||||
"Complete \"HTTP JSON API Server\"",
|
||||
"Once you've completed these final 3 challenges, move on to our next waypoint."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Build Web Apps with Express.js",
|
||||
"difficulty": 0.43,
|
||||
"challengeSeed": "126411559",
|
||||
"description": [
|
||||
"We'll build this Waypoint on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
|
||||
"If you don't already have Cloud 9 account, create one now at <a href='http://c9.io' target='_blank'>http://c9.io</a>.",
|
||||
"Open up <a href='http://c9.io' target='_blank'>http://c9.io</a> and sign in to your account.",
|
||||
"Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
|
||||
"Give your workspace a name.",
|
||||
"Choose Node.js in the selection area below the name field.",
|
||||
"Click the Create button.",
|
||||
"Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button.",
|
||||
"Click the \"Start Editing\" button.",
|
||||
"In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
|
||||
"Run this command: <code>git clone http://github.com/reddock/fcc_express && chmod 744 fcc_express/setup.sh && fcc_express/setup.sh && source ~/.profile</code>",
|
||||
"Now start this tutorial by running <code>expressworks</code>",
|
||||
"Note that you can resize the c9.io's windows by dragging their borders.",
|
||||
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
||||
"Complete \"Hello World\"",
|
||||
"Complete \"Jade\"",
|
||||
"Complete \"Good Old Form\"",
|
||||
"Complete \"Stylish CSS\"",
|
||||
"Complete \"Session and Cookie\"",
|
||||
"Complete \"JSON Me\"",
|
||||
"Once you've completed these challenges, move on to our next waypoint."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7140d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Manage Source Code with Git",
|
||||
"difficulty": 0.44,
|
||||
"challengeSeed": "114635309",
|
||||
"description": [
|
||||
"Version Control Systems like Git ensure that, no matter how you experiment with your code, you can always roll back your app to a stable previous state.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
32
challenges/functional-programming.json
Normal file
32
challenges/functional-programming.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Functional Programming",
|
||||
"order": 0.010,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7129d8c441eddfbeb5bddf",
|
||||
"name": "Waypoint: Practice Functional Programming",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": "129169463",
|
||||
"description": [
|
||||
"Functional programming holds the key to unlocking JavaScript's powerful asynchronous features.",
|
||||
"Jafar Husain's 42-step interactive Functional Programming course will familiarize you with the various ways you can recombine these functions.",
|
||||
"Functional programming in JavaScript involves using five key functions: \"map\", \"reduce\", \"filter\", \"concatAll\", and \"zip\".",
|
||||
"Click here to go to the challenge: <a href='http://jhusain.github.io/learnrx/' target='_blank'>http://jhusain.github.io/learnrx/</a>.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
296
challenges/get-set-for-free-code-camp.json
Normal file
296
challenges/get-set-for-free-code-camp.json
Normal file
@@ -0,0 +1,296 @@
|
||||
{
|
||||
"name": "Get Set for Free Code Camp",
|
||||
"order": 0.001,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7124d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn how Free Code Camp Works",
|
||||
"difficulty": 0.001,
|
||||
"challengeSeed": "125407438",
|
||||
"description": [
|
||||
"Watch this 1-minute video, or simply read this summary:",
|
||||
"Welcome to Free Code Camp. We're a community of busy people learning to code by building projects for nonprofits.",
|
||||
"We built this community because learning to code is hard. But anyone who can stay motivated can learn to code. And to stay motivated, you just need to: <ol><li>make friends with people who code</li><li>code a little every day</li></ol>",
|
||||
"All our challenges are <ol><li>free</li><li>self-paced</li><li>browser-based</li></ol>",
|
||||
"We'll spend <ol><li>200 hours learning tools like HTML, CSS, JavaScript, Node.js and databases</li><li>600 hours building practice projects</li><li>800 hours building full stack solutions for nonprofits</li></ol>",
|
||||
"By the end, we'll <ol><li>be good at coding</li><li>have the portfolio of apps with happy users to prove it</li></ol>",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende sobre como funciona Free Code Camp",
|
||||
"descriptionEs": [
|
||||
"Mira el video de 1 minuto o simplemente lee este resumen:",
|
||||
"Bienvenido a Free Code Camp. Somos una comunidad de personas ocupadas tratando de aprender a programar construyendo proyectos para empresas sin fines de lucro.",
|
||||
"Hemos construido esta comunidad porque aprender a programar es dificil; pero cualquiera que se pueda mantener motivado puede aprender a programar. Para mantenerte motivado, solo necesitas: <ol><li>hacerte amigo o amiga de personas que sepan programar</li><li>programar un poco cada día</li></ol>",
|
||||
"Todos nuestros desafíos son <ol><li>gratuitos</li><li>manejados a tu propio ritmo</li><li>basados en tu navegador</li></ol>",
|
||||
"Estaremos trabajando <ol><li>200 horas aprendiendo a utilizar herramientas como HTML, CSS, JavaScript, Node.js y bases de datos</li><li>600 horas construyendo proyectos prácticos</li><li>800 horas construyendo soluciones full stack para empresas sin fines de lucro</li></ol>",
|
||||
"Al finalizar <ol><li>seremos buenos en programación</li><li>tendremos un portafolio con apps con usuarios contentos que puedan abogar por nuestro trabajo</li></ol>",
|
||||
"Una vez que completes el Free Code Camp, serás capaz de obtener un trabajo como desarrollador. Hay muchas posiciones de trabajo que están en búsqueda de programadores calificados.",
|
||||
"Ahora es el momento de ingresar a nuestra sala de chat. Dale click al botón de \"I've completed this challenge\" para continuar con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Join Our Chat Room",
|
||||
"difficulty": 0.002,
|
||||
"challengeSeed": "124555254",
|
||||
"description": [
|
||||
"Now we're going to join the Free Code Camp chat room. You can come here any time of day to hang out, ask questions, or find another camper to pair program with.",
|
||||
"Make sure your Free Code Camp account includes your email address. Please note that the email address you use will be invisible to the public, but Slack will make it visible to other campers in our slack chat rooms. You can do this here: <a href='/account' target='_blank'>http://freecodecamp.com/account</a>.",
|
||||
"Click this link, which will email you can invite to Free Code Camp's Slack chat rooms: <a href='/api/slack' target='_blank'>http://freecodecamp.com/api/slack</a>.",
|
||||
"Now check your email and click the link in the email from Slack.",
|
||||
"Complete the sign up process, then update your biographical information and upload an image. A picture of your face works best. This is how people will see you in our chat rooms, so put your best foot forward.",
|
||||
"Now enter the General chat room and introduce yourself to our chat room by typing: \"Hello world!\".",
|
||||
"Tell your fellow campers how you found Free Code Camp. Also tell us why you want to learn to code.",
|
||||
"Keep the chat room open while you work through the other challenges. That way you ask for help if you get stuck on a challenge. You can also socialize when you feel like taking a break.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Únete a Nuestra Sala de Chat",
|
||||
"descriptionEs": [
|
||||
"Ahora vamos a unirnos a la sala de chat de Free Code Camp. Puedes ingresar en cualquier momento para pasar el rato, hacer preguntas o para encontrar algún otro camper para programar en pares.",
|
||||
"Asegurate de que tu cuenta de Free Code Camp incluya tu dirección de correo electrónico. Vale recalcar que si bien tu dirección de correo electrónico será invisible para el público, Slack lo hará visible para otros campers en las salas de chat. Puedes ingresar por aquí: <a href='/account' target='_blank'>http://freecodecamp.com/account</a>.",
|
||||
"Dale click a este link, el cual te enviará una invitación a las salas de chat de Free Code Camp: <a href='/api/slack' target='_blank'>http://freecodecamp.com/api/slack</a>.",
|
||||
"Ahora revisa tu buzón de correo y dale click al link del correo electrónico que has recibido de Slack.",
|
||||
"Completa el proceso de registro, actualiza tu información biográfica y sube una imagen. Una foto de tu cara funciona mejor. Esta es la manera como las personas te verán en las salas de chat, asegurate de mostrar tu mejor sonrisa.",
|
||||
"Ahora ingresa al chat #General (Inglés) o #Espanol (Español) e introdúcete escribiendo: \"Hola mundo!\".",
|
||||
"Comentale a otros campers como es que encontraste Free Code Camp. También hablanos sobre las razones por las cuales decidiste aprender a programar.",
|
||||
"Mantén la sala de chat abierta mientras estás trabajando otros desafíos. De esa manera podrás pedir ayuda en caso te quedes atascado en algún de ellos. También puedes socializar cuando sientas que necesitas un descanso.",
|
||||
"Puedes acceder a la sala de chat dándole click al botón de \"Chat\" en la parte superior derecha de la página.",
|
||||
"Para mantener a nuestra comunidad como un lugar de aprendizaje positivo y amigable, por favor lee y sigue nuestro Código de Conducta: <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>"
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bdff",
|
||||
"name": "Waypoint: Preview our Challenge Map",
|
||||
"difficulty": 0.003,
|
||||
"challengeSeed": "125407437",
|
||||
"description": [
|
||||
"Before you start learning how to code, we'd like to introduce you to a few things.",
|
||||
"Let's look at our Challenge Map. Click on the \"Map\" button in the upper right hand corner. This map shows all the challenges that will teach you how to code.",
|
||||
"You should complete all these challenges in order.",
|
||||
"Once you finish these Waypoint challenges, you'll move on to Bonfires (algorithm practice), then Ziplines (front end development practice) and finally Basejumps (full stack development practice). After that, you'll start building projects for nonprofits.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Revisa nuestro Mapa de Desafíos",
|
||||
"descriptionEs": [
|
||||
"Antes de comenzar a aprender a programar, nos gustaría mostrarte algunas cosas.",
|
||||
"Revisemos el Mapa de Desafíos. Dale click al botón de \"Map\" en la parte superior derecha. Este mapa muestra todos los desafíos que te enseñarán a programar.",
|
||||
"Deberías completar todos estos desafíos en orden.",
|
||||
"Una vez que termines con los Waypoints, seguiremos con los Bonfires (práctica de algoritmos), luego Ziplines (práctica de desarrollo front end) y para terminar los Basejumps (práctica de desarrollo full stack). Después de eso, empezarás a desarrollar proyectos para empresas sin fines de lúcro.",
|
||||
"El mapa de desafíos es solamente de referencia. Puedes también presionar el botón de \"Learn\", el cual te llevará directamente al siguiente desafío.",
|
||||
"Para terminar, ten en cuenta que nuestra currícula open-source es un trabajo en progreso. Nuestra comunidad de voluntarios está mejorandola constantemente. Si crees que te has topado con algún bug, error ortográfico o algo que parezca confuso, haznos el favor de abrir un ticket a través de Github: <a href='https://github.com/FreeCodeCamp/freecodecamp/issues'>https://github.com/FreeCodeCamp/freecodecamp/issues</a>."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Browse our Field Guide",
|
||||
"difficulty": 0.004,
|
||||
"challengeSeed": "125407435",
|
||||
"description": [
|
||||
"Free Code Camp has an up-to-date field guide that will answer your many questions.",
|
||||
"Click the \"Field Guide\" button in the upper right hand corner.",
|
||||
"You can browse the field guide at your convenience. Most of its articles take less than 1 minute to read.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Revisa nuestro Field Guide",
|
||||
"descriptionEs": [
|
||||
"Free Code Camp tiene un field guide actualizado que respondera tus preguntas.",
|
||||
"Dale click al botón \"Field Guide\" en la parte superior derecha.",
|
||||
"Puedes navegar el Field Guide cuando veas conveniente. La mayoría de los artículos los puedes leer en menos de 1 minuto .",
|
||||
"Cuando le des click al botón de Field Guide, siempre te regresará al último artículo que estuviste leyendo.",
|
||||
"Lee algunos de nuestros artículos, luego continúa con tu siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bd2f",
|
||||
"name": "Waypoint: Customize your Portfolio Page",
|
||||
"difficulty": 0.005,
|
||||
"challengeSeed": "125407433",
|
||||
"description": [
|
||||
"You and all your fellow campers have portfolio pages.",
|
||||
"To see your portfolio page, click your picture in the upper right hand corner.",
|
||||
"Your portfolio page will automatically show off your progress through Free Code Camp.",
|
||||
"Click the \"Update my portfolio page or manage my account\" button",
|
||||
"You can link to your GitHub, Twitter and LinkedIn accounts. If you've already built some websites, you can link to them here as well.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Personaliza tu página de Portafolio",
|
||||
"descriptionEs": [
|
||||
"Tú y tus otros amigos campers tienen sus propias páginas de portafolio.",
|
||||
"Para visualizar tu página de portafolio, dale click a tu foto en la parte superior derecha.",
|
||||
"Tu página de portafolio mostrará automaticamente tu progreso en Free Code Camp",
|
||||
"Dale click al botón de \"Update my portfolio page or manage my account\"",
|
||||
"Puedes enlazarte con tus cuentas de Github, Twitter y LinkedIn. Si ya has creado alguna página web, puedes enlazarla aquí también.",
|
||||
"Asegurate de darle click al botón de \"Update my Bio\" o \"Update my Social Links\" para agregar esta nueva información a tu portafolio.",
|
||||
"Una vez que estés satisfecho con tu página de portafolio, puedes seguir con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7126d8c441eddfaeb5bd3f",
|
||||
"name": "Waypoint: Try Camper News",
|
||||
"difficulty": 0.006,
|
||||
"challengeSeed": "124553410",
|
||||
"description": [
|
||||
"Camper News is the best place for our campers to share and discuss helpful links.",
|
||||
"Click \"News\" in the upper right hand corner.",
|
||||
"You'll see a variety of links that have been submitted. Click on the \"Discuss\" button under one of them.",
|
||||
"You can upvote links. This will push the link up the rankings of hot links.",
|
||||
"You an also comment on a link. If someone responds to your comment, you'll get an email notification so you can come back and respond to them.",
|
||||
"You can also submit links. You can modify the link's headline and also leave an initial comment about the link.",
|
||||
"You can view the portfolio pages of any camper who has posted links or comments on Camper News. Just click on their photo.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Prueba las Noticias de Campers",
|
||||
"descriptionEs": [
|
||||
"Noticias de Campers es el mejor lugar para que nuestros campers puedan discutir y compartir links útiles.",
|
||||
"Dale click a \"News\" en la parte superior derecha.",
|
||||
"Verás una gran variedad de links que han sido enviados. Dale click al botón de \"Discuss\" debajo de uno de ellos.",
|
||||
"Puedes votar por links que te gusten. Esto hará que el ranking de tu link suba.",
|
||||
"Puedes también dejar un comentario a un link. Si alguien responde a tu comentario recibirás un correo electrónico de notificación para que puedas regresar y responderlo.",
|
||||
"También puedes enviar tus propios links. Puedes escoger el título del link, asi como también dejar un comentario inicial sobre él.",
|
||||
"Puedes ver las páginas de portafolio de cualquier camper que ha enviado links o comentarios en las Noticias de Campers. Solo tienes que darle click a su fotografía.",
|
||||
"Cuando envies un link, recibirás un punto. También obtendrás un punto cada vez que otra persona vote por tu link.",
|
||||
"Ahora que has aprendido a utilizar las Noticias de Campers, continuaremos con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7126d8c441eddfaeb5bd3e",
|
||||
"name": "Waypoint: Meet Other Campers in your City",
|
||||
"difficulty": 0.007,
|
||||
"challengeSeed": "127358841",
|
||||
"description": [
|
||||
"One of the best ways to stay motivated when learning to code is to hang out with other campers.",
|
||||
"Slack and Camper News are great ways to communicate with other campers, but there's no substitute for meeting people in-person.",
|
||||
"The easiest way to meet other campers in your city is to join your city's Facebook Group. Click <a href='/field-guide/how-can-i-find-other-free-code-camp-campers-in-my-city' target='_blank'>here</a> to view our growing list of local groups.",
|
||||
"Click the link to your city, then, once Facebook loads, click \"Join group\".",
|
||||
"Our local groups are new, so if you don't see your city on this list, you should follow the directions to create a Facebook group for your city.",
|
||||
"If you don't have a Facebook account, we strongly recommend you create one, even if it's just for the purpose of coordinating with campers in your city through this group.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Encuentrate con otros Campers en tu Ciudad",
|
||||
"descriptionEs": [
|
||||
"Una de las mejores maneras de mantenerte motivado cuando estás aprendiendo a programar es pasar el rato con otros campers.",
|
||||
"Slack y Noticias de Campers son una muy buena forma de comunicarte con otros campers, pero no hay ningún substituto para conocerlos en persona.",
|
||||
"La forma más fácil de encontrarte con otros campers en tu ciudad es unirte al grupo de Facebook de tu ciudad o país. Dale click a <a href='/field-guide/how-can-i-find-other-free-code-camp-campers-in-my-city' target='_blank'>here</a> para ver la lista de grupos locales.",
|
||||
"Dale click al link de tu ciudad o país y una vez que Facebook cargue, dale click a \"Join group\".",
|
||||
"Nuestros grupos locales son pocos, asi que en caso no veas tu ciudad o país en la lista, solamente sigue las instrucciones para crear un grupo de Facebook para ello.",
|
||||
"Si no tienes una cuenta de Facebook, te recomendamos que crees una, asi sea solamente con el proposito de coordinar con otros campers en tu ciudad a través del grupo",
|
||||
"Nuestros grupos te dan la potestad de crear eventos y coordinarlos, solamente asegurate de compartir las fotos del evento una vez terminado.",
|
||||
"En caso seas el anfitrión de un grupo de estudio, estes programando en pares en una biblioteca local o piensen en ir a un hackathon de fin de semana, tu grupo local te ayudará a hacerlo."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7137d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Get Help the Hacker Way with RSAP",
|
||||
"difficulty": 0.008,
|
||||
"challengeSeed": "125407432",
|
||||
"description": [
|
||||
"Let's cover one last thing before you start working through our lessons: how to get help.",
|
||||
"Any time you get stuck or don't know what to do next, follow this simple algorithm (procedure): RSAP (Read, Search, Ask, Post).",
|
||||
"First, R - Read the documentation or error message. A key skill that good coders have is the ability to interpret and then follow instructions.",
|
||||
"Next, S - Search Google. Good Google queries take a lot of practice. When you search Google, you usually want to include the language or framework you're using. You also want to limit the results to a recent period.",
|
||||
"Then, if you still haven't found an answer to your question, A - Ask your friends. If you have trouble, you can ask your fellow campers. We have a special chat room specifically for getting help with tools you learn through these Free Code Camp Challenges. Go to <a href='https://freecodecamp.slack.com/messages/help/' target='_blank'>https://freecodecamp.slack.com/messages/help/</a>. Keep this chat open while you work on the remaining challenges.",
|
||||
"Finally, P - Post on Stack Overflow. Before you attempt to do this, read Stack Overflow's guide to asking good questions: <a href='http://stackoverflow.com/help/how-to-ask'>http://stackoverflow.com/help/how-to-ask</a>.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Obtén ayuda del modo Hacker con RSAP",
|
||||
"descriptionEs": [
|
||||
"Cubramos un último punto antes que empieces a trabajar en los cursos: como obtener ayuda.",
|
||||
"Cualquier momento en el que te atasques o no sepas que hacer, sigue este simple algoritmo (procedimiento): RSAP (Read, Search, Ask, Post). Que en español vendría a ser Lee, Busca, Pregunta, Publica.",
|
||||
"Primero, Lee - Lee la documentación o el mensaje de error. El punto fuerte de un buen programador es la habilidad de interpretar y seguir instrucciones.",
|
||||
"Luego, Busca - Busca en Google. Buenas búsquedas o queries requieren bastante práctica. Cuando búsques en Google, idealmente tienes que incluir el lenguaje o framework que estés usando. También tendrás que limitar los resultados de búsqueda a un periodo reciente.",
|
||||
"Ahora, en caso no hayas encontrado la respuesta a tu pregunta, Pregunta - Pregunta a tus amigos. En caso estes en problemas, puedes preguntar a otros campers. Tenemos una sala de chat especificamente para obtener ayuda sobre las herramientas que utilizamos en los desafíos de Free Code Camp. Ingresa a <a href='https://freecodecamp.slack.com/messages/help/' target='_blank'>https://freecodecamp.slack.com/messages/help/</a>. Mantén este chat abierto mientras trabajas en los desafíos subsiguientes.",
|
||||
"Finalmente, Publica - Publica tu pregunta en Stack Overflow. Antes de hacer esto lee la guía de Stack Overflow para publicar buenas preguntas: <a href='http://stackoverflow.com/help/how-to-ask'>http://stackoverflow.com/help/how-to-ask</a>. Tendrás que hacerlo en inglés, en caso no sepas como, pide que te ayuden a traducir tu pregunta en el canal #espanol de Slack.",
|
||||
"Aquí está nuestra guia detallada en como obtener ayuda: <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>.",
|
||||
"Ahora que tienes en claro el procedimiento a seguir cuando necesites ayuda. ¡Empecémos a programar! Continua con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
136
challenges/intermediate-bonfires.json
Normal file
136
challenges/intermediate-bonfires.json
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"name": "Intermediate Algorithm Scripting",
|
||||
"order": 0.009,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "a2f1d72d9b908d0bd72bb9f6",
|
||||
"name": "Bonfire: Make a Person",
|
||||
"difficulty": "3.01",
|
||||
"description": [
|
||||
"Fill in the object constructor with the methods specified in the tests.",
|
||||
"Those methods are getFirstName(), getLastName(), getFullName(), setFirstName(first), setLastName(last), and setFullName(firstAndLast).",
|
||||
"All functions that take an argument have an arity of 1, and the argument will be a string.",
|
||||
"These methods must be the only available means for interacting with the object.",
|
||||
"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": [
|
||||
"var Person = function(firstAndLast) {",
|
||||
" return firstAndLast;",
|
||||
"};",
|
||||
"",
|
||||
"var bob = new Person('Bob Ross');",
|
||||
"bob.getFullName();"
|
||||
],
|
||||
"tests": [
|
||||
"expect(Object.keys(bob).length).to.eql(6);",
|
||||
"expect(bob instanceof Person).to.be.true;",
|
||||
"expect(bob.firstName).to.be.undefined();",
|
||||
"expect(bob.lastName).to.be.undefined();",
|
||||
"expect(bob.getFirstName()).to.eql('Bob');",
|
||||
"expect(bob.getLastName()).to.eql('Ross');",
|
||||
"expect(bob.getFullName()).to.eql('Bob Ross');",
|
||||
"bob.setFirstName('Happy');",
|
||||
"expect(bob.getFirstName()).to.eql('Happy');",
|
||||
"bob.setLastName('Trees');",
|
||||
"expect(bob.getLastName()).to.eql('Trees');",
|
||||
"bob.setFullName('George Carlin');",
|
||||
"expect(bob.getFullName()).to.eql('George Carlin');",
|
||||
"bob.setFullName('Bob Ross');"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Closures",
|
||||
"Details of the Object Model"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "af4afb223120f7348cdfc9fd",
|
||||
"name": "Bonfire: Map the Debris",
|
||||
"difficulty": "3.02",
|
||||
"description": [
|
||||
"Return a new array that transforms the element's average altitude into their orbital periods.",
|
||||
"The array will contain objects in the format <code>{name: 'name', avgAlt: avgAlt}</code>.",
|
||||
"You can read about orbital periods <a href=\"http://en.wikipedia.org/wiki/Orbital_period\">on wikipedia</a>.",
|
||||
"The values should be rounded to the nearest whole number. The body being orbited is Earth.",
|
||||
"The radius of the earth is 6367.4447 kilometers, and the GM value of earth is 398600.4418",
|
||||
"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 orbitalPeriod(arr) {",
|
||||
" var GM = 398600.4418;",
|
||||
" var earthRadius = 6367.4447;",
|
||||
" return arr;",
|
||||
"}",
|
||||
"",
|
||||
"orbitalPeriod([{name : \"sputkin\", avgAlt : 35873.5553}]);"
|
||||
],
|
||||
"tests": [
|
||||
"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,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "a3f503de51cfab748ff001aa",
|
||||
"name": "Bonfire: Pairwise",
|
||||
"difficulty": "3.03",
|
||||
"description": [
|
||||
"Return the sum of all indices of elements of 'arr' that can be paired with one other element to form a sum that equals the value in the second argument 'arg'. If multiple sums are possible, return the smallest sum. Once an element has been used, it cannot be reused to pair with another.",
|
||||
"For example, pairwise([1, 4, 2, 3, 0, 5], 7) should return 11 because 4, 2, 3 and 5 can be paired with each other to equal 7.",
|
||||
"pairwise([1, 3, 2, 4], 4) would only equal 1, because only the first two elements can be paired to equal 4, and the first element has an index of 0!",
|
||||
"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 pairwise(arr, arg) {",
|
||||
" return arg;",
|
||||
"}",
|
||||
"",
|
||||
"pairwise([1,4,2,3,0,5], 7);"
|
||||
],
|
||||
"tests": [
|
||||
"expect(pairwise([1, 4, 2, 3, 0, 5], 7)).to.equal(11);",
|
||||
"expect(pairwise([1, 3, 2, 4], 4)).to.equal(1);",
|
||||
"expect(pairwise([1,1,1], 2)).to.equal(1);",
|
||||
"expect(pairwise([0, 0, 0, 0, 1, 1], 1)).to.equal(10);",
|
||||
"expect(pairwise([], 100)).to.equal(0);"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Array.reduce()"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
124
challenges/jquery-ajax-and-json.json
Normal file
124
challenges/jquery-ajax-and-json.json
Normal file
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"name": "jQuery",
|
||||
"order": 0.004,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7112d8c441eddfaeb5bded",
|
||||
"name": "Waypoint: Get Started with jQuery",
|
||||
"difficulty": 0.13,
|
||||
"challengeSeed": "125671865",
|
||||
"description": [
|
||||
"jQuery is a powerful library built in Javascript for manipulating HTML elements.",
|
||||
"It's a lot easier to use than Javascript itself, so we'll learn it first.",
|
||||
"It's also extremely popular with employers, so we're going to learn it well.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7113d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Write Functions with jQuery",
|
||||
"difficulty": 0.14,
|
||||
"challengeSeed": "125658029",
|
||||
"description": [
|
||||
"Now we're ready to write your first jQuery functions.",
|
||||
"Functions are little sub-programs. You can call a function and ask it to do something. Then it will return an answer.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7114d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Harness Dynamic HTML",
|
||||
"difficulty": 0.15,
|
||||
"challengeSeed": "125658028",
|
||||
"description": [
|
||||
"Did you know that you can create HTML elements using jQuery?",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7115d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Listen for jQuery Events",
|
||||
"difficulty": 0.16,
|
||||
"challengeSeed": "125658027",
|
||||
"description": [
|
||||
"jQuery can listen for events, such as clicking a button, and respond to them.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7116d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Trigger jQuery Effects",
|
||||
"difficulty": 0.17,
|
||||
"challengeSeed": "125658025",
|
||||
"description": [
|
||||
"We can use jQuery to do all kinds of visual effects and transitions.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
236
challenges/object-oriented-javascript.json
Normal file
236
challenges/object-oriented-javascript.json
Normal file
@@ -0,0 +1,236 @@
|
||||
{
|
||||
"name": "Object Oriented JavaScript",
|
||||
"order" : 0.008,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7129d8c441eddfaeb5bddf",
|
||||
"name": "Waypoint: Scope Your Variables",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": "128836683",
|
||||
"description": [
|
||||
"Objects will allow you to build applications more efficiently by using small, reusable blocks of code.",
|
||||
"This course on Udacity will help you learn Object-Oriented Programming in JavaScript.",
|
||||
"First, we'll learn how JavaScript works in terms of scopes. You'll learn the difference between a \"Lexical Scope\" and an \"Execution Context\".",
|
||||
"This theoretical foundation is useful for understanding when a variable can be accessed and when it can't.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"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,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7131d8c441eddfaeb5bdbf",
|
||||
"name": "Waypoint: Reference your Current Object with This",
|
||||
"difficulty": 0.03,
|
||||
"challengeSeed": "128836508",
|
||||
"description": [
|
||||
"In this section, you'll learn how you can use the keyword <code>this</code> to dynamically point to your current object.",
|
||||
"For example, if we were inside the function <code>camper.completeCourse()</code>, <code>this</code> would refer to the specific camper upon which we were running the function.",
|
||||
"Note that this section poses several trick questions that were designed to make you think. Don't get hung up on them, just keep moving forward.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2593668699/m-2780408563' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2593668699/m-2780408563</a> and start the course.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7132d8c441eddfaeb5bdaf",
|
||||
"name": "Waypoint: Traverse the Prototype Chain",
|
||||
"difficulty": 0.04,
|
||||
"challengeSeed": "128836684",
|
||||
"description": [
|
||||
"Next we'll learn about the multiple ways you can create a copy of an object.",
|
||||
"We'll also learn how an object's missing attributes can traverse the \"prototype chain\".",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2593668700/m-2616738615' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2593668700/m-2616738615</a> and start the course.",
|
||||
"Once you've completed this section on prototype chain traversal, mark this Waypoint complete and move on to the next one."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7133d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Reuse Code with Decorators",
|
||||
"difficulty": 0.05,
|
||||
"challengeSeed": "128836681",
|
||||
"description": [
|
||||
"In this section, we'll learn about the \"Decorator Pattern\".",
|
||||
"The Decorator Pattern will help you \"decorate\" an existing object with additional attributes. This pattern helps you reuse code, reducing the total amount of code you'll need to write and maintain.",
|
||||
"It's a convenient way to add functionality to objects without changing their underlying structure.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2794468536/m-2697628561' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2794468536/m-2697628561</a> and start the course.",
|
||||
"Once you've completed this section of decorators, mark this Waypoint complete and move on to the next one."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7134d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Build Objects with Functional Classes",
|
||||
"difficulty": 0.06,
|
||||
"challengeSeed": "128836503",
|
||||
"description": [
|
||||
"Now we'll go over the simplest way to implement a JavaScript class.",
|
||||
"A class is a set of functions that you can use to easily produce similar objects.",
|
||||
"You may have heard JavaScript doesn't have classes. While this is technically true, don't let this fact prevent you from learning the important concepts in this section.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2794468537/m-2961989110' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2794468537/m-2961989110</a> and start the course.",
|
||||
"Once you've completed this section of functional classes, mark this Waypoint complete and move on to the next one."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7135d8c441eddfaeb5bd2f",
|
||||
"name": "Waypoint: Build Objects with Prototypal Classes",
|
||||
"difficulty": 0.07,
|
||||
"challengeSeed": "128836505",
|
||||
"description": [
|
||||
"Now we'll learn how one object can be prototyped off of another object.",
|
||||
"Objects will delegate their \"failed lookups\" on up through the \"prototype chain\".",
|
||||
"This means that when you create a second object based off another object, then try to access an attribute that the second object doesn't have, JavaScript will \"fall through\" to the original object to see whether it has that attribute.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2794468538/m-3034538557' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2794468538/m-3034538557</a> and start the course.",
|
||||
"Once you've completed this section of prototypal classes, mark this Waypoint complete and move on to the next one."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7136d8c441eddfaeb5bd3f",
|
||||
"name": "Waypoint: Understand Pseudoclassical Patterns",
|
||||
"difficulty": 0.08,
|
||||
"challengeSeed": "128836689",
|
||||
"description": [
|
||||
"JavaScript doesn't have the traditional \"classes\" that lower-level languages like C++ and Java have.",
|
||||
"Instead, JavaScript does some tricks to allow you to write code as though it had these traditional classes. We call these \"pseudo-classes\".",
|
||||
"In this section, we'll learn how to build these pseudo-classes. We'll also learn some tricks for figuring out where these objects originally came from.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2794468539/e-2783098540/m-2695768694' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2794468539/e-2783098540/m-2695768694</a> and start the course.",
|
||||
"Once you've completed this section pseudoclasses, mark this Waypoint complete and move on to the next one."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7136d8c441eddfaeb5bd4f",
|
||||
"name": "Waypoint: Subclass one Object to Another",
|
||||
"difficulty": 0.09,
|
||||
"challengeSeed": "128836686",
|
||||
"description": [
|
||||
"Now we know the three ways that we can create objects. Through: <ol><li>functions</li><li>prototyping</li><li>pseudo classing</li></ol>",
|
||||
"Let's learn how to \"subclass\" one object to another. This will give our new object the attributes of the original object. It will allow us to make further modifications to the new object without affecting the original object.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2794468540/m-2785128536' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2794468540/m-2785128536</a> and start the course.",
|
||||
"Once you've completed this section on subclassing, mark this Waypoint complete and move on to the next one."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7136d8c441eddfaeb5bd5f",
|
||||
"name": "Waypoint: Use Pseudoclassical Subclasses",
|
||||
"difficulty": 0.10,
|
||||
"challengeSeed": "128836937",
|
||||
"description": [
|
||||
"This final section will teach us how to create subclasses from pseudo classes.",
|
||||
"You can save your progress by creating a free Udacity account, but note that it's also possible to complete this entire course without an account by following the links we provide.",
|
||||
"Go to <a href='https://www.udacity.com/course/viewer#!/c-ud015/l-2794468541/e-2693158566/m-2688408703' target='_blank'>https://www.udacity.com/course/viewer#!/c-ud015/l-2794468541/e-2693158566/m-2688408703</a> and start the course.",
|
||||
"Once you've completed this final section on pseudoclassical subclassing, mark this Waypoint complete and move on."
|
||||
],
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
295
challenges/ziplines.json
Normal file
295
challenges/ziplines.json
Normal file
@@ -0,0 +1,295 @@
|
||||
{
|
||||
"name": "Front End Development Projects",
|
||||
"order": 0.012,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7158d8c442eddfbeb5bd1f",
|
||||
"name": "Waypoint: Get Set for Ziplines",
|
||||
"difficulty": 1.00,
|
||||
"challengeSeed": "125658022",
|
||||
"description": [
|
||||
"Now you're ready to start our Zipline challenges. These front-end development challenges will give you many opportunities to apply the HTML, CSS, jQuery and JavaScript you've learned to build static (database-less) applications.",
|
||||
"For many of these challenges, you will be using JSON data from external API endpoints, such as Twitch.tv and Twitter. Note that you don't need to have a database to use these data.",
|
||||
"The easiest way to manipulate these data is with <a href='http://api.jquery.com/jquery.getjson/' target='_blank'>jQuery $.getJSON()</a>.",
|
||||
"Whatever you do, don't get discouraged! Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck.",
|
||||
"We'll build these challenges using CodePen, a popular tool for creating, sharing, and discovering static web applications.",
|
||||
"Go to <a href='http://codepen.io' target='_blank'>http://codepen.io</a> and create an account.",
|
||||
"Click your user image in the top right corner, then click the \"New pen\" button that drops down.",
|
||||
"Drag the windows around and press the buttons in the lower-right hand corner to change the orientation to suit your preference.",
|
||||
"Click the gear next to CSS. Then in the \"External CSS File or Another Pen\" text field, type \"bootstrap\" and scroll down until you see the latest version of Bootstrap. Click it.",
|
||||
"Verify that bootstrap is active by adding the following code to your HTML: <code><h1 class='text-primary'>Hello CodePen!</h1></code>. The text's color should be Bootstrap blue.",
|
||||
"Click the gear next the JavaScript. Click the \"Latest version of...\" select box and choose jQuery.",
|
||||
"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": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd1f",
|
||||
"name": "Zipline: Use the Twitch.tv JSON API",
|
||||
"difficulty": 1.01,
|
||||
"challengeSeed": "126411564",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/GeoffStorbeck/full/GJKRxZ' target='_blank'>http://codepen.io/GeoffStorbeck/full/GJKRxZ</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can see whether Free Code Camp is currently streaming on Twitch.tv.",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can click the status output and be sent directly to the Free Code Camp's Twitch.tv channel.",
|
||||
"<span class='text-info'>User Story:</span> As a user, if Free Code Camp is streaming, I can see additional details about what they are streaming.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can search through the streams listed.",
|
||||
"<span class='text-info'>Hint:</span> Here's an example call to Twitch.tv's JSON API: <code>https://api.twitch.tv/kraken/streams/freecodecamp</code>.",
|
||||
"<span class='text-info'>Hint:</span> The relevant documentation about this API call is here: <a href='https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel' target='_blank'>https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel</a>.",
|
||||
"<span class='text-info'>Hint:</span> Here's an array of the Twitch.tv usernames of people who regularly stream coding: <code>[\"freecodecamp\", \"storbeck\", \"terakilobyte\", \"habathcx\",\"RobotCaleb\",\"comster404\",\"brunofin\",\"thomasballinger\",\"noobs2ninjas\",\"beohoff\"]</code>",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try using <a href='http://api.jquery.com/jquery.each/'>jQuery's $.getJSON()</a> to consume APIs.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd13",
|
||||
"name": "Zipline: Build a Random Quote Machine",
|
||||
"difficulty": 1.02,
|
||||
"challengeSeed": "126415122",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/AdventureBear/full/vEoVMw' target='_blank'>http://codepen.io/AdventureBear/full/vEoVMw</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can click a button to show me a new random quote.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can press a button to tweet out a quote.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try using <a href='http://api.jquery.com/jquery.each/'>jQuery's $.getJSON()</a> to consume APIs.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd10",
|
||||
"name": "Zipline: Show the Local Weather",
|
||||
"difficulty": 1.03,
|
||||
"challengeSeed": "126415127",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/AdventureBear/full/yNBJRj' target='_blank'>http://codepen.io/AdventureBear/full/yNBJRj</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can see the weather in my current location.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can see an icon depending on the temperature..",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I see a different background image depending on the temperature (e.g. snowy mountain, hot desert).",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can push a button to toggle between Fahrenheit and Celsius.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try using <a href='http://api.jquery.com/jquery.each/'>jQuery's $.getJSON()</a> to consume APIs.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd18",
|
||||
"name": "Zipline: Stylize Stories on Camper News",
|
||||
"difficulty": 1.04,
|
||||
"challengeSeed": "126415129",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/GeoffStorbeck/full/Wveezv' target='_blank'>http://codepen.io/GeoffStorbeck/full/Wveezv</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can browse recent posts from Camper News.",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can click on a post to be taken to the story's original URL.",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can click a link to go directly to the post's discussion page.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can see how many upvotes each story has.",
|
||||
"<span class='text-info'>Hint:</span> Here's the Camper News Hot Stories API endpoint: <code>http://www.freecodecamp.com/stories/hotStories</code>.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try using <a href='http://api.jquery.com/jquery.each/'>jQuery's $.getJSON()</a> to consume APIs.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd19",
|
||||
"name": "Zipline: Wikipedia Viewer",
|
||||
"difficulty": 1.05,
|
||||
"challengeSeed": "126415131",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/GeoffStorbeck/full/MwgQea' target='_blank'>http://codepen.io/GeoffStorbeck/full/MwgQea</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can search Wikipedia entries in a search box and see the resulting Wikipedia entries.",
|
||||
"<span class='text-info'>Bonus User Story:</span>As a user, I can click a button to see a random Wikipedia entry.",
|
||||
"<span class='text-info'>Bonus User Story:</span>As a user, when I type in the search box, I can see a dropdown menu with autocomplete options for matching Wikipedia entries.",
|
||||
"<span class='text-info'>Hint:</span> Here's an entry on using Wikipedia's API: <code>http://www.mediawiki.org/wiki/API:Main_page</code>.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck. Try using <a href='http://api.jquery.com/jquery.each/'>jQuery's $.getJSON()</a> to consume APIs.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd0f",
|
||||
"name": "Zipline: Build a Pomodoro Clock",
|
||||
"difficulty": 1.06,
|
||||
"challengeSeed": "126411567",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/GeoffStorbeck/full/RPbGxZ/' target='_blank'>http://codepen.io/GeoffStorbeck/full/RPbGxZ/</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can start a 25 minute pomodoro, and the timer will go off once 25 minutes has elapsed.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can reset the clock for my next pomodoro.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can customize the length of each pomodoro.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd17",
|
||||
"name": "Zipline: Build a JavaScript Calculator",
|
||||
"difficulty": 1.07,
|
||||
"challengeSeed": "126411565",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/GeoffStorbeck/full/zxgaqw' target='_blank'>http://codepen.io/GeoffStorbeck/full/zxgaqw</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can add, subtract, multiply and divide two numbers.",
|
||||
"<span class='text-info'>Bonus User Story:</span> I can clear the input field with a clear button.",
|
||||
"<span class='text-info'>Bonus User Story:</span> I can keep chaining mathematical operations together until I hit the clear button, and the calculator will tell me the correct output.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c442eddfaeb5bd1c",
|
||||
"name": "Zipline: Build a Tic Tac Toe Game",
|
||||
"difficulty": 1.08,
|
||||
"challengeSeed": "126415123",
|
||||
"description": [
|
||||
"<span class='text-info'>Objective:</span> Build a <a href='http://codepen.io' target='_blank'>CodePen.io</a> that successfully reverse-engineers this: <a href='http://codepen.io/alex-dixon/full/JogOpQ/' target='_blank'>http://codepen.io/alex-dixon/full/JogOpQ/</a>.",
|
||||
"<span class='text-info'>Rule #1:</span> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<span class='text-info'>Rule #2:</span> You may use whichever libraries or APIs you need.",
|
||||
"<span class='text-info'>Rule #3:</span> Reverse engineer the example project's functionality, and also feel free to personalize it.",
|
||||
"Here are the <a href='http://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a> you must enable, and optional bonus user stories:",
|
||||
"<span class='text-info'>User Story:</span> As a user, I can play a game of Tic Tac Toe with the computer.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can never actually win against the computer - at best I can tie.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, my game will reset as soon as it's over so I can play again.",
|
||||
"<span class='text-info'>Bonus User Story:</span> As a user, I can choose whether I want to play as X or O.",
|
||||
"Remember to use <a href='/field-guide/how-do-i-get-help-when-I-get-stuck'>RSAP</a> if you get stuck.",
|
||||
"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": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user