more challenge-related view and copy improvements
This commit is contained in:
19
app.js
19
app.js
@@ -234,6 +234,25 @@ app.get('/chat', resourcesController.chat);
|
||||
|
||||
app.get('/twitch', resourcesController.twitch);
|
||||
|
||||
app.get('/cats.json', function(req, res) {
|
||||
res.send(
|
||||
[
|
||||
{
|
||||
"name": "cute",
|
||||
"imageLink": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRaP1ecF2jerISkdhjr4R9yM9-8ClUy-TA36MnDiFBukd5IvEME0g"
|
||||
},
|
||||
{
|
||||
"name": "grumpy",
|
||||
"imageLink": "http://cdn.grumpycats.com/wp-content/uploads/2012/09/GC-Gravatar-copy.png"
|
||||
},
|
||||
{
|
||||
"name": "mischievous",
|
||||
"imageLink": "http://www.kittenspet.com/wp-content/uploads/2012/08/cat_with_funny_face_3-200x200.jpg"
|
||||
}
|
||||
]
|
||||
)
|
||||
});
|
||||
|
||||
// Agile Project Manager Onboarding
|
||||
|
||||
app.get('/pmi-acp-agile-project-managers',
|
||||
|
@@ -29,52 +29,6 @@ module.exports = {
|
||||
return challenge._id;
|
||||
});
|
||||
|
||||
var bonfireList = challengeList
|
||||
.filter(function(challenge) {
|
||||
return challenge.challengeType === challengeTypes.BONFIRE;
|
||||
})
|
||||
.map(function(bonfire) {
|
||||
return ({
|
||||
'_id': bonfire._id,
|
||||
'name': bonfire.name
|
||||
});
|
||||
});
|
||||
|
||||
var waypoints = challengeList.filter(function(challenge) {
|
||||
if (challenge.challengeType === challengeTypes.VIDEO
|
||||
|| challenge.challengeType === challengeTypes.HTML_CSS_JQ
|
||||
|| challenge.challengeType === challengeTypes.JAVASCRIPT) {
|
||||
return challenge;
|
||||
}
|
||||
}).map(function(waypoint) {
|
||||
return ({
|
||||
'_id': waypoint._id,
|
||||
'name': waypoint.name
|
||||
});
|
||||
});
|
||||
|
||||
var ziplines = challengeList.filter(function(challenge) {
|
||||
if (challenge.challengeType === challengeTypes.ZIPLINE) {
|
||||
return challenge;
|
||||
}
|
||||
}).map(function(zipline) {
|
||||
return ({
|
||||
'_id': zipline._id,
|
||||
'name': zipline.name
|
||||
});
|
||||
});
|
||||
|
||||
var basejumps = challengeList.filter(function(challenge) {
|
||||
if (challenge.challengeType === challengeTypes.BASEJUMP) {
|
||||
return challenge;
|
||||
}
|
||||
}).map(function(basejump) {
|
||||
return ({
|
||||
'_id': basejump._id,
|
||||
'name': basejump.name
|
||||
});
|
||||
});
|
||||
|
||||
function numberWithCommas(x) {
|
||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
}
|
||||
@@ -93,10 +47,7 @@ module.exports = {
|
||||
daysRunning: daysRunning,
|
||||
camperCount: numberWithCommas(camperCount),
|
||||
title: "A map of all Free Code Camp's Challenges",
|
||||
bonfires: bonfireList,
|
||||
waypoints: waypoints,
|
||||
ziplines: ziplines,
|
||||
basejumps: basejumps,
|
||||
challengeList: challengeList,
|
||||
completedChallengeList: completedChallengeList
|
||||
});
|
||||
});
|
||||
|
@@ -15,7 +15,6 @@ var challengeSchema = new mongoose.Schema({
|
||||
description: Array,
|
||||
tests: Array,
|
||||
challengeSeed: Array,
|
||||
completionMessage: String, // Congratulations! You've finished our HTML and CSS track!
|
||||
challengeType: Number, // 0 = html, 1 = javascript only, 2 = video, 3 = zipline, 4 = basejump
|
||||
MDNlinks: Array
|
||||
});
|
||||
|
@@ -246,8 +246,8 @@ ul {
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
.landing-p {
|
||||
font-size: 18px !important;
|
||||
.large-p {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.text-success {
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7158d8c443eddfaeb5bcef",
|
||||
"name": "Get Set for Basejumps",
|
||||
"name": "Waypoint: Get Set for Basejumps",
|
||||
"difficulty": 2.00,
|
||||
"challengeSeed": "128451852",
|
||||
"description": [
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7123c8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Use HTML Elements",
|
||||
"name": "Waypoint: Say Hello to HTML Elements",
|
||||
"difficulty": 0.0085,
|
||||
"description": [
|
||||
"Welcome to Free Code Camp's first coding challenge! Click on the button below for further instructions.",
|
||||
@@ -25,7 +25,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf0887a",
|
||||
"name": "Waypoint: Use the h2 Element",
|
||||
"name": "Waypoint: Headline with the h2 Element",
|
||||
"difficulty": 0.010,
|
||||
"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.",
|
||||
@@ -44,7 +44,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08801",
|
||||
"name": "Waypoint: Use the Paragraph Element",
|
||||
"name": "Waypoint: Inform with the Paragraph Element",
|
||||
"difficulty": 0.011,
|
||||
"description": [
|
||||
"Create a paragraph element below the h2 element, and give it the text \"Hello Paragraph\".",
|
||||
@@ -62,7 +62,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aeaf08801",
|
||||
"name": "Waypoint: Add a Line Break to Visually Separate Elements",
|
||||
"name": "Waypoint: Visually Separate Elements with Line Breaks",
|
||||
"difficulty": 0.012,
|
||||
"description": [
|
||||
"Add a <code>line break</code> between the <code><h2></code> and <code><p></code> elements.",
|
||||
@@ -137,7 +137,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08833",
|
||||
"name": "Waypoint: Use Lorem Ipsum Text as a Placeholder",
|
||||
"name": "Waypoint: Fill in the Blank with Placeholder Text",
|
||||
"difficulty": 0.015,
|
||||
"description": [
|
||||
"Change the text in the <code>p</code> element to use the first few words of <code>Kitty Ipsum</code> text.",
|
||||
@@ -263,7 +263,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aefe08806",
|
||||
"name": "Waypoint: Use a CSS Class to Style Multiple Elements",
|
||||
"name": "Waypoint: Style Multiple Elements with a CSS Classes",
|
||||
"difficulty": 0.020,
|
||||
"description": [
|
||||
"Apply the \"red-text\" class to the <code>h2</code> and <code>p</code> elements.",
|
||||
@@ -419,7 +419,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08809",
|
||||
"name": "Waypoint: Using Important to Override Styles",
|
||||
"name": "Waypoint: Override Styles with Important",
|
||||
"difficulty": 0.025,
|
||||
"description": [
|
||||
"Create a \"blue-text\" class that gives an element the font-color of blue. Also create a \"urgently-red\" class that give an element the font-color of red, but use <code>!important</code> to ensure the element is rendered as being red. Apply both classes to your <code>h2</code> element.",
|
||||
@@ -462,7 +462,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08812",
|
||||
"name": "Waypoint: Add an Image to your Website",
|
||||
"name": "Waypoint: Add Images to your Website",
|
||||
"difficulty": 0.026,
|
||||
"description": [
|
||||
"Use an <code>img</code> element to add the image <code>http://bit.ly/fcc-kittens</code> to your website.",
|
||||
@@ -500,7 +500,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9acdf08812",
|
||||
"name": "Waypoint: Specify an Image Size",
|
||||
"name": "Waypoint: Size your Images",
|
||||
"difficulty": 0.027,
|
||||
"description": [
|
||||
"Create a class called <code>smaller-image</code> and use it to resize the image so that it's only 100 pixels wide.",
|
||||
@@ -539,7 +539,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9bedf08813",
|
||||
"name": "Waypoint: Add a Border Around an Element",
|
||||
"name": "Waypoint: Add Borders Around your Elements",
|
||||
"difficulty": 0.028,
|
||||
"description": [
|
||||
"Create a class called \"thick-green-border\" that puts a 10-pixel-wide green border around an HTML element, and apply it to your cat photo.",
|
||||
@@ -632,7 +632,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08815",
|
||||
"name": "Waypoint: Make an Image Circular with a Border Radius",
|
||||
"name": "Waypoint: Make Circular Images with a Border Radius",
|
||||
"difficulty": 0.030,
|
||||
"description": [
|
||||
"Give your cat photo a <code>border-radius</code> of 50%.",
|
||||
@@ -680,7 +680,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08816",
|
||||
"name": "Waypoint: Use an Anchor Tag to Link to an External Page",
|
||||
"name": "Waypoint: Link to External Pages with Anchor Elements",
|
||||
"difficulty": 0.031,
|
||||
"description": [
|
||||
"Create an <code>anchor</code> element that links to http://catphotoapp.com and has \"cat photos\" as its anchor text (link text).",
|
||||
@@ -891,7 +891,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08818",
|
||||
"name": "Waypoint: Add Alt Text to an image",
|
||||
"name": "Waypoint: Add Alt Text to an Image for Accessibility",
|
||||
"difficulty": 0.035,
|
||||
"description": [
|
||||
"Add the <code>alt text</code> \"A cute orange cat lying on its back\" to our cat photo",
|
||||
@@ -1184,7 +1184,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aede08830",
|
||||
"name": "Waypoint: Create a basic Form Element",
|
||||
"name": "Waypoint: Create a Form Element",
|
||||
"difficulty" : 0.040,
|
||||
"description": [
|
||||
"Wrap your text field in a <code><form></code> element. Add the <code>action=\"/submit-cat-photo\"</code> attribute to this form element.",
|
||||
@@ -1313,7 +1313,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedc08830",
|
||||
"name": "Waypoint: Use HTML5 to Make a Field Required",
|
||||
"name": "Waypoint: Use HTML5 to Require a Field",
|
||||
"difficulty" : 0.042,
|
||||
"description": [
|
||||
"Make it required for your user to input text into your form before being able to submit it.",
|
||||
@@ -1593,7 +1593,8 @@
|
||||
"difficulty" : 0.046,
|
||||
"description": [
|
||||
"Set one of your radio buttons and one of your checkboxes to be checked by default.",
|
||||
""
|
||||
"You set a checkbox or radio button to be checked by default using the <code>checked</code> attribute.",
|
||||
"Just add the word \"checked\" to the inside of your input element. For example, <code><input type='radio' name='test-name' checked></code>."
|
||||
],
|
||||
"tests": [
|
||||
"assert($('input[type=\"radio\"').prop('checked'), 'One of the radio buttons on your form should be checked by default.')",
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "ad7123c8c441eddfaeb5bdef",
|
||||
"name": "Meet Bonfire",
|
||||
"name": "Bonfire: Meet Bonfire",
|
||||
"difficulty": "0",
|
||||
"description": [
|
||||
"Click the button below for further instructions.",
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a202eed8fc186c8434cb6d61",
|
||||
"name": "Reverse a String",
|
||||
"name": "Bonfire: Reverse a String",
|
||||
"difficulty": "1.01",
|
||||
"tests": [
|
||||
"expect(reverseString('hello')).to.be.a('String');",
|
||||
@@ -59,7 +59,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a302f7aae1aa3152a5b413bc",
|
||||
"name": "Factorialize a Number",
|
||||
"name": "Bonfire: Factorialize a Number",
|
||||
"tests": [
|
||||
"expect(factorialize(5)).to.be.a(\"Number\");",
|
||||
"expect(factorialize(5)).to.equal(120);",
|
||||
@@ -86,7 +86,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "aaa48de84e1ecc7c742e1124",
|
||||
"name": "Check for Palindromes",
|
||||
"name": "Bonfire: Check for Palindromes",
|
||||
"difficulty": "1.03",
|
||||
"description": [
|
||||
"Return true if the given string is a palindrome. Otherwise, return false.",
|
||||
@@ -119,7 +119,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a26cbbe9ad8655a977e1ceb5",
|
||||
"name": "Find the Longest Word in a String",
|
||||
"name": "Bonfire: Find the Longest Word in a String",
|
||||
"difficulty": "1.04",
|
||||
"description": [
|
||||
"Return the length of the longest word in the provided sentence.",
|
||||
@@ -145,7 +145,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "ab6137d4e35944e21037b769",
|
||||
"name": "Title Case a Sentence",
|
||||
"name": "Bonfire: Title Case a Sentence",
|
||||
"difficulty": "1.05",
|
||||
"description": [
|
||||
"Return the provided string with the first letter of each word capitalized.",
|
||||
@@ -170,7 +170,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a789b3483989747d63b0e427",
|
||||
"name": "Return Largest Numbers in Arrays",
|
||||
"name": "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.",
|
||||
@@ -196,7 +196,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "acda2fb1324d9b0fa741e6b5",
|
||||
"name": "Confirm the Ending",
|
||||
"name": "Bonfire: Confirm the Ending",
|
||||
"difficulty": "1.07",
|
||||
"description": [
|
||||
"Check if a string (first argument) ends with the given target string (second argument).",
|
||||
@@ -222,7 +222,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "afcc8d540bea9ea2669306b6",
|
||||
"name": "Repeat a string repeat a string",
|
||||
"name": "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.",
|
||||
@@ -246,7 +246,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "ac6993d51946422351508a41",
|
||||
"name": "Truncate a string",
|
||||
"name": "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.",
|
||||
@@ -271,7 +271,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a9bd25c716030ec90084d8a1",
|
||||
"name": "Chunky Monkey",
|
||||
"name": "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.",
|
||||
@@ -295,7 +295,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "ab31c21b530c0dafa9e241ee",
|
||||
"name": "Slasher Flick",
|
||||
"name": "Bonfire: Slasher Flick",
|
||||
"difficulty": "1.11",
|
||||
"description": [
|
||||
"Return the remaining elements of an array after chopping off n elements from the head.",
|
||||
@@ -319,7 +319,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "af2170cad53daa0770fabdea",
|
||||
"name": "Mutations",
|
||||
"name": "Bonfire: Mutations",
|
||||
"difficulty": "1.12",
|
||||
"description": [
|
||||
"Return true if the string in the first element of the array contains the letters of the string in the second element of the array.",
|
||||
@@ -347,7 +347,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "adf08ec01beb4f99fc7a68f2",
|
||||
"name": "Falsey Bouncer",
|
||||
"name": "Bonfire: Falsey Bouncer",
|
||||
"difficulty": "1.50",
|
||||
"description": [
|
||||
"Remove all falsey values from an array.",
|
||||
@@ -372,7 +372,7 @@
|
||||
},
|
||||
{
|
||||
"_id":"a8e512fbe388ac2f9198f0fa",
|
||||
"name":"Where art thou",
|
||||
"name": "Bonfire: Where art thou",
|
||||
"difficulty":"1.55",
|
||||
"description":[
|
||||
"Make a function that looks through a list (first argument) and returns an array of all objects that have equivalent property values (second argument).",
|
||||
@@ -396,7 +396,7 @@
|
||||
},
|
||||
{
|
||||
"_id":"a39963a4c10bc8b4d4f06d7e",
|
||||
"name":"Seek and Destroy",
|
||||
"name": "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.",
|
||||
@@ -419,7 +419,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a24c1a4622e3c05097f71d67",
|
||||
"name": "Where do I belong",
|
||||
"name": "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).",
|
||||
@@ -443,7 +443,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a3566b1109230028080c9345",
|
||||
"name": "Sum All Numbers in a Range",
|
||||
"name": "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.",
|
||||
@@ -469,7 +469,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a5de63ebea8dbee56860f4f2",
|
||||
"name": "Diff Two Arrays",
|
||||
"name": "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.",
|
||||
@@ -499,7 +499,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a7f4d8f2483413a6ce226cac",
|
||||
"name": "Roman Numeral Converter",
|
||||
"name": "Bonfire: Roman Numeral Converter",
|
||||
"tests": [
|
||||
"expect(convert(12)).to.equal(\"XII\");",
|
||||
"expect(convert(5)).to.equal(\"V\");",
|
||||
@@ -525,7 +525,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a0b5010f579e69b815e7c5d6",
|
||||
"name": "Search and Replace",
|
||||
"name": "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\");",
|
||||
@@ -554,7 +554,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "aa7697ea2477d1316795783b",
|
||||
"name": "Pig Latin",
|
||||
"name": "Bonfire: Pig Latin",
|
||||
"tests": [
|
||||
"expect(translate(\"california\")).to.equal(\"aliforniacay\");",
|
||||
"expect(translate(\"paragraphs\")).to.equal(\"aragraphspay\");",
|
||||
@@ -581,7 +581,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "afd15382cdfb22c9efe8b7de",
|
||||
"name": "DNA Pairing",
|
||||
"name": "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');",
|
||||
@@ -631,7 +631,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a77dbc43c33f39daa4429b4f",
|
||||
"name": "Boo who",
|
||||
"name": "Bonfire: Boo who",
|
||||
"difficulty": "2.06",
|
||||
"description": [
|
||||
"Check if a value is classified as a boolean primitive. Return true or false.",
|
||||
@@ -661,7 +661,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a105e963526e7de52b219be9",
|
||||
"name": "Sorted Union",
|
||||
"name": "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.",
|
||||
@@ -686,7 +686,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a6b0bb188d873cb2c8729495",
|
||||
"name": "Convert HTML Entities",
|
||||
"name": "Bonfire: Convert HTML Entities",
|
||||
"difficulty": "2.07",
|
||||
"description": [
|
||||
"Convert the characters \"&\", \"<\", \">\", '\"', and \"'\", in a string to their corresponding HTML entities.",
|
||||
@@ -709,7 +709,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a103376db3ba46b2d50db289",
|
||||
"name": "Spinal Tap Case",
|
||||
"name": "Bonfire: Spinal Tap Case",
|
||||
"difficulty": "2.08",
|
||||
"description": [
|
||||
"Convert a string to spinal case. Spinal case is all-lowercase-words-joined-by-dashes.",
|
||||
@@ -735,7 +735,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a5229172f011153519423690",
|
||||
"name": "Sum All Odd Fibonacci Numbers",
|
||||
"name": "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.",
|
||||
@@ -763,7 +763,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a3bfc1673c0526e06d3ac698",
|
||||
"name": "Sum All Primes",
|
||||
"name": "Bonfire: Sum All Primes",
|
||||
"difficulty": "2.10",
|
||||
"description": [
|
||||
"Sum all the prime numbers up to and including the provided number.",
|
||||
@@ -788,7 +788,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "ae9defd7acaf69703ab432ea",
|
||||
"name": "Smallest Common Multiple",
|
||||
"name": "Bonfire: Smallest Common Multiple",
|
||||
"difficulty": "2.11",
|
||||
"description": [
|
||||
"Find the smallest number that is evenly divisible by all numbers in the provided range.",
|
||||
@@ -814,7 +814,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a6e40f1041b06c996f7b2406",
|
||||
"name": "Finders Keepers",
|
||||
"name": "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).",
|
||||
@@ -837,7 +837,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a5deed1811a43193f9f1c841",
|
||||
"name": "Drop it like it's hot",
|
||||
"name": "Bonfire: Drop it like it's hot",
|
||||
"difficulty": "2.13",
|
||||
"description": [
|
||||
"Drop the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true.",
|
||||
@@ -861,7 +861,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "ab306dbdcc907c7ddfc30830",
|
||||
"name": "Steamroller",
|
||||
"name": "Bonfire: Steamroller",
|
||||
"difficulty": "2.14",
|
||||
"description": [
|
||||
"Flatten a nested array. You must account for varying levels of nesting.",
|
||||
@@ -885,7 +885,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a8d97bd4c764e91f9d2bda01",
|
||||
"name": "Binary Agents",
|
||||
"name": "Bonfire: Binary Agents",
|
||||
"difficulty": "2.15",
|
||||
"description": [
|
||||
"Return an English translated sentence of the passed binary string.",
|
||||
@@ -909,7 +909,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a10d2431ad0c6a099a4b8b52",
|
||||
"name": "Everything Be True",
|
||||
"name": "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).",
|
||||
@@ -934,7 +934,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a97fd23d9b809dac9921074f",
|
||||
"name": "Arguments Optional",
|
||||
"name": "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.",
|
||||
@@ -961,7 +961,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a2f1d72d9b908d0bd72bb9f6",
|
||||
"name": "Make a Person",
|
||||
"name": "Bonfire: Make a Person",
|
||||
"difficulty": "3.12",
|
||||
"description": [
|
||||
"Fill in the object constructor with the methods specified in the tests.",
|
||||
@@ -999,7 +999,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "af4afb223120f7348cdfc9fd",
|
||||
"name": "Map the Debris",
|
||||
"name": "Bonfire: Map the Debris",
|
||||
"difficulty": "3.50",
|
||||
"description": [
|
||||
"Return a new array that transforms the element's average altitude into their orbital periods.",
|
||||
@@ -1027,7 +1027,7 @@
|
||||
},
|
||||
{
|
||||
"_id" : "a3f503de51cfab748ff001aa",
|
||||
"name": "Pairwise",
|
||||
"name": "Bonfire: Pairwise",
|
||||
"difficulty": "3.51",
|
||||
"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.",
|
||||
@@ -1054,7 +1054,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "aff0395860f5d3034dc0bfc9",
|
||||
"name": "Validate US Telephone Numbers",
|
||||
"name": "Bonfire: Validate US Telephone Numbers",
|
||||
"difficulty": "4.01",
|
||||
"description": [
|
||||
"Return true if the passed string is a valid US phone number",
|
||||
@@ -1102,7 +1102,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a3f503de51cf954ede28891d",
|
||||
"name": "Symmetric Difference",
|
||||
"name": "Bonfire: Symmetric Difference",
|
||||
"difficulty": "4.02",
|
||||
"description": [
|
||||
"Create a function that takes two or more arrays and returns an array of the symmetric difference of the provided arrays.",
|
||||
@@ -1127,7 +1127,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "aa2e6f85cab2ab736c9a9b24",
|
||||
"name": "Cash Register",
|
||||
"name": "Bonfire: Cash Register",
|
||||
"difficulty": "4.03",
|
||||
"description": [
|
||||
"Design a cash register drawer function that accepts purchase price as the first argument, payment as the second argument, and cash-in-drawer (cid) as the third argument.", "cid is a 2d array listing available currency.", "Return the string \"Insufficient Funds\" if cash-in-drawer is less than the change due. Return the string \"Closed\" if cash-in-drawer is equal to the change due.", "Otherwise, return change in coin and bills, sorted in highest to lowest order.",
|
||||
@@ -1167,7 +1167,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a56138aff60341a09ed6c480",
|
||||
"name": "Inventory Update",
|
||||
"name": "Bonfire: Inventory Update",
|
||||
"difficulty": "4.04",
|
||||
"description": [
|
||||
"Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical order.",
|
||||
@@ -1209,7 +1209,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a7bf700cd123b9a54eef01d5",
|
||||
"name": "No repeats please",
|
||||
"name": "Bonfire: No repeats please",
|
||||
"difficulty": "4.05",
|
||||
"description": [
|
||||
"Return the number of total permutations of the provided string that don't have repeated consecutive letters.",
|
||||
@@ -1237,7 +1237,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "a19f0fbe1872186acd434d5a",
|
||||
"name": "Friendly Date Ranges",
|
||||
"name": "Bonfire: Friendly Date Ranges",
|
||||
"difficulty": "4.06",
|
||||
"description": [
|
||||
"Implement a way of converting two dates into a more friendly date range that could be presented to a user.",
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bad87fee1348bd9acde08812",
|
||||
"name": "Use Bootstrap for Responsive Images",
|
||||
"name": "Waypoint: Mobile Responsive Images",
|
||||
"difficulty": 0.047,
|
||||
"description": [
|
||||
"Add a new image with the <code>src</code> attribute of \"http://bit.ly/fcc-kittens2\", and add the <code>img-responsive</code> Bootstrap class to the image.",
|
||||
@@ -79,7 +79,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd8acde08812",
|
||||
"name": "Center Text with Bootstrap",
|
||||
"name": "Waypoint: Center Text with Bootstrap",
|
||||
"difficulty": 0.048,
|
||||
"description": [
|
||||
"Add Bootstrap's <code>text-center</code> class to your h2 element.",
|
||||
@@ -152,7 +152,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348cd8acdf08812",
|
||||
"name": "Create a Bootstrap Button",
|
||||
"name": "Waypoint: Create a Bootstrap Button",
|
||||
"difficulty": 0.049,
|
||||
"description": [
|
||||
"Create a new button below your large kitten photo with the class \"btn\" and the text of \"like this photo\".",
|
||||
@@ -224,7 +224,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348cd8acef08812",
|
||||
"name": "Create a Block Element Bootstrap Button",
|
||||
"name": "Waypoint: Create a Block Element Bootstrap Button",
|
||||
"difficulty": 0.050,
|
||||
"description": [
|
||||
"Add Bootstrap's <code>btn-block</code> class to your Bootstrap button.",
|
||||
@@ -298,7 +298,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348cd8acef08811",
|
||||
"name": "Color a Bootstrap Button with Button Primary",
|
||||
"name": "Waypoint: Rock Bootstrap Buttons",
|
||||
"difficulty": 0.051,
|
||||
"description": [
|
||||
"Add Bootstrap's <code>btn-block</code> class to both of your buttons.",
|
||||
@@ -372,7 +372,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348cd8acef08813",
|
||||
"name": "Color a Bootstrap Button with Button Info",
|
||||
"name": "Waypoint: Color a Bootstrap Button with Button Info",
|
||||
"difficulty": 0.052,
|
||||
"description": [
|
||||
"Create a new block-level Bootstrap button below your \"like\" button with the text \"Info\", and add Bootstrap's <code>btn-info</code> class to it.",
|
||||
@@ -447,7 +447,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348ce8acef08814",
|
||||
"name": "Warn your Users of a Dangerous Action with the Bootstrap Button Danger Class",
|
||||
"name": "Waypoint: Warn your Users of a Dangerous Action",
|
||||
"difficulty": 0.053,
|
||||
"description": [
|
||||
"Create a button with the text \"delete\" and give it the class <code>btn-danger</code>.",
|
||||
@@ -523,7 +523,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad88fee1348ce8acef08815",
|
||||
"name": "Use the Bootstrap Grid to Put Elements Side By Side",
|
||||
"name": "Waypoint: Use the Bootstrap Grid to Put Elements Side By Side",
|
||||
"difficulty": 0.054,
|
||||
"description": [
|
||||
"Put the \"like\", \"Info\" and \"Delete\" buttons side-by-side by wrapping them in both in a <code><div class=\"row\"></code> element and each of them in a <code><div class=\"col-xs-4\"></code> element.",
|
||||
@@ -601,7 +601,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedf08845",
|
||||
"name": "Use Bootstrap Text Primary Class instead of Custom CSS",
|
||||
"name": "Waypoint: Ditch Custom CSS for Bootstrap",
|
||||
"difficulty" : 0.055,
|
||||
"description": [
|
||||
"Delete the following from your style tag: <code>.red-text</code>, <code>p</code>, <code>.smaller-image</code>. Delete the <code>p</code> element with the dead link. Remove your <code>red-text</code> class from your <code>h2</code> element and instead apply the <code>text-primary</code> Bootstrap class. Replace the <code>smaller-image</code> class on your top image with the <code>img-responsive</code> class."
|
||||
@@ -688,7 +688,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aede08845",
|
||||
"name": "Create a Custom Heading",
|
||||
"name": "Waypoint: Create a Custom Heading",
|
||||
"difficulty" : 0.056,
|
||||
"description": [
|
||||
"Wrap your first image and your h2 element in a <code><div class='row'></code> element. Wrap your h2 text in a <code><div class='col-xs-8'></code> and your image in a <code><div class='col-xs-4'></code> so that they are on the same line."
|
||||
@@ -760,7 +760,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedd08845",
|
||||
"name": "Add Font Awesome Icons to our Buttons",
|
||||
"name": "Waypoint: Add Font Awesome Icons to our Buttons",
|
||||
"difficulty" : 0.057,
|
||||
"description": [
|
||||
"Use Font Awesome to add a \"like\" icon to your like button.",
|
||||
@@ -835,7 +835,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedc08845",
|
||||
"name": "Add Font Awesome Icons all of our Buttons",
|
||||
"name": "Waypoint: Add Font Awesome Icons all of our Buttons",
|
||||
"difficulty" : 0.058,
|
||||
"description": [
|
||||
"Use Font Awesome to add a \"info-circle\" icon to your info button and a \"trash\" button to your delete button.",
|
||||
@@ -911,7 +911,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aedb08845",
|
||||
"name": "Use Bootstrap to Responsively Style a Radio Buttons",
|
||||
"name": "Waypoint: Responsively Style a Radio Buttons",
|
||||
"difficulty" : 0.059,
|
||||
"description": [
|
||||
"Wrap all of your radio buttons in a <code><div class='row'></code> element. Then wrap each of them in a <code><div class='col-xs-6'></code> element."
|
||||
@@ -986,7 +986,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aeda08845",
|
||||
"name": "Use Bootstrap to Responsively Style Checkboxes",
|
||||
"name": "Waypoint: Responsively Style Checkboxes",
|
||||
"difficulty" : 0.060,
|
||||
"description": [
|
||||
"Wrap all your checkboxes in a <code><div class='row'></code> element. Then wrap each of them in a <code><div class='col-xs-4'></code> element."
|
||||
@@ -1068,7 +1068,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aed908845",
|
||||
"name": "Style a Text Input with the Bootstrap Form Control Class",
|
||||
"name": "Waypoint: Style a Text Input with the Bootstrap Form Control Class",
|
||||
"difficulty" : 0.061,
|
||||
"description": [
|
||||
"Give your form's text input field in a class of \"form-control\". Give your form's submit button the classes \"btn btn-primary\" and give it the Font Awesome icon of \"fa-paper-plane\"."
|
||||
@@ -1160,7 +1160,7 @@
|
||||
|
||||
{
|
||||
"_id" : "bad87fee1348bd9aec908845",
|
||||
"name": "Line up Form Elements Responsively with Bootstrap",
|
||||
"name": "Waypoint: Line up Form Elements Responsively with Bootstrap",
|
||||
"difficulty" : 0.062,
|
||||
"description": [
|
||||
"Wrap both your form's text input field and submit button within a div with the class \"row\". Wrap your form's text input field within a div with the class of \"col-xs-7\". Wrap your form's submit button the in a div with the class \"col-xs-5\"."
|
||||
@@ -1252,7 +1252,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad88fee1348bd9aedf08825",
|
||||
"name": "Adjusting the Padding of an Element",
|
||||
"name": "Waypoint: Adjusting the Padding of an Element",
|
||||
"difficulty": 0.064,
|
||||
"description": [
|
||||
"Change the <code>padding</code> of the green box to match that of the red box.",
|
||||
@@ -1303,7 +1303,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08822",
|
||||
"name": "Adjust the Margin of an Element",
|
||||
"name": "Waypoint: Adjust the Margin of an Element",
|
||||
"difficulty": 0.065,
|
||||
"description": [
|
||||
"Change the <code>margin</code> of the green box to match that of the red box.",
|
||||
@@ -1356,7 +1356,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08823",
|
||||
"name": "Add a Negative Margin to an Element",
|
||||
"name": "Waypoint: Add a Negative Margin to an Element",
|
||||
"difficulty": 0.066,
|
||||
"description": [
|
||||
"Change the <code>margin</code> of the green box to a negative value, so it fills the entire horizontal width of the blue box.",
|
||||
@@ -1408,7 +1408,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08824",
|
||||
"name": "Add Different Padding to Each Side of an Element TEST",
|
||||
"name": "Waypoint: Add Different Padding to Each Side of an Element TEST",
|
||||
"difficulty": 0.067,
|
||||
"description": [
|
||||
"Give the green box a padding of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
@@ -1461,7 +1461,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1248bd9aedf08824",
|
||||
"name": "Add Different a Margin to Each Side of an Element TEST",
|
||||
"name": "Waypoint: Add Different a Margin to Each Side of an Element TEST",
|
||||
"difficulty": 0.068,
|
||||
"description": [
|
||||
"Give the green box a margin of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
@@ -1514,7 +1514,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedf08826",
|
||||
"name": "Use Clockwise Notation to Specify an Element's Padding",
|
||||
"name": "Waypoint: Use Clockwise Notation to Specify an Element's Padding",
|
||||
"difficulty": 0.069,
|
||||
"description": [
|
||||
"Use <code>Clockwise Notation</code> to give an element padding of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
@@ -1565,7 +1565,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aede08826",
|
||||
"name": "Use Hex Codes for Precise Colors",
|
||||
"name": "Waypoint: Use Hex Codes for Precise Colors",
|
||||
"difficulty": 0.070,
|
||||
"description": [
|
||||
|
||||
@@ -1581,7 +1581,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedd08826",
|
||||
"name": "Use Shortened Hex Codes for Colors",
|
||||
"name": "Waypoint: Use Shortened Hex Codes for Colors",
|
||||
"difficulty": 0.071,
|
||||
"description": [
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7123d8c441eddfaeb5bdef",
|
||||
"name": "Learn Basic Computer Science",
|
||||
"name": "Waypoint: Learn Basic Computer Science",
|
||||
"difficulty": 0.90,
|
||||
"challengeSeed": "114628241",
|
||||
"description": [
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd8124d8c441eddfaeb5bdef",
|
||||
"name": "Learn Loops",
|
||||
"name": "Waypoint: Learn Loops",
|
||||
"difficulty": 0.19,
|
||||
"challengeSeed": "114597348",
|
||||
"description": [
|
||||
@@ -31,7 +31,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd8125d8c441eddfaeb5bdef",
|
||||
"name": "Learn Computer Hardware",
|
||||
"name": "Waypoint: Learn Computer Hardware",
|
||||
"difficulty": 0.20,
|
||||
"challengeSeed": "114597347",
|
||||
"description": [
|
||||
@@ -44,7 +44,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd8126d8c441eddfaeb5bdef",
|
||||
"name": "Learn Computer Networking",
|
||||
"name": "Waypoint: Learn Computer Networking",
|
||||
"difficulty": 0.21,
|
||||
"challengeSeed": "114604811",
|
||||
"description": [
|
||||
@@ -57,7 +57,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd8127d8c441eddfaeb5bdef",
|
||||
"name": "Learn Boolean Logic",
|
||||
"name": "Waypoint: Learn Boolean Logic",
|
||||
"difficulty": 0.22,
|
||||
"challengeSeed": "114604812",
|
||||
"description": [
|
||||
@@ -70,7 +70,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd8128d8c441eddfaeb5bdef",
|
||||
"name": "Learn Computer Security",
|
||||
"name": "Waypoint: Learn Computer Security",
|
||||
"difficulty": 0.23,
|
||||
"challengeSeed": "114604813",
|
||||
"description": [
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7154d8c441eddfaeb5bdef",
|
||||
"name": "Get Started with Angular.js",
|
||||
"name": "Waypoint: Get Started with Angular.js",
|
||||
"difficulty": 0.34,
|
||||
"challengeSeed": "114684726",
|
||||
"description": [
|
||||
@@ -17,7 +17,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7155d8c441eddfaeb5bdef",
|
||||
"name": "Apply Angular.js Directives",
|
||||
"name": "Waypoint: Apply Angular.js Directives",
|
||||
"difficulty": 0.35,
|
||||
"challengeSeed": "114684727",
|
||||
"description": [
|
||||
@@ -30,7 +30,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7156d8c441eddfaeb5bdef",
|
||||
"name": "Power Forms with Angular.js",
|
||||
"name": "Waypoint: Power Forms with Angular.js",
|
||||
"difficulty": 0.36,
|
||||
"challengeSeed": "114684729",
|
||||
"description": [
|
||||
@@ -43,7 +43,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7157d8c441eddfaeb5bdef",
|
||||
"name": "Customize Angular.js Directives",
|
||||
"name": "Waypoint: Customize Angular.js Directives",
|
||||
"difficulty": 0.37,
|
||||
"challengeSeed": "114685062",
|
||||
"description": [
|
||||
@@ -55,7 +55,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7158d8c441eddfaeb5bdef",
|
||||
"name": "Create Angular.js Services",
|
||||
"name": "Waypoint: Create Angular.js Services",
|
||||
"difficulty": 0.38,
|
||||
"challengeSeed": "114685060",
|
||||
"description": [
|
||||
@@ -68,7 +68,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bd0f",
|
||||
"name": "Manage Packages with NPM",
|
||||
"name": "Waypoint: Manage Packages with NPM",
|
||||
"difficulty": 0.39,
|
||||
"challengeSeed": "126433450",
|
||||
"description": [
|
||||
@@ -92,7 +92,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bdff",
|
||||
"name": "Start a Node.js Server",
|
||||
"name": "Waypoint: Start a Node.js Server",
|
||||
"difficulty": 0.40,
|
||||
"challengeSeed": "126411561",
|
||||
"description": [
|
||||
@@ -116,7 +116,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bdfe",
|
||||
"name": "Continue working with Node.js Servers",
|
||||
"name": "Waypoint: Continue working with Node.js Servers",
|
||||
"difficulty": 0.41,
|
||||
"challengeSeed": "126411561",
|
||||
"description": [
|
||||
@@ -129,7 +129,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bdfd",
|
||||
"name": "Finish working with Node.js Servers",
|
||||
"name": "Waypoint: Finish working with Node.js Servers",
|
||||
"difficulty": 0.42,
|
||||
"challengeSeed": "126411561",
|
||||
"description": [
|
||||
@@ -142,7 +142,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7153d8c441eddfaeb5bd1f",
|
||||
"name": "Build Web Apps with Express.js",
|
||||
"name": "Waypoint: Build Web Apps with Express.js",
|
||||
"difficulty": 0.43,
|
||||
"challengeSeed": "126411559",
|
||||
"description": [
|
||||
@@ -166,7 +166,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7140d8c441eddfaeb5bdef",
|
||||
"name": "Manage Source Code with Git",
|
||||
"name": "Waypoint: Manage Source Code with Git",
|
||||
"difficulty": 0.44,
|
||||
"challengeSeed": "114635309",
|
||||
"description": [
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7124d8c441eddfaeb5bdef",
|
||||
"name": "Learn how Free Code Camp Works",
|
||||
"name": "Waypoint: Learn how Free Code Camp Works",
|
||||
"difficulty": 0.001,
|
||||
"challengeSeed": "125407438",
|
||||
"description": [
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bd0f",
|
||||
"name": "Join Our Chat Room",
|
||||
"name": "Waypoint: Join Our Chat Room",
|
||||
"difficulty": 0.002,
|
||||
"challengeSeed": "124555254",
|
||||
"description": [
|
||||
@@ -42,7 +42,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bdff",
|
||||
"name": "Preview our Challenge Map",
|
||||
"name": "Waypoint: Preview our Challenge Map",
|
||||
"difficulty": 0.003,
|
||||
"challengeSeed": "125407437",
|
||||
"description": [
|
||||
@@ -58,7 +58,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bd1f",
|
||||
"name": "Browse our Field Guide",
|
||||
"name": "Waypoint: Browse our Field Guide",
|
||||
"difficulty": 0.004,
|
||||
"challengeSeed": "125407435",
|
||||
"description": [
|
||||
@@ -73,7 +73,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7125d8c441eddfaeb5bd2f",
|
||||
"name": "Customize your Portfolio Page",
|
||||
"name": "Waypoint: Customize your Portfolio Page",
|
||||
"difficulty": 0.005,
|
||||
"challengeSeed": "125407433",
|
||||
"description": [
|
||||
@@ -90,7 +90,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7126d8c441eddfaeb5bd3f",
|
||||
"name": "Try Camper News",
|
||||
"name": "Waypoint: Try Camper News",
|
||||
"difficulty": 0.006,
|
||||
"challengeSeed": "124553410",
|
||||
"description": [
|
||||
@@ -109,7 +109,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7126d8c441eddfaeb5bd3e",
|
||||
"name": "Meet Other Campers in your City",
|
||||
"name": "Waypoint: Meet Other Campers in your City",
|
||||
"difficulty": 0.007,
|
||||
"challengeSeed": "127358841",
|
||||
"description": [
|
||||
@@ -127,7 +127,7 @@
|
||||
},
|
||||
{
|
||||
"_id": "bd7137d8c441eddfaeb5bdef",
|
||||
"name": "Get Help the Hacker Way with RSAP",
|
||||
"name": "Waypoint: Get Help the Hacker Way with RSAP",
|
||||
"difficulty": 0.008,
|
||||
"challengeSeed": "125407432",
|
||||
"description": [
|
||||
|
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "jQuery Ajax and JSON",
|
||||
"name": "jQuery, Ajax and JSON",
|
||||
"order" : 0.004,
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bad87fee1348bd9acdd08826",
|
||||
"name": "Learn how Script Tags and Document Ready Work",
|
||||
"name": "Waypoint: Learn how Script Tags and Document Ready Work",
|
||||
"difficulty": 0.072,
|
||||
"description": [
|
||||
"Test"
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedc08826",
|
||||
"name": "Target Elements by Selectors Using jQuery",
|
||||
"name": "Waypoint: Target Elements by Selectors Using jQuery",
|
||||
"difficulty": 0.073,
|
||||
"description": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aedb08826",
|
||||
"name": "Target Elements by Class Using jQuery",
|
||||
"name": "Waypoint: Target Elements by Class Using jQuery",
|
||||
"difficulty": 0.074,
|
||||
"description": [
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aeda08826",
|
||||
"name": "Target an element by ID Using jQuery",
|
||||
"name": "Waypoint: Target an element by ID Using jQuery",
|
||||
"difficulty": 0.075,
|
||||
"description": [
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed908826",
|
||||
"name": "Change the CSS of an Element Using jQuery",
|
||||
"name": "Waypoint: Change the CSS of an Element Using jQuery",
|
||||
"difficulty": 0.076,
|
||||
"description": [
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed808826",
|
||||
"name": "Disable an Element Using jQuery",
|
||||
"name": "Waypoint: Disable an Element Using jQuery",
|
||||
"difficulty": 0.077,
|
||||
"description": [
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed708826",
|
||||
"name": "Remove an Element Using jQuery",
|
||||
"name": "Waypoint: Remove an Element Using jQuery",
|
||||
"difficulty": 0.078,
|
||||
"description": [
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed608826",
|
||||
"name": "Move an Element Using jQuery",
|
||||
"name": "Waypoint: Move an Element Using jQuery",
|
||||
"difficulty": 0.079,
|
||||
"description": [
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed508826",
|
||||
"name": "Clone an Element Using jQuery",
|
||||
"name": "Waypoint: Clone an Element Using jQuery",
|
||||
"difficulty": 0.080,
|
||||
"description": [
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed408826",
|
||||
"name": "Animate an Element Using jQuery",
|
||||
"name": "Waypoint: Animate an Element Using jQuery",
|
||||
"difficulty": 0.081,
|
||||
"description": [
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed308826",
|
||||
"name": "Target the Parent of an Element Using jQuery",
|
||||
"name": "Waypoint: Target the Parent of an Element Using jQuery",
|
||||
"difficulty": 0.082,
|
||||
"description": [
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed208826",
|
||||
"name": "Target the Children of an Element Using jQuery",
|
||||
"name": "Waypoint: Target the Children of an Element Using jQuery",
|
||||
"difficulty": 0.083,
|
||||
"description": [
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed108826",
|
||||
"name": "Target a Specific Child of an Element Using jQuery",
|
||||
"name": "Waypoint: Target a Specific Child of an Element Using jQuery",
|
||||
"difficulty": 0.084,
|
||||
"description": [
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aed008826",
|
||||
"name": "Target Even Numbered Elements Using jQuery",
|
||||
"name": "Waypoint: Target Even Numbered Elements Using jQuery",
|
||||
"difficulty": 0.085,
|
||||
"description": [
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aecc08826",
|
||||
"name": "Read Data from an Element Using jQuery",
|
||||
"name": "Waypoint: Read Data from an Element Using jQuery",
|
||||
"difficulty": 0.086,
|
||||
"description": [
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9aebc08826",
|
||||
"name": "Get Data from an URL Using jQuery",
|
||||
"name": "Waypoint: Get Data from an URL Using jQuery",
|
||||
"difficulty": 0.087,
|
||||
"description": [
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9ae9c08826",
|
||||
"name": "Loop through JSON Data Using jQuery",
|
||||
"name": "Waypoint: Loop through JSON Data Using jQuery",
|
||||
"difficulty": 0.089,
|
||||
"description": [
|
||||
|
||||
@@ -283,7 +283,7 @@
|
||||
|
||||
{
|
||||
"_id": "bad87fee1348bd9ae8c08826",
|
||||
"name": "Setup Click Events Using jQuery",
|
||||
"name": "Waypoint: Setup Click Events Using jQuery",
|
||||
"difficulty": 0.089,
|
||||
"description": [
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"challenges": [
|
||||
{
|
||||
"_id": "bd7158d8c442eddfbeb5bd1f",
|
||||
"name": "Get Set for Ziplines",
|
||||
"name": "Waypoint: Get Set for Ziplines",
|
||||
"difficulty": 1.00,
|
||||
"challengeSeed": "125658022",
|
||||
"description": [
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
{}
|
@@ -14,7 +14,7 @@ block content
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png')
|
||||
else
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
||||
.col-xs-12.col-md-8.col-md-offset-2
|
||||
.col-xs-12.col-md-10.col-md-offset-1
|
||||
h2.text-center
|
||||
span.text-primary #{camperCount}  
|
||||
| campers have joined our community
|
||||
@@ -22,20 +22,16 @@ block content
|
||||
| since we launched  
|
||||
span.text-primary #{daysRunning}  
|
||||
| days ago.
|
||||
h2
|
||||
span.fa.fa-flag
|
||||
| Waypoints (200 hours of lessons)
|
||||
|
||||
.col-xs-12.no-right-padding
|
||||
.spacer
|
||||
h3.negative-15
|
||||
ol
|
||||
for waypoint in waypoints
|
||||
if completedChallengeList.indexOf(waypoint._id) > -1
|
||||
for challenge in challengeList
|
||||
if completedChallengeList.indexOf(challenge._id) > -1
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.faded
|
||||
a(href="/challenges/#{waypoint.name}")= waypoint.name
|
||||
a(href="/challenges/#{challenge.name}")= challenge.name
|
||||
|
||||
else
|
||||
.row
|
||||
@@ -43,67 +39,8 @@ block content
|
||||
span
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li
|
||||
a(href="/challenges/#{waypoint.name}")= waypoint.name
|
||||
h2
|
||||
span.ion-bonfire
|
||||
| Bonfires (200 hours of JavaScript algorithm practice)
|
||||
.col-xs-12
|
||||
h3.negative-15
|
||||
ol
|
||||
for bonfire in bonfires
|
||||
if completedChallengeList.indexOf(bonfire._id) > -1
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.faded
|
||||
a(href="/challenges/#{bonfire.name}")= bonfire.name
|
||||
else
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
span
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li
|
||||
a(href="/challenges/#{bonfire.name}")= bonfire.name
|
||||
h2
|
||||
span.fa.fa-angle-double-right
|
||||
| Ziplines (200 hours of front end development)
|
||||
.col-xs-12
|
||||
h3.negative-15
|
||||
ol
|
||||
for zipline in ziplines
|
||||
if completedChallengeList.indexOf(zipline._id) > -1
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.faded
|
||||
a(href="/challenges/#{zipline.name}")= zipline.name
|
||||
else
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
span
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li
|
||||
a(href="/challenges/#{zipline.name}")= zipline.name
|
||||
h2
|
||||
span.fa.fa-level-down
|
||||
| Basejumps (200 hours of full stack development)
|
||||
.col-xs-12
|
||||
h3.negative-15
|
||||
ol
|
||||
for basejump in basejumps
|
||||
if completedChallengeList.indexOf(basejump._id) > -1
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.faded
|
||||
a(href="/challenges/#{basejump.name}")= basejump.name
|
||||
else
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
span
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li
|
||||
a(href="/challenges/#{basejump.name}")= basejump.name
|
||||
a(href="/challenges/#{challenge.name}")= challenge.name
|
||||
|
||||
h2
|
||||
span.ion-ios-heart Nonprofit Projects (800 hours of real-world experience)*
|
||||
h3.negative-15
|
||||
|
Reference in New Issue
Block a user