Everything is horrible
This commit is contained in:
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Advanced Algorithm Scripting",
|
||||
"title": "Advanced Algorithm Scripting",
|
||||
"order": 0.011,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "a2f1d72d9b908d0bd72bb9f6",
|
||||
"name": "Bonfire: Make a Person",
|
||||
"dashedName": "bonfire-make-a-person",
|
||||
"title": "Bonfire: Make a Person",
|
||||
"difficulty": "3.01",
|
||||
"description": [
|
||||
"Fill in the object constructor with the methods specified in the tests.",
|
||||
@ -56,8 +55,7 @@
|
||||
},
|
||||
{
|
||||
"id": "af4afb223120f7348cdfc9fd",
|
||||
"name": "Bonfire: Map the Debris",
|
||||
"dashedName": "bonfire-map-the-debris",
|
||||
"title": "Bonfire: Map the Debris",
|
||||
"difficulty": "3.02",
|
||||
"description": [
|
||||
"Return a new array that transforms the element's average altitude into their orbital periods.",
|
||||
@ -97,8 +95,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a3f503de51cfab748ff001aa",
|
||||
"name": "Bonfire: Pairwise",
|
||||
"dashedName": "bonfire-pairwise",
|
||||
"title": "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.",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "AngularJS",
|
||||
"title": "AngularJS",
|
||||
"order": 0.017,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7154d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Get Started with Angular.js",
|
||||
"dashedName": "waypoint-get-started-with-angularjs",
|
||||
"title": "Waypoint: Get Started with Angular.js",
|
||||
"difficulty": 0.34,
|
||||
"challengeSeed": ["114684726"],
|
||||
"description": [
|
||||
@ -28,8 +27,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7155d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Apply Angular.js Directives",
|
||||
"dashedName": "waypoint-apply-angularjs-directives",
|
||||
"title": "Waypoint: Apply Angular.js Directives",
|
||||
"difficulty": 0.35,
|
||||
"challengeSeed": ["114684727"],
|
||||
"description": [
|
||||
@ -52,8 +50,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7156d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Power Forms with Angular.js",
|
||||
"dashedName": "waypoint-power-forms-with-angularjs",
|
||||
"title": "Waypoint: Power Forms with Angular.js",
|
||||
"difficulty": 0.36,
|
||||
"challengeSeed": ["114684729"],
|
||||
"description": [
|
||||
@ -76,8 +73,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7157d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Customize Angular.js Directives",
|
||||
"dashedName": "waypoint-customize-angularjs-directives",
|
||||
"title": "Waypoint: Customize Angular.js Directives",
|
||||
"difficulty": 0.37,
|
||||
"challengeSeed": ["114685062"],
|
||||
"description": [
|
||||
@ -99,8 +95,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Create Angular.js Services",
|
||||
"dashedName": "waypoint-create-angularjs-services",
|
||||
"title": "Waypoint: Create Angular.js Services",
|
||||
"difficulty": 0.38,
|
||||
"challengeSeed": ["114685060"],
|
||||
"description": [
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "Automated Testing and Debugging - Coming Soon",
|
||||
"title": "Automated Testing and Debugging - Coming Soon",
|
||||
"order": 0.012,
|
||||
"challenges": [
|
||||
]
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Full Stack JavaScript Projects",
|
||||
"title": "Full Stack JavaScript Projects",
|
||||
"order": 0.019,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bcef",
|
||||
"name": "Waypoint: Get Set for Basejumps",
|
||||
"dashedName": "waypoint-get-set-for-basejumps",
|
||||
"title": "Waypoint: Get Set for Basejumps",
|
||||
"difficulty": 2.00,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
@ -65,8 +64,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdef",
|
||||
"name": "Basejump: Build a Voting App",
|
||||
"dashedName": "basejump-build-a-voting-app",
|
||||
"title": "Basejump: Build a Voting App",
|
||||
"difficulty": 2.01,
|
||||
"challengeSeed": ["133315786"],
|
||||
"description": [
|
||||
@ -102,8 +100,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdff",
|
||||
"name": "Basejump: Build a Nightlife Coordination App",
|
||||
"dashedName": "basejump-build-a-nightlife-coordination-app",
|
||||
"title": "Basejump: Build a Nightlife Coordination App",
|
||||
"difficulty": 2.02,
|
||||
"challengeSeed": ["133315781"],
|
||||
"description": [
|
||||
@ -136,8 +133,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bd0e",
|
||||
"name": "Basejump: Chart the Stock Market",
|
||||
"dashedName": "basejump-chart-the-stock-market",
|
||||
"title": "Basejump: Chart the Stock Market",
|
||||
"difficulty": 2.03,
|
||||
"challengeSeed": ["133315787"],
|
||||
"description": [
|
||||
@ -169,8 +165,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bd0f",
|
||||
"name": "Basejump: Manage a Book Trading Club",
|
||||
"dashedName": "basejump-manage-a-book-trading-club",
|
||||
"title": "Basejump: Manage a Book Trading Club",
|
||||
"difficulty": 2.04,
|
||||
"challengeSeed": ["133316032"],
|
||||
"description": [
|
||||
@ -202,8 +197,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdee",
|
||||
"name": "Basejump: Build a Pinterest Clone",
|
||||
"dashedName": "basejump-build-a-pinterest-clone",
|
||||
"title": "Basejump: Build a Pinterest Clone",
|
||||
"difficulty": 2.05,
|
||||
"challengeSeed": ["133315784"],
|
||||
"description": [
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Basic Algorithm Scripting",
|
||||
"title": "Basic Algorithm Scripting",
|
||||
"order": 0.006,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7139d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Pair Program on Bonfires",
|
||||
"dashedName": "waypoint-pair-program-on-bonfires",
|
||||
"title": "Waypoint: Pair Program on Bonfires",
|
||||
"difficulty": 0.44,
|
||||
"challengeSeed": [
|
||||
"119657641"
|
||||
@ -44,8 +43,7 @@
|
||||
},
|
||||
{
|
||||
"id": "ad7123c8c441eddfaeb5bdef",
|
||||
"name": "Bonfire: Meet Bonfire",
|
||||
"dashedName": "bonfire-meet-bonfire",
|
||||
"title": "Bonfire: Meet Bonfire",
|
||||
"difficulty": "0",
|
||||
"description": [
|
||||
"Your goal is to fix the failing test.",
|
||||
@ -83,8 +81,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a202eed8fc186c8434cb6d61",
|
||||
"name": "Bonfire: Reverse a String",
|
||||
"dashedName": "bonfire-reverse-a-string",
|
||||
"title": "Bonfire: Reverse a String",
|
||||
"difficulty": "1.01",
|
||||
"tests": [
|
||||
"expect(reverseString('hello')).to.be.a('String');",
|
||||
@ -125,8 +122,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a302f7aae1aa3152a5b413bc",
|
||||
"name": "Bonfire: Factorialize a Number",
|
||||
"dashedName": "bonfire-factorialize-a-number",
|
||||
"title": "Bonfire: Factorialize a Number",
|
||||
"tests": [
|
||||
"expect(factorialize(5)).to.be.a(\"Number\");",
|
||||
"expect(factorialize(5)).to.equal(120);",
|
||||
@ -165,8 +161,7 @@
|
||||
},
|
||||
{
|
||||
"id": "aaa48de84e1ecc7c742e1124",
|
||||
"name": "Bonfire: Check for Palindromes",
|
||||
"dashedName": "bonfire-check-for-palindromes",
|
||||
"title": "Bonfire: Check for Palindromes",
|
||||
"difficulty": "1.03",
|
||||
"description": [
|
||||
"Return true if the given string is a palindrome. Otherwise, return false.",
|
||||
@ -213,8 +208,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a26cbbe9ad8655a977e1ceb5",
|
||||
"name": "Bonfire: Find the Longest Word in a String",
|
||||
"dashedName": "bonfire-find-the-longest-word-in-a-string",
|
||||
"title": "Bonfire: Find the Longest Word in a String",
|
||||
"difficulty": "1.04",
|
||||
"description": [
|
||||
"Return the length of the longest word in the provided sentence.",
|
||||
@ -253,8 +247,7 @@
|
||||
},
|
||||
{
|
||||
"id": "ab6137d4e35944e21037b769",
|
||||
"name": "Bonfire: Title Case a Sentence",
|
||||
"dashedName": "bonfire-title-case-a-sentence",
|
||||
"title": "Bonfire: Title Case a Sentence",
|
||||
"difficulty": "1.05",
|
||||
"description": [
|
||||
"Return the provided string with the first letter of each word capitalized.",
|
||||
@ -291,8 +284,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a789b3483989747d63b0e427",
|
||||
"name": "Bonfire: Return Largest Numbers in Arrays",
|
||||
"dashedName": "bonfire-return-largest-numbers-in-arrays",
|
||||
"title": "Bonfire: Return Largest Numbers in Arrays",
|
||||
"difficulty": "1.06",
|
||||
"description": [
|
||||
"Return an array consisting of the largest number from each provided sub-array. For simplicity, the provided array will contain exactly 4 sub-arrays.",
|
||||
@ -330,8 +322,7 @@
|
||||
},
|
||||
{
|
||||
"id": "acda2fb1324d9b0fa741e6b5",
|
||||
"name": "Bonfire: Confirm the Ending",
|
||||
"dashedName": "bonfire-confirm-the-ending",
|
||||
"title": "Bonfire: Confirm the Ending",
|
||||
"difficulty": "1.07",
|
||||
"description": [
|
||||
"Check if a string (first argument) ends with the given target string (second argument).",
|
||||
@ -370,8 +361,7 @@
|
||||
},
|
||||
{
|
||||
"id": "afcc8d540bea9ea2669306b6",
|
||||
"name": "Bonfire: Repeat a string repeat a string",
|
||||
"dashedName": "bonfire-repeat-a-string-repeat-a-string",
|
||||
"title": "Bonfire: Repeat a string repeat a string",
|
||||
"difficulty": "1.08",
|
||||
"description": [
|
||||
"Repeat a given string (first argument) n times (second argument). Return an empty string if n is a negative number.",
|
||||
@ -407,8 +397,7 @@
|
||||
},
|
||||
{
|
||||
"id": "ac6993d51946422351508a41",
|
||||
"name": "Bonfire: Truncate a string",
|
||||
"dashedName": "bonfire-truncate-a-string",
|
||||
"title": "Bonfire: Truncate a string",
|
||||
"difficulty": "1.09",
|
||||
"description": [
|
||||
"Truncate a string (first argument) if it is longer than the given maximum string length (second argument). Return the truncated string with a '...' ending.",
|
||||
@ -446,8 +435,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a9bd25c716030ec90084d8a1",
|
||||
"name": "Bonfire: Chunky Monkey",
|
||||
"dashedName": "bonfire-chunky-monkey",
|
||||
"title": "Bonfire: Chunky Monkey",
|
||||
"difficulty": "1.10",
|
||||
"description": [
|
||||
"Write a function that splits an array (first argument) into groups the length of size (second argument) and returns them as a multidimensional array.",
|
||||
@ -484,8 +472,7 @@
|
||||
},
|
||||
{
|
||||
"id": "ab31c21b530c0dafa9e241ee",
|
||||
"name": "Bonfire: Slasher Flick",
|
||||
"dashedName": "bonfire-slasher-flick",
|
||||
"title": "Bonfire: Slasher Flick",
|
||||
"difficulty": "1.11",
|
||||
"description": [
|
||||
"Return the remaining elements of an array after chopping off n elements from the head.",
|
||||
@ -522,8 +509,7 @@
|
||||
},
|
||||
{
|
||||
"id": "af2170cad53daa0770fabdea",
|
||||
"name": "Bonfire: Mutations",
|
||||
"dashedName": "bonfire-mutations",
|
||||
"title": "Bonfire: Mutations",
|
||||
"difficulty": "1.12",
|
||||
"description": [
|
||||
"Return true if the string in the first element of the array contains all of the letters of the string in the second element of the array.",
|
||||
@ -565,8 +551,7 @@
|
||||
},
|
||||
{
|
||||
"id": "adf08ec01beb4f99fc7a68f2",
|
||||
"name": "Bonfire: Falsey Bouncer",
|
||||
"dashedName": "bonfire-falsey-bouncer",
|
||||
"title": "Bonfire: Falsey Bouncer",
|
||||
"difficulty": "1.50",
|
||||
"description": [
|
||||
"Remove all falsey values from an array.",
|
||||
@ -604,8 +589,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a8e512fbe388ac2f9198f0fa",
|
||||
"name": "Bonfire: Where art thou",
|
||||
"dashedName": "bonfire-where-art-thou",
|
||||
"title": "Bonfire: Where art thou",
|
||||
"difficulty": "1.55",
|
||||
"description": [
|
||||
"Make a function that looks through an array (first argument) and returns an array of all objects that have equivalent property values (second argument).",
|
||||
@ -643,8 +627,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a39963a4c10bc8b4d4f06d7e",
|
||||
"name": "Bonfire: Seek and Destroy",
|
||||
"dashedName": "bonfire-seek-and-destroy",
|
||||
"title": "Bonfire: Seek and Destroy",
|
||||
"difficulty": "1.60",
|
||||
"description": [
|
||||
"You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments.",
|
||||
@ -683,8 +666,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a24c1a4622e3c05097f71d67",
|
||||
"name": "Bonfire: Where do I belong",
|
||||
"dashedName": "bonfire-where-do-i-belong",
|
||||
"title": "Bonfire: Where do I belong",
|
||||
"difficulty": "1.61",
|
||||
"description": [
|
||||
"Return the lowest index at which a value (second argument) should be inserted into a sorted array (first argument).",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Basic JavaScript",
|
||||
"title": "Basic JavaScript",
|
||||
"order": 0.005,
|
||||
"challenges": [
|
||||
{
|
||||
"id":"bd7123c9c441eddfaeb4bdef",
|
||||
"name": "Waypoint: Comment your JavaScript Code",
|
||||
"dashedName": "waypoint-comment-your-javascript-code",
|
||||
"title": "Waypoint: Comment your JavaScript Code",
|
||||
"difficulty":"9.98",
|
||||
"description":[
|
||||
"A comment is a very useful line of code that is not actually ran by the machine executing it. With this property comments are the perfect way of creating notes to yourself or anyone else who reads your code describing what the code does",
|
||||
@ -23,14 +22,12 @@
|
||||
"assert(editor.getValue().match(/(\\/\\/)...../g), 'Make sure that there is at least one \\/\\/ style comment with at least five letters in it');"
|
||||
],
|
||||
"challengeSeed":[
|
||||
|
||||
],
|
||||
"challengeType": 1
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Understand Boolean Values",
|
||||
"dashedName": "waypoint-understand-boolean-values",
|
||||
"title": "Waypoint: Understand Boolean Values",
|
||||
"difficulty": "9.98001",
|
||||
"description": [
|
||||
"Return true",
|
||||
@ -55,8 +52,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c443eddfaeb5bdef",
|
||||
"name": "Waypoint: Declare JavaScript Variables",
|
||||
"dashedName": "waypoint-declare-javascript-variables",
|
||||
"title": "Waypoint: Declare JavaScript Variables",
|
||||
"difficulty": "9.9801",
|
||||
"description": [
|
||||
"Now, use the <code>var</code> keyword to create a <code>variable</code> called <code>myName</code>. Set its value to your name.",
|
||||
@ -82,8 +78,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c444eddfaeb5bdef",
|
||||
"name": "Waypoint: Declare String Variables",
|
||||
"dashedName": "waypoint-declare-string-variables",
|
||||
"title": "Waypoint: Declare String Variables",
|
||||
"difficulty": "9.9802",
|
||||
"description": [
|
||||
"Programs will almost always have several different variables that are used to keep track of several different pieces of data",
|
||||
@ -109,8 +104,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c448eddfaeb5bdef",
|
||||
"name": "Waypoint: Check the Length Property of a String Variable",
|
||||
"dashedName": "waypoint-check-the-length-property-of-a-string-variable",
|
||||
"title": "Waypoint: Check the Length Property of a String Variable",
|
||||
"difficulty": "9.9809",
|
||||
"description": [
|
||||
"Use the <code>.length</code> property to count the number of characters in the <code>lastNameLength</code> variable.",
|
||||
@ -142,8 +136,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c549eddfaeb5bdef",
|
||||
"name": "Waypoint: Use Bracket Notation to Find the First Character in a String",
|
||||
"dashedName": "waypoint-use-bracket-notation-to-find-the-first-character-in-a-string",
|
||||
"title": "Waypoint: Use Bracket Notation to Find the First Character in a String",
|
||||
"difficulty": "9.9810",
|
||||
"description": [
|
||||
"Use <code>bracket notation</code> to find the first character in a the <code>firstLetterOfLastName</code> variable.",
|
||||
@ -177,8 +170,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c450eddfaeb5bdef",
|
||||
"name": "Waypoint: Use Bracket Notation to Find the Nth Character in a String",
|
||||
"dashedName": "waypoint-use-bracket-notation-to-find-the-nth-character-in-a-string",
|
||||
"title": "Waypoint: Use Bracket Notation to Find the Nth Character in a String",
|
||||
"difficulty": "9.9811",
|
||||
"description": [
|
||||
"Just like the last lesson where we used <code>Bracket Notation</code>to access the first letter we can use the same method to get the letters ar other positions",
|
||||
@ -208,8 +200,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c451eddfaeb5bdef",
|
||||
"name": "Waypoint: Use Bracket Notation to Find the Last Character in a String",
|
||||
"dashedName": "waypoint-use-bracket-notation-to-find-the-last-character-in-a-string",
|
||||
"title": "Waypoint: Use Bracket Notation to Find the Last Character in a String",
|
||||
"difficulty": "9.9812",
|
||||
"description": [
|
||||
"Use <code>bracket notation</code> to find the last character in the <code>lastName</code> variable.",
|
||||
@ -238,8 +229,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123c9c452eddfaeb5bdef",
|
||||
"name": "Waypoint: Use Bracket Notation to Find the Nth-to-Last Character in a String",
|
||||
"dashedName": "waypoint-use-bracket-notation-to-find-the-nth-to-last-character-in-a-string",
|
||||
"title": "Waypoint: Use Bracket Notation to Find the Nth-to-Last Character in a String",
|
||||
"difficulty": "9.9813",
|
||||
"description": [
|
||||
"Use <code>bracket notation</code> to find the second-to-last character in the <code>lastName</code> variable.",
|
||||
@ -268,8 +258,7 @@
|
||||
},
|
||||
{
|
||||
"id": "cf1111c1c11feddfaeb3bdef",
|
||||
"name": "Waypoint: Add Two Numbers with JavaScript",
|
||||
"dashedName": "waypoint-add-two-numbers-with-javascript",
|
||||
"title": "Waypoint: Add Two Numbers with JavaScript",
|
||||
"difficulty": "9.98141",
|
||||
"description": [
|
||||
"In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions",
|
||||
@ -291,8 +280,7 @@
|
||||
},
|
||||
{
|
||||
"id": "cf1111c1c11feddfaeb4bdef",
|
||||
"name": "Waypoint: Subtract One Number from Another with JavaScript",
|
||||
"dashedName": "waypoint-subtract-one-number-from-another-with-javascript",
|
||||
"title": "Waypoint: Subtract One Number from Another with JavaScript",
|
||||
"difficulty": "9.98142",
|
||||
"description": [
|
||||
"In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions",
|
||||
@ -314,8 +302,7 @@
|
||||
},
|
||||
{
|
||||
"id": "cf1231c1c11feddfaeb5bdef",
|
||||
"name": "Waypoint: Multiply Two Numbers with JavaScript",
|
||||
"dashedName": "waypoint-multiply-two-numbers-with-javascript",
|
||||
"title": "Waypoint: Multiply Two Numbers with JavaScript",
|
||||
"difficulty": "9.98143",
|
||||
"description": [
|
||||
"In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions",
|
||||
@ -337,8 +324,7 @@
|
||||
},
|
||||
{
|
||||
"id": "cf1111c1c11feddfaeb6bdef",
|
||||
"name": "Waypoint: Divide One Number by Another with JavaScript",
|
||||
"dashedName": "waypoint-divide-one-number-by-another-with-javascript",
|
||||
"title": "Waypoint: Divide One Number by Another with JavaScript",
|
||||
"difficulty": "9.9814",
|
||||
"description": [
|
||||
"In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions",
|
||||
@ -360,8 +346,7 @@
|
||||
},
|
||||
{
|
||||
"id": "cf1391c1c11feddfaeb4bdef",
|
||||
"name": "Waypoint: Create Decimal Numbers with JavaScript",
|
||||
"dashedName": "waypoint-create-decimal-numbers-with-javascript",
|
||||
"title": "Waypoint: Create Decimal Numbers with JavaScript",
|
||||
"difficulty": "9.9815",
|
||||
"description": [
|
||||
"in JavaScript we can can work with decimal numbers",
|
||||
@ -383,8 +368,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7993c9c69feddfaeb7bdef",
|
||||
"name": "Waypoint: Perform Arithmetic Operations on Decimals with JavaScript",
|
||||
"dashedName": "waypoint-perform-arithmetic-operations-on-decimals-with-javascript",
|
||||
"title": "Waypoint: Perform Arithmetic Operations on Decimals with JavaScript",
|
||||
"difficulty": "9.98151",
|
||||
"description": [
|
||||
"In JavaScript we can can work with decimal numbers."
|
||||
@ -405,8 +389,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7993c9c69feddfaeb8bdef",
|
||||
"name": "Waypoint: Store Multiple Values in one Variable using JavaScript Arrays",
|
||||
"dashedName": "waypoint-store-multiple-values-in-one-variable-using-javascript-arrays",
|
||||
"title": "Waypoint: Store Multiple Values in one Variable using JavaScript Arrays",
|
||||
"difficulty": "9.9816",
|
||||
"description": [
|
||||
"In JavaScript we can store lists or collections of data in what are called arrays",
|
||||
@ -432,8 +415,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c11feddfaeb7bdef",
|
||||
"name": "Waypoint: Nest one Array within Another Array",
|
||||
"dashedName": "waypoint-nest-one-array-within-another-array",
|
||||
"title": "Waypoint: Nest one Array within Another Array",
|
||||
"difficulty":"9.98161",
|
||||
"description":[
|
||||
"We are also able to create arrays within arrays. This technique is called <code>nesting</code>.",
|
||||
@ -452,8 +434,7 @@
|
||||
},
|
||||
{
|
||||
"id":"bg9997c9c79feddfaeb9bdef",
|
||||
"name": "Waypoint: Access Array Data with Indexes",
|
||||
"dashedName": "waypoint-access-array-data-with-indexes",
|
||||
"title": "Waypoint: Access Array Data with Indexes",
|
||||
"difficulty":"9.9817",
|
||||
"description":[
|
||||
"Once an array has been created we can access the data we have stored in them using indexes",
|
||||
@ -483,8 +464,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c11feddfaeb8bdef",
|
||||
"name": "Waypoint: Modify Array Data With Indexes",
|
||||
"dashedName": "waypoint-modify-array-data-with-indexes",
|
||||
"title": "Waypoint: Modify Array Data With Indexes",
|
||||
"difficulty":"9.98171",
|
||||
"description":[
|
||||
"We are able to modify the data stored in an array by using indexes",
|
||||
@ -515,8 +495,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bg9994c9c69feddfaeb9bdef",
|
||||
"name": "Waypoint: Manipulate Arrays With pop()",
|
||||
"dashedName": "waypoint-manipulate-arrays-with-pop",
|
||||
"title": "Waypoint: Manipulate Arrays With pop()",
|
||||
"difficulty": "9.9818",
|
||||
"description": [
|
||||
"When an array has been defined we still have the ability to make changes to it afterwards",
|
||||
@ -546,8 +525,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bg9995c9c69feddfaeb9bdef",
|
||||
"name": "Waypoint: Manipulate Arrays With push()",
|
||||
"dashedName": "waypoint-manipulate-arrays-with-push",
|
||||
"title": "Waypoint: Manipulate Arrays With push()",
|
||||
"difficulty": "9.9818",
|
||||
"description": [
|
||||
"Now that we've learned how to <code>pop</code>things from the end of the array, we need to learn how to <code>push</code>stuff back to the end",
|
||||
@ -568,8 +546,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bg9996c9c69feddfaeb9bdef",
|
||||
"name": "Waypoint: Manipulate Arrays With shift()",
|
||||
"dashedName": "waypoint-manipulate-arrays-with-shift",
|
||||
"title": "Waypoint: Manipulate Arrays With shift()",
|
||||
"difficulty": "9.9817",
|
||||
"description": [
|
||||
"Another common way in which we can manipulate the data in an array is through <code>.shift() </code>",
|
||||
@ -591,8 +568,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bg9997c9c69feddfaeb9bdef",
|
||||
"name": "Waypoint: Manipulate Arrays With unshift()",
|
||||
"dashedName": "waypoint-manipulate-arrays-with-unshift",
|
||||
"title": "Waypoint: Manipulate Arrays With unshift()",
|
||||
"difficulty": "9.9818",
|
||||
"description": [
|
||||
"Now that we've learned how to <code>shift</code>things from the start of the array, we need to learn how to <code>unshift</code>stuff back to the start",
|
||||
@ -613,8 +589,7 @@
|
||||
},
|
||||
{
|
||||
"id":"bg9997c9c89feddfaeb9bdef",
|
||||
"name": "Waypoint: Write Reusable JavaScript with Functions",
|
||||
"dashedName": "waypoint-write-reusable-javascript-with-functions",
|
||||
"title": "Waypoint: Write Reusable JavaScript with Functions",
|
||||
"difficulty":"9.9819",
|
||||
"description":[
|
||||
"In JavaScript we can divide up our code into separate and reusable parts called functions",
|
||||
@ -650,8 +625,7 @@
|
||||
},
|
||||
{
|
||||
"id":"bg9998c9c99feddfaeb9bdef",
|
||||
"name": "Waypoint: Build JavaScript Objects",
|
||||
"dashedName": "waypoint-build-javascript-objects",
|
||||
"title": "Waypoint: Build JavaScript Objects",
|
||||
"difficulty":"9.9822",
|
||||
"description":[
|
||||
"A very important data type in javascript is the <code>Object</code>",
|
||||
@ -667,7 +641,6 @@
|
||||
"</code>",
|
||||
"Objects are useful for storing data in a structured way or in a way that represents a real world object like a cat.",
|
||||
"Let's try to make an Object that represents a dog called myDog!"
|
||||
|
||||
],
|
||||
"tests":[
|
||||
"assert((function(z){if(z.hasOwnProperty('name') && z.name != undefined && typeof(z.name) == 'string'){return(true);}else{return(false);}})(myDog), 'myDog should contain the property name and it should be a string');",
|
||||
@ -696,8 +669,7 @@
|
||||
},
|
||||
{
|
||||
"id":"bg9999c9c99feddfaeb9bdef",
|
||||
"name": "Waypoint: Manipulate JavaScript Objects",
|
||||
"dashedName": "waypoint-manipulate-javascript-objects",
|
||||
"title": "Waypoint: Manipulate JavaScript Objects",
|
||||
"difficulty":"9.9823",
|
||||
"description":[
|
||||
"Now that we have an objects we need to know how to add and remove properties from it",
|
||||
@ -741,8 +713,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c11feddfaeb5bdef",
|
||||
"name": "Waypoint: Iterate with JavaScript For Loops",
|
||||
"dashedName": "waypoint-iterate-with-javascript-for-loops",
|
||||
"title": "Waypoint: Iterate with JavaScript For Loops",
|
||||
"difficulty":"9.9824",
|
||||
"description":[
|
||||
"Loops are a critical part of any program! The next few challenges",
|
||||
@ -770,8 +741,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c11feddfaeb1bdef",
|
||||
"name": "Waypoint: Iterate with JavaScript While Loops",
|
||||
"dashedName": "waypoint-iterate-with-javascript-while-loops",
|
||||
"title": "Waypoint: Iterate with JavaScript While Loops",
|
||||
"difficulty":"9.9825",
|
||||
"description":[
|
||||
"Loops are a critical part of any program! The next few challenges",
|
||||
@ -800,8 +770,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c11feddfaeb2bdef",
|
||||
"name": "Waypoint: Iterate with JavaScript Do-While Loops",
|
||||
"dashedName": "waypoint-iterate-with-javascript-do-while-loops",
|
||||
"title": "Waypoint: Iterate with JavaScript Do-While Loops",
|
||||
"difficulty":"9.9826",
|
||||
"description":[
|
||||
"Let's now take a look at the do - while loop",
|
||||
@ -830,8 +799,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c11feddfaeb9bdef",
|
||||
"name": "Waypoint: Generate Random Fractions with JavaScript",
|
||||
"dashedName": "waypoint-generate-random-fractions-with-javascript",
|
||||
"title": "Waypoint: Generate Random Fractions with JavaScript",
|
||||
"difficulty":"9.9827",
|
||||
"description":[
|
||||
"Random numbers are very useful for creating random behaviours and games",
|
||||
@ -856,8 +824,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb1bdef",
|
||||
"name": "Waypoint: Generate Random Whole Numbers with JavaScript",
|
||||
"dashedName": "waypoint-generate-random-whole-numbers-with-javascript",
|
||||
"title": "Waypoint: Generate Random Whole Numbers with JavaScript",
|
||||
"difficulty":"9.9828",
|
||||
"description":[
|
||||
"While it's great that we can create random decimal numbers it's a lot more useful to generate a random whole number",
|
||||
@ -885,8 +852,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb2bdef",
|
||||
"name": "Waypoint: Generate Random Whole Numbers within a Range",
|
||||
"dashedName": "waypoint-generate-random-whole-numbers-within-a-range",
|
||||
"title": "Waypoint: Generate Random Whole Numbers within a Range",
|
||||
"difficulty":"9.9829",
|
||||
"description":[
|
||||
"We can use a certain mathematical expression to get a random number between between twp numbers.",
|
||||
@ -913,8 +879,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb3bdef",
|
||||
"name": "Waypoint: Use Conditional Logic with If-Else Statements",
|
||||
"dashedName": "waypoint-use-conditional-logic-with-if-else-statements",
|
||||
"title": "Waypoint: Use Conditional Logic with If-Else Statements",
|
||||
"difficulty":"9.983",
|
||||
"description":[
|
||||
"We can use if statements in JavaScript to only execute code if a certain condition is met",
|
||||
@ -947,8 +912,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb6bdef",
|
||||
"name": "Waypoint: Sift through Text with Regular Expressions",
|
||||
"dashedName": "waypoint-sift-through-text-with-regular-expressions",
|
||||
"title": "Waypoint: Sift through Text with Regular Expressions",
|
||||
"difficulty":"9.984",
|
||||
"description":[
|
||||
"RegEx is a powerful tool we can use to find certain words or patterns in strings",
|
||||
@ -983,8 +947,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb7bdef",
|
||||
"name": "Waypoint: Find Numbers with Regular Expressions",
|
||||
"dashedName": "waypoint-find-numbers-with-regular-expressions",
|
||||
"title": "Waypoint: Find Numbers with Regular Expressions",
|
||||
"difficulty":"9.985",
|
||||
"description":[
|
||||
"We can use special selectors in RegEx to select a particular type of value",
|
||||
@ -1013,8 +976,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb8bdef",
|
||||
"name": "Waypoint: Find White Space with Regular Expressions",
|
||||
"dashedName": "waypoint-find-white-space-with-regular-expressions",
|
||||
"title": "Waypoint: Find White Space with Regular Expressions",
|
||||
"difficulty":"9.986",
|
||||
"description":[
|
||||
"We can also use selectors like <code>\\s</code> to find spaces in a string",
|
||||
@ -1042,8 +1004,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c13feddfaeb3bdef",
|
||||
"name": "Waypoint: Invert Regular Expression Matches with JavaScript",
|
||||
"dashedName": "waypoint-invert-regular-expression-matches-with-javaScript",
|
||||
"title": "Waypoint: Invert Regular Expression Matches with JavaScript",
|
||||
"difficulty":"9.987",
|
||||
"description":[
|
||||
"Use <code>/\\S/gi;</code> to match everything that isn't a space in the string",
|
||||
@ -1070,8 +1031,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c12feddfaeb9bdef",
|
||||
"name": "Waypoint: Create a JavaScript Slot Machine",
|
||||
"dashedName": "waypoint-create-a-javascript-slot-machine",
|
||||
"title": "Waypoint: Create a JavaScript Slot Machine",
|
||||
"difficulty":"9.988",
|
||||
"description":[
|
||||
"We are now going to try and combine some of the stuff we've just learnt abd create the logic for a slot machine game",
|
||||
@ -1224,8 +1184,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c13feddfaeb1bdef",
|
||||
"name": "Waypoint: Add your JavaScript Slot Machine Slots",
|
||||
"dashedName": "waypoint-add-your-javascript-slot-machine-slots",
|
||||
"title": "Waypoint: Add your JavaScript Slot Machine Slots",
|
||||
"difficulty":"9.989",
|
||||
"description":[
|
||||
"Now that we have our random numbers we need to go and check for when they are all the same that means we should count it as a win",
|
||||
@ -1383,8 +1342,7 @@
|
||||
},
|
||||
{
|
||||
"id":"cf1111c1c13feddfaeb2bdef",
|
||||
"name": "Waypoint: Bring your JavaScript Slot Machine to Life",
|
||||
"dashedName": "waypoint-bring-your-javascript-slot-machine-to-life",
|
||||
"title": "Waypoint: Bring your JavaScript Slot Machine to Life",
|
||||
"difficulty":"9.990",
|
||||
"description":[
|
||||
"Now we can detect a win let's get the slot machine to look like it works",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Basic Front End Development Projects",
|
||||
"title": "Basic Front End Development Projects",
|
||||
"order": 0.008,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7158d8c442eddfbeb5bd1f",
|
||||
"name": "Waypoint: Get Set for Ziplines",
|
||||
"dashedName": "waypoint-get-set-for-ziplines",
|
||||
"title": "Waypoint: Get Set for Ziplines",
|
||||
"difficulty": 1.00,
|
||||
"challengeSeed": ["125658022"],
|
||||
"description": [
|
||||
@ -39,8 +38,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c242eddfaeb5bd13",
|
||||
"name": "Zipline: Build a Personal Portfolio Webpage",
|
||||
"dashedName": "zipline-build-a-personal-portfolio-webpage",
|
||||
"title": "Zipline: Build a Personal Portfolio Webpage",
|
||||
"difficulty": 1.01,
|
||||
"challengeSeed": ["133315782"],
|
||||
"description": [
|
||||
@ -75,8 +73,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd13",
|
||||
"name": "Zipline: Build a Random Quote Machine",
|
||||
"dashedName": "zipline-build-a-random-quote-machine",
|
||||
"title": "Zipline: Build a Random Quote Machine",
|
||||
"difficulty": 1.02,
|
||||
"challengeSeed": ["126415122"],
|
||||
"description": [
|
||||
@ -107,8 +104,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd10",
|
||||
"name": "Zipline: Show the Local Weather",
|
||||
"dashedName": "zipline-show-the-local-weather",
|
||||
"title": "Zipline: Show the Local Weather",
|
||||
"difficulty": 1.03,
|
||||
"challengeSeed": ["126415127"],
|
||||
"description": [
|
||||
@ -140,8 +136,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd0f",
|
||||
"name": "Zipline: Build a Pomodoro Clock",
|
||||
"dashedName": "zipline-build-a-pomodoro-clock",
|
||||
"title": "Zipline: Build a Pomodoro Clock",
|
||||
"difficulty": 1.04,
|
||||
"challengeSeed": ["126411567"],
|
||||
"description": [
|
||||
@ -172,8 +167,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd1f",
|
||||
"name": "Zipline: Use the Twitch.tv JSON API",
|
||||
"dashedName": "zipline-use-the-twitchtv-json-api",
|
||||
"title": "Zipline: Use the Twitch.tv JSON API",
|
||||
"difficulty": 1.05,
|
||||
"challengeSeed": ["126411564"],
|
||||
"description": [
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Responsive Design with Bootstrap",
|
||||
"title": "Responsive Design with Bootstrap",
|
||||
"order": 0.003,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bad87fee1348bd9acde08712",
|
||||
"name": "Waypoint: Use Responsive Design with Bootstrap Fluid Containers",
|
||||
"dashedName": "waypoint-use-responsive-design-with-bootstrap-fluid-containers",
|
||||
"title": "Waypoint: Use Responsive Design with Bootstrap Fluid Containers",
|
||||
"difficulty": 2.01,
|
||||
"description": [
|
||||
"Now let's go back to our Cat Photo App. This time, we'll style it using the popular Bootstrap responsive CSS framework.",
|
||||
@ -88,8 +87,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9acde08812",
|
||||
"name": "Waypoint: Make Images Mobile Responsive",
|
||||
"dashedName": "waypoint-make-images-mobile-responsive",
|
||||
"title": "Waypoint: Make Images Mobile Responsive",
|
||||
"difficulty": 2.02,
|
||||
"description": [
|
||||
"First, Add a new image with the <code>src</code> attribute of \"http://bit.ly/fcc-kittens2\".",
|
||||
@ -173,8 +171,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd8acde08812",
|
||||
"name": "Waypoint: Center Text with Bootstrap",
|
||||
"dashedName": "waypoint-center-text-with-bootstrap",
|
||||
"title": "Waypoint: Center Text with Bootstrap",
|
||||
"difficulty": 2.03,
|
||||
"description": [
|
||||
"Now that we're using Bootstrap, we can center our heading elements to make them look better. All we need to do is add the class <code>text-center</code> to our <code>h1</code> and <code>h2</code> elements.",
|
||||
@ -256,8 +253,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348cd8acdf08812",
|
||||
"name": "Waypoint: Create a Bootstrap Button",
|
||||
"dashedName": "waypoint-create-a-bootstrap-button",
|
||||
"title": "Waypoint: Create a Bootstrap Button",
|
||||
"difficulty": 2.04,
|
||||
"description": [
|
||||
"Bootstrap has its own styles for <code>button</code> elements, which look much better than the plain HTML ones.",
|
||||
@ -341,8 +337,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348cd8acef08812",
|
||||
"name": "Waypoint: Create a Block Element Bootstrap Button",
|
||||
"dashedName": "waypoint-create-a-block-element-bootstrap-button",
|
||||
"title": "Waypoint: Create a Block Element Bootstrap Button",
|
||||
"difficulty": 2.05,
|
||||
"description": [
|
||||
"Normally, your <code>button</code> elements are only as wide as the text that they contain. By making them block elements, your button will stretch to fill your page's entire horizontal space.",
|
||||
@ -430,8 +425,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348cd8acef08811",
|
||||
"name": "Waypoint: Taste the Bootstrap Button Color Rainbow",
|
||||
"dashedName": "waypoint-taste-the-bootstrap-button-color-rainbow",
|
||||
"title": "Waypoint: Taste the Bootstrap Button Color Rainbow",
|
||||
"difficulty": 2.06,
|
||||
"description": [
|
||||
"The \"btn-primary\" class is the main color you'll use in your app. It is useful for highlighting actions you want your user to take.",
|
||||
@ -517,8 +511,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348cd8acef08813",
|
||||
"name": "Waypoint: Call out Optional Actions with Button Info",
|
||||
"dashedName": "waypoint-call-out-optional-actions-with-button-info",
|
||||
"title": "Waypoint: Call out Optional Actions with Button Info",
|
||||
"difficulty": 2.07,
|
||||
"description": [
|
||||
"Bootstrap comes with several pre-defined colors for buttons. The \"btn-info\" class is used to call attention to optional actions that the user can take.",
|
||||
@ -605,8 +598,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348ce8acef08814",
|
||||
"name": "Waypoint: Warn your Users of a Dangerous Action",
|
||||
"dashedName": "waypoint-warn-your-users-of-a-dangerous-action",
|
||||
"title": "Waypoint: Warn your Users of a Dangerous Action",
|
||||
"difficulty": 2.08,
|
||||
"description": [
|
||||
"Bootstrap comes with several pre-defined colors for buttons. The \"btn-danger\" class is the button color you'll use to notify users that the button performs a destructive action, such as deleting a cat photo.",
|
||||
@ -694,8 +686,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad88fee1348ce8acef08815",
|
||||
"name": "Waypoint: Use the Bootstrap Grid to Put Elements Side By Side",
|
||||
"dashedName": "waypoint-use-the-bootstrap-grid-to-put-elements-side-by-side",
|
||||
"title": "Waypoint: Use the Bootstrap Grid to Put Elements Side By Side",
|
||||
"difficulty": 2.09,
|
||||
"description": [
|
||||
"Bootstrap uses a responsive grid system, which makes it easy to put elements into rows and specify each element's relative width. Most of Bootstrap's classes can be applied to a <code>div</code> element.",
|
||||
@ -788,8 +779,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08845",
|
||||
"name": "Waypoint: Ditch Custom CSS for Bootstrap",
|
||||
"dashedName": "waypoint-ditch-custom-css-for-bootstrap",
|
||||
"title": "Waypoint: Ditch Custom CSS for Bootstrap",
|
||||
"difficulty": 2.10,
|
||||
"description": [
|
||||
"We can clean up our code and make our Cat Photo App look more conventional by using Bootstrap's built-in styles instead of the custom styles we created earlier.",
|
||||
@ -887,8 +877,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08845",
|
||||
"name": "Waypoint: Create a Custom Heading",
|
||||
"dashedName": "waypoint-create-a-custom-heading",
|
||||
"title": "Waypoint: Create a Custom Heading",
|
||||
"difficulty": 2.11,
|
||||
"description": [
|
||||
"We will make a simple heading for our Cat Photo App by putting them in the same row.",
|
||||
@ -976,8 +965,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedd08845",
|
||||
"name": "Waypoint: Add Font Awesome Icons to our Buttons",
|
||||
"dashedName": "waypoint-add-font-awesome-icons-to-our-buttons",
|
||||
"title": "Waypoint: Add Font Awesome Icons to our Buttons",
|
||||
"difficulty": 2.12,
|
||||
"description": [
|
||||
"Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the \".svg\" file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.",
|
||||
@ -1061,8 +1049,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedc08845",
|
||||
"name": "Waypoint: Add Font Awesome Icons to all of our Buttons",
|
||||
"dashedName": "waypoint-add-font-awesome-icons-to-all-of-our-Buttons",
|
||||
"title": "Waypoint: Add Font Awesome Icons to all of our Buttons",
|
||||
"difficulty": 2.13,
|
||||
"description": [
|
||||
"Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the \".svg\" file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.",
|
||||
@ -1146,8 +1133,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedb08845",
|
||||
"name": "Waypoint: Responsively Style Radio Buttons",
|
||||
"dashedName": "waypoint-responsively-style-radio-buttons",
|
||||
"title": "Waypoint: Responsively Style Radio Buttons",
|
||||
"difficulty": 2.14,
|
||||
"description": [
|
||||
"You can use Bootstrap's \"col-xs-*\" classes on <code>form</code> elements, too! This way, our radio buttons will be evenly spread out across the page, regardless of how wide the screen resolution is.",
|
||||
@ -1231,8 +1217,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aeda08845",
|
||||
"name": "Waypoint: Responsively Style Checkboxes",
|
||||
"dashedName": "waypoint-responsively-style-checkboxes",
|
||||
"title": "Waypoint: Responsively Style Checkboxes",
|
||||
"difficulty": 2.15,
|
||||
"description": [
|
||||
"You can use Bootstrap's \"col-xs-*\" classes on <code>form</code> elements, too! This way, our checkboxes will be evenly spread out across the page, regardless of how wide the screen resolution is.",
|
||||
@ -1323,8 +1308,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aed908845",
|
||||
"name": "Waypoint: Style Text Inputs as Form Controls",
|
||||
"dashedName": "waypoint-style-text-inputs-as-form-controls",
|
||||
"title": "Waypoint: Style Text Inputs as Form Controls",
|
||||
"difficulty": 2.16,
|
||||
"description": [
|
||||
"You can add the \"fa-paper-plane\" Font Awesome icon by adding <code><i class=\"fa fa-paper-plane\"></i></code> within your submit <code>button</code> element.",
|
||||
@ -1424,8 +1408,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908845",
|
||||
"name": "Waypoint: Line up Form Elements Responsively with Bootstrap",
|
||||
"dashedName": "waypoint-line-up-form-elements-responsively-with-bootstrap",
|
||||
"title": "Waypoint: Line up Form Elements Responsively with Bootstrap",
|
||||
"difficulty": 2.17,
|
||||
"description": [
|
||||
"Now let's get your form <code>input</code> and your submission <code>button</code> on the same line. We'll do this the same way we have previously: by using a <code>div</code> element with the class \"row\", and other <code>div</code> elements within it using the \"col-xs-*\" class.",
|
||||
@ -1526,8 +1509,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908846",
|
||||
"name": "Waypoint: Create a Bootstrap Headline",
|
||||
"dashedName": "waypoint-create-a-bootstrap-headline",
|
||||
"title": "Waypoint: Create a Bootstrap Headline",
|
||||
"difficulty": 2.18,
|
||||
"description": [
|
||||
"Now let's build something from scratch to practice our HTML, CSS and Bootstrap skills.",
|
||||
@ -1561,8 +1543,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908746",
|
||||
"name": "Waypoint: House our page within a Bootstrap Container Fluid Div",
|
||||
"dashedName": "waypoint-house-our-page-within-a-bootstrap-container-fluid-div",
|
||||
"title": "Waypoint: House our page within a Bootstrap Container Fluid Div",
|
||||
"difficulty": 2.18,
|
||||
"description": [
|
||||
"Now let's make sure all the content on your page is mobile-responsive.",
|
||||
@ -1591,8 +1572,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9bec908846",
|
||||
"name": "Waypoint: Create a Bootstrap Row",
|
||||
"dashedName": "waypoint-create-a-bootstrap-row",
|
||||
"title": "Waypoint: Create a Bootstrap Row",
|
||||
"difficulty": 2.19,
|
||||
"description": [
|
||||
"Now we'll create a Bootstrap row for our inline elements.",
|
||||
@ -1624,8 +1604,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908847",
|
||||
"name": "Waypoint: Split your Bootstrap Row",
|
||||
"dashedName": "waypoint-split-your-bootstrap-row",
|
||||
"title": "Waypoint: Split your Bootstrap Row",
|
||||
"difficulty": 2.20,
|
||||
"description": [
|
||||
"Now that we have a Bootstrap Row, let's split it into two columns to house our elements.",
|
||||
@ -1656,8 +1635,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908848",
|
||||
"name": "Waypoint: Create Bootstrap Wells",
|
||||
"dashedName": "waypoint-create-bootstrap-wells",
|
||||
"title": "Waypoint: Create Bootstrap Wells",
|
||||
"difficulty": 2.21,
|
||||
"description": [
|
||||
"Bootstrap has a class called \"well\" that can create a visual sense of depth for your columns.",
|
||||
@ -1694,8 +1672,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908849",
|
||||
"name": "Waypoint: Add Elements within your Bootstrap Wells",
|
||||
"dashedName": "waypoint-add-elements-within-your-bootstrap-wells",
|
||||
"title": "Waypoint: Add Elements within your Bootstrap Wells",
|
||||
"difficulty": 2.22,
|
||||
"description": [
|
||||
"Now we're several <code>div</code> elements deep on each column of our row. This is as deep as we'll need to go. Now we can add our <code>button</code> elements.",
|
||||
@ -1734,8 +1711,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908850",
|
||||
"name": "Waypoint: Apply the Default Bootstrap Button Style",
|
||||
"dashedName": "waypoint-apply-the-default-bootstrap-button-style",
|
||||
"title": "Waypoint: Apply the Default Bootstrap Button Style",
|
||||
"difficulty": 2.23,
|
||||
"description": [
|
||||
"Bootstrap has another button class called \"btn-default\"",
|
||||
@ -1780,8 +1756,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908852",
|
||||
"name": "Waypoint: Create a Class to Target with jQuery Selectors",
|
||||
"dashedName": "waypoint-create-a-class-to-target-with-jquery-selectors",
|
||||
"title": "Waypoint: Create a Class to Target with jQuery Selectors",
|
||||
"difficulty": 2.24,
|
||||
"description": [
|
||||
"Not every class needs to have corresponding CSS. Sometimes we create classes just for the purpose of selecting these elements more easily using jQuery.",
|
||||
@ -1825,8 +1800,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908853",
|
||||
"name": "Waypoint: Add ID Attributes to Bootstrap Elements",
|
||||
"dashedName": "waypoint-add-id-attributes-to-bootstrap-elements",
|
||||
"title": "Waypoint: Add ID Attributes to Bootstrap Elements",
|
||||
"difficulty": 2.25,
|
||||
"description": [
|
||||
"Recall that in addition to class attributes, you can give each of your elements an id attribute.",
|
||||
@ -1874,8 +1848,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908854",
|
||||
"name": "Waypoint: Label Bootstrap Wells",
|
||||
"dashedName": "waypoint-label-bootstrap-wells",
|
||||
"title": "Waypoint: Label Bootstrap Wells",
|
||||
"difficulty": 2.26,
|
||||
"description": [
|
||||
"For the sake of clarity, let's label both of our wells with their ids.",
|
||||
@ -1922,8 +1895,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908855",
|
||||
"name": "Waypoint: Give Each Element a Unique ID",
|
||||
"dashedName": "waypoint-give-each-element-a-unique-id",
|
||||
"title": "Waypoint: Give Each Element a Unique ID",
|
||||
"difficulty": 2.27,
|
||||
"description": [
|
||||
"We will also want to be able to use jQuery to target each button by its unique id.",
|
||||
@ -1974,8 +1946,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908856",
|
||||
"name": "Waypoint: Label Bootstrap Buttons",
|
||||
"dashedName": "waypoint-label-bootstrap-buttons",
|
||||
"title": "Waypoint: Label Bootstrap Buttons",
|
||||
"difficulty": 2.28,
|
||||
"description": [
|
||||
"Just like we labled our wells, we want to label our buttons.",
|
||||
@ -2026,8 +1997,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908857",
|
||||
"name": "Waypoint: Use Comments to Clarify Code",
|
||||
"dashedName": "waypoint-use-comments-to-clarify-code",
|
||||
"title": "Waypoint: Use Comments to Clarify Code",
|
||||
"difficulty": 2.29,
|
||||
"description": [
|
||||
"When we start using jQuery, we will modify HTML elements without needing to actually change them in HTML.",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Expert Algorithm Scripting",
|
||||
"title": "Expert Algorithm Scripting",
|
||||
"order": 0.013,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "aff0395860f5d3034dc0bfc9",
|
||||
"name": "Bonfire: Validate US Telephone Numbers",
|
||||
"dashedName": "bonfire-validate-us-telephone-numbers",
|
||||
"title": "Bonfire: Validate US Telephone Numbers",
|
||||
"difficulty": "4.01",
|
||||
"description": [
|
||||
"Return true if the passed string is a valid US phone number",
|
||||
@ -65,8 +64,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a3f503de51cf954ede28891d",
|
||||
"name": "Bonfire: Symmetric Difference",
|
||||
"dashedName": "bonfire-symmetric-difference",
|
||||
"title": "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.",
|
||||
@ -104,8 +102,7 @@
|
||||
},
|
||||
{
|
||||
"id": "aa2e6f85cab2ab736c9a9b24",
|
||||
"name": "Bonfire: Exact Change",
|
||||
"dashedName": "bonfire-exact-change",
|
||||
"title": "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.",
|
||||
@ -160,8 +157,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a56138aff60341a09ed6c480",
|
||||
"name": "Bonfire: Inventory Update",
|
||||
"dashedName": "bonfire-inventory-update",
|
||||
"title": "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.",
|
||||
@ -215,8 +211,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a7bf700cd123b9a54eef01d5",
|
||||
"name": "Bonfire: No repeats please",
|
||||
"dashedName": "bonfire-no-repeats-please",
|
||||
"title": "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.",
|
||||
@ -257,8 +252,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a19f0fbe1872186acd434d5a",
|
||||
"name": "Bonfire: Friendly Date Ranges",
|
||||
"dashedName": "bonfire-friendly-date-ranges",
|
||||
"title": "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.",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Get Set for Free Code Camp",
|
||||
"title": "Get Set for Free Code Camp",
|
||||
"order": 0.001,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7124d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn how Free Code Camp Works",
|
||||
"dashedName": "waypoint-learn-how-free-code-camp-works",
|
||||
"title": "Waypoint: Learn how Free Code Camp Works",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["125407438"],
|
||||
"description": [
|
||||
@ -56,8 +55,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Join Our Chat Room",
|
||||
"dashedName": "waypoint-join-our-chat-room",
|
||||
"title": "Waypoint: Join Our Chat Room",
|
||||
"difficulty": 0.02,
|
||||
"challengeSeed": ["131574135"],
|
||||
"description": [
|
||||
@ -118,8 +116,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bdff",
|
||||
"name": "Waypoint: Preview our Challenge Map",
|
||||
"dashedName": "waypoint-preview-our-challenge-map",
|
||||
"title": "Waypoint: Preview our Challenge Map",
|
||||
"difficulty": 0.03,
|
||||
"challengeSeed": ["125407437"],
|
||||
"description": [
|
||||
@ -160,8 +157,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Browse our Wiki",
|
||||
"dashedName": "waypoint-browse-our-wiki",
|
||||
"title": "Waypoint: Browse our Wiki",
|
||||
"difficulty": 0.04,
|
||||
"challengeSeed": ["125407435"],
|
||||
"description": [
|
||||
@ -200,8 +196,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd2f",
|
||||
"name": "Waypoint: Customize your Portfolio Page",
|
||||
"dashedName": "waypoint-customize-your-portfolio-page",
|
||||
"title": "Waypoint: Customize your Portfolio Page",
|
||||
"difficulty": 0.05,
|
||||
"challengeSeed": ["125407433"],
|
||||
"description": [
|
||||
@ -246,8 +241,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c441eddfaeb5bd3f",
|
||||
"name": "Waypoint: Try Camper News",
|
||||
"dashedName": "waypoint-try-camper-news",
|
||||
"title": "Waypoint: Try Camper News",
|
||||
"difficulty": 0.06,
|
||||
"challengeSeed": ["124553410"],
|
||||
"description": [
|
||||
@ -297,8 +291,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c441eddfaeb5bd3e",
|
||||
"name": "Waypoint: Meet Other Campers in your City",
|
||||
"dashedName": "waypoint-meet-other-campers-in-your-city",
|
||||
"title": "Waypoint: Meet Other Campers in your City",
|
||||
"difficulty": 0.07,
|
||||
"challengeSeed": ["127358841"],
|
||||
"description": [
|
||||
@ -345,8 +338,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c431eddfaeb5bd3e",
|
||||
"name": "Waypoint: Add Free Code Camp to your LinkedIn Profile",
|
||||
"dashedName": "waypoint-add-free-code-camp-to-your-linkedin-profile",
|
||||
"title": "Waypoint: Add Free Code Camp to your LinkedIn Profile",
|
||||
"difficulty": 0.08,
|
||||
"challengeSeed": ["131574134"],
|
||||
"description": [
|
||||
@ -376,8 +368,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7137d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Get Help the Hacker Way with RSAP",
|
||||
"dashedName": "waypoint-get-help-the-hacker-way-with-rsap",
|
||||
"title": "Waypoint: Get Help the Hacker Way with RSAP",
|
||||
"difficulty": 0.09,
|
||||
"challengeSeed": ["125407432"],
|
||||
"description": [
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Git",
|
||||
"title": "Git",
|
||||
"order" : 0.014,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7353d8c341eddeaeb5bd0f",
|
||||
"name": "Waypoint: Save your Code Revisions Forever with Git",
|
||||
"dashedName": "waypoint-save-your-code-revisions-forever-with-git",
|
||||
"title": "Waypoint: Save your Code Revisions Forever with Git",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["133316034"],
|
||||
"description": [
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Hikes",
|
||||
"title": "Hikes",
|
||||
"order": 0.050,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7128d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 1: The 4 Basic Parts of a Computer",
|
||||
"dashedName": "hike-computer-basics-1-the-4-basic-parts-of-a-computer",
|
||||
"title": "Hike: Computer Basics 1: The 4 Basic Parts of a Computer",
|
||||
"difficulty": 9.01,
|
||||
"challengeSeed": [
|
||||
"132542064"
|
||||
@ -44,8 +43,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7127d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 2: More Computer Hardware",
|
||||
"dashedName": "hike-computer-basics-2-more-computer-hardware",
|
||||
"title": "Hike: Computer Basics 2: More Computer Hardware",
|
||||
"difficulty": 9.02,
|
||||
"challengeSeed": [
|
||||
"132542458"
|
||||
@ -83,8 +81,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 3: Intro to Binary Code",
|
||||
"dashedName": "hike-computer-basics-3-intro-to-binary-code",
|
||||
"title": "Hike: Computer Basics 3: Intro to Binary Code",
|
||||
"difficulty": 9.03,
|
||||
"challengeSeed": [
|
||||
"132542757"
|
||||
@ -117,8 +114,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 4: Decoding a Binary Number",
|
||||
"dashedName": "hike-computer-basics-4-decoding-a-binary-number",
|
||||
"title": "Hike: Computer Basics 4: Decoding a Binary Number",
|
||||
"difficulty": 9.04,
|
||||
"challengeSeed": [
|
||||
"132543332"
|
||||
@ -153,8 +149,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7124d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 5: How To Measure Data Size",
|
||||
"dashedName": "hike-computer-basics-5-how-to-measure-data-size",
|
||||
"title": "Hike: Computer Basics 5: How To Measure Data Size",
|
||||
"difficulty": 9.05,
|
||||
"challengeSeed": [
|
||||
"132543959"
|
||||
@ -192,8 +187,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 6: Measuring Data Speed",
|
||||
"dashedName": "hike-computer-basics-6-measuring-data-speed",
|
||||
"title": "Hike: Computer Basics 6: Measuring Data Speed",
|
||||
"difficulty": 9.06,
|
||||
"challengeSeed": [
|
||||
"132545171"
|
||||
@ -229,8 +223,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7122d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 7: Binary Bytes",
|
||||
"dashedName": "hike-computer-basics-7-binary-bytes",
|
||||
"title": "Hike: Computer Basics 7: Binary Bytes",
|
||||
"difficulty": 9.07,
|
||||
"challengeSeed": [
|
||||
"132545417"
|
||||
@ -263,8 +256,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7121d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 8: Types of Computers",
|
||||
"dashedName": "hike-computer-basics-8-types-of-computers",
|
||||
"title": "Hike: Computer Basics 8: Types of Computers",
|
||||
"difficulty": 9.08,
|
||||
"challengeSeed": [
|
||||
"132546182"
|
||||
@ -302,8 +294,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7120d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 9: More on the Motherboard",
|
||||
"dashedName": "hike-computer-basics-9-more-on-the-motherboard",
|
||||
"title": "Hike: Computer Basics 9: More on the Motherboard",
|
||||
"difficulty": 9.09,
|
||||
"challengeSeed": [
|
||||
"132547285"
|
||||
@ -343,8 +334,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712fd8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 10: Data Networks",
|
||||
"dashedName": "hike-computer-basics-10-data-networks",
|
||||
"title": "Hike: Computer Basics 10: Data Networks",
|
||||
"difficulty": 9.10,
|
||||
"challengeSeed": [
|
||||
"132547590"
|
||||
@ -383,8 +373,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712ed8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 11: IP Addresses",
|
||||
"dashedName": "hike-computer-basics-11-ip-addresses",
|
||||
"title": "Hike: Computer Basics 11: IP Addresses",
|
||||
"difficulty": 9.11,
|
||||
"challengeSeed": [
|
||||
"132548071"
|
||||
@ -422,8 +411,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712dd8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 12: How the Internet Works",
|
||||
"dashedName": "hike-computer-basics-12-how-the-internet-works",
|
||||
"title": "Hike: Computer Basics 12: How the Internet Works",
|
||||
"difficulty": 9.12,
|
||||
"challengeSeed": [
|
||||
"132548579"
|
||||
@ -461,8 +449,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712cd8c441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Basics 13: Software",
|
||||
"dashedName": "hike-computer-basics-13-software",
|
||||
"title": "Hike: Computer Basics 13: Software",
|
||||
"difficulty": 9.13,
|
||||
"challengeSeed": [
|
||||
"132548908"
|
||||
@ -494,8 +481,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712bd8c441eddfbeb5bddf",
|
||||
"name": "Hike: What Do Programmers Do?",
|
||||
"dashedName": "hike-what-do-programmers-do",
|
||||
"title": "Hike: What Do Programmers Do?",
|
||||
"difficulty": 9.14,
|
||||
"challengeSeed": [
|
||||
"133166912"
|
||||
@ -531,8 +517,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712ad8c441eddfbeb5bddf",
|
||||
"name": "Hike: Console and Logging",
|
||||
"dashedName": "hike-console-and-logging",
|
||||
"title": "Hike: Console and Logging",
|
||||
"difficulty": 9.15,
|
||||
"challengeSeed": [
|
||||
"133170880"
|
||||
@ -568,8 +553,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7119d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Variables In Code",
|
||||
"dashedName": "hike-variables-in-code",
|
||||
"title": "Hike: Variables In Code",
|
||||
"difficulty": 9.16,
|
||||
"challengeSeed": [
|
||||
"133172920"
|
||||
@ -601,8 +585,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7029d8c441eddfbeb5bddf",
|
||||
"name": "Hike: Source Code",
|
||||
"dashedName": "hike-source-code",
|
||||
"title": "Hike: Source Code",
|
||||
"difficulty": 9.17,
|
||||
"challengeSeed": [
|
||||
"133177129"
|
||||
@ -646,8 +629,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8b441eddfbeb5bddf",
|
||||
"name": "Hike: Routers and Packets",
|
||||
"dashedName": "hike-routers-and-packets",
|
||||
"title": "Hike: Routers and Packets",
|
||||
"difficulty": 9.18,
|
||||
"challengeSeed": [
|
||||
"133181251"
|
||||
@ -697,8 +679,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8a441eddfbeb5bddf",
|
||||
"name": "Hike: Hardware: Chips and Moore's Law",
|
||||
"dashedName": "hike-chips-and-moores-law",
|
||||
"title": "Hike: Hardware: Chips and Moore's Law",
|
||||
"difficulty": 9.19,
|
||||
"challengeSeed": [
|
||||
"133182057"
|
||||
@ -734,8 +715,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7129d80441eddfbeb5bddf",
|
||||
"name": "Hike: Analog vs Digital and File Compression",
|
||||
"dashedName": "hike-analog-vs-digital-and-file-compression",
|
||||
"title": "Hike: Analog vs Digital and File Compression",
|
||||
"difficulty": 9.20,
|
||||
"challengeSeed": [
|
||||
"133182587"
|
||||
@ -773,8 +753,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7129d89441eddfbeb5bddf",
|
||||
"name": "Hike: Computer Security",
|
||||
"dashedName": "hike-computer-security",
|
||||
"title": "Hike: Computer Security",
|
||||
"difficulty": 9.21,
|
||||
"challengeSeed": [
|
||||
"133186284"
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "HTML5 and CSS",
|
||||
"title": "HTML5 and CSS",
|
||||
"order": 0.002,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7123c8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Say Hello to HTML Elements",
|
||||
"dashedName": "waypoint-say-hello-to-html-elements",
|
||||
"title": "Waypoint: Say Hello to HTML Elements",
|
||||
"difficulty": 1.01,
|
||||
"description": [
|
||||
"Welcome to Free Code Camp's first coding challenge!",
|
||||
@ -53,8 +52,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf0887a",
|
||||
"name": "Waypoint: Headline with the h2 Element",
|
||||
"dashedName": "waypoint-headline-with-the-h2-element",
|
||||
"title": "Waypoint: Headline with the h2 Element",
|
||||
"difficulty": 1.02,
|
||||
"description": [
|
||||
"Add an <code>h2</code> tag that says \"CatPhotoApp\" to create a second HTML <code>element</code> below your \"Hello World\" <code>h1</code> element.",
|
||||
@ -97,8 +95,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08801",
|
||||
"name": "Waypoint: Inform with the Paragraph Element",
|
||||
"dashedName": "waypoint-inform-with-the-paragraph-element",
|
||||
"title": "Waypoint: Inform with the Paragraph Element",
|
||||
"difficulty": 1.03,
|
||||
"description": [
|
||||
"Create a <code>p</code> element below your <code>h2</code> element, and give it the text \"Hello Paragraph\".",
|
||||
@ -138,8 +135,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08802",
|
||||
"name": "Waypoint: Uncomment HTML",
|
||||
"dashedName": "waypoint-uncomment-html",
|
||||
"title": "Waypoint: Uncomment HTML",
|
||||
"difficulty": 1.04,
|
||||
"description": [
|
||||
"Uncomment your <code>h1</code>, <code>h2</code> and <code>p</code> elements.",
|
||||
@ -188,8 +184,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08804",
|
||||
"name": "Waypoint: Comment out HTML",
|
||||
"dashedName": "waypoint-comment-out-html",
|
||||
"title": "Waypoint: Comment out HTML",
|
||||
"difficulty": 1.05,
|
||||
"description": [
|
||||
"Comment out your <code>h1</code> element and your <code>p</code> element, but leave your <code>h2</code> element uncommented.",
|
||||
@ -235,8 +230,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08833",
|
||||
"name": "Waypoint: Fill in the Blank with Placeholder Text",
|
||||
"dashedName": "waypoint-fill-in-the-blank-with-placeholder-text",
|
||||
"title": "Waypoint: Fill in the Blank with Placeholder Text",
|
||||
"difficulty": 1.06,
|
||||
"description": [
|
||||
"Web developers traditionally use \"Lorem Ipsum\" text as placeholder text. It's called \"Lorem Ipsum\" text because those are the first two words of a famous passage by Cicero of Ancient Rome.",
|
||||
@ -282,8 +276,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fed1348bd9aedf08833",
|
||||
"name": "Waypoint: Delete HTML Elements",
|
||||
"dashedName": "waypoint-delete-html-elements",
|
||||
"title": "Waypoint: Delete HTML Elements",
|
||||
"difficulty": 1.07,
|
||||
"description": [
|
||||
"Delete your <code>h1</code> element so we can simplify our view.",
|
||||
@ -326,8 +319,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08803",
|
||||
"name": "Waypoint: Change the Color of Text",
|
||||
"dashedName": "waypoint-change-the-color-of-text",
|
||||
"title": "Waypoint: Change the Color of Text",
|
||||
"difficulty": 1.08,
|
||||
"description": [
|
||||
"Change your <code>h2</code> element's style so that its text color is red.",
|
||||
@ -368,8 +360,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08805",
|
||||
"name": "Waypoint: Use CSS Selectors to Style Elements",
|
||||
"dashedName": "waypoint-use-css-selectors-to-style-elements",
|
||||
"title": "Waypoint: Use CSS Selectors to Style Elements",
|
||||
"difficulty": 1.09,
|
||||
"description": [
|
||||
"Delete your <code>h2</code> element's style attribute and instead create a CSS <code>style</code> element. Add the necessary CSS to turn all <code>h2</code> elements blue.",
|
||||
@ -423,8 +414,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aecf08806",
|
||||
"name": "Waypoint: Use a CSS Class to Style an Element",
|
||||
"dashedName": "waypoint-use-a-css-class-to-style-an-element",
|
||||
"title": "Waypoint: Use a CSS Class to Style an Element",
|
||||
"difficulty": 1.11,
|
||||
"description": [
|
||||
"Create a CSS class called \"red-text\" and apply it to your <code>h2</code> element.",
|
||||
@ -477,8 +467,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aefe08806",
|
||||
"name": "Waypoint: Style Multiple Elements with a CSS Class",
|
||||
"dashedName": "waypoint-style-multiple-elements-with-a-css-class",
|
||||
"title": "Waypoint: Style Multiple Elements with a CSS Class",
|
||||
"difficulty": 1.12,
|
||||
"description": [
|
||||
"Apply the \"red-text\" class to your <code>h2</code> and <code>p</code> elements.",
|
||||
@ -522,8 +511,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08806",
|
||||
"name": "Waypoint: Change the Font Size of an Element",
|
||||
"dashedName": "waypoint-change-the-font-size-of-an-element",
|
||||
"title": "Waypoint: Change the Font Size of an Element",
|
||||
"difficulty": 1.13,
|
||||
"description": [
|
||||
"Create a second <code>p</code> element with the following Kitty Ipsum text: <code>Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.</code>",
|
||||
@ -569,8 +557,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08807",
|
||||
"name": "Waypoint: Set the Font Family of an Element",
|
||||
"dashedName": "waypoint-set-the-font-family-of-an-element",
|
||||
"title": "Waypoint: Set the Font Family of an Element",
|
||||
"difficulty": 1.14,
|
||||
"description": [
|
||||
"Make all of your <code>p</code> elements use the \"Monospace\" font.",
|
||||
@ -616,8 +603,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08807",
|
||||
"name": "Waypoint: Import a Google Font",
|
||||
"dashedName": "waypoint-import-a-google-font",
|
||||
"title": "Waypoint: Import a Google Font",
|
||||
"difficulty": 1.15,
|
||||
"description": [
|
||||
"Apply the <code>font-family</code> of \"Lobster\" to your <code>h2</code> element.",
|
||||
@ -670,8 +656,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08808",
|
||||
"name": "Waypoint: Specify How Fonts Should Degrade",
|
||||
"dashedName": "waypoint-specify-how-fonts-should-degrade",
|
||||
"title": "Waypoint: Specify How Fonts Should Degrade",
|
||||
"difficulty": 1.16,
|
||||
"description": [
|
||||
"There are several default fonts that are available in all browsers. These include \"Monospace\", \"Serif\" and \"Sans-Serif\". Leave \"Lobster\" as the font-family for your <code>h2</code> elements. Make them \"degrade\" to \"Monospace\" when \"Lobster\" isn't available.",
|
||||
@ -728,8 +713,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08812",
|
||||
"name": "Waypoint: Add Images to your Website",
|
||||
"dashedName": "waypoint-add-images-to-your-website",
|
||||
"title": "Waypoint: Add Images to your Website",
|
||||
"difficulty": 1.17,
|
||||
"description": [
|
||||
"You can add images to your website by using the <code>img</code> element, and point to an specific image's URL using the <code>src</code> attribute.",
|
||||
@ -783,8 +767,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9acdf08812",
|
||||
"name": "Waypoint: Size your Images",
|
||||
"dashedName": "waypoint-size-your-images",
|
||||
"title": "Waypoint: Size your Images",
|
||||
"difficulty": 1.18,
|
||||
"description": [
|
||||
"CSS has an attribute called <code>width</code> that controls an element's width. Just like with fonts, we'll use pixels(px) to specify the image's width.",
|
||||
@ -839,8 +822,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9bedf08813",
|
||||
"name": "Waypoint: Add Borders Around your Elements",
|
||||
"dashedName": "waypoint-add-borders-around-your-elements",
|
||||
"title": "Waypoint: Add Borders Around your Elements",
|
||||
"difficulty": 1.19,
|
||||
"description": [
|
||||
"CSS borders have attributes like style, color and width.",
|
||||
@ -902,8 +884,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08814",
|
||||
"name": "Waypoint: Add Rounded Corners with a Border Radius",
|
||||
"dashedName": "waypoint-add-rounded-corners-with-a-border-radius",
|
||||
"title": "Waypoint: Add Rounded Corners with a Border Radius",
|
||||
"difficulty": 1.20,
|
||||
"description": [
|
||||
"Your cat photo currently has sharp corners. We can round out those corners with a CSS attribute called <code>border-radius</code>.",
|
||||
@ -968,8 +949,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08815",
|
||||
"name": "Waypoint: Make Circular Images with a Border Radius",
|
||||
"dashedName": "waypoint-make-circular-images-with-a-border-radius",
|
||||
"title": "Waypoint: Make Circular Images with a Border Radius",
|
||||
"difficulty": 1.21,
|
||||
"description": [
|
||||
"In addition to pixels, you can also specify a <code>border-radius</code> using a percentage.",
|
||||
@ -1033,8 +1013,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08816",
|
||||
"name": "Waypoint: Link to External Pages with Anchor Elements",
|
||||
"dashedName": "waypoint-link-to-external-pages-with-anchor-elements",
|
||||
"title": "Waypoint: Link to External Pages with Anchor Elements",
|
||||
"difficulty": 1.22,
|
||||
"description": [
|
||||
"<code>a</code> elements or \"anchor\" elements, are used to link to content outside of the current page.",
|
||||
@ -1104,8 +1083,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08817",
|
||||
"name": "Waypoint: Nest an Anchor Element within a Paragraph",
|
||||
"dashedName": "waypoint-nest-an-anchor-element-within-a-paragraph",
|
||||
"title": "Waypoint: Nest an Anchor Element within a Paragraph",
|
||||
"difficulty": 1.23,
|
||||
"description": [
|
||||
"Again, here's a diagram of an <code>a</code> element for your reference:",
|
||||
@ -1180,8 +1158,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08817",
|
||||
"name": "Waypoint: Make Dead Links using the Hash Symbol",
|
||||
"dashedName": "waypoint-make-dead-links-using-the-hash-symbol",
|
||||
"title": "Waypoint: Make Dead Links using the Hash Symbol",
|
||||
"difficulty": 1.24,
|
||||
"description": [
|
||||
"Sometimes you want to add <code>a</code> elements to your website before you know where they will link.",
|
||||
@ -1249,8 +1226,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08820",
|
||||
"name": "Waypoint: Turn an Image into a Link",
|
||||
"dashedName": "waypoint-turn-an-image-into-a-link",
|
||||
"title": "Waypoint: Turn an Image into a Link",
|
||||
"difficulty": 1.25,
|
||||
"description": [
|
||||
"You can make elements into links by nesting them within an <code>a</code> element.",
|
||||
@ -1322,8 +1298,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08818",
|
||||
"name": "Waypoint: Add Alt Text to an Image for Accessibility",
|
||||
"dashedName": "waypoint-add-alt-text-to-an-image-for-accessibility",
|
||||
"title": "Waypoint: Add Alt Text to an Image for Accessibility",
|
||||
"difficulty": 1.26,
|
||||
"description": [
|
||||
"<code>alt</code> attributes, also known as \"alt text\", are what browsers will display if they fail to load the image. <code>alt</code> attributes are also important for blind or visually impaired users to understand what an image portrays. And search engines also look at <code>alt</code> attributes.",
|
||||
@ -1393,8 +1368,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08827",
|
||||
"name": "Waypoint: Create a Bulleted Unordered List",
|
||||
"dashedName": "waypoint-create-a-bulleted-unordered-list",
|
||||
"title": "Waypoint: Create a Bulleted Unordered List",
|
||||
"difficulty": 1.27,
|
||||
"description": [
|
||||
"HTML has a special element for creating unordered lists, or bullet point-style lists.",
|
||||
@ -1471,8 +1445,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08828",
|
||||
"name": "Waypoint: Create an Ordered List",
|
||||
"dashedName": "waypoint-create-an-ordered-list",
|
||||
"title": "Waypoint: Create an Ordered List",
|
||||
"difficulty": 1.28,
|
||||
"description": [
|
||||
"HTML has a special element for creating ordered lists, or numbered-style lists.",
|
||||
@ -1552,8 +1525,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08829",
|
||||
"name": "Waypoint: Create a Text Field",
|
||||
"dashedName": "waypoint-create-a-text-field",
|
||||
"title": "Waypoint: Create a Text Field",
|
||||
"difficulty": 1.29,
|
||||
"description": [
|
||||
"Now let's create a web form.",
|
||||
@ -1631,8 +1603,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08830",
|
||||
"name": "Waypoint: Add Placeholder Text to a Text Field",
|
||||
"dashedName": "waypoint-add-placeholder-text-to-a-text-field",
|
||||
"title": "Waypoint: Add Placeholder Text to a Text Field",
|
||||
"difficulty": 1.30,
|
||||
"description": [
|
||||
"Your placeholder text is what appears in your text <code>input</code> before your user has inputed anything.",
|
||||
@ -1711,8 +1682,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08830",
|
||||
"name": "Waypoint: Create a Form Element",
|
||||
"dashedName": "waypoint-create-a-form-element",
|
||||
"title": "Waypoint: Create a Form Element",
|
||||
"difficulty": 1.31,
|
||||
"description": [
|
||||
"You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an action on your <code>form</code> element.",
|
||||
@ -1793,8 +1763,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedd08830",
|
||||
"name": "Waypoint: Add a Submit Button to a Form",
|
||||
"dashedName": "waypoint-add-a-submit-button-to-a-form",
|
||||
"title": "Waypoint: Add a Submit Button to a Form",
|
||||
"difficulty": 1.32,
|
||||
"description": [
|
||||
"Let's add a submit button to your form. Clicking this button will send the data from your form to the URL you specified with your form's <code>action</code> attribute.",
|
||||
@ -1877,8 +1846,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedc08830",
|
||||
"name": "Waypoint: Use HTML5 to Require a Field",
|
||||
"dashedName": "waypoint-use-html5-to-require-a-field",
|
||||
"title": "Waypoint: Use HTML5 to Require a Field",
|
||||
"difficulty": 1.33,
|
||||
"description": [
|
||||
"You can require specific form fields so that your user will not be able to submit your form until he or she has filled them out.",
|
||||
@ -1959,8 +1927,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08834",
|
||||
"name": "Waypoint: Create a Set of Radio Buttons",
|
||||
"dashedName": "waypoint-create-a-set-of-radio-buttons",
|
||||
"title": "Waypoint: Create a Set of Radio Buttons",
|
||||
"difficulty": 1.34,
|
||||
"description": [
|
||||
"You can use \"radio buttons\" for questions where you want the user to only give you one answer.",
|
||||
@ -2052,8 +2019,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08835",
|
||||
"name": "Waypoint: Create a Set of Checkboxes",
|
||||
"dashedName": "waypoint-create-a-set-of-checkboxes",
|
||||
"title": "Waypoint: Create a Set of Checkboxes",
|
||||
"difficulty": 1.35,
|
||||
"description": [
|
||||
"Forms commonly use \"checkboxes\" for questions that may have more than one answer.",
|
||||
@ -2142,8 +2108,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedd08835",
|
||||
"name": "Waypoint: Check Radio Buttons and Checkboxes by Default",
|
||||
"dashedName": "waypoint-check-radio-buttons-and-checkboxes-by-default",
|
||||
"title": "Waypoint: Check Radio Buttons and Checkboxes by Default",
|
||||
"difficulty": 1.37,
|
||||
"description": [
|
||||
"You can set a checkbox or radio button to be checked by default using the <code>checked</code> attribute.",
|
||||
@ -2230,8 +2195,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08835",
|
||||
"name": "Waypoint: Nest Many Elements within a Single Div Element",
|
||||
"dashedName": "waypoint-nest-many-elements-within-a-single-div-element",
|
||||
"title": "Waypoint: Nest Many Elements within a Single Div Element",
|
||||
"difficulty": 1.38,
|
||||
"description": [
|
||||
"The <code>div</code> element, or \"Division\" element, is a general purpose container for other elements.",
|
||||
@ -2325,8 +2289,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fed1348bd9aede07836",
|
||||
"name": "Waypoint: Give a Background Color to a Div Element",
|
||||
"dashedName": "waypoint-give-a-background-color-to-a-div-element",
|
||||
"title": "Waypoint: Give a Background Color to a Div Element",
|
||||
"difficulty": 1.39,
|
||||
"description": [
|
||||
"You can set an element's background color with the \"background-color\" attribute.",
|
||||
@ -2412,8 +2375,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87eee1348bd9aede07836",
|
||||
"name": "Waypoint: Set the ID of an Element",
|
||||
"dashedName": "waypoint-set-the-id-of-an-element",
|
||||
"title": "Waypoint: Set the ID of an Element",
|
||||
"difficulty": 1.391,
|
||||
"description": [
|
||||
"In addition to classes, each HTML element can also have an <code>id</code> attribute.",
|
||||
@ -2500,8 +2462,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87dee1348bd9aede07836",
|
||||
"name": "Waypoint: Use an ID Attribute to Style an Element",
|
||||
"dashedName": "waypoint-use-an-id-attribute-to-style-an-element",
|
||||
"title": "Waypoint: Use an ID Attribute to Style an Element",
|
||||
"difficulty": 1.392,
|
||||
"description": [
|
||||
"One cool thing about <code>id</code> attributes is that, like classes, you can style them using CSS.",
|
||||
@ -2590,8 +2551,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad88fee1348bd9aedf08825",
|
||||
"name": "Waypoint: Adjusting the Padding of an Element",
|
||||
"dashedName": "waypoint-adjusting-the-padding-of-an-element",
|
||||
"title": "Waypoint: Adjusting the Padding of an Element",
|
||||
"difficulty": 1.40,
|
||||
"description": [
|
||||
"You may have already noticed this, but all HTML elements are essentially little rectangles.",
|
||||
@ -2661,8 +2621,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08822",
|
||||
"name": "Waypoint: Adjust the Margin of an Element",
|
||||
"dashedName": "waypoint-adjust-the-margin-of-an-element",
|
||||
"title": "Waypoint: Adjust the Margin of an Element",
|
||||
"difficulty": 1.41,
|
||||
"description": [
|
||||
"An element's <code>margin</code> controls the amount of space between an element's <code>border</code> and surrounding elements.",
|
||||
@ -2732,8 +2691,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08823",
|
||||
"name": "Waypoint: Add a Negative Margin to an Element",
|
||||
"dashedName": "waypoint-add-a-negative-margin-to-an-element",
|
||||
"title": "Waypoint: Add a Negative Margin to an Element",
|
||||
"difficulty": 1.42,
|
||||
"description": [
|
||||
"An element's <code>margin</code> controls the amount of space between an element's <code>border</code> and surrounding elements.",
|
||||
@ -2802,8 +2760,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08824",
|
||||
"name": "Waypoint: Add Different Padding to Each Side of an Element",
|
||||
"dashedName": "waypoint-add-different-padding-to-each-side-of-an-element",
|
||||
"title": "Waypoint: Add Different Padding to Each Side of an Element",
|
||||
"difficulty": 1.43,
|
||||
"description": [
|
||||
"Sometimes you will want to customize an element so that it has different <code>padding</code> on each of its sides.",
|
||||
@ -2874,8 +2831,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1248bd9aedf08824",
|
||||
"name": "Waypoint: Add Different Margins to Each Side of an Element",
|
||||
"dashedName": "waypoint-add-different-margins-to-each-side-of-an-element",
|
||||
"title": "Waypoint: Add Different Margins to Each Side of an Element",
|
||||
"difficulty": 1.44,
|
||||
"description": [
|
||||
"Give the green box a <code>margin</code> of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
@ -2945,8 +2901,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08826",
|
||||
"name": "Waypoint: Use Clockwise Notation to Specify the Padding of an Element",
|
||||
"dashedName": "waypoint-use-clockwise-notation-to-specify-the-padding-of-an-element",
|
||||
"title": "Waypoint: Use Clockwise Notation to Specify the Padding of an Element",
|
||||
"difficulty": 1.44,
|
||||
"description": [
|
||||
"Instead of specifying an element's <code>padding-top</code>, <code>padding-right</code>, <code>padding-bottom</code>, and <code>padding-left</code> attributes, you can specify them all in one line, like this: <code>padding: 10px 20px 10px 20px;</code>.",
|
||||
@ -3014,8 +2969,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9afdf08726",
|
||||
"name": "Waypoint: Use Clockwise Notation to Specify the Margin of an Element",
|
||||
"dashedName": "waypoint-use-clockwise-notation-to-specify-the-margin-of-an-element",
|
||||
"title": "Waypoint: Use Clockwise Notation to Specify the Margin of an Element",
|
||||
"difficulty": 1.45,
|
||||
"description": [
|
||||
"Let's try this again, but with <code>margin</code> this time.",
|
||||
@ -3028,7 +2982,6 @@
|
||||
"assert($('.green-box').css('margin-right') === '20px', 'Your <code>green-box</code> class should give the right of elements 20px of <code>margin</code>.')",
|
||||
"assert($('.green-box').css('margin-bottom') === '20px', 'Your <code>green-box</code> class should give the bottom of elements 20px of <code>margin</code>.')",
|
||||
"assert($('.green-box').css('margin-left') === '40px', 'Your <code>green-box</code> class should give the left of elements 40px of <code>margin</code>.')"
|
||||
|
||||
],
|
||||
"challengeSeed": [
|
||||
"<style>",
|
||||
@ -3085,8 +3038,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08736",
|
||||
"name": "Waypoint: Style the HTML Body Element",
|
||||
"dashedName": "waypoint-style-the-html-body-element",
|
||||
"title": "Waypoint: Style the HTML Body Element",
|
||||
"difficulty": 1.46,
|
||||
"description": [
|
||||
"Now let's start fresh and talk about CSS inheritance.",
|
||||
@ -3118,8 +3070,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08746",
|
||||
"name": "Waypoint: Inherit Styles from the Body Element",
|
||||
"dashedName": "waypoint-inherit-styles-from-the-body-element",
|
||||
"title": "Waypoint: Inherit Styles from the Body Element",
|
||||
"difficulty": 1.47,
|
||||
"description": [
|
||||
"Now we've proven that every HTML page has a <code>body</code> element, and that its <code>body</code> element can also be styled with CSS.",
|
||||
@ -3161,8 +3112,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08756",
|
||||
"name": "Waypoint: Prioritize One Style Over Another",
|
||||
"dashedName": "waypoint-prioritize-one-style-over-another",
|
||||
"title": "Waypoint: Prioritize One Style Over Another",
|
||||
"difficulty": 1.48,
|
||||
"description": [
|
||||
"Sometimes your HTML elements will receive multiple styles that conflict with one another.",
|
||||
@ -3201,8 +3151,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf04756",
|
||||
"name": "Waypoint: Override Styles in Subsequent CSS",
|
||||
"dashedName": "waypoint-override-styles-in-subsequent-css",
|
||||
"title": "Waypoint: Override Styles in Subsequent CSS",
|
||||
"difficulty": 1.49,
|
||||
"description": [
|
||||
"Our \"pink-text\" class overrode our <code>body</code> element's CSS declaration!",
|
||||
@ -3244,8 +3193,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd8aedf06756",
|
||||
"name": "Waypoint: Override Class Declarations by Styling ID Attributes",
|
||||
"dashedName": "waypoint-override-class-declarations-by-styling-id-attributes",
|
||||
"title": "Waypoint: Override Class Declarations by Styling ID Attributes",
|
||||
"difficulty": 1.52,
|
||||
"description": [
|
||||
"We just proved that browsers read CSS from top to bottom. That means that, in the event of a conflict, the browser will use whichever CSS declaration came last.",
|
||||
@ -3293,8 +3241,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf06756",
|
||||
"name": "Waypoint: Override Class Declarations with Inline Styles",
|
||||
"dashedName": "waypoint-override-class-declarations-with-inline-styles",
|
||||
"title": "Waypoint: Override Class Declarations with Inline Styles",
|
||||
"difficulty": 1.52,
|
||||
"description": [
|
||||
"So we've proven that id declarations override class declarations, regardless of where they are declared in your <code>style</code> element CSS.",
|
||||
@ -3344,8 +3291,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf07756",
|
||||
"name": "Waypoint: Override All Other Styles by using Important",
|
||||
"dashedName": "waypoint-override-all-other-styles-by-using-important",
|
||||
"title": "Waypoint: Override All Other Styles by using Important",
|
||||
"difficulty": 1.53,
|
||||
"description": [
|
||||
"Yay! We just proved that in-line styles will override all the CSS declarations in your <code>style</code> element.",
|
||||
@ -3398,8 +3344,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08726",
|
||||
"name": "Waypoint: Use Hex Code for Specific Colors",
|
||||
"dashedName": "waypoint-use-hex-code-for-specific-colors",
|
||||
"title": "Waypoint: Use Hex Code for Specific Colors",
|
||||
"difficulty": 1.54,
|
||||
"description": [
|
||||
"Did you know there other ways to represent colors in CSS? One of these ways is called hexadecimal code, or \"hex code\" for short.",
|
||||
@ -3434,8 +3379,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08725",
|
||||
"name": "Waypoint: Use Hex Code to Color Elements White",
|
||||
"dashedName": "waypoint-use-hex-code-to-color-elements-white",
|
||||
"title": "Waypoint: Use Hex Code to Color Elements White",
|
||||
"difficulty": 1.55,
|
||||
"description": [
|
||||
"0 is the lowest number in hex code, and represents a complete absence of color.",
|
||||
@ -3469,8 +3413,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08724",
|
||||
"name": "Waypoint: Use Hex Code to Color Elements Red",
|
||||
"dashedName": "waypoint-use-hex-code-to-color-elements-red",
|
||||
"title": "Waypoint: Use Hex Code to Color Elements Red",
|
||||
"difficulty": 1.56,
|
||||
"description": [
|
||||
"You may be wondering why we use 6 digits to represent a color instead of just one or two. The answer is that using 6 digits gives us a huge variety.",
|
||||
@ -3506,8 +3449,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08723",
|
||||
"name": "Waypoint: Use Hex Code to Color Elements Green",
|
||||
"dashedName": "waypoint-use-hex-code-to-color-elements-green",
|
||||
"title": "Waypoint: Use Hex Code to Color Elements Green",
|
||||
"difficulty": 1.57,
|
||||
"description": [
|
||||
"Remember that hex code follows the red-green-blue, or \"RGB\" format. The first two digits of hex code represent the amount of red in the color. The third and fourth digit represent the amount of green. The fifth and sixth represent the amount of blue.",
|
||||
@ -3541,8 +3483,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08722",
|
||||
"name": "Waypoint: Use Hex Code to Color Elements Blue",
|
||||
"dashedName": "waypoint-use-hex-code-to-color-elements-blue",
|
||||
"title": "Waypoint: Use Hex Code to Color Elements Blue",
|
||||
"difficulty": 1.58,
|
||||
"description": [
|
||||
"Hex code follows the red-green-blue, or \"RGB\" format. The first two digits of hex code represent the amount of red in the color. The third and fourth digit represent the amount of green. The fifth and sixth represent the amount of blue.",
|
||||
@ -3576,8 +3517,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08721",
|
||||
"name": "Waypoint: Use Hex Code to Mix Colors",
|
||||
"dashedName": "waypoint-use-hex-code-to-mix-colors",
|
||||
"title": "Waypoint: Use Hex Code to Mix Colors",
|
||||
"difficulty": 1.59,
|
||||
"description": [
|
||||
"From these three pure colors (red, green and blue), we can create 16 million other colors.",
|
||||
@ -3611,8 +3551,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08720",
|
||||
"name": "Waypoint: Use Hex Code to Color Elements Gray",
|
||||
"dashedName": "waypoint-use-hex-code-to-color-elements-gray",
|
||||
"title": "Waypoint: Use Hex Code to Color Elements Gray",
|
||||
"difficulty": 1.60,
|
||||
"description": [
|
||||
"From these three pure colors (red, green and blue), we can create 16 million other colors.",
|
||||
@ -3646,8 +3585,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08720",
|
||||
"name": "Waypoint: Use Hex Code for Specific Shades of Gray",
|
||||
"dashedName": "waypoint-use-hex-code-for-specific-shades-of-gray",
|
||||
"title": "Waypoint: Use Hex Code for Specific Shades of Gray",
|
||||
"difficulty": 1.61,
|
||||
"description": [
|
||||
"We can also create other shades of gray by evenly mixing all three colors. We can go very close to true black.",
|
||||
@ -3680,8 +3618,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08719",
|
||||
"name": "Waypoint: Use Abbreviated Hex Code",
|
||||
"dashedName": "waypoint-use-abbreviated-hex-code",
|
||||
"title": "Waypoint: Use Abbreviated Hex Code",
|
||||
"difficulty": 1.62,
|
||||
"description": [
|
||||
"Many people feel overwhelmed by the possibilities of more than 16 million colors. And it's difficult to remember hex code. Fortunately, you can shorten it.",
|
||||
@ -3716,8 +3653,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08718",
|
||||
"name": "Waypoint: Use RGB values to Color Elements",
|
||||
"dashedName": "waypoint-use-rgb-values-to-color-elements",
|
||||
"title": "Waypoint: Use RGB values to Color Elements",
|
||||
"difficulty": 1.63,
|
||||
"description": [
|
||||
"Another way you can represent colors in CSS is by using RGB values.",
|
||||
@ -3753,8 +3689,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad88fee1348bd9aedf08726",
|
||||
"name": "Waypoint: Use RGB to Color Elements White",
|
||||
"dashedName": "waypoint-use-rgb-to-color-elements-white",
|
||||
"title": "Waypoint: Use RGB to Color Elements White",
|
||||
"difficulty": 1.64,
|
||||
"description": [
|
||||
"RGB values look like this: <code>rgb(0, 0, 0)</code> for black and <code>rgb(255, 255, 255)<code> for white.",
|
||||
@ -3788,8 +3723,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad89fee1348bd9aedf08724",
|
||||
"name": "Waypoint: Use RGB to Color Elements Red",
|
||||
"dashedName": "waypoint-use-rgb-to-color-elements-red",
|
||||
"title": "Waypoint: Use RGB to Color Elements Red",
|
||||
"difficulty": 1.65,
|
||||
"description": [
|
||||
"Just like with hex code, you can represent different colors in RGB by using combinations of different values.",
|
||||
@ -3823,8 +3757,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad80fee1348bd9aedf08723",
|
||||
"name": "Waypoint: Use RGB to Color Elements Green",
|
||||
"dashedName": "waypoint-use-rgb-to-color-elements-green",
|
||||
"title": "Waypoint: Use RGB to Color Elements Green",
|
||||
"difficulty": 1.66,
|
||||
"description": [
|
||||
"Now change the <code>body</code> element's background color to the RGB value green: <code>rgb(0, 255, 0)</code>"
|
||||
@ -3856,8 +3789,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad81fee1348bd9aedf08722",
|
||||
"name": "Waypoint: Use RGB to Color Elements Blue",
|
||||
"dashedName": "waypoint-use-rgb-to-color-elements-blue",
|
||||
"title": "Waypoint: Use RGB to Color Elements Blue",
|
||||
"difficulty": 1.67,
|
||||
"description": [
|
||||
"Change the <code>body</code> element's background color to the RGB value blue: <code>rgb(0, 0, 255)</code>"
|
||||
@ -3889,8 +3821,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad82fee1348bd9aedf08721",
|
||||
"name": "Waypoint: Use RGB to Mix Colors",
|
||||
"dashedName": "waypoint-use-rgb-to-mix-colors",
|
||||
"title": "Waypoint: Use RGB to Mix Colors",
|
||||
"difficulty": 1.68,
|
||||
"description": [
|
||||
"Just like with hex code, you can mix colors in RGB by using combinations of different values.",
|
||||
@ -3923,8 +3854,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad83fee1348bd9aede08720",
|
||||
"name": "Waypoint: Use RGB to Color Elements Gray",
|
||||
"dashedName": "waypoint-use-rgb-to-color-elements-gray",
|
||||
"title": "Waypoint: Use RGB to Color Elements Gray",
|
||||
"difficulty": 1.69,
|
||||
"description": [
|
||||
"With RGB values, we can make an element gray by using combinations of the same value for all three colors.",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Intermediate Algorithm Scripting",
|
||||
"title": "Intermediate Algorithm Scripting",
|
||||
"order": 0.009,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "a3566b1109230028080c9345",
|
||||
"name": "Bonfire: Sum All Numbers in a Range",
|
||||
"dashedName": "bonfire-sum-all-numbers-in-a-range",
|
||||
"title": "Bonfire: Sum All Numbers in a Range",
|
||||
"difficulty": "2.00",
|
||||
"description": [
|
||||
"We'll pass you an array of two numbers. Return the sum of those two numbers and all numbers between them.",
|
||||
@ -45,8 +44,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a5de63ebea8dbee56860f4f2",
|
||||
"name": "Bonfire: Diff Two Arrays",
|
||||
"dashedName": "bonfire-diff-two-arrays",
|
||||
"title": "Bonfire: Diff Two Arrays",
|
||||
"difficulty": "2.01",
|
||||
"description": [
|
||||
"Compare two arrays and return a new array with any items not found in both of the original arrays.",
|
||||
@ -91,8 +89,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a7f4d8f2483413a6ce226cac",
|
||||
"name": "Bonfire: Roman Numeral Converter",
|
||||
"dashedName": "bonfire-roman-numeral-converter",
|
||||
"title": "Bonfire: Roman Numeral Converter",
|
||||
"tests": [
|
||||
"expect(convert(12)).to.equal(\"XII\");",
|
||||
"expect(convert(5)).to.equal(\"V\");",
|
||||
@ -132,8 +129,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a0b5010f579e69b815e7c5d6",
|
||||
"name": "Bonfire: Search and Replace",
|
||||
"dashedName": "bonfire-search-and-replace",
|
||||
"title": "Bonfire: Search and Replace",
|
||||
"tests": [
|
||||
"expect(replace(\"Let us go to the store\", \"store\", \"mall\")).to.equal(\"Let us go to the mall\");",
|
||||
"expect(replace(\"He is Sleeping on the couch\", \"Sleeping\", \"sitting\")).to.equal(\"He is Sitting on the couch\");",
|
||||
@ -176,8 +172,7 @@
|
||||
},
|
||||
{
|
||||
"id": "aa7697ea2477d1316795783b",
|
||||
"name": "Bonfire: Pig Latin",
|
||||
"dashedName": "bonfire-pig-latin",
|
||||
"title": "Bonfire: Pig Latin",
|
||||
"tests": [
|
||||
"expect(translate(\"california\")).to.equal(\"aliforniacay\");",
|
||||
"expect(translate(\"paragraphs\")).to.equal(\"aragraphspay\");",
|
||||
@ -220,8 +215,7 @@
|
||||
},
|
||||
{
|
||||
"id": "afd15382cdfb22c9efe8b7de",
|
||||
"name": "Bonfire: DNA Pairing",
|
||||
"dashedName": "bonfire-dna-pairing",
|
||||
"title": "Bonfire: DNA Pairing",
|
||||
"tests": [
|
||||
"assert.deepEqual(pair(\"ATCGA\"),[['A','T'],['T','A'],['C','G'],['G','C'],['A','T']], 'should return the dna pair');",
|
||||
"assert.deepEqual(pair(\"TTGAG\"),[['T','A'],['T','A'],['G','C'],['A','T'],['G','C']], 'should return the dna pair');",
|
||||
@ -259,8 +253,7 @@
|
||||
},
|
||||
{
|
||||
"id": "af7588ade1100bde429baf20",
|
||||
"name": "Bonfire: Missing letters",
|
||||
"dashedName": "bonfire-missing-letters",
|
||||
"title": "Bonfire: Missing letters",
|
||||
"difficulty": "2.05",
|
||||
"description": [
|
||||
"Find the missing letter in the passed letter range and return it.",
|
||||
@ -298,8 +291,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a77dbc43c33f39daa4429b4f",
|
||||
"name": "Bonfire: Boo who",
|
||||
"dashedName": "bonfire-boo-who",
|
||||
"title": "Bonfire: Boo who",
|
||||
"difficulty": "2.06",
|
||||
"description": [
|
||||
"Check if a value is classified as a boolean primitive. Return true or false.",
|
||||
@ -341,8 +333,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a105e963526e7de52b219be9",
|
||||
"name": "Bonfire: Sorted Union",
|
||||
"dashedName": "bonfire-sorted-union",
|
||||
"title": "Bonfire: Sorted Union",
|
||||
"difficulty": "2.07",
|
||||
"description": [
|
||||
"Write a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays.",
|
||||
@ -382,8 +373,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a6b0bb188d873cb2c8729495",
|
||||
"name": "Bonfire: Convert HTML Entities",
|
||||
"dashedName": "bonfire-convert-html-entities",
|
||||
"title": "Bonfire: Convert HTML Entities",
|
||||
"difficulty": "2.07",
|
||||
"description": [
|
||||
"Convert the characters \"&\", \"<\", \">\", '\"' (double quote), and \"'\" (apostrophe), in a string to their corresponding HTML entities.",
|
||||
@ -424,8 +414,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a103376db3ba46b2d50db289",
|
||||
"name": "Bonfire: Spinal Tap Case",
|
||||
"dashedName": "bonfire-spinal-tap-case",
|
||||
"title": "Bonfire: Spinal Tap Case",
|
||||
"difficulty": "2.08",
|
||||
"description": [
|
||||
"Convert a string to spinal case. Spinal case is all-lowercase-words-joined-by-dashes.",
|
||||
@ -464,8 +453,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a5229172f011153519423690",
|
||||
"name": "Bonfire: Sum All Odd Fibonacci Numbers",
|
||||
"dashedName": "bonfire-sum-all-odd-fibonacci-numbers",
|
||||
"title": "Bonfire: Sum All Odd Fibonacci Numbers",
|
||||
"difficulty": "2.09",
|
||||
"description": [
|
||||
"Return the sum of all odd Fibonacci numbers up to and including the passed number if it is a Fibonacci number.",
|
||||
@ -505,8 +493,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a3bfc1673c0526e06d3ac698",
|
||||
"name": "Bonfire: Sum All Primes",
|
||||
"dashedName": "bonfire-sum-all-primes",
|
||||
"title": "Bonfire: Sum All Primes",
|
||||
"difficulty": "2.10",
|
||||
"description": [
|
||||
"Sum all the prime numbers up to and including the provided number.",
|
||||
@ -544,8 +531,7 @@
|
||||
},
|
||||
{
|
||||
"id": "ae9defd7acaf69703ab432ea",
|
||||
"name": "Bonfire: Smallest Common Multiple",
|
||||
"dashedName": "bonfire-smallest-common-multiple",
|
||||
"title": "Bonfire: Smallest Common Multiple",
|
||||
"difficulty": "2.11",
|
||||
"description": [
|
||||
"Find the smallest number that is evenly divisible by all numbers in the provided range.",
|
||||
@ -583,8 +569,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a6e40f1041b06c996f7b2406",
|
||||
"name": "Bonfire: Finders Keepers",
|
||||
"dashedName": "bonfire-finders-keepers",
|
||||
"title": "Bonfire: Finders Keepers",
|
||||
"difficulty": "2.12",
|
||||
"description": [
|
||||
"Create a function that looks through an array (first argument) and returns the first element in the array that passes a truth test (second argument).",
|
||||
@ -619,8 +604,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a5deed1811a43193f9f1c841",
|
||||
"name": "Bonfire: Drop it",
|
||||
"dashedName": "bonfire-drop-it",
|
||||
"title": "Bonfire: Drop it",
|
||||
"difficulty": "2.13",
|
||||
"description": [
|
||||
"Drop the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true.",
|
||||
@ -657,8 +641,7 @@
|
||||
},
|
||||
{
|
||||
"id": "ab306dbdcc907c7ddfc30830",
|
||||
"name": "Bonfire: Steamroller",
|
||||
"dashedName": "bonfire-steamroller",
|
||||
"title": "Bonfire: Steamroller",
|
||||
"difficulty": "2.14",
|
||||
"description": [
|
||||
"Flatten a nested array. You must account for varying levels of nesting.",
|
||||
@ -695,8 +678,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a8d97bd4c764e91f9d2bda01",
|
||||
"name": "Bonfire: Binary Agents",
|
||||
"dashedName": "bonfire-binary-agents",
|
||||
"title": "Bonfire: Binary Agents",
|
||||
"difficulty": "2.15",
|
||||
"description": [
|
||||
"Return an English translated sentence of the passed binary string.",
|
||||
@ -732,8 +714,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a10d2431ad0c6a099a4b8b52",
|
||||
"name": "Bonfire: Everything Be True",
|
||||
"dashedName": "bonfire-everything-be-true",
|
||||
"title": "Bonfire: Everything Be True",
|
||||
"difficulty": "2.21",
|
||||
"description": [
|
||||
"Check if the predicate (second argument) returns truthy (defined) for all elements of a collection (first argument).",
|
||||
@ -753,7 +734,6 @@
|
||||
"assert.strictEqual(every([{'user': 'Tinky-Winky', 'sex': 'male'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa', 'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], 'sex'), true, 'should return true if predicate returns truthy for all elements in the collection');",
|
||||
"assert.strictEqual(every([{'user': 'Tinky-Winky', 'sex': 'male'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa', 'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], {'sex': 'female'}), false, 'should return false if predicate returns falsey for any element in the collection');",
|
||||
"assert.strictEqual(every([{'user': 'Tinky-Winky', 'sex': 'female'}, {'user': 'Dipsy', 'sex': 'male'}, {'user': 'Laa-Laa', 'sex': 'female'}, {'user': 'Po', 'sex': 'female'}], {'sex': 'female'}), false, 'should return false if predicate returns falsey for any element in the collection');"
|
||||
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Object.hasOwnProperty()",
|
||||
@ -773,8 +753,7 @@
|
||||
},
|
||||
{
|
||||
"id": "a97fd23d9b809dac9921074f",
|
||||
"name": "Bonfire: Arguments Optional",
|
||||
"dashedName": "bonfire-arguments-optional",
|
||||
"title": "Bonfire: Arguments Optional",
|
||||
"difficulty": "2.22",
|
||||
"description": [
|
||||
"Create a function that sums two arguments together. If only one argument is provided, return a function that expects one additional argument and will return the sum.",
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Intermediate Front End Development Projects",
|
||||
"title": "Intermediate Front End Development Projects",
|
||||
"order": 0.018,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd18",
|
||||
"name": "Zipline: Stylize Stories on Camper News",
|
||||
"dashedName": "zipline-stylize-stories-on-camper-news",
|
||||
"title": "Zipline: Stylize Stories on Camper News",
|
||||
"difficulty": 1.02,
|
||||
"challengeSeed": ["126415129"],
|
||||
"description": [
|
||||
@ -38,8 +37,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd19",
|
||||
"name": "Zipline: Wikipedia Viewer",
|
||||
"dashedName": "zipline-wikipedia-viewer",
|
||||
"title": "Zipline: Wikipedia Viewer",
|
||||
"difficulty": 1.03,
|
||||
"challengeSeed": ["126415131"],
|
||||
"description": [
|
||||
@ -71,8 +69,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd17",
|
||||
"name": "Zipline: Build a JavaScript Calculator",
|
||||
"dashedName": "zipline-build-a-javascript-calculator",
|
||||
"title": "Zipline: Build a JavaScript Calculator",
|
||||
"difficulty": 1.05,
|
||||
"challengeSeed": ["126411565"],
|
||||
"description": [
|
||||
@ -103,8 +100,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eedfaeb5bd1c",
|
||||
"name": "Zipline: Build a Tic Tac Toe Game",
|
||||
"dashedName": "zipline-build-a-tic-tac-toe-game",
|
||||
"title": "Zipline: Build a Tic Tac Toe Game",
|
||||
"difficulty": 1.06,
|
||||
"challengeSeed": ["126415123"],
|
||||
"description": [
|
||||
@ -136,8 +132,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd1c",
|
||||
"name": "Zipline: Build a Simon Game",
|
||||
"dashedName": "zipline-build-a-simon-game",
|
||||
"title": "Zipline: Build a Simon Game",
|
||||
"difficulty": 1.07,
|
||||
"challengeSeed": ["126415123"],
|
||||
"description": [
|
||||
|
@ -1,12 +1,10 @@
|
||||
{
|
||||
"name": "jQuery",
|
||||
"dashedName": "jquery",
|
||||
"title": "jQuery",
|
||||
"order": 0.004,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bad87fee1348bd9acdd08826",
|
||||
"name": "Waypoint: Learn how Script Tags and Document Ready Work",
|
||||
"dashedName": "waypoint-learn-how-script-tags-and-document-ready-work",
|
||||
"title": "Waypoint: Learn how Script Tags and Document Ready Work",
|
||||
"difficulty": 3.01,
|
||||
"description": [
|
||||
"Now we're ready to learn jQuery, the most popular JavaScript tool of all time. Don't worry about JavaScript itself - we will cover it soon.",
|
||||
@ -46,11 +44,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9bedc08826",
|
||||
"name": "Waypoint: Target HTML Elements with Selectors Using jQuery",
|
||||
"dashedName": "waypoint-target-html-elements-with-selectors-using-jquery",
|
||||
"title": "Waypoint: Target HTML Elements with Selectors Using jQuery",
|
||||
"difficulty": 3.02,
|
||||
"description": [
|
||||
"Now we have a \"document ready function\". We'll learn more about functions later. The important thing to know is that code you put inside this function will run as soon as your browser has loaded your page.",
|
||||
@ -96,11 +92,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aedc08826",
|
||||
"name": "Waypoint: Target Elements by Class Using jQuery",
|
||||
"dashedName": "waypoint-target-elements-by-class-using-jquery",
|
||||
"title": "Waypoint: Target Elements by Class Using jQuery",
|
||||
"difficulty": 3.03,
|
||||
"description": [
|
||||
"You see how we made all of your <code>button</code> elements bounce? We selected them with <code>$('button')</code>, then we added some CSS classes to them with <code>.addClass('animated bounce');</code>.",
|
||||
@ -149,8 +143,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aeda08826",
|
||||
"name": "Waypoint: Target Elements by ID Using jQuery",
|
||||
"dashedName": "waypoint-target-elements-by-id-using-jquery",
|
||||
"title": "Waypoint: Target Elements by ID Using jQuery",
|
||||
"difficulty": 3.04,
|
||||
"description": [
|
||||
"You can also target elements by their id attributes.",
|
||||
@ -198,11 +191,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aeda08726",
|
||||
"name": "Waypoint: Delete your jQuery Functions",
|
||||
"dashedName": "waypoint-delete-your-jquery-functions",
|
||||
"title": "Waypoint: Delete your jQuery Functions",
|
||||
"difficulty": 3.05,
|
||||
"description": [
|
||||
"These animations were cool at first, but now they're getting kind of distracting.",
|
||||
@ -253,8 +244,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aed908626",
|
||||
"name": "Waypoint: Target the same element with multiple jQuery Selectors",
|
||||
"dashedName": "waypoint-target-the-same-element-with-multiple-jQuery-Selectors",
|
||||
"title": "Waypoint: Target the same element with multiple jQuery Selectors",
|
||||
"difficulty": 3.06,
|
||||
"description": [
|
||||
"Now you know three ways of targeting elements: by type <code>$('button')</code>, by class <code>$('.btn')</code>), and by id <code>$('#target1')</code>).",
|
||||
@ -304,8 +294,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aed918626",
|
||||
"name": "Waypoint: Remove Classes from an element with jQuery",
|
||||
"dashedName": "waypoint-remove-classes-from-an-element-with-jquery",
|
||||
"title": "Waypoint: Remove Classes from an element with jQuery",
|
||||
"difficulty": 3.07,
|
||||
"description": [
|
||||
"In the same way you can add classes to an element with jQuery's <code>addClass()</code> function, you can remove them with jQuery's <code>removeClass()</code> function.",
|
||||
@ -354,8 +343,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aed908826",
|
||||
"name": "Waypoint: Change the CSS of an Element Using jQuery",
|
||||
"dashedName": "waypoint-change-the-css-of-an-element-using-jquery",
|
||||
"title": "Waypoint: Change the CSS of an Element Using jQuery",
|
||||
"difficulty": 3.08,
|
||||
"description": [
|
||||
"We can also change the CSS of an HTML element directly with jQuery.",
|
||||
@ -406,11 +394,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed808826",
|
||||
"name": "Waypoint: Disable an Element Using jQuery",
|
||||
"dashedName": "waypoint-disable-an-element-using-jquery",
|
||||
"title": "Waypoint: Disable an Element Using jQuery",
|
||||
"difficulty": 3.09,
|
||||
"description": [
|
||||
"You can also change the non-CSS properties of HTML elements with jQuery. For example, you can disable buttons.",
|
||||
@ -458,11 +444,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed708826",
|
||||
"name": "Waypoint: Remove an Element Using jQuery",
|
||||
"dashedName": "waypoint-remove-an-element-using-jquery",
|
||||
"title": "Waypoint: Remove an Element Using jQuery",
|
||||
"difficulty": 3.10,
|
||||
"description": [
|
||||
"Now let's remove an HTML element from your page using jQuery.",
|
||||
@ -507,11 +491,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed608826",
|
||||
"name": "Waypoint: Use appendTo to Move Elements with jQuery",
|
||||
"dashedName": "waypoint-use-appendto-to-move-elements-with-jquery",
|
||||
"title": "Waypoint: Use appendTo to Move Elements with jQuery",
|
||||
"difficulty": 3.11,
|
||||
"description": [
|
||||
"Now let's try moving elements from one <code>div</code> to another.",
|
||||
@ -560,11 +542,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed508826",
|
||||
"name": "Waypoint: Clone an Element Using jQuery",
|
||||
"dashedName": "waypoint-clone-an-element-using-jquery",
|
||||
"title": "Waypoint: Clone an Element Using jQuery",
|
||||
"difficulty": 3.12,
|
||||
"description": [
|
||||
"In addition to moving elements, you can also copy them from one place to another.",
|
||||
@ -615,11 +595,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed308826",
|
||||
"name": "Waypoint: Target the Parent of an Element Using jQuery",
|
||||
"dashedName": "waypoint-target-the-parent-of-an-element-using-jquery",
|
||||
"title": "Waypoint: Target the Parent of an Element Using jQuery",
|
||||
"difficulty": 3.13,
|
||||
"description": [
|
||||
"Every HTML elements has a \"parent\" element from which it \"inherits\" properties.",
|
||||
@ -671,11 +649,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed208826",
|
||||
"name": "Waypoint: Target the Children of an Element Using jQuery",
|
||||
"dashedName": "waypoint-target-the-children-of-an-element-using-jquery",
|
||||
"title": "Waypoint: Target the Children of an Element Using jQuery",
|
||||
"difficulty": 3.14,
|
||||
"description": [
|
||||
"Many HTML elements has a \"children\" element from which they \"inherits\" properties.",
|
||||
@ -730,8 +706,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aed108826",
|
||||
"name": "Waypoint: Target a Specific Child of an Element Using jQuery",
|
||||
"dashedName": "waypoint-target-a-specific-child-of-an-element-using-jquery",
|
||||
"title": "Waypoint: Target a Specific Child of an Element Using jQuery",
|
||||
"difficulty": 3.15,
|
||||
"description": [
|
||||
"You've seen why id attributes are so convenient for targeting with jQuery selectors. But you won't always have such neat ids to work with.",
|
||||
@ -785,11 +760,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed008826",
|
||||
"name": "Waypoint: Target Even Numbered Elements Using jQuery",
|
||||
"dashedName": "waypoint-target-even-numbered-elements-using-jquery",
|
||||
"title": "Waypoint: Target Even Numbered Elements Using jQuery",
|
||||
"difficulty": 3.16,
|
||||
"description": [
|
||||
"You can also target all the even-numbered elements.",
|
||||
@ -845,11 +818,9 @@
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aecb08826",
|
||||
"name": "Waypoint: Use jQuery to Modify the Entire Page",
|
||||
"dashedName": "waypoint-use-jquery-to-modify-the-entire-page",
|
||||
"title": "Waypoint: Use jQuery to Modify the Entire Page",
|
||||
"difficulty": 3.20,
|
||||
"description": [
|
||||
"We're done playing with our jQuery playground. Let's tear it down!",
|
||||
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"name": "JSON APIs and Ajax - Coming Soon",
|
||||
"dashedName": "json-apis-and-ajax",
|
||||
"title": "JSON APIs and Ajax - Coming Soon",
|
||||
"order": 0.007,
|
||||
"challenges": [
|
||||
]
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "MongoDB",
|
||||
"title": "MongoDB",
|
||||
"order" : 0.016,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7243d8c341eddeaeb5bd0f",
|
||||
"name": "Waypoint: Store Data in MongoDB",
|
||||
"dashedName": "waypoint-store-data-in-mongodb",
|
||||
"title": "Waypoint: Store Data in MongoDB",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["133316035"],
|
||||
"description": [
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Node.js and Express.js",
|
||||
"title": "Node.js and Express.js",
|
||||
"order" : 0.015,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Manage Packages with NPM",
|
||||
"dashedName": "waypoint-manage-packages-with-npm",
|
||||
"title": "Waypoint: Manage Packages with NPM",
|
||||
"difficulty": 0.39,
|
||||
"challengeSeed": ["126433450"],
|
||||
"description": [
|
||||
@ -58,8 +57,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bdff",
|
||||
"name": "Waypoint: Start a Node.js Server",
|
||||
"dashedName": "waypoint-start-a-nodejs-server",
|
||||
"title": "Waypoint: Start a Node.js Server",
|
||||
"difficulty": 0.40,
|
||||
"challengeSeed": ["126411561"],
|
||||
"description": [
|
||||
@ -100,8 +98,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bdfe",
|
||||
"name": "Waypoint: Continue working with Node.js Servers",
|
||||
"dashedName": "waypoint-continue-working-with-nodejs-servers",
|
||||
"title": "Waypoint: Continue working with Node.js Servers",
|
||||
"difficulty": 0.41,
|
||||
"challengeSeed": ["128836506"],
|
||||
"description": [
|
||||
@ -129,8 +126,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bdfd",
|
||||
"name": "Waypoint: Finish working with Node.js Servers",
|
||||
"dashedName": "waypoint-finish-working-with-nodejs-servers",
|
||||
"title": "Waypoint: Finish working with Node.js Servers",
|
||||
"difficulty": 0.42,
|
||||
"challengeSeed": ["128836507"],
|
||||
"description": [
|
||||
@ -158,8 +154,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Build Web Apps with Express.js",
|
||||
"dashedName": "waypoint-build-web-apps-with-expressjs",
|
||||
"title": "Waypoint: Build Web Apps with Express.js",
|
||||
"difficulty": 0.43,
|
||||
"challengeSeed": [
|
||||
"126411559"
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "Object Oriented and Functional Programming",
|
||||
"title": "Object Oriented and Functional Programming",
|
||||
"order" : 0.010,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7153d8c44eeddfaeb5bd0f",
|
||||
"name": "Waypoint: Learn Scope Chains and Closures",
|
||||
"dashedName": "waypoint-learn-scope-chains-and-closures",
|
||||
"title": "Waypoint: Learn Scope Chains and Closures",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["133316031"],
|
||||
"description": [
|
||||
@ -44,8 +43,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7153d8b44eeddfaeb5bd0f",
|
||||
"name": "Waypoint: Use Prototypes for Inheriting Properties",
|
||||
"dashedName": "waypoint-use-prototypes-for-inheriting-properties",
|
||||
"title": "Waypoint: Use Prototypes for Inheriting Properties",
|
||||
"difficulty": 0.02,
|
||||
"challengeSeed": ["133316036"],
|
||||
"description": [
|
||||
@ -89,8 +87,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8c441eddfbeb5bddf",
|
||||
"name": "Waypoint: Practice Functional Programming",
|
||||
"dashedName": "waypoint-practice-functional-programming",
|
||||
"title": "Waypoint: Practice Functional Programming",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["129169463"],
|
||||
"description": [
|
||||
|
4
index.js
4
index.js
@ -41,7 +41,9 @@ Challenge.destroyAll(function(err, info) {
|
||||
var challenges = require('./challenges/' + file).challenges
|
||||
.map(function(challenge) {
|
||||
// NOTE(berks): add title for displaying in views
|
||||
challenge.title = challenge.name.replace(challangesRegex, '').trim();
|
||||
//challenge.title = challenge.name.replace(challangesRegex, '').trim();
|
||||
challenge.name = challenge.title.replace(/[^a-zA-Z0-9 ]/g, ''); // Remove non-alphanumwhitespace chars
|
||||
challenge.dashedName = challenge.name.replace(/\s/g, '-'); // Replace with dasherize();
|
||||
return challenge;
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user