Merge branch 'staging' of https://github.com/FreeCodeCamp/freecodecamp into greasan-translateDE
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "aff0395860f5d3034dc0bfc9",
|
||||
"name": "Bonfire: Validate US Telephone Numbers",
|
||||
"dashedName": "bonfire-validate-us-telephone-numbers",
|
||||
"difficulty": "4.01",
|
||||
"description": [
|
||||
"Return true if the passed string is a valid US phone number",
|
||||
@ -65,6 +66,7 @@
|
||||
{
|
||||
"id": "a3f503de51cf954ede28891d",
|
||||
"name": "Bonfire: Symmetric Difference",
|
||||
"dashedName": "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.",
|
||||
@ -102,6 +104,7 @@
|
||||
{
|
||||
"id": "aa2e6f85cab2ab736c9a9b24",
|
||||
"name": "Bonfire: Exact Change",
|
||||
"dashedName": "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.",
|
||||
@ -157,6 +160,7 @@
|
||||
{
|
||||
"id": "a56138aff60341a09ed6c480",
|
||||
"name": "Bonfire: Inventory Update",
|
||||
"dashedName": "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.",
|
||||
@ -211,6 +215,7 @@
|
||||
{
|
||||
"id": "a7bf700cd123b9a54eef01d5",
|
||||
"name": "Bonfire: No repeats please",
|
||||
"dashedName": "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.",
|
||||
@ -252,6 +257,7 @@
|
||||
{
|
||||
"id": "a19f0fbe1872186acd434d5a",
|
||||
"name": "Bonfire: Friendly Date Ranges",
|
||||
"dashedName": "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.",
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bcef",
|
||||
"name": "Waypoint: Get Set for Basejumps",
|
||||
"dashedName": "waypoint-get-set-for-basejumps",
|
||||
"difficulty": 2.00,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
@ -66,6 +67,7 @@
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdef",
|
||||
"name": "Basejump: Build a Voting App",
|
||||
"dashedName": "basejump-build-a-voting-app",
|
||||
"difficulty": 2.01,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
@ -101,6 +103,7 @@
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdff",
|
||||
"name": "Basejump: Build a Nightlife Coordination App",
|
||||
"dashedName": "basejump-build-a-nightlife-coordination-app",
|
||||
"difficulty": 2.02,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
@ -132,6 +135,7 @@
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bd0e",
|
||||
"name": "Basejump: Chart the Stock Market",
|
||||
"dashedName": "basejump-chart-the-stock-market",
|
||||
"difficulty": 2.03,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
@ -163,6 +167,7 @@
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bd0f",
|
||||
"name": "Basejump: Manage a Book Trading Club",
|
||||
"dashedName": "basejump-manage-a-book-trading-club",
|
||||
"difficulty": 2.04,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
@ -194,6 +199,7 @@
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdee",
|
||||
"name": "Basejump: Build a Pinterest Clone",
|
||||
"dashedName": "basejump-build-a-pinterest-clone",
|
||||
"difficulty": 2.05,
|
||||
"challengeSeed": ["128451852"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7139d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Pair Program on Bonfires",
|
||||
"dashedName": "waypoint-pair-program-on-bonfires",
|
||||
"difficulty": 0.44,
|
||||
"challengeSeed": ["119657641"],
|
||||
"description": [
|
||||
@ -42,11 +43,11 @@
|
||||
{
|
||||
"id": "ad7123c8c441eddfaeb5bdef",
|
||||
"name": "Bonfire: Meet Bonfire",
|
||||
"dashedName": "bonfire-meet-bonfire",
|
||||
"difficulty": "0",
|
||||
"description": [
|
||||
"Click the button below for further instructions.",
|
||||
"Your goal is to fix the failing test.",
|
||||
"First, run all the tests by clicking \"Run code\" or by pressing Control + Enter",
|
||||
"First, run all the tests by clicking \"Run code\" or by pressing Control + Enter.",
|
||||
"The failing test is in red. Fix the code so that all tests pass. Then you can move on to the next Bonfire.",
|
||||
"Make this function return true no matter what."
|
||||
],
|
||||
@ -81,6 +82,7 @@
|
||||
{
|
||||
"id": "a202eed8fc186c8434cb6d61",
|
||||
"name": "Bonfire: Reverse a String",
|
||||
"dashedName": "bonfire-reverse-a-string",
|
||||
"difficulty": "1.01",
|
||||
"tests": [
|
||||
"expect(reverseString('hello')).to.be.a('String');",
|
||||
@ -122,6 +124,7 @@
|
||||
{
|
||||
"id": "a302f7aae1aa3152a5b413bc",
|
||||
"name": "Bonfire: Factorialize a Number",
|
||||
"dashedName": "bonfire-factorialize-a-number",
|
||||
"tests": [
|
||||
"expect(factorialize(5)).to.be.a(\"Number\");",
|
||||
"expect(factorialize(5)).to.equal(120);",
|
||||
@ -161,6 +164,7 @@
|
||||
{
|
||||
"id": "aaa48de84e1ecc7c742e1124",
|
||||
"name": "Bonfire: Check for Palindromes",
|
||||
"dashedName": "bonfire-check-for-palindromes",
|
||||
"difficulty": "1.03",
|
||||
"description": [
|
||||
"Return true if the given string is a palindrome. Otherwise, return false.",
|
||||
@ -207,6 +211,7 @@
|
||||
{
|
||||
"id": "a26cbbe9ad8655a977e1ceb5",
|
||||
"name": "Bonfire: Find the Longest Word in a String",
|
||||
"dashedName": "bonfire-find-the-longest-word-in-a-string",
|
||||
"difficulty": "1.04",
|
||||
"description": [
|
||||
"Return the length of the longest word in the provided sentence.",
|
||||
@ -246,6 +251,7 @@
|
||||
{
|
||||
"id": "ab6137d4e35944e21037b769",
|
||||
"name": "Bonfire: Title Case a Sentence",
|
||||
"dashedName": "bonfire-title-case-a-sentence",
|
||||
"difficulty": "1.05",
|
||||
"description": [
|
||||
"Return the provided string with the first letter of each word capitalized.",
|
||||
@ -283,6 +289,7 @@
|
||||
{
|
||||
"id": "a789b3483989747d63b0e427",
|
||||
"name": "Bonfire: Return Largest Numbers in Arrays",
|
||||
"dashedName": "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.",
|
||||
@ -321,6 +328,7 @@
|
||||
{
|
||||
"id": "acda2fb1324d9b0fa741e6b5",
|
||||
"name": "Bonfire: Confirm the Ending",
|
||||
"dashedName": "bonfire-confirm-the-ending",
|
||||
"difficulty": "1.07",
|
||||
"description": [
|
||||
"Check if a string (first argument) ends with the given target string (second argument).",
|
||||
@ -360,6 +368,7 @@
|
||||
{
|
||||
"id": "afcc8d540bea9ea2669306b6",
|
||||
"name": "Bonfire: Repeat a string repeat a string",
|
||||
"dashedName": "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.",
|
||||
@ -396,6 +405,7 @@
|
||||
{
|
||||
"id": "ac6993d51946422351508a41",
|
||||
"name": "Bonfire: Truncate a string",
|
||||
"dashedName": "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.",
|
||||
@ -433,6 +443,7 @@
|
||||
{
|
||||
"id": "a9bd25c716030ec90084d8a1",
|
||||
"name": "Bonfire: Chunky Monkey",
|
||||
"dashedName": "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.",
|
||||
@ -470,6 +481,7 @@
|
||||
{
|
||||
"id": "ab31c21b530c0dafa9e241ee",
|
||||
"name": "Bonfire: Slasher Flick",
|
||||
"dashedName": "bonfire-slasher-flick",
|
||||
"difficulty": "1.11",
|
||||
"description": [
|
||||
"Return the remaining elements of an array after chopping off n elements from the head.",
|
||||
@ -507,6 +519,7 @@
|
||||
{
|
||||
"id": "af2170cad53daa0770fabdea",
|
||||
"name": "Bonfire: Mutations",
|
||||
"dashedName": "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.",
|
||||
@ -549,6 +562,7 @@
|
||||
{
|
||||
"id": "adf08ec01beb4f99fc7a68f2",
|
||||
"name": "Bonfire: Falsey Bouncer",
|
||||
"dashedName": "bonfire-falsey-bouncer",
|
||||
"difficulty": "1.50",
|
||||
"description": [
|
||||
"Remove all falsey values from an array.",
|
||||
@ -587,6 +601,7 @@
|
||||
{
|
||||
"id": "a8e512fbe388ac2f9198f0fa",
|
||||
"name": "Bonfire: Where art thou",
|
||||
"dashedName": "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).",
|
||||
@ -625,6 +640,7 @@
|
||||
{
|
||||
"id": "a39963a4c10bc8b4d4f06d7e",
|
||||
"name": "Bonfire: Seek and Destroy",
|
||||
"dashedName": "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.",
|
||||
@ -661,6 +677,7 @@
|
||||
{
|
||||
"id": "a24c1a4622e3c05097f71d67",
|
||||
"name": "Bonfire: Where do I belong",
|
||||
"dashedName": "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).",
|
||||
@ -697,6 +714,7 @@
|
||||
{
|
||||
"id": "a3566b1109230028080c9345",
|
||||
"name": "Bonfire: Sum All Numbers in a Range",
|
||||
"dashedName": "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.",
|
||||
@ -736,7 +754,8 @@
|
||||
},
|
||||
{
|
||||
"id": "a5de63ebea8dbee56860f4f2",
|
||||
"name": "Bonfire: Diff Two Arrays",
|
||||
"name": "bonfire-diff-two-arrays",
|
||||
"dashedName": "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.",
|
||||
@ -782,6 +801,7 @@
|
||||
{
|
||||
"id": "a7f4d8f2483413a6ce226cac",
|
||||
"name": "Bonfire: Roman Numeral Converter",
|
||||
"dashedName": "bonfire-roman-numeral-converter",
|
||||
"tests": [
|
||||
"expect(convert(12)).to.equal(\"XII\");",
|
||||
"expect(convert(5)).to.equal(\"V\");",
|
||||
@ -822,6 +842,7 @@
|
||||
{
|
||||
"id": "a0b5010f579e69b815e7c5d6",
|
||||
"name": "Bonfire: Search and Replace",
|
||||
"dashedName": "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\");",
|
||||
@ -865,6 +886,7 @@
|
||||
{
|
||||
"id": "aa7697ea2477d1316795783b",
|
||||
"name": "Bonfire: Pig Latin",
|
||||
"dashedName": "bonfire-pig-latin",
|
||||
"tests": [
|
||||
"expect(translate(\"california\")).to.equal(\"aliforniacay\");",
|
||||
"expect(translate(\"paragraphs\")).to.equal(\"aragraphspay\");",
|
||||
@ -908,6 +930,7 @@
|
||||
{
|
||||
"id": "afd15382cdfb22c9efe8b7de",
|
||||
"name": "Bonfire: DNA Pairing",
|
||||
"dashedName": "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');",
|
||||
@ -946,6 +969,7 @@
|
||||
{
|
||||
"id": "af7588ade1100bde429baf20",
|
||||
"name": "Bonfire: Missing letters",
|
||||
"dashedName": "bonfire-missing-letters",
|
||||
"difficulty": "2.05",
|
||||
"description": [
|
||||
"Find the missing letter in the passed letter range and return it.",
|
||||
@ -983,6 +1007,7 @@
|
||||
{
|
||||
"id": "a77dbc43c33f39daa4429b4f",
|
||||
"name": "Bonfire: Boo who",
|
||||
"dashedName": "bonfire-boo-who",
|
||||
"difficulty": "2.06",
|
||||
"description": [
|
||||
"Check if a value is classified as a boolean primitive. Return true or false.",
|
||||
@ -1025,6 +1050,7 @@
|
||||
{
|
||||
"id": "a105e963526e7de52b219be9",
|
||||
"name": "Bonfire: Sorted Union",
|
||||
"dashedName": "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.",
|
||||
@ -1062,6 +1088,7 @@
|
||||
{
|
||||
"id": "a6b0bb188d873cb2c8729495",
|
||||
"name": "Bonfire: Convert HTML Entities",
|
||||
"dashedName": "bonfire-convert-html-entities",
|
||||
"difficulty": "2.07",
|
||||
"description": [
|
||||
"Convert the characters \"&\", \"<\", \">\", '\"', and \"'\", in a string to their corresponding HTML entities.",
|
||||
@ -1097,6 +1124,7 @@
|
||||
{
|
||||
"id": "a103376db3ba46b2d50db289",
|
||||
"name": "Bonfire: Spinal Tap Case",
|
||||
"dashedName": "bonfire-spinal-tap-case",
|
||||
"difficulty": "2.08",
|
||||
"description": [
|
||||
"Convert a string to spinal case. Spinal case is all-lowercase-words-joined-by-dashes.",
|
||||
@ -1136,6 +1164,7 @@
|
||||
{
|
||||
"id": "a5229172f011153519423690",
|
||||
"name": "Bonfire: Sum All Odd Fibonacci Numbers",
|
||||
"dashedName": "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.",
|
||||
@ -1176,6 +1205,7 @@
|
||||
{
|
||||
"id": "a3bfc1673c0526e06d3ac698",
|
||||
"name": "Bonfire: Sum All Primes",
|
||||
"dashedName": "bonfire-sum-all-primes",
|
||||
"difficulty": "2.10",
|
||||
"description": [
|
||||
"Sum all the prime numbers up to and including the provided number.",
|
||||
@ -1214,6 +1244,7 @@
|
||||
{
|
||||
"id": "ae9defd7acaf69703ab432ea",
|
||||
"name": "Bonfire: Smallest Common Multiple",
|
||||
"dashedName": "bonfire-smallest-common-multiple",
|
||||
"difficulty": "2.11",
|
||||
"description": [
|
||||
"Find the smallest number that is evenly divisible by all numbers in the provided range.",
|
||||
@ -1252,6 +1283,7 @@
|
||||
{
|
||||
"id": "a6e40f1041b06c996f7b2406",
|
||||
"name": "Bonfire: Finders Keepers",
|
||||
"dashedName": "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).",
|
||||
@ -1287,6 +1319,7 @@
|
||||
{
|
||||
"id": "a5deed1811a43193f9f1c841",
|
||||
"name": "Bonfire: Drop it",
|
||||
"dashedName": "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.",
|
||||
@ -1324,6 +1357,7 @@
|
||||
{
|
||||
"id": "ab306dbdcc907c7ddfc30830",
|
||||
"name": "Bonfire: Steamroller",
|
||||
"dashedName": "bonfire-steamroller",
|
||||
"difficulty": "2.14",
|
||||
"description": [
|
||||
"Flatten a nested array. You must account for varying levels of nesting.",
|
||||
@ -1360,6 +1394,7 @@
|
||||
{
|
||||
"id": "a8d97bd4c764e91f9d2bda01",
|
||||
"name": "Bonfire: Binary Agents",
|
||||
"dashedName": "bonfire-binary-agents",
|
||||
"difficulty": "2.15",
|
||||
"description": [
|
||||
"Return an English translated sentence of the passed binary string.",
|
||||
@ -1396,6 +1431,7 @@
|
||||
{
|
||||
"id": "a10d2431ad0c6a099a4b8b52",
|
||||
"name": "Bonfire: Everything Be True",
|
||||
"dashedName": "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).",
|
||||
@ -1434,6 +1470,7 @@
|
||||
{
|
||||
"id": "a97fd23d9b809dac9921074f",
|
||||
"name": "Bonfire: Arguments Optional",
|
||||
"dashedName": "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.",
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7123c8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Say Hello to HTML Elements",
|
||||
"dashedName": "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.",
|
||||
@ -44,6 +45,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf0887a",
|
||||
"name": "Waypoint: Headline with the h2 Element",
|
||||
"dashedName": "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.",
|
||||
@ -80,6 +82,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08801",
|
||||
"name": "Waypoint: Inform with the Paragraph Element",
|
||||
"dashedName": "waypoint-inform-with-the-paragraph-element",
|
||||
"difficulty": 0.011,
|
||||
"description": [
|
||||
"Create a <code>p</code> element below your <code>h2</code> element, and give it the text \"Hello Paragraph\".",
|
||||
@ -114,6 +117,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aeaf08801",
|
||||
"name": "Waypoint: Visually Separate Elements with Line Breaks",
|
||||
"dashedName": "waypoint-visually-separate-elements-with-line-breaks",
|
||||
"difficulty": 0.012,
|
||||
"description": [
|
||||
"Add a <code>br</code> element to your page, preferably between two of your elements.",
|
||||
@ -149,6 +153,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08802",
|
||||
"name": "Waypoint: Uncomment HTML",
|
||||
"dashedName": "waypoint-uncomment-html",
|
||||
"difficulty": 0.013,
|
||||
"description": [
|
||||
"Uncomment your <code>h1</code>, <code>h2</code> and <code>p</code> elements.",
|
||||
@ -193,6 +198,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08804",
|
||||
"name": "Waypoint: Comment out HTML",
|
||||
"dashedName": "waypoint-comment-out-html",
|
||||
"difficulty": 0.014,
|
||||
"description": [
|
||||
"Comment out your <code>h1</code> element and your <code>p</code> element, but leave your <code>h2</code> element uncommented.",
|
||||
@ -235,6 +241,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08833",
|
||||
"name": "Waypoint: Fill in the Blank with Placeholder Text",
|
||||
"dashedName": "waypoint-fill-in-the-blank-with-placeholder-text",
|
||||
"difficulty": 0.015,
|
||||
"description": [
|
||||
"Replace the text inside your <code>p</code> element with the first few words of the provided \"Kitty Ipsum\" text.",
|
||||
@ -276,6 +283,7 @@
|
||||
{
|
||||
"id": "bad87fed1348bd9aedf08833",
|
||||
"name": "Waypoint: Delete HTML Elements",
|
||||
"dashedName": "waypoint-delete-html-elements",
|
||||
"difficulty": 0.016,
|
||||
"description": [
|
||||
"Delete your <code>h1</code> and <code>br</code> elements so we can simplify our view.",
|
||||
@ -316,6 +324,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08803",
|
||||
"name": "Waypoint: Change the Color of Text",
|
||||
"dashedName": "waypoint-change-the-color-of-text",
|
||||
"difficulty": 0.017,
|
||||
"description": [
|
||||
"Change your <code>h2</code> element's style so that its text color is red.",
|
||||
@ -351,6 +360,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08805",
|
||||
"name": "Waypoint: Use CSS Selectors to Style Elements",
|
||||
"dashedName": "waypoint-use-css-selectors-to-style-elements",
|
||||
"difficulty": 0.018,
|
||||
"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.",
|
||||
@ -395,6 +405,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aecf08806",
|
||||
"name": "Waypoint: Use a CSS Class to Style an Element",
|
||||
"dashedName": "waypoint-use-a-css-class-to-style-an-element",
|
||||
"difficulty": 0.019,
|
||||
"description": [
|
||||
"Create a CSS class called \"red-text\" and apply it to your <code>h2</code> element.",
|
||||
@ -436,6 +447,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aefe08806",
|
||||
"name": "Waypoint: Style Multiple Elements with a CSS Class",
|
||||
"dashedName": "waypoint-style-multiple-elements-with-a-css-class",
|
||||
"difficulty": 0.020,
|
||||
"description": [
|
||||
"Apply the \"red-text\" class to your <code>h2</code> and <code>p</code> elements.",
|
||||
@ -474,6 +486,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08806",
|
||||
"name": "Waypoint: Change the Font Size of an Element",
|
||||
"dashedName": "waypoint-change-the-font-size-of-an-element",
|
||||
"difficulty": 0.021,
|
||||
"description": [
|
||||
"Create a second <code>p</code> element. Then, inside your <code><style></code> element, set the \"font-size\" of all <code>p</code> elements to 16 pixels.",
|
||||
@ -513,6 +526,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08807",
|
||||
"name": "Waypoint: Set the Font Family of an Element",
|
||||
"dashedName": "waypoint-set-the-font-family-of-an-element",
|
||||
"difficulty": 0.022,
|
||||
"description": [
|
||||
"Make all of your <code>p</code> elements use the \"Monospace\" font.",
|
||||
@ -553,6 +567,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08807",
|
||||
"name": "Waypoint: Import a Google Font",
|
||||
"dashedName": "waypoint-import-a-google-font",
|
||||
"difficulty": 0.023,
|
||||
"description": [
|
||||
"Apply the <code>font-family</code> of \"Lobster\" to your <code>h2</code> element.",
|
||||
@ -598,6 +613,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08808",
|
||||
"name": "Waypoint: Specify How Fonts Should Degrade",
|
||||
"dashedName": "waypoint-specify-how-fonts-should-degrade",
|
||||
"difficulty": 0.024,
|
||||
"description": [
|
||||
"Make all your <code>h2</code> elements use \"Lobster\" as their font family, but degrade to the \"Monospace\" font when the \"Lobster\" font isn't available.",
|
||||
@ -647,6 +663,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08809",
|
||||
"name": "Waypoint: Override Styles with Important",
|
||||
"dashedName": "waypoint-override-styles-with-important",
|
||||
"difficulty": 0.025,
|
||||
"description": [
|
||||
"Create an \"urgently-red\" class that gives an element the font-color of red, but add <code>!important</code> to the class to ensure the element is rendered as being red. Immediately below your \"urgently-red\" class declaration, create a \"blue-text\" class that gives an element the font-color of blue. Apply both classes to your <code>h2</code> element.",
|
||||
@ -703,6 +720,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08812",
|
||||
"name": "Waypoint: Add Images to your Website",
|
||||
"dashedName": "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.",
|
||||
@ -751,6 +769,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9acdf08812",
|
||||
"name": "Waypoint: Size your Images",
|
||||
"dashedName": "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.",
|
||||
@ -800,6 +819,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9bedf08813",
|
||||
"name": "Waypoint: Add Borders Around your Elements",
|
||||
"dashedName": "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 with a style of \"solid\" around an HTML element, and apply that class to your cat photo.",
|
||||
@ -856,6 +876,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08814",
|
||||
"name": "Waypoint: Add Rounded Corners with a Border Radius",
|
||||
"dashedName": "waypoint-add-rounded-corners-with-a-border-radius",
|
||||
"difficulty": 0.029,
|
||||
"description": [
|
||||
"Give your cat photo a <code>border-radius</code> of 10 pixels.",
|
||||
@ -915,6 +936,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08815",
|
||||
"name": "Waypoint: Make Circular Images with a Border Radius",
|
||||
"dashedName": "waypoint-make-circular-images-with-a-border-radius",
|
||||
"difficulty": 0.030,
|
||||
"description": [
|
||||
"Give your cat photo a <code>border-radius</code> of 50%.",
|
||||
@ -973,6 +995,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08816",
|
||||
"name": "Waypoint: Link to External Pages with Anchor Elements",
|
||||
"dashedName": "waypoint-link-to-external-pages-with-anchor-elements",
|
||||
"difficulty": 0.031,
|
||||
"description": [
|
||||
"Create an <code>a</code> element, or \"anchor element\", that links to http://catphotoapp.com and has \"cat photos\" as its link text, or \"anchor text\".",
|
||||
@ -1035,6 +1058,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08817",
|
||||
"name": "Waypoint: Wrap an Anchor Element within a Paragraph",
|
||||
"dashedName": "waypoint-wrap-an-anchor-element-within-a-paragraph",
|
||||
"difficulty": 0.032,
|
||||
"description": [
|
||||
"Now wrap your <code>a</code> element within a new <code>p</code> element so that the surrounding paragraph says \"click here for cat photos\", but where only \"cat photos\" is a link - the rest is plain text.",
|
||||
@ -1103,6 +1127,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08817",
|
||||
"name": "Waypoint: Make Dead Links using the Hash Symbol",
|
||||
"dashedName": "waypoint-make-dead-links-using-the-hash-symbol",
|
||||
"difficulty": 0.033,
|
||||
"description": [
|
||||
"Use the hash symbol (#) to turn your <code>a</code> element's link into a dead link.",
|
||||
@ -1165,6 +1190,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08820",
|
||||
"name": "Waypoint: Turn an Image into a Link",
|
||||
"dashedName": "waypoint-turn-an-image-into-a-link",
|
||||
"difficulty": 0.034,
|
||||
"description": [
|
||||
"Wrap your <code>img</code> element inside an <code>a</code> element with a dead link.",
|
||||
@ -1230,6 +1256,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08818",
|
||||
"name": "Waypoint: Add Alt Text to an Image for Accessibility",
|
||||
"dashedName": "waypoint-add-alt-text-to-an-image-for-accessibility",
|
||||
"difficulty": 0.035,
|
||||
"description": [
|
||||
"Add an <code>alt</code> attribute with the text \"A cute orange cat lying on its back\" to our cat photo.",
|
||||
@ -1293,6 +1320,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08827",
|
||||
"name": "Waypoint: Create a Bulleted Unordered List",
|
||||
"dashedName": "waypoint-create-a-bulleted-unordered-list",
|
||||
"difficulty": 0.036,
|
||||
"description": [
|
||||
"Replace your <code>p</code> elements with an unordered list of three things that cats love.",
|
||||
@ -1358,6 +1386,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08828",
|
||||
"name": "Waypoint: Create an Ordered List",
|
||||
"dashedName": "waypoint-create-an-ordered-list",
|
||||
"difficulty": 0.037,
|
||||
"description": [
|
||||
"Create an ordered list of the top 3 things cats hate the most.",
|
||||
@ -1430,6 +1459,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08829",
|
||||
"name": "Waypoint: Create a Text Field",
|
||||
"dashedName": "waypoint-create-a-text-field",
|
||||
"difficulty": 0.038,
|
||||
"description": [
|
||||
"Now we'll create a web form. Create a text input under your lists.",
|
||||
@ -1501,6 +1531,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08830",
|
||||
"name": "Waypoint: Add Placeholder Text to a Text Field",
|
||||
"dashedName": "waypoint-add-placeholder-text-to-a-text-field",
|
||||
"difficulty": 0.039,
|
||||
"description": [
|
||||
"Set the <code>placeholder</code> value of your text <code>input</code> to \"cat photo URL\".",
|
||||
@ -1574,6 +1605,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08830",
|
||||
"name": "Waypoint: Create a Form Element",
|
||||
"dashedName": "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.",
|
||||
@ -1649,6 +1681,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedd08830",
|
||||
"name": "Waypoint: Add a Submit Button to a Form",
|
||||
"dashedName": "waypoint-add-a-submit-button-to-a-form",
|
||||
"difficulty": 0.041,
|
||||
"description": [
|
||||
"Add a submit button to your <code>form</code> element with type \"submit\" and \"Submit\" as its text.",
|
||||
@ -1725,7 +1758,8 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedc08830",
|
||||
"name": "Waypoint: Use HTML5 to Require a Field",
|
||||
"name": "waypoint-use-html5-to-require-a-field",
|
||||
"dashedName": "Waypoint: Use HTML5 to Require a Field",
|
||||
"difficulty": 0.042,
|
||||
"description": [
|
||||
"Make your text <code>input</code> a \"required\" field, so that your user can't submit the form without completing this field.",
|
||||
@ -1801,6 +1835,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08834",
|
||||
"name": "Waypoint: Create a Set of Radio Buttons",
|
||||
"dashedName": "waypoint-create-a-set-of-radio-buttons",
|
||||
"difficulty": 0.043,
|
||||
"description": [
|
||||
"Add to your form a pair of radio buttons. Each radio button should be wrapped within its own <code>label</code> element. They should share a common <code>name</code> attribute. One should have the option of \"indoor\" and the other should have the option of \"outdoor\".",
|
||||
@ -1884,6 +1919,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08835",
|
||||
"name": "Waypoint: Create a Set of Checkboxes",
|
||||
"dashedName": "waypoint-create-a-set-of-checkboxes",
|
||||
"difficulty": 0.044,
|
||||
"description": [
|
||||
"Add to your form a set of three checkbox elements. Each checkbox should be wrapped within its own <code>label</code> element. All three should share the <code>name</code> attribute of \"personality\".",
|
||||
@ -1964,6 +2000,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede18835",
|
||||
"name": "Waypoint: Clean up your form using Linebreaks",
|
||||
"dashedName": "waypoint-clean-up-your-form-using-linebreaks",
|
||||
"difficulty": 0.045,
|
||||
"description": [
|
||||
"Clean up your form by adding linebreaks between form elements.",
|
||||
@ -2043,6 +2080,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedd08835",
|
||||
"name": "Waypoint: Check Radio Buttons and Checkboxes by Default",
|
||||
"dashedName": "waypoint-check-radio-buttons-and-checkboxes-by-default",
|
||||
"difficulty": 0.046,
|
||||
"description": [
|
||||
"Set the first of your radio buttons and the first of your checkboxes to both be checked by default.",
|
||||
@ -2126,6 +2164,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08835",
|
||||
"name": "Waypoint: Wrap Many Elements within a Single Div Element",
|
||||
"dashedName": "waypoint-wrap-many-elements-within-a-single-div-element",
|
||||
"difficulty": 0.047,
|
||||
"description": [
|
||||
"Wrap your \"Things cats love\" and \"Things cats hate\" lists all within a single <code>div</code> element.",
|
||||
@ -2214,6 +2253,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede07836",
|
||||
"name": "Waypoint: Give a Background Color to a Div Element",
|
||||
"dashedName": "waypoint-give-a-background-color-to-a-div-element",
|
||||
"difficulty": 0.048,
|
||||
"description": [
|
||||
"Create a class called \"gray-background\" with the background color of gray. Assign this class to your <code>div</code> element.",
|
||||
@ -2300,6 +2340,7 @@
|
||||
{
|
||||
"id": "bad88fee1348bd9aedf08825",
|
||||
"name": "Waypoint: Adjusting the Padding of an Element",
|
||||
"dashedName": "waypoint-adjusting-the-padding-of-an-element",
|
||||
"difficulty": 0.064,
|
||||
"description": [
|
||||
"These next few Waypoints will give you a brief tour of three important aspects of the space surrounding HTML elements: <code>padding</code>, <code>margin</code>, and <code>border</code>. Change the <code>padding</code> of your green box to match that of your red box.",
|
||||
@ -2361,6 +2402,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08822",
|
||||
"name": "Waypoint: Adjust the Margin of an Element",
|
||||
"dashedName": "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.",
|
||||
@ -2424,6 +2466,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08823",
|
||||
"name": "Waypoint: Add a Negative Margin to an Element",
|
||||
"dashedName": "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 yellow box around it.",
|
||||
@ -2486,6 +2529,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",
|
||||
"difficulty": 0.067,
|
||||
"description": [
|
||||
"Give the green box a <code>padding</code> of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
@ -2551,6 +2595,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",
|
||||
"difficulty": 0.068,
|
||||
"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.",
|
||||
@ -2616,6 +2661,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",
|
||||
"difficulty": 0.069,
|
||||
"description": [
|
||||
"Use Clockwise Notation to give the \".green-box\" class a <code>padding</code> of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
@ -2678,6 +2724,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08726",
|
||||
"name": "Waypoint: Use Clockwise Notation to Specify the Margin of an Element",
|
||||
"dashedName": "waypoint-use-clockwise-notation-to-specify-the-margin-of-an-element",
|
||||
"difficulty": 0.070,
|
||||
"description": [
|
||||
"Let's try this again, but with <code>margin</code> this time. Use <code>Clockwise Notation</code> to give an element a margin of 40 pixels on its top and left side, but only 20 pixels on its bottom and right side.",
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7129d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build an Adventure Game",
|
||||
"dashedName": "waypoint-build-an-adventure-game",
|
||||
"difficulty": 0.24,
|
||||
"challengeSeed": ["114604814"],
|
||||
"description": [
|
||||
@ -30,6 +31,7 @@
|
||||
{
|
||||
"id": "bd7130d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build Rock Paper Scissors",
|
||||
"dashedName": "waypoint-build-rock-paper-scissors",
|
||||
"difficulty": 0.25,
|
||||
"challengeSeed": ["114604815"],
|
||||
"description": [
|
||||
@ -53,6 +55,7 @@
|
||||
{
|
||||
"id": "bd7131d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn JavaScript For Loops",
|
||||
"dashedName": "waypoint-learn-javascript-for-loops",
|
||||
"difficulty": 0.26,
|
||||
"challengeSeed": ["114614220"],
|
||||
"description": [
|
||||
@ -76,6 +79,7 @@
|
||||
{
|
||||
"id": "bd7132d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn JavaScript While Loops",
|
||||
"dashedName": "waypoint-learn-javascript-while-loops",
|
||||
"difficulty": 0.27,
|
||||
"challengeSeed": ["114612889"],
|
||||
"description": [
|
||||
@ -98,6 +102,7 @@
|
||||
{
|
||||
"id": "bd7133d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Control Flow",
|
||||
"dashedName": "waypoint-learn-control-flow",
|
||||
"difficulty": 0.28,
|
||||
"challengeSeed": ["114612888"],
|
||||
"description": [
|
||||
@ -122,6 +127,7 @@
|
||||
{
|
||||
"id": "bd7134d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build a Contact List",
|
||||
"dashedName": "waypoint-build-a-contact-list",
|
||||
"difficulty": 0.29,
|
||||
"challengeSeed": ["114612887"],
|
||||
"description": [
|
||||
@ -145,6 +151,7 @@
|
||||
{
|
||||
"id": "bd7135d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build an Address Book",
|
||||
"dashedName": "waypoint-build-an-address-book",
|
||||
"difficulty": 0.30,
|
||||
"challengeSeed": ["114612885"],
|
||||
"description": [
|
||||
@ -168,6 +175,7 @@
|
||||
{
|
||||
"id": "bd7136d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Build a Cash Register",
|
||||
"dashedName": "waypoint-build-a-cash-register",
|
||||
"difficulty": 0.31,
|
||||
"challengeSeed": ["114612882"],
|
||||
"description": [
|
||||
@ -191,6 +199,7 @@
|
||||
{
|
||||
"id": "bd7118d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Discover Chrome DevTools",
|
||||
"dashedName": "waypoint-discover-chrome-devTools",
|
||||
"difficulty": 0.32,
|
||||
"challengeSeed": ["110752743"],
|
||||
"description": [
|
||||
@ -222,6 +231,7 @@
|
||||
{
|
||||
"id": "bd7138d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Regular Expressions",
|
||||
"dashedName": "waypoint-learn-regular-expressions",
|
||||
"difficulty": 0.33,
|
||||
"challengeSeed": ["112547802"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9acde08812",
|
||||
"name": "Waypoint: Mobile Responsive Images",
|
||||
"dashedName": "waypoint-mobile-responsive-images",
|
||||
"difficulty": 0.047,
|
||||
"description": [
|
||||
"Now let's go back to our Cat Photo App. This time, we'll style it using the popular Twitter Bootstrap responsive CSS framework. First, add a new image with the <code>src</code> attribute of \"http://bit.ly/fcc-kittens2\", and add the \"img-responsive\" Bootstrap class to that image.",
|
||||
@ -91,6 +92,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd8acde08812",
|
||||
"name": "Waypoint: Center Text with Bootstrap",
|
||||
"dashedName": "waypoint-center-text-with-bootstrap",
|
||||
"difficulty": 0.048,
|
||||
"description": [
|
||||
"Add Bootstrap's \"text-center\" class to your <code>h2</code> element.",
|
||||
@ -174,6 +176,7 @@
|
||||
{
|
||||
"id": "bad87fee1348cd8acdf08812",
|
||||
"name": "Waypoint: Create a Bootstrap Button",
|
||||
"dashedName": "waypoint-create-a-bootstrap-button",
|
||||
"difficulty": 0.049,
|
||||
"description": [
|
||||
"Create a new <code>button</code> element below your large kitten photo. Give it the class \"btn\" and the text of \"like this photo\".",
|
||||
@ -258,6 +261,7 @@
|
||||
{
|
||||
"id": "bad87fee1348cd8acef08812",
|
||||
"name": "Waypoint: Create a Block Element Bootstrap Button",
|
||||
"dashedName": "waypoint-create-a-block-element-bootstrap-button",
|
||||
"difficulty": 0.050,
|
||||
"description": [
|
||||
"Add Bootstrap's \"btn-block\" class to your Bootstrap button.",
|
||||
@ -346,6 +350,7 @@
|
||||
{
|
||||
"id": "bad87fee1348cd8acef08811",
|
||||
"name": "Waypoint: Taste the Bootstrap Button Color Rainbow",
|
||||
"dashedName": "waypoint-taste-the-bootstrap-button-color-rainbow",
|
||||
"difficulty": 0.051,
|
||||
"description": [
|
||||
"Add Bootstrap's \"btn-primary\" class to your button.",
|
||||
@ -432,6 +437,7 @@
|
||||
{
|
||||
"id": "bad87fee1348cd8acef08813",
|
||||
"name": "Waypoint: Call out Optional Actions with Button Info",
|
||||
"dashedName": "waypoint-call-out-optional-actions-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 \"btn-info\" and \"btn-block\" classes to it.",
|
||||
@ -519,6 +525,7 @@
|
||||
{
|
||||
"id": "bad87fee1348ce8acef08814",
|
||||
"name": "Waypoint: Warn your Users of a Dangerous Action",
|
||||
"dashedName": "waypoint-warn-your-users-of-a-dangerous-action",
|
||||
"difficulty": 0.053,
|
||||
"description": [
|
||||
"Create a button with the text \"Delete\" and give it the class \"btn-danger\".",
|
||||
@ -607,6 +614,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",
|
||||
"difficulty": 0.054,
|
||||
"description": [
|
||||
"Put the \"Like\", \"Info\" and \"Delete\" buttons side-by-side by wrapping all three of them within one <code><div class=\"row\"></code> element, then each of them within a <code><div class=\"col-xs-4\"></code> element.",
|
||||
@ -700,6 +708,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedf08845",
|
||||
"name": "Waypoint: Ditch Custom CSS for Bootstrap",
|
||||
"dashedName": "waypoint-ditch-custom-css-for-bootstrap",
|
||||
"difficulty": 0.055,
|
||||
"description": [
|
||||
"Delete the \".red-text\", \"p\", and \".smaller-image\" CSS declarations from your <code>style</code> element so that the only declarations left in your <code>style</code> element are \"h2\" and \"thick-green-border\". Then Delete the <code>p</code> element that contains a dead link. Then remove the \"red-text\" class from your <code>h2</code> element and replace it with the \"text-primary\" Bootstrap class. Finally, remove the \"smaller-image\" class from your first <code>img</code> element and replace it with the <code>img-responsive</code> class.",
|
||||
@ -799,6 +808,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aede08845",
|
||||
"name": "Waypoint: Create a Custom Heading",
|
||||
"dashedName": "waypoint-create-a-custom-heading",
|
||||
"difficulty": 0.056,
|
||||
"description": [
|
||||
"Wrap your first image and your <code>h2</code> element within a single <code><div class='row'></code> element. Wrap your <code>h2</code> text within 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.",
|
||||
@ -888,6 +898,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedd08845",
|
||||
"name": "Waypoint: Add Font Awesome Icons to our Buttons",
|
||||
"dashedName": "waypoint-add-font-awesome-icons-to-our-buttons",
|
||||
"difficulty": 0.057,
|
||||
"description": [
|
||||
"Use Font Awesome to add a \"thumbs-up\" icon to your like button by giving it a <code>i</code> element with the classes \"fa\" and \"fa-thumbs-up\".",
|
||||
@ -974,7 +985,8 @@
|
||||
},
|
||||
{
|
||||
"id": "bad87fee1348bd9aedc08845",
|
||||
"name": "Waypoint: Add Font Awesome Icons all of our Buttons",
|
||||
"name": "Waypoint: Add Font Awesome Icons to all of our Buttons",
|
||||
"dashedName": "waypoint-add-font-awesome-icons-to-all-of-our-Buttons",
|
||||
"difficulty": 0.058,
|
||||
"description": [
|
||||
"Use Font Awesome to add a \"info-circle\" icon to your info button and a \"trash\" icon to your delete button.",
|
||||
@ -1062,6 +1074,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aedb08845",
|
||||
"name": "Waypoint: Responsively Style Radio Buttons",
|
||||
"dashedName": "waypoint-responsively-style-radio-buttons",
|
||||
"difficulty": 0.059,
|
||||
"description": [
|
||||
"Wrap all of your radio buttons within a <code><div class='row'></code> element. Then wrap each of them within a <code><div class='col-xs-6'></code> element.",
|
||||
@ -1148,6 +1161,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aeda08845",
|
||||
"name": "Waypoint: Responsively Style Checkboxes",
|
||||
"dashedName": "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.",
|
||||
@ -1241,6 +1255,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aed908845",
|
||||
"name": "Waypoint: Style Text Inputs as Form Controls",
|
||||
"dashedName": "waypoint-style-text-inputs-as-form-controls",
|
||||
"difficulty": 0.061,
|
||||
"description": [
|
||||
"Give your form's text input field a class of \"form-control\". Give your form's submit button the classes \"btn btn-primary\". Also give this button the Font Awesome icon of \"fa-paper-plane\".",
|
||||
@ -1344,6 +1359,7 @@
|
||||
{
|
||||
"id": "bad87fee1348bd9aec908845",
|
||||
"name": "Waypoint: Line up Form Elements Responsively with Bootstrap",
|
||||
"dashedName": "waypoint-line-up-form-elements-responsively-with-bootstrap",
|
||||
"difficulty": 0.062,
|
||||
"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.",
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7123d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Basic Computer Science",
|
||||
"dashedName": "waypoint-learn-basic-computer-science",
|
||||
"difficulty": 0.90,
|
||||
"challengeSeed": ["114628241"],
|
||||
"description": [
|
||||
@ -34,6 +35,7 @@
|
||||
{
|
||||
"id": "bd8124d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Loops",
|
||||
"dashedName": "waypoint-learn-loops",
|
||||
"difficulty": 0.19,
|
||||
"challengeSeed": ["114597348"],
|
||||
"description": [
|
||||
@ -61,6 +63,7 @@
|
||||
{
|
||||
"id": "bd8125d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Computer Hardware",
|
||||
"dashedName": "waypoint-learn-computer-hardware",
|
||||
"difficulty": 0.20,
|
||||
"challengeSeed": ["114597347"],
|
||||
"description": [
|
||||
@ -88,6 +91,7 @@
|
||||
{
|
||||
"id": "bd8126d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Computer Networking",
|
||||
"dashedName": "waypoint-learn-computer-networking",
|
||||
"difficulty": 0.21,
|
||||
"challengeSeed": ["114604811"],
|
||||
"description": [
|
||||
@ -115,6 +119,7 @@
|
||||
{
|
||||
"id": "bd8127d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Boolean Logic",
|
||||
"dashedName": "waypoint-learn-boolean-logic",
|
||||
"difficulty": 0.22,
|
||||
"challengeSeed": ["114604812"],
|
||||
"description": [
|
||||
@ -142,6 +147,7 @@
|
||||
{
|
||||
"id": "bd8128d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn Computer Security",
|
||||
"dashedName": "waypoint-learn-computer-security",
|
||||
"difficulty": 0.23,
|
||||
"challengeSeed": ["114604813"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7154d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Get Started with Angular.js",
|
||||
"dashedName": "waypoint-get-started-with-angularjs",
|
||||
"difficulty": 0.34,
|
||||
"challengeSeed": ["114684726"],
|
||||
"description": [
|
||||
@ -28,6 +29,7 @@
|
||||
{
|
||||
"id": "bd7155d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Apply Angular.js Directives",
|
||||
"dashedName": "waypoint-apply-angularjs-directives",
|
||||
"difficulty": 0.35,
|
||||
"challengeSeed": ["114684727"],
|
||||
"description": [
|
||||
@ -51,6 +53,7 @@
|
||||
{
|
||||
"id": "bd7156d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Power Forms with Angular.js",
|
||||
"dashedName": "waypoint-power-forms-with-angularjs",
|
||||
"difficulty": 0.36,
|
||||
"challengeSeed": ["114684729"],
|
||||
"description": [
|
||||
@ -74,6 +77,7 @@
|
||||
{
|
||||
"id": "bd7157d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Customize Angular.js Directives",
|
||||
"dashedName": "waypoint-customize-angularjs-directives",
|
||||
"difficulty": 0.37,
|
||||
"challengeSeed": ["114685062"],
|
||||
"description": [
|
||||
@ -96,6 +100,7 @@
|
||||
{
|
||||
"id": "bd7158d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Create Angular.js Services",
|
||||
"dashedName": "waypoint-create-angularjs-services",
|
||||
"difficulty": 0.38,
|
||||
"challengeSeed": ["114685060"],
|
||||
"description": [
|
||||
@ -119,6 +124,7 @@
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Manage Packages with NPM",
|
||||
"dashedName": "waypoint-manage-packages-with-npm",
|
||||
"difficulty": 0.39,
|
||||
"challengeSeed": ["126433450"],
|
||||
"description": [
|
||||
@ -172,6 +178,7 @@
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bdff",
|
||||
"name": "Waypoint: Start a Node.js Server",
|
||||
"dashedName": "waypoint-start-a-nodejs-server",
|
||||
"difficulty": 0.40,
|
||||
"challengeSeed": ["126411561"],
|
||||
"description": [
|
||||
@ -214,6 +221,7 @@
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bdfe",
|
||||
"name": "Waypoint: Continue working with Node.js Servers",
|
||||
"dashedName": "waypoint-continue-working-with-nodejs-servers",
|
||||
"difficulty": 0.41,
|
||||
"challengeSeed": ["128836506"],
|
||||
"description": [
|
||||
@ -241,6 +249,7 @@
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bdfd",
|
||||
"name": "Waypoint: Finish working with Node.js Servers",
|
||||
"dashedName": "waypoint-finish-working-with-nodejs-servers",
|
||||
"difficulty": 0.42,
|
||||
"challengeSeed": ["128836507"],
|
||||
"description": [
|
||||
@ -268,6 +277,7 @@
|
||||
{
|
||||
"id": "bd7153d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Build Web Apps with Express.js",
|
||||
"dashedName": "waypoint-build-web-apps-with-expressjs",
|
||||
"difficulty": 0.43,
|
||||
"challengeSeed": ["126411559"],
|
||||
"description": [
|
||||
@ -309,6 +319,7 @@
|
||||
{
|
||||
"id": "bd7140d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Manage Source Code with Git",
|
||||
"dashedName": "waypoint-manage-source-code-with-git",
|
||||
"difficulty": 0.44,
|
||||
"challengeSeed": ["114635309"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7129d8c441eddfbeb5bddf",
|
||||
"name": "Waypoint: Practice Functional Programming",
|
||||
"dashedName": "waypoint-practice-functional-programming",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["129169463"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7124d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Learn how Free Code Camp Works",
|
||||
"dashedName": "waypoint-learn-how-free-code-camp-works",
|
||||
"difficulty": 0.001,
|
||||
"challengeSeed": ["125407438"],
|
||||
"description": [
|
||||
@ -53,6 +54,7 @@
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Join Our Chat Room",
|
||||
"dashedName": "waypoint-join-our-chat-room",
|
||||
"difficulty": 0.002,
|
||||
"challengeSeed": ["124555254"],
|
||||
"description": [
|
||||
@ -107,6 +109,7 @@
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bdff",
|
||||
"name": "Waypoint: Preview our Challenge Map",
|
||||
"dashedName": "waypoint-preview-our-challenge-map",
|
||||
"difficulty": 0.003,
|
||||
"challengeSeed": ["125407437"],
|
||||
"description": [
|
||||
@ -149,6 +152,7 @@
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Browse our Field Guide",
|
||||
"dashedName": "waypoint-browse-our-field-guide",
|
||||
"difficulty": 0.004,
|
||||
"challengeSeed": ["125407435"],
|
||||
"description": [
|
||||
@ -188,6 +192,7 @@
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd2f",
|
||||
"name": "Waypoint: Customize your Portfolio Page",
|
||||
"dashedName": "waypoint-customize-your-portfolio-page",
|
||||
"difficulty": 0.005,
|
||||
"challengeSeed": ["125407433"],
|
||||
"description": [
|
||||
@ -233,6 +238,7 @@
|
||||
{
|
||||
"id": "bd7126d8c441eddfaeb5bd3f",
|
||||
"name": "Waypoint: Try Camper News",
|
||||
"dashedName": "waypoint-try-camper-news",
|
||||
"difficulty": 0.006,
|
||||
"challengeSeed": ["124553410"],
|
||||
"description": [
|
||||
@ -284,6 +290,7 @@
|
||||
{
|
||||
"id": "bd7126d8c441eddfaeb5bd3e",
|
||||
"name": "Waypoint: Meet Other Campers in your City",
|
||||
"dashedName": "waypoint-meet-other-campers-in-your-city",
|
||||
"difficulty": 0.007,
|
||||
"challengeSeed": ["127358841"],
|
||||
"description": [
|
||||
@ -332,6 +339,7 @@
|
||||
{
|
||||
"id": "bd7137d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Get Help the Hacker Way with RSAP",
|
||||
"dashedName": "waypoint-get-help-the-hacker-way-with-rsap",
|
||||
"difficulty": 0.008,
|
||||
"challengeSeed": ["125407432"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "a2f1d72d9b908d0bd72bb9f6",
|
||||
"name": "Bonfire: Make a Person",
|
||||
"dashedName": "bonfire-make-a-person",
|
||||
"difficulty": "3.01",
|
||||
"description": [
|
||||
"Fill in the object constructor with the methods specified in the tests.",
|
||||
@ -56,6 +57,7 @@
|
||||
{
|
||||
"id": "af4afb223120f7348cdfc9fd",
|
||||
"name": "Bonfire: Map the Debris",
|
||||
"dashedName": "bonfire-map-the-debris",
|
||||
"difficulty": "3.02",
|
||||
"description": [
|
||||
"Return a new array that transforms the element's average altitude into their orbital periods.",
|
||||
@ -96,6 +98,7 @@
|
||||
{
|
||||
"id": "a3f503de51cfab748ff001aa",
|
||||
"name": "Bonfire: Pairwise",
|
||||
"dashedName": "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.",
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7112d8c441eddfaeb5bded",
|
||||
"name": "Waypoint: Get Started with jQuery",
|
||||
"dashedName": "waypoint-get-started-with-jquery",
|
||||
"difficulty": 0.13,
|
||||
"challengeSeed": ["125671865"],
|
||||
"description": [
|
||||
@ -30,6 +31,7 @@
|
||||
{
|
||||
"id": "bd7113d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Write Functions with jQuery",
|
||||
"dashedName": "waypoint-write-functions-with-jquery",
|
||||
"difficulty": 0.14,
|
||||
"challengeSeed": ["125658029"],
|
||||
"description": [
|
||||
@ -54,6 +56,7 @@
|
||||
{
|
||||
"id": "bd7114d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Harness Dynamic HTML",
|
||||
"dashedName": "waypoint-harness-dynamic-html",
|
||||
"difficulty": 0.15,
|
||||
"challengeSeed": ["125658028"],
|
||||
"description": [
|
||||
@ -77,6 +80,7 @@
|
||||
{
|
||||
"id": "bd7115d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Listen for jQuery Events",
|
||||
"dashedName": "waypoint-listen-for-jquery-events",
|
||||
"difficulty": 0.16,
|
||||
"challengeSeed": ["125658027"],
|
||||
"description": [
|
||||
@ -100,6 +104,7 @@
|
||||
{
|
||||
"id": "bd7116d8c441eddfaeb5bdef",
|
||||
"name": "Waypoint: Trigger jQuery Effects",
|
||||
"dashedName": "waypoint-trigger-jquery-effects",
|
||||
"difficulty": 0.17,
|
||||
"challengeSeed": ["125658025"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7129d8c441eddfaeb5bddf",
|
||||
"name": "Waypoint: Scope Your Variables",
|
||||
"dashedName": "waypoint-scope-your-variables",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["128836683"],
|
||||
"description": [
|
||||
@ -31,6 +32,7 @@
|
||||
{
|
||||
"id": "bd7131d8c441eddfaeb5bdbf",
|
||||
"name": "Waypoint: Reference your Current Object with This",
|
||||
"dashedName": "waypoint-reference-your-current-object-with-this",
|
||||
"difficulty": 0.03,
|
||||
"challengeSeed": ["128836508"],
|
||||
"description": [
|
||||
@ -57,6 +59,7 @@
|
||||
{
|
||||
"id": "bd7132d8c441eddfaeb5bdaf",
|
||||
"name": "Waypoint: Traverse the Prototype Chain",
|
||||
"dashedName": "waypoint-traverse-the-prototype-chain",
|
||||
"difficulty": 0.04,
|
||||
"challengeSeed": ["128836684"],
|
||||
"description": [
|
||||
@ -82,6 +85,7 @@
|
||||
{
|
||||
"id": "bd7133d8c441eddfaeb5bd0f",
|
||||
"name": "Waypoint: Reuse Code with Decorators",
|
||||
"dashedName": "waypoint-reuse-code-with-decorators",
|
||||
"difficulty": 0.05,
|
||||
"challengeSeed": ["128836681"],
|
||||
"description": [
|
||||
@ -108,6 +112,7 @@
|
||||
{
|
||||
"id": "bd7134d8c441eddfaeb5bd1f",
|
||||
"name": "Waypoint: Build Objects with Functional Classes",
|
||||
"dashedName": "waypoint-build-objects-with-functional-classes",
|
||||
"difficulty": 0.06,
|
||||
"challengeSeed": ["128836503"],
|
||||
"description": [
|
||||
@ -134,6 +139,7 @@
|
||||
{
|
||||
"id": "bd7135d8c441eddfaeb5bd2f",
|
||||
"name": "Waypoint: Build Objects with Prototypal Classes",
|
||||
"dashedName": "waypoint-build-objects-with-prototypal-classes",
|
||||
"difficulty": 0.07,
|
||||
"challengeSeed": ["128836505"],
|
||||
"description": [
|
||||
@ -160,6 +166,7 @@
|
||||
{
|
||||
"id": "bd7136d8c441eddfaeb5bd3f",
|
||||
"name": "Waypoint: Understand Pseudoclassical Patterns",
|
||||
"dashedName": "waypoint-understand-pseudoclassical-patterns",
|
||||
"difficulty": 0.08,
|
||||
"challengeSeed": ["128836689"],
|
||||
"description": [
|
||||
@ -186,6 +193,7 @@
|
||||
{
|
||||
"id": "bd7136d8c441eddfaeb5bd4f",
|
||||
"name": "Waypoint: Subclass one Object to Another",
|
||||
"dashedName": "waypoint-subclass-one-object-to-another",
|
||||
"difficulty": 0.09,
|
||||
"challengeSeed": ["128836686"],
|
||||
"description": [
|
||||
@ -211,6 +219,7 @@
|
||||
{
|
||||
"id": "bd7136d8c441eddfaeb5bd5f",
|
||||
"name": "Waypoint: Use Pseudoclassical Subclasses",
|
||||
"dashedName": "waypoint-use-pseudoclassical-subclasses",
|
||||
"difficulty": 0.10,
|
||||
"challengeSeed": ["128836937"],
|
||||
"description": [
|
||||
|
@ -5,6 +5,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfbeb5bd1f",
|
||||
"name": "Waypoint: Get Set for Ziplines",
|
||||
"dashedName": "waypoint-get-set-for-ziplines",
|
||||
"difficulty": 1.00,
|
||||
"challengeSeed": ["125658022"],
|
||||
"description": [
|
||||
@ -39,6 +40,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd1f",
|
||||
"name": "Zipline: Use the Twitch.tv JSON API",
|
||||
"dashedName": "zipline-use-the-twitchtv-json-api",
|
||||
"difficulty": 1.01,
|
||||
"challengeSeed": ["126411564"],
|
||||
"description": [
|
||||
@ -74,6 +76,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd13",
|
||||
"name": "Zipline: Build a Random Quote Machine",
|
||||
"dashedName": "zipline-build-a-random-quote-machine",
|
||||
"difficulty": 1.02,
|
||||
"challengeSeed": ["126415122"],
|
||||
"description": [
|
||||
@ -104,6 +107,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd10",
|
||||
"name": "Zipline: Show the Local Weather",
|
||||
"dashedName": "zipline-show-the-local-weather",
|
||||
"difficulty": 1.03,
|
||||
"challengeSeed": ["126415127"],
|
||||
"description": [
|
||||
@ -136,6 +140,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd18",
|
||||
"name": "Zipline: Stylize Stories on Camper News",
|
||||
"dashedName": "zipline-stylize-stories-on-camper-news",
|
||||
"difficulty": 1.04,
|
||||
"challengeSeed": ["126415129"],
|
||||
"description": [
|
||||
@ -168,7 +173,8 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd19",
|
||||
"name": "Zipline: Wikipedia Viewer",
|
||||
"name": "zipline-wikipedia-viewer",
|
||||
"dashedName": "Zipline: Wikipedia Viewer",
|
||||
"difficulty": 1.05,
|
||||
"challengeSeed": ["126415131"],
|
||||
"description": [
|
||||
@ -201,6 +207,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd0f",
|
||||
"name": "Zipline: Build a Pomodoro Clock",
|
||||
"dashedName": "zipline-build-a-pomodoro-clock",
|
||||
"difficulty": 1.06,
|
||||
"challengeSeed": ["126411567"],
|
||||
"description": [
|
||||
@ -232,6 +239,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd17",
|
||||
"name": "Zipline: Build a JavaScript Calculator",
|
||||
"dashedName": "zipline-build-a-javascript-calculator",
|
||||
"difficulty": 1.07,
|
||||
"challengeSeed": ["126411565"],
|
||||
"description": [
|
||||
@ -263,6 +271,7 @@
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd1c",
|
||||
"name": "Zipline: Build a Tic Tac Toe Game",
|
||||
"dashedName": "zipline-build-a-tic-tac-toe-game",
|
||||
"difficulty": 1.08,
|
||||
"challengeSeed": ["126415123"],
|
||||
"description": [
|
||||
|
@ -1,12 +1,21 @@
|
||||
/* eslint-disable no-process-exit */
|
||||
require('dotenv').load();
|
||||
var assign = require('lodash/object/assign'),
|
||||
Rx = require('rx'),
|
||||
var Rx = require('rx'),
|
||||
uuid = require('node-uuid'),
|
||||
assign = require('lodash/object/assign'),
|
||||
mongodb = require('mongodb'),
|
||||
secrets = require('../config/secrets');
|
||||
|
||||
var MongoClient = mongodb.MongoClient;
|
||||
|
||||
var providers = [
|
||||
'facebook',
|
||||
'twitter',
|
||||
'google',
|
||||
'github',
|
||||
'linkedin'
|
||||
];
|
||||
|
||||
function createConnection(URI) {
|
||||
return Rx.Observable.create(function(observer) {
|
||||
MongoClient.connect(URI, function(err, database) {
|
||||
@ -27,11 +36,14 @@ function createQuery(db, collection, options, batchSize) {
|
||||
// or schedule getting next batch on nextTick
|
||||
cursor.each(function (err, doc) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
return observer.onError(err);
|
||||
}
|
||||
if (!doc) {
|
||||
console.log('hit complete');
|
||||
return observer.onCompleted();
|
||||
}
|
||||
console.log('calling onnext');
|
||||
observer.onNext(doc);
|
||||
});
|
||||
|
||||
@ -48,6 +60,7 @@ function insertMany(db, collection, users, options) {
|
||||
if (err) {
|
||||
return observer.onError(err);
|
||||
}
|
||||
observer.onNext();
|
||||
observer.onCompleted();
|
||||
});
|
||||
});
|
||||
@ -56,7 +69,8 @@ function insertMany(db, collection, users, options) {
|
||||
var count = 0;
|
||||
// will supply our db object
|
||||
var dbObservable = createConnection(secrets.db).shareReplay();
|
||||
dbObservable
|
||||
|
||||
var users = dbObservable
|
||||
.flatMap(function(db) {
|
||||
// returns user document, n users per loop where n is the batchsize.
|
||||
return createQuery(db, 'users', {});
|
||||
@ -66,7 +80,17 @@ dbObservable
|
||||
assign(user, user.portfolio, user.profile);
|
||||
return user;
|
||||
})
|
||||
.map(function(user) {
|
||||
if (user.username) {
|
||||
return user;
|
||||
}
|
||||
user.username = 'fcc' + uuid.v4().slice(0, 8);
|
||||
return user;
|
||||
})
|
||||
.shareReplay();
|
||||
|
||||
// batch them into arrays of twenty documents
|
||||
var userSavesCount = users
|
||||
.bufferWithCount(20)
|
||||
// get bd object ready for insert
|
||||
.withLatestFrom(dbObservable, function(users, db) {
|
||||
@ -77,16 +101,53 @@ dbObservable
|
||||
})
|
||||
.flatMap(function(dats) {
|
||||
// bulk insert into new collection for loopback
|
||||
console.log(dats);
|
||||
return insertMany(dats.db, 'user', dats.users, { w: 1 });
|
||||
})
|
||||
// count how many times insert completes
|
||||
.count()
|
||||
.count();
|
||||
|
||||
// create User Identities
|
||||
var userIdentityCount = users
|
||||
.flatMap(function(user) {
|
||||
var ids = providers
|
||||
.map(function(provider) {
|
||||
return {
|
||||
provider: provider,
|
||||
externalId: user[provider],
|
||||
userId: user.id
|
||||
};
|
||||
})
|
||||
.filter(function(ident) {
|
||||
return !!ident.externalId;
|
||||
});
|
||||
|
||||
return Rx.Observable.from(ids);
|
||||
})
|
||||
.bufferWithCount(20)
|
||||
.withLatestFrom(dbObservable, function(identities, db) {
|
||||
return {
|
||||
identities: identities,
|
||||
db: db
|
||||
};
|
||||
})
|
||||
.flatMap(function(dats) {
|
||||
// bulk insert into new collection for loopback
|
||||
return insertMany(dats.db, 'userIdentity', dats.identities, { w: 1 });
|
||||
})
|
||||
// count how many times insert completes
|
||||
.count();
|
||||
|
||||
Rx.Observable.merge(
|
||||
userIdentityCount,
|
||||
userSavesCount
|
||||
)
|
||||
.subscribe(
|
||||
function(_count) {
|
||||
count = _count * 20;
|
||||
count += _count * 20;
|
||||
},
|
||||
function(err) {
|
||||
console.log('an error occured', err);
|
||||
console.log('an error occured', err, err.stack);
|
||||
},
|
||||
function() {
|
||||
console.log('finished with %s documents processed', count);
|
||||
|
@ -1,73 +1,231 @@
|
||||
{
|
||||
"name": "jQuery, Ajax and JSON",
|
||||
"order": 0.004,
|
||||
"challenges": [
|
||||
{
|
||||
"challenges": [{
|
||||
"id": "bad87fee1348bd9acdd08826",
|
||||
"name": "Waypoint: Learn how Script Tags and Document Ready Work",
|
||||
"difficulty": 0.072,
|
||||
"description": [
|
||||
"Test"
|
||||
"We've simplified our Cat Photo App and removed our <code>style</code> element. Add a <code>script</code> element to your page and create a <code>$(document).ready</code> function within it.",
|
||||
"Add <code>$(document).ready(function() {</code> to your <code>script</code> element, and then close it on the following line with <code>});</code>."
|
||||
],
|
||||
"tests": [
|
||||
"assert(typeof $('#target').attr('disabled') === 'undefined', 'Change the disabled attribute of the \"target\" button to false');",
|
||||
"expect($('#target')).to.exist()"
|
||||
"assert(editor.match(/<script>/g), 'Create a <code>script</code> element.')",
|
||||
"assert(editor.match(/<\\/script>/g) && editor.match(/<script/g) && editor.match(/<\\/script>/g).length === editor.match(/<script/g).length, 'Make sure your <code>script</code> element has a closing tag.')",
|
||||
"assert(editor.match(/\\$\\(document\\)\\.ready\\(function\\(\\)\\s?\\{/g), 'Add <code>$(document).ready(function() {</code> to the beginning of your <code>script</code> element.')",
|
||||
"assert(editor.match(/\\n\\s+?\\}\\);/g), 'Close your <code>$(document).ready(function() {</code> function with <code>\\}\\);</code>.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9bedc08826",
|
||||
"name": "Waypoint: Target Elements by Selectors Using jQuery",
|
||||
"difficulty": 0.073,
|
||||
"description": [
|
||||
"Make all <code>img</code> elements bounce $('img').addClass('animated bounce')"
|
||||
],
|
||||
"tests": [
|
||||
"assert($('img').hasClass('animated') && $('img').hasClass('bounce'), 'Use the jQuery <code>addClass()</code> function to give the classes \"animated\" and \"bounce\" to your <code>img</code> element.')",
|
||||
"assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('#target').attr('disabled', true)",
|
||||
"",
|
||||
" });",
|
||||
"fcces",
|
||||
"<button id='target' class='btn btn-primary btn-block'>Enable this button with jQuery</button>"
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aedc08826",
|
||||
"name": "Waypoint: Target Elements by Selectors Using jQuery",
|
||||
"difficulty": 0.073,
|
||||
"description": [
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
],
|
||||
"challengeSeed": [
|
||||
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aedb08826",
|
||||
"name": "Waypoint: Target Elements by Class Using jQuery",
|
||||
"difficulty": 0.074,
|
||||
"description": [
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
"assert($('.btn').hasClass('animated') && $('.btn').hasClass('shake'), 'Use the jQuery <code>addClass()</code> function to give the classes \"animated\" and \"shake\" to all your elements with the class \"btn\".')",
|
||||
"assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('img').addClass('animated bounce');",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aedb08826",
|
||||
"name": "Waypoint: Add an ID to an Element",
|
||||
"difficulty": 0.075,
|
||||
"description": [
|
||||
|
||||
],
|
||||
"tests": [
|
||||
"assert($('form').attr('id') === 'cat-photo-form', 'Add the ID of \"cat-photo-form\" to your <code>form</code> element.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('img').addClass('animated bounce');",
|
||||
" $('.btn').addClass('animated shake');",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aeda08826",
|
||||
"name": "Waypoint: Target an element by ID Using jQuery",
|
||||
"name": "Waypoint: Target Elements by ID Using jQuery",
|
||||
"difficulty": 0.075,
|
||||
"description": [
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
"assert($('#cat-photo-form') && $('#cat-photo-form').hasClass('animated') && $('#cat-photo-form').hasClass('pulse'), 'Select the element with the <code>id</code> of \"cat-photo-form\" and use the jQuery <code>addClass()</code> function to give it the classes of \"animated\" and \"pulse\".')",
|
||||
"assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('img').addClass('animated bounce');",
|
||||
" $('.btn').addClass('animated shake');",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo' id='cat-photo-form'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
@ -80,10 +238,42 @@
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
"assert(!editor.match(/nce\\'\\)\\;/g) && !editor.match(/ke\\'\\)\\;/g), 'Delete your <code>img</code> element selector statement and your \".btn\" selector statement.')",
|
||||
"assert(editor.match(/css.*,.*background-color.*gray.\\);/g), 'Select the element with the <code>id</code> of \"cat-photo-form\" give it the background color of gray.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('img').addClass('animated bounce');",
|
||||
" $('.btn').addClass('animated shake');",
|
||||
" $('#cat-photo-form').addClass('animated pulse');",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo' id='cat-photo-form'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
@ -96,10 +286,40 @@
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
"assert($('form button').attr('id') === 'submit-button', 'Add the ID of \"submit-button\" to your the <code>button</code> on your <code>form</code> element.')",
|
||||
"assert($('#submit-button') && $('#submit-button').prop('disabled'), 'Disable your element with the id of \"submit-button\".')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('#cat-photo-form').css('background-color', 'gray');",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo' id='cat-photo-form'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
@ -112,10 +332,41 @@
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
"assert($('img').length === 0, 'Use jQuery to remove your <code>img</code> element from your page.')",
|
||||
"assert(editor.match(/<img/g), 'You should still have an <code>img</code> element in your HTML but jQuery should remove it.')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('#cat-photo-form').css('background-color', 'gray');",
|
||||
" $('#submit-button').prop('disabled', 'true');",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo' id='cat-photo-form'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' id='submit-button' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
@ -125,7 +376,38 @@
|
||||
"name": "Waypoint: Move an Element Using jQuery",
|
||||
"difficulty": 0.079,
|
||||
"description": [
|
||||
|
||||
"fccss",
|
||||
" $(document).ready(function() {",
|
||||
" $('#cat-photo-form').css('background-color', 'gray');",
|
||||
" $('#submit-button').prop('disabled', 'true');",
|
||||
" $('img').remove();",
|
||||
" });",
|
||||
"fcces",
|
||||
"<br>",
|
||||
"<img src='http://bit.ly/fcc-kittens2' class='img-responsive'>",
|
||||
"<br>",
|
||||
"<div class='row'>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-primary'><i class='fa fa-thumbs-up'></i> Like</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-info'><i class='fa fa-info-circle'></i> Info</button>",
|
||||
" </div>",
|
||||
" <div class='col-xs-4'>",
|
||||
" <button class='btn btn-block btn-danger'><i class='fa fa-trash'></i> Delete</button>",
|
||||
" </div>",
|
||||
"</div>",
|
||||
"<br>",
|
||||
"<form action='submit-cat-photo' id='cat-photo-form'>",
|
||||
" <div class='row'>",
|
||||
" <div class='col-xs-7'>",
|
||||
" <input type='text' class='form-control' placeholder='cat photo URL' required>",
|
||||
" </div>",
|
||||
" <div class='col-xs-5'>",
|
||||
" <button type='submit' id='submit-button' class='btn btn-primary'><i class='fa fa-paper-plane'></i> Submit</button>",
|
||||
" </div>",
|
||||
" </div>",
|
||||
"</form>"
|
||||
],
|
||||
"tests": [
|
||||
|
||||
@ -152,22 +434,6 @@
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed408826",
|
||||
"name": "Waypoint: Animate an Element Using jQuery",
|
||||
"difficulty": 0.081,
|
||||
"description": [
|
||||
|
||||
],
|
||||
"tests": [
|
||||
|
||||
],
|
||||
"challengeSeed": [
|
||||
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": "bad87fee1348bd9aed308826",
|
||||
"name": "Waypoint: Target the Parent of an Element Using jQuery",
|
||||
@ -295,8 +561,7 @@
|
||||
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
{
|
||||
}, {
|
||||
"id": "bad87fee1348bd9aede08826",
|
||||
"name": "Waypoint: Use Hex Codes for Precise Colors",
|
||||
"difficulty": 0.071,
|
||||
@ -310,8 +575,7 @@
|
||||
|
||||
],
|
||||
"challengeType": 0
|
||||
},
|
||||
{
|
||||
}, {
|
||||
"id": "bad87fee1348bd9aedd08826",
|
||||
"name": "Waypoint: Use Shortened Hex Codes for Colors",
|
||||
"difficulty": 0.071,
|
||||
|
Reference in New Issue
Block a user