Reformat step challenges
This commit is contained in:
committed by
Mrugesh Mohapatra
parent
e856f0538c
commit
1314830576
@@ -0,0 +1,470 @@
|
||||
{
|
||||
"name": "Coding Interview Algorithm Questions",
|
||||
"order": 1,
|
||||
"time": "",
|
||||
"helpRoom": "HelpJavaScript",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "a3f503de51cf954ede28891d",
|
||||
"title": "Symmetric Difference",
|
||||
"description": [
|
||||
"Create a function that takes two or more arrays and returns an array of the <dfn>symmetric difference</dfn> (<code>△</code> or <code>⊕</code>) of the provided arrays.",
|
||||
"Given two sets (for example set <code>A = {1, 2, 3}</code> and set <code>B = {2, 3, 4}</code>), the mathematical term \"symmetric difference\" of two sets is the set of elements which are in either of the two sets, but not in both (<code>A △ B = C = {1, 4}</code>). For every additional symmetric difference you take (say on a set <code>D = {2, 3}</code>), you should get the set with elements which are in either of the two the sets but not both (<code>C △ D = {1, 4} △ {2, 3} = {1, 2, 3, 4}</code>). The resulting array must contain only unique values (<em>no duplicates</em>).",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function sym(args) {",
|
||||
" return args;",
|
||||
"}",
|
||||
"",
|
||||
"sym([1, 2, 3], [5, 2, 1, 4]);"
|
||||
],
|
||||
"solutions": [
|
||||
"function sym() {\n var arrays = [].slice.call(arguments);\n return arrays.reduce(function (symDiff, arr) {\n return symDiff.concat(arr).filter(function (val, idx, theArr) {\n return theArr.indexOf(val) === idx \n && (symDiff.indexOf(val) === -1 || arr.indexOf(val) === -1);\n });\n });\n}\nsym([1, 2, 3], [5, 2, 1, 4]);\n"
|
||||
],
|
||||
"tests": [
|
||||
"assert.sameMembers(sym([1, 2, 3], [5, 2, 1, 4]), [3, 4, 5], 'message: <code>sym([1, 2, 3], [5, 2, 1, 4])</code> should return <code>[3, 4, 5]</code>.');",
|
||||
"assert.equal(sym([1, 2, 3], [5, 2, 1, 4]).length, 3, 'message: <code>sym([1, 2, 3], [5, 2, 1, 4])</code> should contain only three elements.');",
|
||||
"assert.sameMembers(sym([1, 2, 3, 3], [5, 2, 1, 4]), [3, 4, 5], 'message: <code>sym([1, 2, 3, 3], [5, 2, 1, 4])</code> should return <code>[3, 4, 5]</code>.');",
|
||||
"assert.equal(sym([1, 2, 3, 3], [5, 2, 1, 4]).length, 3, 'message: <code>sym([1, 2, 3, 3], [5, 2, 1, 4])</code> should contain only three elements.');",
|
||||
"assert.sameMembers(sym([1, 2, 3], [5, 2, 1, 4, 5]), [3, 4, 5], 'message: <code>sym([1, 2, 3], [5, 2, 1, 4, 5])</code> should return <code>[3, 4, 5]</code>.');",
|
||||
"assert.equal(sym([1, 2, 3], [5, 2, 1, 4, 5]).length, 3, 'message: <code>sym([1, 2, 3], [5, 2, 1, 4, 5])</code> should contain only three elements.');",
|
||||
"assert.sameMembers(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]), [1, 4, 5], 'message: <code>sym([1, 2, 5], [2, 3, 5], [3, 4, 5])</code> should return <code>[1, 4, 5]</code>');",
|
||||
"assert.equal(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]).length, 3, 'message: <code>sym([1, 2, 5], [2, 3, 5], [3, 4, 5])</code> should contain only three elements.');",
|
||||
"assert.sameMembers(sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]), [1, 4, 5], 'message: <code>sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5])</code> should return <code>[1, 4, 5]</code>.');",
|
||||
"assert.equal(sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]).length, 3, 'message: <code>sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5])</code> should contain only three elements.');",
|
||||
"assert.sameMembers(sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3]), [2, 3, 4, 6, 7], 'message: <code>sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3])</code> should return <code>[2, 3, 4, 6, 7]</code>.');",
|
||||
"assert.equal(sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3]).length, 5, 'message: <code>sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3])</code> should contain only five elements.');",
|
||||
"assert.sameMembers(sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]), [1, 2, 4, 5, 6, 7, 8, 9], 'message: <code>sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1])</code> should return <code>[1, 2, 4, 5, 6, 7, 8, 9]</code>.');",
|
||||
"assert.equal(sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]).length, 8, 'message: <code>sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1])</code> should contain only eight elements.');"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"MDNlinks": [
|
||||
"Array.prototype.reduce()",
|
||||
"Symmetric Difference"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Diferencia Simétrica",
|
||||
"description": [
|
||||
"Crea una función que acepte dos o más arreglos y que devuelva un arreglo conteniendo la diferenia simétrica entre ambos",
|
||||
"En Matemáticas, el término 'diferencia simétrica' se refiere a los elementos en dos conjuntos que están en el primer conjunto o en el segundo, pero no en ambos.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado. Intenta programar en pareja. Escribe tu propio código."
|
||||
]
|
||||
},
|
||||
"it": {
|
||||
"title": "Differenza Simmetrica",
|
||||
"description": [
|
||||
"Crea una funzione che accetti due o più array e che ritorni un array contenente la <dfn>differenza simmetrica</dfn> (<code>△</code> o <code>⊕</code>) degli stessi.",
|
||||
"Dati due insiemi (per esempio l'insieme <code>A = {1, 2, 3}<code> e l'insieme <code>B = {2, 3, 4}</code>, il termine matematico \"differenza simmetrica\" di due insiemi è l'insieme degli elementi che sono in almeno uno dei due insiemi, ma non in entrambi (<code>A △ B = C = {1, 4}</code>). Per ogni differenza simmetrica aggiuntiva che fai (per esempio su un insieme <code>D = {2, 3}</code>), devi prendere l'insieme degli elementi che sono in almeno uno dei due insiemi ma non in entrambi (<code>C △ D = {1, 4} △ {2, 3} = {1, 2, 3, 4}</code>).",
|
||||
"Ricorda di usare <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leggi-Cerca-Chiedi</a> se rimani bloccato. Prova a programmare in coppia. Scrivi il codice da te."
|
||||
]
|
||||
},
|
||||
"pt-br": {
|
||||
"title": "Diferença Simétrica",
|
||||
"description": [
|
||||
"Crie uma função que recebe duas ou mais matrizes e retorna a matriz <dfn>diferença simétrica</dfn> (<code>△</code> ou <code>⊕</code>) das matrizes fornecidas.",
|
||||
"Dado dois conjuntos (por exemplo conjunto <code>A = {1, 2, 3}</code> e conjunto <code>B = {2, 3, 4}</code>), o termo matemático \"diferença simétrica\" dos dois cojuntos é o conjunto dos elementos que estão em um dos conjuntos, mas não nos dois (<code>A △ B = C = {1, 4}</code>). Para cada diferença simétrica adicional que você faz (digamos em um terceiro conjunto <code>D = {2, 3}</code>), voce deve retornar o conjunto no qual os elementos estão em um dos conjuntos mas não nos dois (<code>C △ D = {1, 4} △ {2, 3} = {1, 2, 3, 4}</code>). O conjunto final deve ter somentes valores únicos (<em>sem números repetidos</em>).",
|
||||
"Lembre-se de usar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Ler-Procurar-Perguntar</a> se você ficar preso. Tente programar em par. Escreva seu próprio código."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a56138aff60341a09ed6c480",
|
||||
"title": "Inventory Update",
|
||||
"description": [
|
||||
"Compare and update the inventory stored in a 2D array against a second 2D array of a fresh delivery. Update the current existing inventory item quantities (in <code>arr1</code>). If an item cannot be found, add the new item and quantity into the inventory array. The returned inventory array should be in alphabetical order by item.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function updateInventory(arr1, arr2) {",
|
||||
" // All inventory must be accounted for or you're fired!",
|
||||
" return arr1;",
|
||||
"}",
|
||||
"",
|
||||
"// Example inventory lists",
|
||||
"var curInv = [",
|
||||
" [21, \"Bowling Ball\"],",
|
||||
" [2, \"Dirty Sock\"],",
|
||||
" [1, \"Hair Pin\"],",
|
||||
" [5, \"Microphone\"]",
|
||||
"];",
|
||||
"",
|
||||
"var newInv = [",
|
||||
" [2, \"Hair Pin\"],",
|
||||
" [3, \"Half-Eaten Apple\"],",
|
||||
" [67, \"Bowling Ball\"],",
|
||||
" [7, \"Toothpaste\"]",
|
||||
"];",
|
||||
"",
|
||||
"updateInventory(curInv, newInv);"
|
||||
],
|
||||
"solutions": [
|
||||
"function updateInventory(arr1, arr2) {\n arr2.forEach(function(item) {\n createOrUpdate(arr1, item);\n });\n // All inventory must be accounted for or you're fired!\n return arr1;\n}\n\nfunction createOrUpdate(arr1, item) {\n var index = -1;\n while (++index < arr1.length) {\n if (arr1[index][1] === item[1]) {\n arr1[index][0] += item[0];\n return;\n }\n if (arr1[index][1] > item[1]) {\n break;\n }\n }\n arr1.splice(index, 0, item);\n}\n\n// Example inventory lists\nvar curInv = [\n [21, 'Bowling Ball'],\n [2, 'Dirty Sock'],\n [1, 'Hair Pin'],\n [5, 'Microphone']\n];\n\nvar newInv = [\n [2, 'Hair Pin'],\n [3, 'Half-Eaten Apple'],\n [67, 'Bowling Ball'],\n [7, 'Toothpaste']\n];\n\nupdateInventory(curInv, newInv);\n"
|
||||
],
|
||||
"tests": [
|
||||
"assert.isArray(updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]]), 'message: The function <code>updateInventory</code> should return an array.');",
|
||||
"assert.equal(updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]]).length, 6, 'message: <code>updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]])</code> should return an array with a length of 6.');",
|
||||
"assert.deepEqual(updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]]), [[88, \"Bowling Ball\"], [2, \"Dirty Sock\"], [3, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [5, \"Microphone\"], [7, \"Toothpaste\"]], 'message: <code>updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]])</code> should return <code>[[88, \"Bowling Ball\"], [2, \"Dirty Sock\"], [3, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [5, \"Microphone\"], [7, \"Toothpaste\"]]</code>.');",
|
||||
"assert.deepEqual(updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], []), [[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], 'message: <code>updateInventory([[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]], [])</code> should return <code>[[21, \"Bowling Ball\"], [2, \"Dirty Sock\"], [1, \"Hair Pin\"], [5, \"Microphone\"]]</code>.');",
|
||||
"assert.deepEqual(updateInventory([], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]]), [[67, \"Bowling Ball\"], [2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [7, \"Toothpaste\"]], 'message: <code>updateInventory([], [[2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [67, \"Bowling Ball\"], [7, \"Toothpaste\"]])</code> should return <code>[[67, \"Bowling Ball\"], [2, \"Hair Pin\"], [3, \"Half-Eaten Apple\"], [7, \"Toothpaste\"]]</code>.');",
|
||||
"assert.deepEqual(updateInventory([[0, \"Bowling Ball\"], [0, \"Dirty Sock\"], [0, \"Hair Pin\"], [0, \"Microphone\"]], [[1, \"Hair Pin\"], [1, \"Half-Eaten Apple\"], [1, \"Bowling Ball\"], [1, \"Toothpaste\"]]), [[1, \"Bowling Ball\"], [0, \"Dirty Sock\"], [1, \"Hair Pin\"], [1, \"Half-Eaten Apple\"], [0, \"Microphone\"], [1, \"Toothpaste\"]], 'message: <code>updateInventory([[0, \"Bowling Ball\"], [0, \"Dirty Sock\"], [0, \"Hair Pin\"], [0, \"Microphone\"]], [[1, \"Hair Pin\"], [1, \"Half-Eaten Apple\"], [1, \"Bowling Ball\"], [1, \"Toothpaste\"]])</code> should return <code>[[1, \"Bowling Ball\"], [0, \"Dirty Sock\"], [1, \"Hair Pin\"], [1, \"Half-Eaten Apple\"], [0, \"Microphone\"], [1, \"Toothpaste\"]]</code>.');"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"MDNlinks": [
|
||||
"Global Array Object"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Actualizando el Inventario",
|
||||
"description": [
|
||||
"Compara y actualiza el inventario actual, almacenado en un arreglo bidimensional, contra otro arreglo bidimensional de inventario nuevo. Actualiza las cantidades en el inventario actual y, en caso de recibir una nueva mercancía, añade su nombre y la cantidad recibida al arreglo del inventario en orden alfabético.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado. Intenta programar en pareja. Escribe tu propio código."
|
||||
]
|
||||
},
|
||||
"it": {
|
||||
"title": "Aggiornamento dell'Inventario",
|
||||
"description": [
|
||||
"Confronta e aggiorna l'inventario, contenuto in un array bidimensionale, con un secondo array bidimensionale relativo ad una nuova consegna. Aggiorna le quantità disponibili in inventario (dentro <code>arr1</code>). Se uno degli articoli non è presente nell'inventario, aggiungi allo stesso il nuovo articolo e la sua quantità. Ritorna un array con l'inventario aggiornato, che deve essere ordinato alfabeticamente per articolo.",
|
||||
"Ricorda di usare <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leggi-Cerca-Chiedi</a> se rimani bloccato. Prova a programmare in coppia. Scrivi il codice da te."
|
||||
]
|
||||
},
|
||||
"pt-br": {
|
||||
"title": "Atualizando Inventário",
|
||||
"description": [
|
||||
"Compare e atualize o inventário armazenado em um matriz 2D contra uma segunda matriz 2D de uma entrega recente. Atualize a quantidade de itens no inventário atual (em <code>arr1</code>). Se um item não pode ser encontrado, adicione um novo item e a sua quantidade na matriz do inventário. O inventário retornado deve estar em ordem alfabética por item.",
|
||||
"Lembre-se de usar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Ler-Procurar-Perguntar</a> se você ficar preso. Tente programar em par. Escreva seu próprio código."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a7bf700cd123b9a54eef01d5",
|
||||
"title": "No Repeats Please",
|
||||
"description": [
|
||||
"Return the number of total permutations of the provided string that don't have repeated consecutive letters. Assume that all characters in the provided string are each unique.",
|
||||
"For example, <code>aab</code> should return 2 because it has 6 total permutations (<code>aab</code>, <code>aab</code>, <code>aba</code>, <code>aba</code>, <code>baa</code>, <code>baa</code>), but only 2 of them (<code>aba</code> and <code>aba</code>) don't have the same letter (in this case <code>a</code>) repeating.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function permAlone(str) {",
|
||||
" return str;",
|
||||
"}",
|
||||
"",
|
||||
"permAlone('aab');"
|
||||
],
|
||||
"solutions": [
|
||||
"function permAlone(str) {\n return permutor(str).filter(function(perm) {\n return !perm.match(/(.)\\1/g);\n }).length;\n}\n\nfunction permutor(str) {\n // http://staff.roguecc.edu/JMiller/JavaScript/permute.html\n //permArr: Global array which holds the list of permutations\n //usedChars: Global utility array which holds a list of \"currently-in-use\" characters\n var permArr = [], usedChars = [];\n function permute(input) {\n //convert input into a char array (one element for each character)\n var i, ch, chars = input.split(\"\");\n for (i = 0; i < chars.length; i++) {\n //get and remove character at index \"i\" from char array\n ch = chars.splice(i, 1);\n //add removed character to the end of used characters\n usedChars.push(ch);\n //when there are no more characters left in char array to add, add used chars to list of permutations\n if (chars.length === 0) permArr[permArr.length] = usedChars.join(\"\");\n //send characters (minus the removed one from above) from char array to be permuted\n permute(chars.join(\"\"));\n //add removed character back into char array in original position\n chars.splice(i, 0, ch);\n //remove the last character used off the end of used characters array\n usedChars.pop();\n }\n }\n permute(str);\n return permArr;\n}\n\npermAlone('aab');\n"
|
||||
],
|
||||
"tests": [
|
||||
"assert.isNumber(permAlone('aab'), 'message: <code>permAlone(\"aab\")</code> should return a number.');",
|
||||
"assert.strictEqual(permAlone('aab'), 2, 'message: <code>permAlone(\"aab\")</code> should return 2.');",
|
||||
"assert.strictEqual(permAlone('aaa'), 0, 'message: <code>permAlone(\"aaa\")</code> should return 0.');",
|
||||
"assert.strictEqual(permAlone('aabb'), 8, 'message: <code>permAlone(\"aabb\")</code> should return 8.');",
|
||||
"assert.strictEqual(permAlone('abcdefa'), 3600, 'message: <code>permAlone(\"abcdefa\")</code> should return 3600.');",
|
||||
"assert.strictEqual(permAlone('abfdefa'), 2640, 'message: <code>permAlone(\"abfdefa\")</code> should return 2640.');",
|
||||
"assert.strictEqual(permAlone('zzzzzzzz'), 0, 'message: <code>permAlone(\"zzzzzzzz\")</code> should return 0.');",
|
||||
"assert.strictEqual(permAlone('a'), 1, 'message: <code>permAlone(\"a\")</code> should return 1.');",
|
||||
"assert.strictEqual(permAlone('aaab'), 0, 'message: <code>permAlone(\"aaab\")</code> should return 0.');",
|
||||
"assert.strictEqual(permAlone('aaabb'), 12, 'message: <code>permAlone(\"aaabb\")</code> should return 12.');"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"MDNlinks": [
|
||||
"Permutations",
|
||||
"RegExp"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Sin Repeticiones, por Favor",
|
||||
"description": [
|
||||
"Crea una función que devuelva el número total de permutaciones de las letras en la cadena de texto provista, en las cuales no haya letras consecutivas repetidas",
|
||||
"Por ejemplo, 'aab' debe retornar 2 porque, del total de 6 permutaciones posibles, solo 2 de ellas no tienen repetida la misma letra (en este caso 'a').",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado. Intenta programar en pareja. Escribe tu propio código."
|
||||
]
|
||||
},
|
||||
"it": {
|
||||
"title": "Niente Ripetizioni, per Favore",
|
||||
"description": [
|
||||
"Ritorna il numero totale di permutazioni della stringa passata che non hanno lettere consecutive riptetute. Assumi che tutti i caratteri nella stringa passata siano unici.",
|
||||
"Per esempio, <code>aab</code> deve ritornare 2, perchè la stringa ha 6 permutazioni possibili in totale (<code>aab</code>, <code>aab</code>, <code>aba</code>, <code>aba</code>, <code>baa</code>, <code>baa</code>), ma solo 2 di loro (<code>aba</code> e <code>aba</code>) non contengono la stessa lettera (in questo caso <code>a</code> ripetuta).",
|
||||
"Ricorda di usare <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leggi-Cerca-Chiedi</a> se rimani bloccato. Prova a programmare in coppia. Scrivi il codice da te."
|
||||
]
|
||||
},
|
||||
"pt-br": {
|
||||
"title": "Sem repetição, por favor",
|
||||
"description": [
|
||||
"Retorne o número total de permutações da string fornecida que não tem letras consecutivas repetidas. Assuma que todos os caracteres na string fornecida são únicos.",
|
||||
"Por exemplo, <code>aab</code> deve retornar 2 porque tem um total de 6 permutações (<code>aab</code>, <code>aab</code>, <code>aba</code>, <code>aba</code>, <code>baa</code>, <code>baa</code>), mas somente duas delas (<code>aba</code> and <code>aba</code>) não tem a mesma letra (nesse caso <code>a</code>) se repetindo.",
|
||||
"Lembre-se de usar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Ler-Procurar-Perguntar</a> se você ficar preso. Tente programar em par. Escreva seu próprio código."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a3f503de51cfab748ff001aa",
|
||||
"title": "Pairwise",
|
||||
"description": [
|
||||
"Given an array <code>arr</code>, find element pairs whose sum equal the second argument <code>arg</code> and return the sum of their indices.",
|
||||
"You may use multiple pairs that have the same numeric elements but different indices. Each pair should use the lowest possible available indices. Once an element has been used it cannot be reused to pair with another element.",
|
||||
"For example <code>pairwise([7, 9, 11, 13, 15], 20)</code> returns <code>6</code>. The pairs that sum to 20 are <code>[7, 13]</code> and <code>[9, 11]</code>. We can then write out the array with their indices and values.",
|
||||
"<table class=\"table\"><tr><th><strong>Index</strong></th><th>0</th><th>1</th><th>2</th><th>3</th><th>4</th></tr><tr><td>Value</td><td>7</td><td>9</td><td>11</td><td>13</td><td>15</td></tr></table>",
|
||||
"Below we'll take their corresponding indices and add them.",
|
||||
"7 + 13 = 20 → Indices 0 + 3 = 3<br>9 + 11 = 20 → Indices 1 + 2 = 3<br>3 + 3 = 6 → Return <code>6</code>",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function pairwise(arr, arg) {",
|
||||
" return arg;",
|
||||
"}",
|
||||
"",
|
||||
"pairwise([1,4,2,3,0,5], 7);"
|
||||
],
|
||||
"solutions": [
|
||||
"function pairwise(arr, arg) {\n var sum = 0;\n arr.forEach(function(e, i, a) {\n if (e != null) { \n var diff = arg-e;\n a[i] = null;\n var dix = a.indexOf(diff);\n if (dix !== -1) {\n sum += dix;\n sum += i;\n a[dix] = null;\n } \n }\n });\n return sum;\n}\n\npairwise([1,4,2,3,0,5], 7);\n"
|
||||
],
|
||||
"tests": [
|
||||
"assert.deepEqual(pairwise([1, 4, 2, 3, 0, 5], 7), 11, 'message: <code>pairwise([1, 4, 2, 3, 0, 5], 7)</code> should return 11.');",
|
||||
"assert.deepEqual(pairwise([1, 3, 2, 4], 4), 1, 'message: <code>pairwise([1, 3, 2, 4], 4)</code> should return 1.');",
|
||||
"assert.deepEqual(pairwise([1, 1, 1], 2), 1, 'message: <code>pairwise([1, 1, 1], 2)</code> should return 1.');",
|
||||
"assert.deepEqual(pairwise([0, 0, 0, 0, 1, 1], 1), 10, 'message: <code>pairwise([0, 0, 0, 0, 1, 1], 1)</code> should return 10.');",
|
||||
"assert.deepEqual(pairwise([], 100), 0, 'message: <code>pairwise([], 100)</code> should return 0.');"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"MDNlinks": [
|
||||
"Array.prototype.reduce()"
|
||||
],
|
||||
"challengeType": 5,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "En Parejas",
|
||||
"description": [
|
||||
"Crea una función que devuelva la suma de todos los índices de los elementos de 'arr' que pueden ser emparejados con otro elemento de tal forma que la suma de ambos equivalga al valor del segundo argumento, 'arg'. Si varias combinaciones son posibles, devuelve la menor suma de índices. Una vez un elemento ha sido usado, no puede ser usado de nuevo para emparejarlo con otro elemento.",
|
||||
"Por ejemplo, pairwise([1, 4, 2, 3, 0, 5], 7) debe devolver 11 porque 4, 2, 3 y 5 pueden ser emparejados para obtener una suma de 7",
|
||||
"pairwise([1, 3, 2, 4], 4) devolvería el valor de 1, porque solo los primeros dos elementos pueden ser emparejados para sumar 4. ¡Recuerda que el primer elemento tiene un índice de 0!",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado. Intenta programar en pareja. Escribe tu propio código."
|
||||
]
|
||||
},
|
||||
"it": {
|
||||
"title": "A Coppie",
|
||||
"description": [
|
||||
"Dato un array <code>arr</code>, trova le coppie di elementi la cui somma è uguale al secondo argomento passato <code>arg</code>. Ritorna quindi la somma dei loro indici.",
|
||||
"Se ci sono più coppie possibili che hanno lo stesso valore numerico ma indici differenti, ritorna la somma degli indici minore. Una volta usato un elemento, lo stesso non può essere riutilizzato per essere accoppiato con un altro.",
|
||||
"Per esempio <code>pairwise([7, 9, 11, 13, 15], 20)</code> ritorna <code>6</code>. Le coppia la cui somma è 20 sono <code>[7, 13]</code> e <code>[9, 11]</code>. Possiamo quindi osservare l'array con i loro indici e valori.",
|
||||
"<table class=\"table\"><tr><th><strong>Indice</strong></th><th>0</th><th>1</th><th>2</th><th>3</th><th>4</th></tr><tr><td>Valore</td><td>7</td><td>9</td><td>11</td><td>13</td><td>15</td></tr></table>",
|
||||
"Qui sotto prendiamo gli indici corrispondenti e li sommiamo.",
|
||||
"7 + 13 = 20 → Indici 0 + 3 = 3<br>9 + 11 = 20 → Indici 1 + 2 = 3<br>3 + 3 = 6 → Ritorna <code>6</code>",
|
||||
"Ricorda di usare <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leggi-Cerca-Chiedi</a> se rimani bloccato. Prova a programmare in coppia. Scrivi il codice da te."
|
||||
]
|
||||
},
|
||||
"pt-br": {
|
||||
"title": "Emparelhados",
|
||||
"description": [
|
||||
"Dado uma matriz <code>arr</code>, encontre pares de elementos no qual a soma é igual ao segundo argumento <code>arg</code> e retorne a soma dos seus indices.",
|
||||
"Se multiplos pares tem o mesmo elemento numérico mas indices diferentes, retorne a soma dos menores indices. Uma vez que um elemento é usado, este não pode ser emparelhado novamente com outro elemento.",
|
||||
"Por exemplo <code>pairwise([7, 9, 11, 13, 15], 20)</code> retorna <code>6</code>. Os pares que somam 20 são <code>[7, 13]</code> e <code>[9, 11]</code>. Nós podemos então criar a matriz com seus indices e valores.",
|
||||
"<table class=\"table\"><tr><th><strong>Index</strong></th><th>0</th><th>1</th><th>2</th><th>3</th><th>4</th></tr><tr><td>Value</td><td>7</td><td>9</td><td>11</td><td>13</td><td>15</td></tr></table>",
|
||||
"Abaixo nós pegamos os índices correspondentes e somá-los.",
|
||||
"7 + 13 = 20 → Indices 0 + 3 = 3<br>9 + 11 = 20 → Indices 1 + 2 = 3<br>3 + 3 = 6 → Retorna <code>6</code>",
|
||||
"Lembre-se de usar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Ler-Procurar-Perguntar</a> se você ficar preso. Tente programar em par. Escreva seu próprio código."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "8d5123c8c441eddfaeb5bdef",
|
||||
"title": "Implement Bubble Sort",
|
||||
"description": [
|
||||
"This is the first of several challenges on sorting algorithms. Given an array of unsorted items, we want to be able to return a sorted array. We will see several different methods to do this and learn some tradeoffs between these different approaches. While most modern languages have built-in sorting methods for operations like this, it is still important to understand some of the common basic approaches and learn how they can be implemented.",
|
||||
"Here we will see bubble sort. The bubble sort method starts at the beginning of an unsorted array and 'bubbles up' unsorted values towards the end, iterating through the array until it is completely sorted. It does this by comparing adjacent items and swapping them if they are out of order. The method continues looping through the array until no swaps occur at which point the array is sorted.",
|
||||
"This method requires multiple iterations through the array and for average and worst cases has quadratic time complexity. While simple, it is usually impractical in most situations.",
|
||||
"<strong>Instructions:</strong> Write a function <code>bubbleSort</code> which takes an array of integers as input and returns an array of these integers in sorted order from least to greatest.",
|
||||
"<strong>Note:</strong><br>We are calling this function from behind the scenes; the test array we are using is commented out in the editor. Try logging <code>array</code> to see your sorting alogrithm in action!"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function bubbleSort(array) {",
|
||||
" // change code below this line",
|
||||
"",
|
||||
" // change code above this line",
|
||||
" return array;",
|
||||
"}",
|
||||
"",
|
||||
"// test array:",
|
||||
"// [1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92]"
|
||||
],
|
||||
"tail": [
|
||||
"function isSorted(arr) {",
|
||||
" var check = (i) => (i == arr.length - 1) ? true : (arr[i] > arr[i + 1]) ? false : check(i + 1);",
|
||||
" return check(0);",
|
||||
"};"
|
||||
],
|
||||
"tests": [
|
||||
"assert(typeof bubbleSort == 'function', 'message: <code>bubbleSort</code> is a function.');",
|
||||
"assert(isSorted(bubbleSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])), 'message: <code>bubbleSort</code> returns a sorted array (least to greatest).');",
|
||||
"assert.sameMembers(bubbleSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92]), [1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92], 'message: <code>bubbleSort</code> returns an array that is unchanged except for order.');",
|
||||
"assert.strictEqual(code.search(/\\.sort\\(/), -1, 'message: <code>bubbleSort</code> should not use the built-in <code>.sort()</code> method.');"
|
||||
],
|
||||
"type": "waypoint",
|
||||
"solutions": [],
|
||||
"challengeType": 1,
|
||||
"translations": {},
|
||||
"releasedOn": "February 17, 2017"
|
||||
},
|
||||
{
|
||||
"id": "587d8259367417b2b2512c85",
|
||||
"title": "Implement Selection Sort",
|
||||
"description": [
|
||||
"Here we will implement selection sort. Selection sort works by selecting the minimum value in a list and swapping it with the first value in the list. It then starts at the second position, selects the smallest value in the remaining list, and swaps it with the second element. It continues iterating through the list and swapping elements until it reaches the end of the list. Now the list is sorted. Selection sort has quadratic time complexity in all cases.",
|
||||
"<stong>Instructions</stong>: Write a function <code>selectionSort</code> which takes an array of integers as input and returns an array of these integers in sorted order from least to greatest.",
|
||||
"<strong>Note:</strong><br>We are calling this function from behind the scenes; the test array we are using is commented out in the editor. Try logging <code>array</code> to see your sorting alogrithm in action!"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function selectionSort(array) {",
|
||||
" // change code below this line",
|
||||
"",
|
||||
" // change code above this line",
|
||||
" return array;",
|
||||
"}",
|
||||
"",
|
||||
"// test array:",
|
||||
"// [1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92]"
|
||||
],
|
||||
"tail": [
|
||||
"function isSorted(arr) {",
|
||||
" var check = (i) => (i == arr.length - 1) ? true : (arr[i] > arr[i + 1]) ? false : check(i + 1);",
|
||||
" return check(0);",
|
||||
"};"
|
||||
],
|
||||
"tests": [
|
||||
"assert(typeof selectionSort == 'function', 'message: <code>selectionSort</code> is a function.');",
|
||||
"assert(isSorted(selectionSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])), 'message: <code>selectionSort</code> returns a sorted array (least to greatest).');",
|
||||
"assert.sameMembers(selectionSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92]), [1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92], 'message: <code>selectionSort</code> returns an array that is unchanged except for order.');",
|
||||
"assert.strictEqual(code.search(/\\.sort\\(/), -1, 'message: <code>selectionSort</code> should not use the built-in <code>.sort()</code> method.');"
|
||||
],
|
||||
"type": "waypoint",
|
||||
"solutions": [],
|
||||
"challengeType": 1,
|
||||
"translations": {},
|
||||
"releasedOn": "February 17, 2017"
|
||||
},
|
||||
{
|
||||
"id": "587d8259367417b2b2512c86",
|
||||
"title": "Implement Insertion Sort",
|
||||
"description": [
|
||||
"The next sorting method we'll look at is insertion sort. This method works by building up a sorted array at the beginning of the list. It begins the sorted array with the first element. Then it inspects the next element and swaps it backwards into the sorted array until it is in sorted position. It continues iterating through the list and swapping new items backwards into the sorted portion until it reaches the end. This algorithm has quadratic time complexity in the average and worst cases.",
|
||||
"<strong>Instructions:</strong> Write a function <code>insertionSort</code> which takes an array of integers as input and returns an array of these integers in sorted order from least to greatest.",
|
||||
"<strong>Note:</strong><br>We are calling this function from behind the scenes; the test array we are using is commented out in the editor. Try logging <code>array</code> to see your sorting alogrithm in action!"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function insertionSort(array) {",
|
||||
" // change code below this line",
|
||||
"",
|
||||
" // change code above this line",
|
||||
" return array;",
|
||||
"}",
|
||||
"",
|
||||
"// test array:",
|
||||
"// [1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92]"
|
||||
],
|
||||
"tail": [
|
||||
"function isSorted(arr) {",
|
||||
" var check = (i) => (i == arr.length - 1) ? true : (arr[i] > arr[i + 1]) ? false : check(i + 1);",
|
||||
" return check(0);",
|
||||
"};"
|
||||
],
|
||||
"tests": [
|
||||
"assert(typeof insertionSort == 'function', 'message: <code>insertionSort</code> is a function.');",
|
||||
"assert(isSorted(insertionSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])), 'message: <code>insertionSort</code> returns a sorted array (least to greatest).');",
|
||||
"assert.sameMembers(insertionSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92]), [1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92], 'message: <code>insertionSort</code> returns an array that is unchanged except for order.');",
|
||||
"assert.strictEqual(code.search(/\\.sort\\(/), -1, 'message: <code>insertionSort</code> should not use the built-in <code>.sort()</code> method.');"
|
||||
],
|
||||
"type": "waypoint",
|
||||
"solutions": [],
|
||||
"challengeType": 1,
|
||||
"translations": {},
|
||||
"releasedOn": "February 17, 2017"
|
||||
},
|
||||
{
|
||||
"id": "587d825a367417b2b2512c89",
|
||||
"title": "Implement Quick Sort",
|
||||
"description": [
|
||||
"Here we will move on to an intermediate sorting algorithm: quick sort. Quick sort is an efficient, recursive divide-and-conquer approach to sorting an array. In this method, a pivot value is chosen in the original array. The array is then partitioned into two subarrays of values less than and greater than the pivot value. We then combine the result of recursively calling the quick sort algorithm on both sub-arrays. This continues until the base case of an empty or single-item array is reached, which we return. The unwinding of the recursive calls return us the sorted array.",
|
||||
"Quick sort is a very efficient sorting method, providing <i>O(nlog(n))</i> performance on average. It is also relatively easy to implement. These attributes make it a popular and useful sorting method.",
|
||||
"<strong>Instructions:</strong> Write a function <code>quickSort</code> which takes an array of integers as input and returns an array of these integers in sorted order from least to greatest. While the choice of the pivot value is important, any pivot will do for our purposes here. For simplicity, the first or last element could be used.",
|
||||
"<strong>Note:</strong><br>We are calling this function from behind the scenes; the test array we are using is commented out in the editor. Try logging <code>array</code> to see your sorting alogrithm in action!"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function quickSort(array) {",
|
||||
" // change code below this line",
|
||||
"",
|
||||
" // change code above this line",
|
||||
" return array;",
|
||||
"}",
|
||||
"",
|
||||
"// test array:",
|
||||
"// [1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92]"
|
||||
],
|
||||
"tests": [
|
||||
"assert(typeof quickSort == 'function', 'message: <code>quickSort</code> is a function.');",
|
||||
"assert(isSorted(quickSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])), 'message: <code>quickSort</code> returns a sorted array (least to greatest).');",
|
||||
"assert.sameMembers(quickSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92]), [1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92], 'message: <code>quickSort</code> returns an array that is unchanged except for order.');",
|
||||
"assert.strictEqual(code.search(/\\.sort\\(/), -1, 'message: <code>quickSort</code> should not use the built-in <code>.sort()</code> method.');"
|
||||
],
|
||||
"tail": [
|
||||
"function isSorted(arr) {",
|
||||
" var check = (i) => (i == arr.length - 1) ? true : (arr[i] > arr[i + 1]) ? false : check(i + 1);",
|
||||
" return check(0);",
|
||||
"};"
|
||||
],
|
||||
"type": "waypoint",
|
||||
"solutions": [],
|
||||
"challengeType": 1,
|
||||
"translations": {},
|
||||
"releasedOn": "February 17, 2017"
|
||||
},
|
||||
{
|
||||
"id": "587d825c367417b2b2512c8f",
|
||||
"title": "Implement Merge Sort",
|
||||
"description": [
|
||||
"Another intermediate sorting algorithm that is very common is merge sort. Like quick sort, merge sort also uses a divide-and-conquer, recursive methodology to sort an array. It takes advantage of the fact that it is relatively easy to sort two arrays as long as each is sorted in the first place. But we'll start with only one array as input, so how do we get to two sorted arrays from that? Well, we can recursively divide the original input in two until we reach the base case of an array with one item. A single-item array is naturally sorted, so then we can start combining. This combination will unwind the recursive calls that split the original array, eventually producing a final sorted array of all the elements. The steps of merge sort, then, are:",
|
||||
"<strong>1)</strong> Recursively split the input array in half until a sub-array with only one element is produced.",
|
||||
"<strong>2)</strong> Merge each sorted sub-array together to produce the final sorted array.",
|
||||
"Merge sort is an efficient sorting method, with time complexity of <i>O(nlog(n))</i>. This algorithm is popular because it is performant and relatively easy to implement.",
|
||||
"As an aside, this will be the last sorting algorithm we cover here. However, later in the section on tree data structures we will describe heap sort, another efficient sorting method that requires a binary heap in its implementation.",
|
||||
"<strong>Instructions:</strong> Write a function <code>mergeSort</code> which takes an array of integers as input and returns an array of these integers in sorted order from least to greatest. A good way to implement this is to write one function, for instance <code>merge</code>, which is responsible for merging two sorted arrays, and another function, for instance <code>mergeSort</code>, which is responsible for the recursion that produces single-item arrays to feed into merge. Good luck!",
|
||||
"<strong>Note:</strong><br>We are calling this function from behind the scenes; the test array we are using is commented out in the editor. Try logging <code>array</code> to see your sorting alogrithm in action!"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function mergeSort(array) {",
|
||||
" // change code below this line",
|
||||
"",
|
||||
" // change code above this line",
|
||||
" return array;",
|
||||
"}",
|
||||
"",
|
||||
"// test array:",
|
||||
"// [1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92]"
|
||||
],
|
||||
"tests": [
|
||||
"assert(typeof mergeSort == 'function', 'message: <code>mergeSort</code> is a function.');",
|
||||
"assert(isSorted(mergeSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])), 'message: <code>mergeSort</code> returns a sorted array (least to greatest).');",
|
||||
"assert.sameMembers(mergeSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92]), [1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92], 'message: <code>mergeSort</code> returns an array that is unchanged except for order.');",
|
||||
"assert.strictEqual(code.search(/\\.sort\\(/), -1, 'message: <code>mergeSort</code> should not use the built-in <code>.sort()</code> method.');"
|
||||
],
|
||||
"tail": [
|
||||
"function isSorted(arr) {",
|
||||
" var check = (i) => (i == arr.length - 1) ? true : (arr[i] > arr[i + 1]) ? false : check(i + 1);",
|
||||
" return check(0);",
|
||||
"};"
|
||||
],
|
||||
"type": "waypoint",
|
||||
"solutions": [],
|
||||
"challengeType": 1,
|
||||
"translations": {},
|
||||
"releasedOn": "February 17, 2017"
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,975 @@
|
||||
{
|
||||
"name": "System Design and Concept Questions",
|
||||
"order": 3,
|
||||
"time": "",
|
||||
"helpRoom": "HelpJavaScript",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "59874fc749228906236a3275",
|
||||
"title": "Array.prototype.map",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "Flooring an Array",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = [1.32, 2.43, 3.9]\n .map(Math.floor);\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>1.32 2.43 3.9</code></pre>",
|
||||
"<pre><code class='language-javascript'>['1.32', '2.43', '3.9']</code></pre>",
|
||||
"<pre><code class='language-javascript'>[1, 2, 3]</code></pre>",
|
||||
"<pre><code class='language-javascript'>'1 2 3'</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "The map function takes a callback function as it's first parameter and applies that function against every value inside the array. In this example, our callback function is the <code>Math.floor</code> function which will truncate the decimal points of all the numbers and convert them to integers."
|
||||
},
|
||||
{
|
||||
"subtitle": "Custom Map Functions",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = ['a', 'b', 'c']\n .map(a => [a.toUpperCase()]);\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[['A'], ['B'], ['C']]</code></pre>",
|
||||
"<pre><code class='language-javascript'>['A', 'B', 'C']</code></pre>",
|
||||
"<pre><code class='language-javascript'>['a', 'b', 'c]</code></pre>",
|
||||
"<pre><code class='language-javascript'>'ABC'</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "The map function will return a new array with each element equal to the old element ran through a callback function. Our callback function takes our original element, changes it to a upper case, and then wraps it in an array; thus, leaving us with <code>[['A'], ['B'], ['C']]</code>"
|
||||
},
|
||||
{
|
||||
"subtitle": "Maps on Maps",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = [[4, 1], [2, 0], [3, 3]]\n .map(a => \n a.map(b => b % 2)[0] + a.map(b => b - 1)[1]\n )\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[[0, 1], [0, 0], [1, 1]]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[[0, 0], [0, -1], [1, 2]]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[1, 1, 2]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[0, -1, 3]</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "This answer can be explained by first looking at the example of what happens with the first element in our array, <code>[4, 1]</code>. Our first map callback will run a mod 2 map function over <code>[4, 1]</code> leaving us with a new array of <code>[0, 1]</code>. The second map call which is inside our callback will subtract 1 from every element, leaving us with <code>[3, 0]</code>. Last, we take element at index 0, <code>0</code>, and add it to element of index 1 from our second map function, <code>0</code>, leaving us with 0; thus, after the first iteration of the top level map function, we are left with an array that looks like so: <code>[1, [2, 0], [3, 3]]</code>. We simply keep doing that logic for the other elements until we finish: <code>[1, -1, [3, 3]]</code>, and <code>[1, -1, 3]</code>"
|
||||
},
|
||||
{
|
||||
"subtitle": "Words Containing 'a'",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = ['apple', 'dog', 'cat']\n .map((a, i) => \n a.indexOf('a') !== -1 ? i : null)\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[0, -1, 1]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[0, null, 2]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[null, null, null]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[-1, null, 2]</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "This map example will return an array where each elements of the new array is either the original array index when the element contains the character 'a'; otherwise, an element of null for any words that do not have the character 'a'."
|
||||
},
|
||||
{
|
||||
"subtitle": "Accessing the Original Array Elements",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = [1, 2, 3]\n .map((a, _, o) => a + o[0])\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[1, 2, 3]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[0, 0, 0]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[3, 2, 1]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[2, 3, 4]</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "This map example will add the value of the first element in the original array to all the other elements in the array."
|
||||
},
|
||||
{
|
||||
"subtitle": "More Map Hacking",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = [8, 5, 3]\n .map((a, i, o) => o[o.length - i - 1])\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[3, 5, 8]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[5, 3, 8]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[8, 5, 3]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[3, 8, 5]</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "This map example will reverse the array. The third argument to the map callback function is the original array; therefore, we can use the current index in the map function, and work our way backwards from the end of the array using the o.length."
|
||||
},
|
||||
{
|
||||
"subtitle": "Custom Scoping",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = ['a', 'b', 'c']\n .map(function(a) { return this[a]; }, {a: 9, b: 3, c: 1})\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>['a', 'b', 'c']</code></pre>",
|
||||
"<pre><code class='language-javascript'>[9, 3, 1]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[3, 9, 1]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[{a: 9}, {b: 3}, {c: 1}]</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "This map example will reverse the array. The third argument to the map callback function is the original array; therefore, we can use the current index in the map function, and work our way backwards from the end of the array using the o.length."
|
||||
},
|
||||
{
|
||||
"subtitle": "Reversing in Map, Just Because",
|
||||
"question": "What will the following code print out?\n<pre><code class='language-javascript'>const results = [1, 2, 3, 4, 5]\n .map((a, _, o) => o.reverse() && a)\nconsole.log(results);</code></pre>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[5, 4, 3, 2, 1]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[5, 2, 3, 5, 1]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[1, 2, 3, 4, 5]</code></pre>",
|
||||
"<pre><code class='language-javascript'>[1, 4, 3, 2, 5]</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "This map example will reverse the array. The third argument to the map callback function is the original array; therefore, we can use the current index in the map function, and work our way backwards from the end of the array using the o.length."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a916843a9178457a6f1281f",
|
||||
"title": "General questions",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "Data Structure stack",
|
||||
"question": "A stack data structure obeys the principles of Last in First Out (LIFO) true or false",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>true</code></pre>",
|
||||
"<pre><code class='language-javascript'>false</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "true"
|
||||
},
|
||||
{
|
||||
"subtitle": "Sorting algorithm",
|
||||
"question": "Which of the following is not a common sorting algorithm ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Bubble Sort</code></pre>",
|
||||
"<pre><code class='language-javascript'>QuickSort</code></pre>",
|
||||
"<pre><code class='language-javascript'>HeapSort</code></pre>",
|
||||
"<pre><code class='language-javascript'>Branch Sort</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Branch sort is not a sorting algorithm"
|
||||
},
|
||||
{
|
||||
"subtitle": "Persistant storage",
|
||||
"question": "CRUD operation stand for ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Create, Read, Update, Delete</code></pre>",
|
||||
"<pre><code class='language-javascript'>Copy, Reduce, Update, Define</code></pre>",
|
||||
"<pre><code class='language-javascript'>Create, Rich, Unique, Document</code></pre>",
|
||||
"<pre><code class='language-javascript'>Cancel, Reduce, Unify, Dispose</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "CRUD stands for Create - Read - Update and Delete and are the four basic operations of persistant storage"
|
||||
},
|
||||
{
|
||||
"subtitle": "Numeric types",
|
||||
"question": "Select the correct Numeric types to their correct size.",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Byte - 8 bits, long - 64 bits,int - 32 bits, short - 16 bits.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Byte - 8 bits, long - 32 bits ,int - 64 bits, short - 16 bits.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Byte - 8 bits, long - 16 bits ,int - 32 bits, short - 64 bits.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Byte - 32 bits, long - 8 bits ,int - 64 bits, short - 16 bits.</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "byte 8 bits, short 16 bits, int 32 bits, long 64 bits."
|
||||
},
|
||||
{
|
||||
"subtitle": "Software architecture pattern",
|
||||
"question": "The MVC software architectural pattern stands for ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>MeanStack - View - Class</code></pre>",
|
||||
"<pre><code class='language-javascript'>Modal - Vector - Controll</code></pre>",
|
||||
"<pre><code class='language-javascript'>Model - View - Controller</code></pre>",
|
||||
"<pre><code class='language-javascript'>Mapped - Volume - Content</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "The MVC pattern is used to keep separate three main componants of an application, the idea being for example the data or 'Model' does not need to know what the 'View' or presentation of that data is doing and vice versa, with the 'Controller' handling any logic or input from the user to manipulate the 'Model'."
|
||||
},
|
||||
{
|
||||
"subtitle": "XPath navigation",
|
||||
"question": "The XPath syntax is used to traverse data stored in which format",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>XML</code></pre>",
|
||||
"<pre><code class='language-javascript'>JSON</code></pre>",
|
||||
"<pre><code class='language-javascript'>Xtend</code></pre>",
|
||||
"<pre><code class='language-javascript'>Text</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "is used to navigate nodes and attributes within an XML document and stands for XML Path Language."
|
||||
},
|
||||
{
|
||||
"subtitle": "Functions and side effects",
|
||||
"question": "If a function is said to have side-effects it is expected to ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Only return after an enclosed inner function has returned</code></pre>",
|
||||
"<pre><code class='language-javascript'>Contain 'Blocking' code which can affect the stability of the program</code></pre>",
|
||||
"<pre><code class='language-javascript'>Modify some kind of state outside of its own scope such as a global variable or change the value of its own arguments.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Have high algorithm complexity.</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Other charateristics of side-effects would be writing data to the log, interacting with users or systems on the same network and calling other functions with side-effects."
|
||||
},
|
||||
{
|
||||
"subtitle": "Time-Complexity",
|
||||
"question": "The term 'Time-Complexity' relates to ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>HTTP requests</code></pre>",
|
||||
"<pre><code class='language-javascript'>Algorithms</code></pre>",
|
||||
"<pre><code class='language-javascript'>Inheritance</code></pre>",
|
||||
"<pre><code class='language-javascript'>Consuming API's</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "Algorithm Time-Complexity is the total amount of time needed for an algorithm to run till full completion and is more often expressed with 'big-O-notation'."
|
||||
},
|
||||
{
|
||||
"subtitle": "Find the odd",
|
||||
"question": "Which of the following programming languages is the odd one out ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>C#</code></pre>",
|
||||
"<pre><code class='language-javascript'>Java</code></pre>",
|
||||
"<pre><code class='language-javascript'>Cobol</code></pre>",
|
||||
"<pre><code class='language-javascript'>PHP</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "PHP is generally referred to as an interpreted language where as the other three are considered languages generally processed by compilers."
|
||||
},
|
||||
{
|
||||
"subtitle": "Find the odd, again",
|
||||
"question": "Which in the following list is the odd one out ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Boolean</code></pre>",
|
||||
"<pre><code class='language-javascript'>Character</code></pre>",
|
||||
"<pre><code class='language-javascript'>Array</code></pre>",
|
||||
"<pre><code class='language-javascript'>Null</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "An array in most languages is considered an object where as the other three are primitive data types."
|
||||
},
|
||||
{
|
||||
"subtitle": "Programming languages paradigms",
|
||||
"question": "Object-oriented and Functional are said to be programming language paradigms which of the following isn't a language paradigm.",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Procedural</code></pre>",
|
||||
"<pre><code class='language-javascript'>Imperative</code></pre>",
|
||||
"<pre><code class='language-javascript'>Declarative</code></pre>",
|
||||
"<pre><code class='language-javascript'>Instance</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Instance is not a recognised programming paradigm."
|
||||
},
|
||||
{
|
||||
"subtitle": "UML",
|
||||
"question": "UML or Universal Modeling Language is a language created for?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Creating database schemas.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Software visualization using diagrams.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Simplifying multi language software applications.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Integration of cross-platform systems on one network.</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "UML is used for software modeling in diagram form including Class diagrams, Object diagrams and Use case diagrams among others."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a91690fa9178457a6f12820",
|
||||
"title": "CSS questions part 1",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "Elements properties",
|
||||
"question": "Which properties do inline elements not possess under normal document flow.",
|
||||
"choices": [
|
||||
"<pre>overflow, left or right margins</pre>",
|
||||
"<pre>border-radius, z-index</pre>",
|
||||
"<pre>font-size, animation</pre>",
|
||||
"<pre>width, top or bottom margins</pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "An inline element will only take up the width of the inner content."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS rules",
|
||||
"question": "What will the following css rule select?\n<pre><code class='language-javascript'>.test > div</code> {\n...\n}</code></pre>"
|
||||
,
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Selects all divs within elements with the class of test.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Selects all divs outside of elements with the class of test.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Selects only divs that are immediate children of elements with the class of test.</code></pre>",
|
||||
"<pre><code class='language-javascript'>This would not be considered a valid selector.</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "eg: \n<pre><code class='language-html'><div class='test'>\n<div class='box'>\n<div class='content'>...</div>\n</div>\n<div class='box'>\n<div class='content'>...</div>\n</div>\n</div></code></pre>\n\nWould target only the elements with a class of 'box' as these are the direct children of 'test'."
|
||||
},
|
||||
{
|
||||
"subtitle": "Overriding properties",
|
||||
"question": "Which keyword would you add to the end of a style rule to override another Css style for a specific element ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>*override</code></pre>",
|
||||
"<pre><code class='language-javascript'>*overrideAll</code></pre>",
|
||||
"<pre><code class='language-javascript'>!vital</code></pre>",
|
||||
"<pre><code class='language-javascript'>!important</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "For example if you wanted all the paragraph tags in a specific class to have the colour blue instead of black\n<pre><code class='language-javascript'></code>.myClass p {\ncolor: blue !important\n}</code></pre>"
|
||||
},
|
||||
{
|
||||
"subtitle": "Preprocessor CSS",
|
||||
"question": "Which is not considered a Css preprocessor?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Less</code></pre>",
|
||||
"<pre><code class='language-javascript'>Sass</code></pre>",
|
||||
"<pre><code class='language-javascript'>Stylus</code></pre>",
|
||||
"<pre><code class='language-javascript'>Express</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Express is an application framework for Node.js"
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS Box Model",
|
||||
"question": "Which is not a property of the Css 'Box Model'?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Border</code></pre>",
|
||||
"<pre><code class='language-javascript'>Padding</code></pre>",
|
||||
"<pre><code class='language-javascript'>Margin</code></pre>",
|
||||
"<pre><code class='language-javascript'>Outline</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Content is the fourth property of the box model not outline."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS positioning",
|
||||
"question": "Absolute positioning in Css removes an element from the normal document flow true/false?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>true</code></pre>",
|
||||
"<pre><code class='language-javascript'>false</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "Giving an element absolute positioning removes it from the normal document flow completely allowing positioning attributes top, left, bottom."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS selector",
|
||||
"question": "With this Css Selector it is possible to select every element in a document.",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Body</code></pre>",
|
||||
"<pre><code class='language-javascript'>Universal</code></pre>",
|
||||
"<pre><code class='language-javascript'>Wildcard</code></pre>",
|
||||
"<pre><code class='language-javascript'>SelectAll</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "The Universal selector will select every element on a page and is denoted by <code>*{}</code>. note: The rule of specificity still applies, so a more specific selector can override the universal selector in a Css document."
|
||||
},
|
||||
{
|
||||
"subtitle": "Font size in CSS",
|
||||
"question": "Which is not a valid Css font size?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>em</code></pre>",
|
||||
"<pre><code class='language-javascript'>%</code></pre>",
|
||||
"<pre><code class='language-javascript'>tp</code></pre>",
|
||||
"<pre><code class='language-javascript'>px</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "tp is not valid this should be pt."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS clear property",
|
||||
"question": "The Css 'clear' property fulfills which task?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Allows transparency of an element.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Prevents prior properties of the selector from taking effect.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Positions an element clear of a siblings margins and borders.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Sets which sides of an element floating elements are not allowed to be floated.</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "The clear property has the following values available: both, left, right, inherit, initial and none."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS sudo-class",
|
||||
"question": "An example of a sudo-class of a ul element written in Css would be defined?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>ul:first-child</code></pre>",
|
||||
"<pre><code class='language-javascript'>ul..first-child</code></pre>",
|
||||
"<pre><code class='language-javascript'>ul::first-child</code></pre>",
|
||||
"<pre><code class='language-javascript'>ul first-child</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "First answer : Would be correct of a sudo-class.<br />Second answer : Would be an error of syntax.<br />Third answer: The double colon would be an example of a sudo element used with the likes of <code>::before</code> and <code>::after</code> which are examples of content.<br />Fourth answer : This would relate to html tag elements of which there is no first-child tag."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a91a167a9178457a6f12821",
|
||||
"title": "CSS questions part 2",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "CSS selector",
|
||||
"question": "An entire Css selector and declaration block whithin a Css document eg:<code><br /> .container div p {<br />position: relative;<br />width: 300px;<br />margin: auto;<br />color: #ffffff;<br />}</code><br /> is referred to as?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Base-Block</code></pre>",
|
||||
"<pre><code class='language-javascript'>Selection Properties</code></pre>",
|
||||
"<pre><code class='language-javascript'>Selector Group</code></pre>",
|
||||
"<pre><code class='language-javascript'>Ruleset</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "The selectors name and properties are collectively called a Ruleset."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS Browser compatibility",
|
||||
"question": "Which is not a valid Css prefix to ensure browser compatibility?"
|
||||
,
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>-webkit-</code></pre>",
|
||||
"<pre><code class='language-javascript'>-win-</code></pre>",
|
||||
"<pre><code class='language-javascript'>-moz-</code></pre>",
|
||||
"<pre><code class='language-javascript'>-o-</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "<code>-win-</code> is incorrect, <code>-webkit-</code> (Chrome, Safari, ioS and modern versions of Opera), <code>-moz-</code> (Firefox), <code>-o-</code> (Older versions of Opera), the other would be <code>-ms-</code> used for (IE and Microsoft Edge)."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS 'text-transform' property",
|
||||
"question": "The Css property 'text-transform' is mainly used for?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Alteration of text letter case.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Changing the alignment of text.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Increase/Decrease font size.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Transformation of font family.</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "The values for the property 'text-transform' are, capitalize, full-width, inherit, lowercase, none and uppercase."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS font-sizes",
|
||||
"question": "If the default font size for a page is 12px, What is the pixel equivalent of 1.5em?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>12.5px</code></pre>",
|
||||
"<pre><code class='language-javascript'>9px</code></pre>",
|
||||
"<pre><code class='language-javascript'>18px</code></pre>",
|
||||
"<pre><code class='language-javascript'>6px</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "1em is equivalent to the base or default font size therefore (12 * 1.5 = 18)."
|
||||
},
|
||||
{
|
||||
"subtitle": "CCSS font weight",
|
||||
"question": "In Css 'font-weight: bold;' is the same as?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>font-weight: 400;</code></pre>",
|
||||
"<pre><code class='language-javascript'>font-weight: 900</code></pre>",
|
||||
"<pre><code class='language-javascript'>font-weight: 700</code></pre>",
|
||||
"<pre><code class='language-javascript'>font-weight: 500</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "The keyword 'bold' is the same as the numerical value 700."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS ruleset",
|
||||
"question": "Given this ruleset <code><br />.testDiv {<br />width: 20%;<br />height: 20%;<br />content: 'add this text'<br />}</code><br />What would happen with the content properties text?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Nothing</code></pre>",
|
||||
"<pre><code class='language-javascript'>Appended to any text contained in element with class of testDiv.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Prepended to any text contained in element with class of testDiv.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Overwrite any text contained in element with class of testDiv.</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "Nothing would appear on the page, the content property needs to be used with sudo elements like <code>::after</code> or <code>::before</code> eg:<br /><code>.testDiv {<br />width: 20%;<br />height: 20%;\n}\n.testDiv::after {\ncontent: 'add this text'\n}</code>"
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS match selector",
|
||||
"question": "What would the following Css selector match?<br /><code>section + p</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>All <section> and <p> tags.</code></pre>",
|
||||
"<pre><code class='language-javascript'>All <p> tags within a <section> tag.</code></pre>",
|
||||
"<pre><code class='language-javascript'>All <p> tags placed immediately after a <section> tag.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Not a valid selector.</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "<pre><code class='language-javascript'><p>First Paragraph</p><br /><section>...</section><br /><p>Second Paragraph</p><br /><p>Third Paragraph</p></code></pre><br />Only the second paragraph tag will be selected and matched."
|
||||
},
|
||||
{
|
||||
"subtitle": "How to incorporte CSS into web document",
|
||||
"question": "How many different ways is it possible to incorporate Css into a web document?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>1</code></pre>",
|
||||
"<pre><code class='language-javascript'>2</code></pre>",
|
||||
"<pre><code class='language-javascript'>3</code></pre>",
|
||||
"<pre><code class='language-javascript'>4</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Currently Css can be used 'Inline' as a style attribute of an Html element, 'Embedded' in a style tag of a document and 'Imported' as an external file with the link tag element."
|
||||
},
|
||||
{
|
||||
"subtitle": "Using target in css",
|
||||
"question": "What would <code>[role=contentinfo] {...}</code> target in Css?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Any element with the role attribute of contentinfo.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Any element within a <span> tag.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Any element within a <span> tag with the role attribute of contentinfo.</code></pre>",
|
||||
"<pre><code class='language-javascript'>This would only be valid using Sass or Scss.</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "The square bracket notation is used to target elements with specific attributes."
|
||||
},
|
||||
{
|
||||
"subtitle": "CSS positioning",
|
||||
"question": "Which is not a value for 'position' in css?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Absolute</code></pre>",
|
||||
"<pre><code class='language-javascript'>Static</code></pre>",
|
||||
"<pre><code class='language-javascript'>Responsive</code></pre>",
|
||||
"<pre><code class='language-javascript'>inherit</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "There is no such positioning as responsive, currently there is (absolute, fixed, inherit, relative and static)."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a91b5bfa9178457a6f12822",
|
||||
"title": "Javascript questions part 1",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "JavaScript Array method",
|
||||
"question": "which of the following is not an Array method?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>pop()</code></pre>",
|
||||
"<pre><code class='language-javascript'>unshift()</code></pre>",
|
||||
"<pre><code class='language-javascript'>split()</code></pre>",
|
||||
"<pre><code class='language-javascript'>every()</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "<code>split()</code> is a string method<br /><code>pop()</code> removes from the end of an array<br /><code>unshift()</code> adds to the front of an array<br />and <code>every()</code> returns a true or false value for each element in an array."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript ES6 feature",
|
||||
"question": "ES6 Arrow functions written on one line require no return statement.",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>True</code></pre>",
|
||||
"<pre><code class='language-javascript'>False</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "True"
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript strict syntax",
|
||||
"question": "Where is the correct place to insert the \"use strict\" expression.",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Before declaring a variable</code></pre>",
|
||||
"<pre><code class='language-javascript'>At the start of a script or function</code></pre>",
|
||||
"<pre><code class='language-javascript'>It is used inline within an HTML element</code></pre>",
|
||||
"<pre><code class='language-javascript'>Within a Css selector</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "The \"use strict\"; expression should be placed at the start of a script for global scope or\nwithin a function for local scope."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript equality",
|
||||
"question": "The following code will output?<br /><code>const x = '7'<br />const y = 7<br />console.log(x == y)</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>true</code></pre>",
|
||||
"<pre><code class='language-javascript'>false</code></pre>",
|
||||
"<pre><code class='language-javascript'>NaN</code></pre>",
|
||||
"<pre><code class='language-javascript'>undefined</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "true, if triple equals '===' was used it would then evaluate to false."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript modules",
|
||||
"question": "In which of the following can you expect to see the <code>require()</code> function?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Vanilla Javascript</code></pre>",
|
||||
"<pre><code class='language-javascript'>React.js</code></pre>",
|
||||
"<pre><code class='language-javascript'>Node.js</code></pre>",
|
||||
"<pre><code class='language-javascript'>Jquery</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "<code>require()</code> is built into Node.js in order to load modules for use with an application."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript recursive methods",
|
||||
"question": "What is the main function or job of a 'base case' in a typical recursive method ?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>To reduce the algorithm complexity of the function.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To terminate the recursion.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To keep track of each invocation of the function on the stack.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To return null.</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "To allow the recursive function to terminate and inititate the popping off of the stack of each function call pushed upon it."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript framework",
|
||||
"question": "In which Javascript framework will you find the ng style of attributes?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Jquery</code></pre>",
|
||||
"<pre><code class='language-javascript'>React</code></pre>",
|
||||
"<pre><code class='language-javascript'>Angular</code></pre>",
|
||||
"<pre><code class='language-javascript'>Ember</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "The ng- style prefix is used to denote an angularJS directive."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript syntax",
|
||||
"question": "The following code will return 24 true or false?<br /><code>function multiply(num1, num2) {<br />return<br />num1 * num2;<br />}<br />multiply(4,6)</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>True</code></pre>",
|
||||
"<pre><code class='language-javascript'>False</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "The function will return undefined before it reaches the multiplication of the two arguments."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript callback",
|
||||
"question": "A callback function is also known as?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Loopback function</code></pre>",
|
||||
"<pre><code class='language-javascript'>Higher-order function</code></pre>",
|
||||
"<pre><code class='language-javascript'>Recursive function</code></pre>",
|
||||
"<pre><code class='language-javascript'>Pure Function</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "Also Known as a Higher-order function a callback function can be passed to another function as a parameter and is called inside that function."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript syntax, again",
|
||||
"question": "Javascript is case sensitive true or false?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>true</code></pre>",
|
||||
"<pre><code class='language-javascript'>false</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "true"
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a92c913a9178457a6f12823",
|
||||
"title": "Javascript questions part 2",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "JavaScript pop up",
|
||||
"question": "Which is not a pop up box in JavaScript",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Confirm Box</code></pre>",
|
||||
"<pre><code class='language-javascript'>Alert Box</code></pre>",
|
||||
"<pre><code class='language-javascript'>Message Box</code></pre>",
|
||||
"<pre><code class='language-javascript'>Prompt Box</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Message Box."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript Loops",
|
||||
"question": "Which of the following is not a looping format in javascript",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>For</code></pre>",
|
||||
"<pre><code class='language-javascript'>While</code></pre>",
|
||||
"<pre><code class='language-javascript'>Next</code></pre>",
|
||||
"<pre><code class='language-javascript'>Do-While</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Next is not a loop available in javascript."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript types",
|
||||
"question": "What is the result of the following code?<code>\nconsole.log( 4 + 4 + \"2\" )</code>;",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>\"82\"</code></pre>",
|
||||
"<pre><code class='language-javascript'>10</code></pre>",
|
||||
"<pre><code class='language-javascript'>82</code></pre>",
|
||||
"<pre><code class='language-javascript'>\"10\"</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "The first two integers will be added as normal then the string will be concatenated to the result of 8 giving \"82\"."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript types",
|
||||
"question": "What is the result of the following code?<code>\nconsole.log( \"3\" + 6 + 6 );</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>15</code></pre>",
|
||||
"<pre><code class='language-javascript'>\"15\"</code></pre>",
|
||||
"<pre><code class='language-javascript'>\"366\"</code></pre>",
|
||||
"<pre><code class='language-javascript'>366</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "As the equation begins with a string, each integer will be converted and appended in string form giving \"366\""
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript Event loop",
|
||||
"question": "Which best describes the function of the Javascript event loop?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>To Handle synchronous code one line at a time in the main script.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To remove any blocking functions accidently pushed on to the call stack.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To constantly monitor if the call stack is empty and then invoke any asynchronous functions from the event queue.</code></pre>",
|
||||
"<pre><code class='language-javascript'>A mechanism to best decide how to terminate any looping structure.</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Briefly the event loop constantly runs to monitor state between the callstack, the event table and the event queue. When asynchronous code is executed it\nis placed on to the event table only to be executed as and when a specific event occurs, when it does it is then placed on the event queue until the call\nstack is empty then when invoked, moved from the queue to the callstack."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaSript type",
|
||||
"question": "<code>console.log(typeof(NaN))</code> Will log?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>false</code></pre>",
|
||||
"<pre><code class='language-javascript'>null</code></pre>",
|
||||
"<pre><code class='language-javascript'>number</code></pre>",
|
||||
"<pre><code class='language-javascript'>undefined</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Despite standing for Not a Number NaN is still regarded as a numeric type."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaScript ES6 operators",
|
||||
"question": "What will the following log?<code><br />let x = 'teststring';<br />console.log([...x]);</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>[\"t\",\"e\",\"s\",\"t\",\"s\",\"t\",\"r\",\"i\",\"n\",\"g\"]</code></pre>",
|
||||
"<pre><code class='language-javascript'>uncaught syntax error</code></pre>",
|
||||
"<pre><code class='language-javascript'>[\"teststring\"]</code></pre>",
|
||||
"<pre><code class='language-javascript'>t e s t s t r i n g</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "The spread syntax introduced in es6 can be used to iterate through each character of a string, and here stored in an array similar to calling <code>x.split(\"\")</code>"
|
||||
},
|
||||
{
|
||||
"subtitle": "ES6 let / const declarations",
|
||||
"question": "What will the following code log?<code><br />function myFunction() {<br />const a = 'variableA'<br />if( 3 > 1) {<br />let b = 'variableB'<br />}<br />console.log(a)<br />console.log(b)<br />}<br />myFunction();</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>variableA, variableB</code></pre>",
|
||||
"<pre><code class='language-javascript'>variableA</code></pre>",
|
||||
"<pre><code class='language-javascript'>variableB, variableA</code></pre>",
|
||||
"<pre><code class='language-javascript'>variableA, Uncaught ReferenceError: b is not defined</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Due to the keywords let and const being block scoped rather than just locally function scoped like var, the variable b will be garbage collected after the\nconditional if statement has finished and will no longer exist for the console.log() method."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaSript function arguments",
|
||||
"question": "The following code will return?<code><br />function getsum(num1 = 1, num2 = 1) {<br />return num1 + num2;<br />}<br />getsum(3);</code>",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>4</code></pre>",
|
||||
"<pre><code class='language-javascript'>6</code></pre>",
|
||||
"<pre><code class='language-javascript'>2</code></pre>",
|
||||
"<pre><code class='language-javascript'>5</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "Due to only one argument being passed this will override the first default parameter giving num1 the value of 3 + num2 default value of 1.\nIf the function were to be executed without any arguments at all both defaults would be used and return 2."
|
||||
},
|
||||
{
|
||||
"subtitle": "JavaSript inheritance",
|
||||
"question": "All Javascript objects inherit properties and methods from a class true or false?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>true</code></pre>",
|
||||
"<pre><code class='language-javascript'>false</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "Due to only one argument being passed this will override the first default parameter giving num1 the value of 3 + num2 default value of 1.\nIf the function were to be executed without any arguments at all both defaults would be used and return 2."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a933ce3a9178457a6f12824",
|
||||
"title": "Networking questions part 1",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "Address identification",
|
||||
"question": "00:26:2D:55:42:1f is an example of what?",
|
||||
"choices": [
|
||||
"<pre>MAC Address</pre>",
|
||||
"<pre>IPv4 Address</pre>",
|
||||
"<pre>IPv6 Address</pre>",
|
||||
"<pre>A wireless protocol</pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "A valid MAC Address."
|
||||
},
|
||||
{
|
||||
"subtitle": "OSI networking model",
|
||||
"question": "Which one of the following is not part of the seven layer OSI networking model.",
|
||||
"choices": [
|
||||
"<pre>Application</pre>",
|
||||
"<pre>Presentation</pre>",
|
||||
"<pre>Session</pre>",
|
||||
"<pre>Protocol</pre>",
|
||||
"<pre>Network</pre>",
|
||||
"<pre>Data Link</pre>",
|
||||
"<pre>Physical</pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Protocol is not part of the OSI networking model layer 4 should be the transport layer."
|
||||
},
|
||||
{
|
||||
"subtitle": "RAID",
|
||||
"question": "In networking a RAID implementation relates to?",
|
||||
"choices": [
|
||||
"<pre>Wireless standards</pre>",
|
||||
"<pre>Password policies</pre>",
|
||||
"<pre>Remote access</pre>",
|
||||
"<pre>Fault tolerance</pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "RAID stands for Redundant array of inexpensive disks and is a model that allows servers to\nendure the failure of one or more hard disks without interuption to services and resources."
|
||||
},
|
||||
{
|
||||
"subtitle": "Server status",
|
||||
"question": "Your console or terminal throws up a 404 error, this means?",
|
||||
"choices": [
|
||||
"<pre>Upgrade required</pre>",
|
||||
"<pre>Not found</pre>",
|
||||
"<pre>Gateway Timeout</pre>",
|
||||
"<pre>No Response</pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "This error informs you that an internal or external resource has not been found and can not be loaded into a page or application."
|
||||
},
|
||||
{
|
||||
"subtitle": "Server Status, again",
|
||||
"question": "Your console or terminal throws up a 500 error, this means?",
|
||||
"choices": [
|
||||
"<pre>Internal Server Error</pre>",
|
||||
"<pre>Proxy Authentication Required</pre>",
|
||||
"<pre>Upgrade Required</pre>",
|
||||
"<pre>Too Many Requests</pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "A generic error message which refers to an error on the webserver when no precise detail is available."
|
||||
},
|
||||
{
|
||||
"subtitle": "HTTP methods",
|
||||
"question": "GET and POST are important HTTP request methods which of the following list are Not an example of an HTTP request method?",
|
||||
"choices": [
|
||||
"<pre>HEAD</pre>",
|
||||
"<pre>PUT</pre>",
|
||||
"<pre>BODY</pre>",
|
||||
"<pre>DELETE</pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "HEAD is similar to the Get method but returns no response body, PUT is used to replace and update a specified resource, DELETE will delete a resource,\nthere is no such method as a BODY request."
|
||||
},
|
||||
{
|
||||
"subtitle": "Loopback",
|
||||
"question": "In networking which of the following is considered to be a loopback ip address or 'localhost'?",
|
||||
"choices": [
|
||||
"<pre>172.0.0.1</pre>",
|
||||
"<pre>127.0.0.1</pre>",
|
||||
"<pre>10.0.0.0</pre>",
|
||||
"<pre>192.168.0.0</pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "127.0.0.1 is the loopback address or localhost, option a is an example of a public address and options c and d are examples of private network addresses."
|
||||
},
|
||||
{
|
||||
"subtitle": "Network & Security Architecture",
|
||||
"question": "Ring, Star, Mesh and Bus are all examples of?",
|
||||
"choices": [
|
||||
"<pre>Network topologies</pre>",
|
||||
"<pre>Security Protocols for mobile development</pre>",
|
||||
"<pre>Restful API's</pre>",
|
||||
"<pre>File server storage methods</pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "A network topology is a logical and physical layout of how the network appears to the devices using it."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
},
|
||||
{
|
||||
"id": "5a933d04a9178457a6f12825",
|
||||
"title": "Networking questions part 2",
|
||||
"description": [
|
||||
{
|
||||
"subtitle": "Default port for FTP",
|
||||
"question": "In attempting to connect to an FTP (File Transfer Protocol) server and failing, which port can you check is open to troubleshoot the connection issue?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>25</code></pre>",
|
||||
"<pre><code class='language-javascript'>443</code></pre>",
|
||||
"<pre><code class='language-javascript'>23</code></pre>",
|
||||
"<pre><code class='language-javascript'>21</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "Port 21 is traditionally used as the default port on a system for FTP."
|
||||
},
|
||||
{
|
||||
"subtitle": "Network types",
|
||||
"question": "Which of the following is not a type of network?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>LAN</code></pre>",
|
||||
"<pre><code class='language-javascript'>MAN</code></pre>",
|
||||
"<pre><code class='language-javascript'>PAN</code></pre>",
|
||||
"<pre><code class='language-javascript'>NAN</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "NAN is not a current network type. LAN (Local Area Network), MAN (Metropolitan Area Network), PAN (Personal Area Network)."
|
||||
},
|
||||
{
|
||||
"subtitle": "Subnet mask usage",
|
||||
"question": "What is a subnet mask used for?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>To hide the id of a wireless access point.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To identyfy the extended and host address.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To encrypt the broadcasting of ip addresses.</code></pre>",
|
||||
"<pre><code class='language-javascript'>To connect to a vpn.</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "A subnet mask is used along side an IP address in order to isolate the extended or 'subnet' of the network address and the host machine address."
|
||||
},
|
||||
{
|
||||
"subtitle": "Network acronym",
|
||||
"question": "What does NIC stand for?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Network Isolated Connection</code></pre>",
|
||||
"<pre><code class='language-javascript'>Network Interconnect Cables</code></pre>",
|
||||
"<pre><code class='language-javascript'>Network Interface Card</code></pre>",
|
||||
"<pre><code class='language-javascript'>Network Interference Cause</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "A Network Interface Card or (Network Interface Controller) is a hardware component that connects to a Pc or printer in order to\nconnect and be identified on a network."
|
||||
},
|
||||
{
|
||||
"subtitle": "Default gateway",
|
||||
"question": "A 'default gateway' provides a way for a local network to connect to a larger external network true or false?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>true</code></pre>",
|
||||
"<pre><code class='language-javascript'>false</code></pre>"
|
||||
],
|
||||
"answer": 0,
|
||||
"explanation": "True this is usually the address of of an external router or switch."
|
||||
},
|
||||
{
|
||||
"subtitle": "The ipconfig commad",
|
||||
"question": "'ipconfig' is used for?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Reassigning ip addresses.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Tool for masking ip adresses.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Monitoring network traffic.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Identify address information of a machine on a network.</code></pre>"
|
||||
],
|
||||
"answer": 3,
|
||||
"explanation": "ipconfig or ifconfig(linux) is a utility for gaining various address information of a computer on a network."
|
||||
},
|
||||
{
|
||||
"subtitle": "Network terminology",
|
||||
"question": "The term 'Latency' refers to?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>The logical state of a network.</code></pre>",
|
||||
"<pre><code class='language-javascript'>A loss of data expected in transfer over a network.</code></pre>",
|
||||
"<pre><code class='language-javascript'>A measure of time delay between request and response experienced by a system.</code></pre>",
|
||||
"<pre><code class='language-javascript'>The scope for expanding a network.</code></pre>"
|
||||
],
|
||||
"answer": 2,
|
||||
"explanation": "Latency can affect host to host transfers http requests etc."
|
||||
},
|
||||
{
|
||||
"subtitle": "Network terminology, again",
|
||||
"question": "The term 'full duplex' refers to?",
|
||||
"choices": [
|
||||
"<pre><code class='language-javascript'>Two way data transfer but not at the same time.</code></pre>",
|
||||
"<pre><code class='language-javascript'>Two way data transfer simultaneously.</code></pre>",
|
||||
"<pre><code class='language-javascript'>One way data transfer at high speed.</code></pre>",
|
||||
"<pre><code class='language-javascript'>One way data transfer with encryption</code></pre>"
|
||||
],
|
||||
"answer": 1,
|
||||
"explanation": "An example of full duplex would be like a telephone conversation between two people."
|
||||
}
|
||||
],
|
||||
"tests": [],
|
||||
"challengeType": 8
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,873 @@
|
||||
{
|
||||
"name": "Coding Interview Take-home Projects",
|
||||
"order": 4,
|
||||
"time": "",
|
||||
"helpRoom": "HelpFrontEnd",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd10",
|
||||
"title": "Show the Local Weather",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/bELRjV' target='_blank'>https://codepen.io/freeCodeCamp/full/bELRjV</a>.",
|
||||
"<strong>Rule #1:</strong> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<strong>Rule #2:</strong> Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can see the weather in my current location.",
|
||||
"<strong>User Story:</strong> I can see a different icon or background image (e.g. snowy mountain, hot desert) depending on the weather.",
|
||||
"<strong>User Story:</strong> I can push a button to toggle between Fahrenheit and Celsius.",
|
||||
"<strong>Note:</strong> Many internet browsers now require an HTTP Secure (<code>https://</code>) connection to obtain a user's locale via HTML5 Geolocation. For this reason, we recommend using HTML5 Geolocation to get user location and then use the freeCodeCamp Weather API <a href='https://fcc-weather-api.glitch.me' target='_blank'>https://fcc-weather-api.glitch.me</a> which uses an HTTP Secure connection for the weather. Also, be sure to connect to <a href='https://codepen.io' target='_blank'>CodePen.io</a> via <code>https://</code>.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Muestra el clima local",
|
||||
"description": [
|
||||
"<span class='text-info'>Objetivo:</span> Crea una aplicación con <a href='https://codepen.io' target='_blank'>CodePen.io</a> cuya funcionalidad sea similar a la de esta: <a href='https://codepen.io/freeCodeCamp/full/bELRjV' target='_blank'>https://codepen.io/freeCodeCamp/full/bELRjV</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o APIs que necesites.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Pedo obtener información acerca del clima en mi localización actual.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo ver un icono diferente o una imagen de fondo diferente (e.g. montaña con nieve, desierto caliente) dependiendo del clima.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo pulsar un botón para cambiar la unidad de temperatura de grados Fahrenheit a Celsius y viceversa.",
|
||||
"Recomendamos utilizar <a href='https://openweathermap.org/current#geo' target='_blank'>Open Weather API</a>. Al utilizarlo tendrás que crear una llave API gratuita. Normalmente debes evitar exponer llaves de API en CodePen, pero por el momento no hemos encontrado un API de clima que no requiera llave.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leer-Buscar-Preguntar</a> si te sientes atascado.",
|
||||
"Cuando hayas terminado, pulsa el botón de \"I've completed this challenge\" e incluye un enlace a tu CodePen.",
|
||||
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
},
|
||||
"ru": {
|
||||
"title": "Покажите местную погоду",
|
||||
"description": [
|
||||
"<span class='text-info'>Задание:</span> Создайте <a href='https://codepen.io' target='_blank'>CodePen.io</a> который успешно копирует вот этот: <a href='https://codepen.io/freeCodeCamp/full/bELRjV' target='_blank'>https://codepen.io/freeCodeCamp/full/bELRjV</a>.",
|
||||
"<span class='text-info'>Правило #1:</span> Не подсматривайте код приведенного на CodePen примера. Напишите его самостоятельно.",
|
||||
"<span class='text-info'>Правило #2:</span> Можете использовать любые библиотеки или API, которые потребуются.",
|
||||
"<span class='text-info'>Правило #3:</span> Воссоздайте функционал приведенного примера и не стесняйтесь добавить что-нибудь от себя.",
|
||||
"Реализуйте следующие <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>пользовательские истории</a>, сделайте также бонусные по желанию:",
|
||||
"<span class='text-info'>Пользовательская история:</span> В качестве пользователя, я могу узнать погоду с учетом моего текущего местоположения.",
|
||||
"<span class='text-info'>Бонусная пользовательская история:</span> В качестве пользователя, я могу в зависимости от погоды видеть различные температурные значки.",
|
||||
"<span class='text-info'>Бонусная пользовательская история:</span> В качестве пользователя, я могу в зависимости от погоды видеть различные фоновые изображения (снежные горы, знойная пустыня).",
|
||||
"<span class='text-info'>Бонусная пользовательская история:</span> В качестве пользователя, я могу нажать на кнопку чтобы переключится между градусами по Цельсию или по Фаренгейту.",
|
||||
"Если что-то не получается, воспользуйтесь <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a>.",
|
||||
"Когда выполните задание кликните кнопку \"I've completed this challenge\" и добавьте ссылку на ваш CodePen. Если вы программировали с кем-то в паре, также добавьте имя вашего напарника.",
|
||||
"Если вы хотите получить немедленную оценку вашего проекта, нажмите эту кнопку и добавьте ссылку на ваш CodePen. В противном случае мы проверим его перед тем как вы приступите к проектам для некоммерческих организаций.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd19",
|
||||
"title": "Build a Wikipedia Viewer",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/wGqEga/' target='_blank'>https://codepen.io/freeCodeCamp/full/wGqEga/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can search Wikipedia entries in a search box and see the resulting Wikipedia entries.",
|
||||
"<strong>User Story:</strong> I can click a button to see a random Wikipedia entry.",
|
||||
"<span class='text-info'>Hint #1:</span> Here's a URL you can use to get a random Wikipedia article: <code>https://en.wikipedia.org/wiki/Special:Random</code>.",
|
||||
"<span class='text-info'>Hint #2:</span> Here's an entry on using Wikipedia's API: <code>https://www.mediawiki.org/wiki/API:Main_page</code>.",
|
||||
"<span class='text-info'>Hint #3:</span> Use this <a href='https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=jsonfm' target='_blank'>link</a> to experiment with Wikipedia's API.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Crea un buscador de Wikipedia",
|
||||
"description": [
|
||||
"<span class='text-info'>Objetivo:</span> Crea una aplicación con <a href='https://codepen.io' target='_blank'>CodePen.io</a> cuya funcionalidad sea similar a la de esta: <a href='https://codepen.io/freeCodeCamp/full/wGqEga/' target='_blank'>https://codepen.io/freeCodeCamp/full/wGqEga/</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o APIs que necesites. Dale tu estilo personal.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Pedo obtener información acerca del clima en mi localización actual.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo ver un icono diferente o una imagen de fondo diferente (e.g. montaña con nieve, desierto caliente) dependiendo del clima.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo pulsar un botón para cambiar la unidad de temperatura de grados Fahrenheit a Celsius y viceversa.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo buscar entradas en Wikipedia en un cuadro de búsqueda y ver las entradas de Wikipedia resultantes.",
|
||||
"<span class='text-info'>Historia de usuario:</span>Puedo pulsar un botón para ver un artículo aleatorio de Wikipedia.",
|
||||
"<span class='text-info'>Pista 1:</span> Aquí está una URL donde puedes ver una entrada aleatoria de Wikipedia: <code>https://en.wikipedia.org/wiki/Special:Random<</code>.",
|
||||
"<span class='text-info'>Pista 2:</span> Este es un artículo muy útil relativo al uso del API de Wikipedia: <code>https://www.mediawiki.org/wiki/API:Main_page</code>.",
|
||||
"<span class='text-info'>Pista 3:</span> Usa este <a href='https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=jsonfm' target='_blank'>enlace</a> para experimentar con el API de Wikipedia.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leer-Buscar-Preguntar</a> si te sientes atascado.",
|
||||
"Cuando hayas terminado, pulsa el botón de \"I've completed this challenge\" e incluye un enlace a tu CodePen.",
|
||||
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd1f",
|
||||
"title": "Use the Twitch JSON API",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/Myvqmo/' target='_blank'>https://codepen.io/freeCodeCamp/full/Myvqmo/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can see whether freeCodeCamp is currently streaming on Twitch.tv.",
|
||||
"<strong>User Story:</strong> I can click the status output and be sent directly to the freeCodeCamp's Twitch.tv channel.",
|
||||
"<strong>User Story:</strong> if a Twitch user is currently streaming, I can see additional details about what they are streaming.",
|
||||
"<strong>Hint:</strong> See an example call to Twitch.tv's JSONP API at <a href='http://forum.freecodecamp.org/t/use-the-twitchtv-json-api/19541' target='_blank'>http://forum.freecodecamp.org/t/use-the-twitchtv-json-api/19541</a>.",
|
||||
"<strong>Hint:</strong> The relevant documentation about this API call is here: <a href='https://dev.twitch.tv/docs/v5/reference/streams/#get-stream-by-user' target='_blank'>https://dev.twitch.tv/docs/v5/reference/streams/#get-stream-by-user</a>.",
|
||||
"<strong>Hint:</strong> Here's an array of the Twitch.tv usernames of people who regularly stream: <code>[\"ESL_SC2\", \"OgamingSC2\", \"cretetion\", \"freecodecamp\", \"storbeck\", \"habathcx\", \"RobotCaleb\", \"noobs2ninjas\"]</code>",
|
||||
"<strong>UPDATE:</strong> Due to a change in conditions on API usage explained <a href='https://blog.twitch.tv/client-id-required-for-kraken-api-calls-afbb8e95f843#.f8hipkht1' target='_blank'>here</a> Twitch.tv now requires an API key, but we've built a workaround. Use <a href='https://wind-bow.glitch.me' target='_blank'>https://wind-bow.glitch.me/twitch-api</a> instead of twitch's API base URL (i.e. https://api.twitch.tv/kraken ) and you'll still be able to get account information, without needing to sign up for an API key.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Usa el API JSON de Twitch",
|
||||
"description": [
|
||||
"<span class='text-info'>Objetivo:</span> Crea una aplicación con <a href='https://codepen.io' target='_blank'>CodePen.io</a> cuya funcionalidad sea similar a la de esta: <a href='https://codepen.io/freeCodeCamp/full/Myvqmo/' target='_blank'>https://codepen.io/freeCodeCamp/full/Myvqmo/</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o APIs que necesites. Dale tu estilo personal.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo verificar si freeCodeCamp está transmitiendo actualmente en Twitch.tv",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo pulsar el estatus y ser enviado directamente al canal de freeCodeCamp en Twitch.tv.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Si un usuario Twitch está transmitiendo actualmente, puedo ver detalles adicionales acerca del contenido que están transmitiendo.",
|
||||
"<span class='text-info'>Pista:</span> Obseva una llamada de ejemplo al API JSONP de Twitch.tv en <code>http://forum.freecodecamp.org/t/use-the-twitchtv-json-api/19541</code>.",
|
||||
"<span class='text-info'>Pista:</span> La documentación relevante sobre esta llamada al API está aquí: <a href='https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel' target='_blank'>https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel</a>.",
|
||||
"<span class='text-info'>Pista:</span> Aquí está un vector de usuarios en Twitch.tv que regularmente transmiten sobre programación: <code>[\"ESL_SC2\", \"OgamingSC2\", \"cretetion\", \"freecodecamp\", \"storbeck\", \"habathcx\", \"RobotCaleb\", \"noobs2ninjas\"]</code>",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leer-Buscar-Preguntar</a> si te sientes atascado.",
|
||||
"Cuando hayas terminado, pulsa el botón de \"I've completed this challenge\" e incluye un enlace a tu CodePen.",
|
||||
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
},
|
||||
"ru": {
|
||||
"title": "Используйте Twitch JSON API",
|
||||
"description": [
|
||||
"<span class='text-info'>Задание:</span> Создайте <a href='https://codepen.io' target='_blank'>CodePen.io</a> который успешно копирует вот этот: <a href='https://codepen.io/freeCodeCamp/full/Myvqmo/' target='_blank'>https://codepen.io/freeCodeCamp/full/Myvqmo/</a>.",
|
||||
"<span class='text-info'>Правило #1:</span> Не подсматривайте код приведенного на CodePen примера. Напишите его самостоятельно.",
|
||||
"<span class='text-info'>Правило #2:</span> Можете использовать любые библиотеки или API, которые потребуются.",
|
||||
"<span class='text-info'>Правило #3:</span> Воссоздайте функционал приведенного примера и не стесняйтесь добавить что-нибудь от себя.",
|
||||
"Реализуйте следующие <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>пользовательские истории</a>, сделайте также бонусные по желанию:",
|
||||
"<span class='text-info'>Пользовательская история:</span> В качестве пользователя, я могу увидеть идет ли в данный момент на Twitch.tv трансляция freeCodeCamp.",
|
||||
"<span class='text-info'>Пользовательская история:</span> В качестве пользователя, я могу, кликнув на описание трансляции, перейти на канал freeCodeCamp.",
|
||||
"<span class='text-info'>Пользовательская история:</span> В качестве пользователя, я могу видеть дополнительную информацию о текущей трансляции freeCodeCamp.",
|
||||
"<span class='text-info'>Бонусная пользовательская история:</span> В качестве пользователя, я могу произвести поиск среди перечисленных каналов.",
|
||||
"<span class='text-info'>Подсказка:</span> Пример запроса к Twitch.tv JSON API: <code>https://api.twitch.tv/kraken/streams/freecodecamp</code>.",
|
||||
"<span class='text-info'>Подсказка:</span> Документацию об этом запросе можно найти по ссылке: <a href='https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel' target='_blank'>https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel</a>.",
|
||||
"<span class='text-info'>Подсказка:</span> В этом массиве приведены имена пользователей, которые регулярно пишут код онлайн: <code>[\"ESL_SC2\", \"OgamingSC2\", \"cretetion\", \"freecodecamp\", \"storbeck\", \"habathcx\", \"RobotCaleb\", \"noobs2ninjas\"]</code>",
|
||||
"Если что-то не получается, воспользуйтесь <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a>.",
|
||||
"Когда выполните задание кликните кнопку \"I've completed this challenge\" и добавьте ссылку на ваш CodePen. Если вы программировали с кем-то в паре, также добавьте имя вашего напарника.",
|
||||
"Если вы хотите получить немедленную оценку вашего проекта, нажмите эту кнопку и добавьте ссылку на ваш CodePen. В противном случае мы проверим его перед тем как вы приступите к проектам для некоммерческих организаций.<br><br><a class='btn btn-primary btn-block' href='https://twitter.com/intent/tweet?text=Check%20out%20the%20project%20I%20just%20built%20with%20%40FreeCodeCamp:%20%0A%20%23LearnToCode%20%23JavaScript' target='_blank'>Click here then add your link to your tweet's text</a>"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443edefaeb5bdee",
|
||||
"title": "Build an Image Search Abstraction Layer",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a full stack JavaScript app that allows you to search for images like this: <a href='https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10</a> and browse recent search queries like this: <a href='https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/</a>. Then deploy it to Glitch.",
|
||||
"Note that for each project, you should create a new GitHub repository and a new Glitch project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.org/challenges/get-set-for-our-api-development-projects</a>.",
|
||||
"Here are the specific user stories you should implement for this project:",
|
||||
"<strong>User Story:</strong> I can get the image URLs, alt text and page urls for a set of images relating to a given search string.",
|
||||
"<strong>User Story:</strong> I can paginate through the responses by adding a ?offset=2 parameter to the URL.",
|
||||
"<strong>User Story:</strong> I can get a list of the most recently submitted search strings.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Glitch.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"isRequired": true,
|
||||
"releasedOn": "January 1, 2016",
|
||||
"type": "basejump",
|
||||
"challengeType": 4,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Capa de abstracción para buscar imágenes",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Desarolla una aplicación de Pila Completa en JavaScript que te permite buscar imágenes como esta: <a href='https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/imagesearch/lolcats%20funny?offset=10</a> y examinar las búsquedas recientes como esta: <a href='https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/' target='_blank'>https://cryptic-ridge-9197.herokuapp.com/api/latest/imagesearch/</a>. Después, despliegala en Glitch.",
|
||||
"Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Glitch. Si no recuerdas como hacer esto, vuelve a visitar <a href='/challenges/get-set-for-our-api-development-projects'>https://freecodecamp.org//challenges/get-set-for-our-api-development-projects</a>.",
|
||||
"Aquí están las historias de usuario específicas que debes implementar para este proyecto:",
|
||||
"<strong>Historia de Usuario:</strong> Puedo obtener la URL de una imagen, texto alternativo y URLs de las páginas de un conjunto de imágenes que se relacionen con una cadena de texto dada.",
|
||||
"<strong>Historia de Usuario:</strong> Puedo examinar página a página las respuestas añadiendo un parámetro del estilo <code>?offset=2</code> al URL.",
|
||||
"<strong>Historia de Usuario:</strong> Puedo obtener una lista de las cadenas búscadas que se enviaron más recientemente.",
|
||||
"Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón \"I've completed this challenge\" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Glitch.",
|
||||
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eedfaeb5bd1c",
|
||||
"title": "Build a Tic Tac Toe Game",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/KzXQgy/' target='_blank'>https://codepen.io/freeCodeCamp/full/KzXQgy/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can play a game of Tic Tac Toe with the computer.",
|
||||
"<strong>User Story:</strong> My game will reset as soon as it's over so I can play again.",
|
||||
"<strong>User Story:</strong> I can choose whether I want to play as X or O.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Crea un juego de Tic Tac Toe",
|
||||
"description": [
|
||||
"<span class='text-info'>Objetivo:</span> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> cuya funcionalidad sea similar a la de esta: <a href='https://codepen.io/freeCodeCamp/full/KzXQgy/' target='_blank'>https://codepen.io/freeCodeCamp/full/KzXQgy/</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o APIs que necesites. Dale tu estilo personal.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo jugar un juego de Tic Tac Toe contra el computador.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Mi juego se reiniciará tan pronto como termine para poder jugar de nuevo.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo elegir si quiero jugar como X o como O.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leer-Buscar-Preguntar</a> si te sientes atascado.",
|
||||
"Cuando hayas terminado, pulsa el botón de \"I've completed this challenge\" e incluye un enlace a tu CodePen.",
|
||||
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiéndolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c442eddfaeb5bd1c",
|
||||
"title": "Build a Simon Game",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/Em-Ant/full/QbRyqq/' target='_blank'>https://codepen.io/freeCodeCamp/full/obYBjE</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I am presented with a random series of button presses.",
|
||||
"<strong>User Story:</strong> Each time I input a series of button presses correctly, I see the same series of button presses but with an additional step.",
|
||||
"<strong>User Story:</strong> I hear a sound that corresponds to each button both when the series of button presses plays, and when I personally press a button.",
|
||||
"<strong>User Story:</strong> If I press the wrong button, I am notified that I have done so, and that series of button presses starts again to remind me of the pattern so I can try again.",
|
||||
"<strong>User Story:</strong> I can see how many steps are in the current series of button presses.",
|
||||
"<strong>User Story:</strong> If I want to restart, I can hit a button to do so, and the game will return to a single step.",
|
||||
"<strong>User Story:</strong> I can play in strict mode where if I get a button press wrong, it notifies me that I have done so, and the game restarts at a new random series of button presses.",
|
||||
"<strong>User Story:</strong> I can win the game by getting a series of 20 steps correct. I am notified of my victory, then the game starts over.",
|
||||
"<strong>Hint:</strong> Here are mp3s you can use for each button: <code>https://s3.amazonaws.com/freecodecamp/simonSound1.mp3</code>, <code>https://s3.amazonaws.com/freecodecamp/simonSound2.mp3</code>, <code>https://s3.amazonaws.com/freecodecamp/simonSound3.mp3</code>, <code>https://s3.amazonaws.com/freecodecamp/simonSound4.mp3</code>.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Construye un juego de Simon",
|
||||
"description": [
|
||||
"<span class='text-info'>Objetivo:</span> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> cuya funcionalidad sea similar a la de esta: <a href='https://codepen.io/Em-Ant/full/QbRyqq/' target='_blank'>https://codepen.io/Em-Ant/full/QbRyqq/</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o APIs que necesites. Dale tu estilo personal.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Se me presenta una serie aleatoria de pulsaciones a botones.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Cada vez que presiono una secuencia de pulsaciones correctamente, veo que vuelve a ejecutarse la misma serie de pulsaciones con un paso adicional.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Escucho un sonido que corresponde a cada botón cuando se ejecuta una secuencia de pulsaciones, así como cuando yo presiono un botón.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Si presiono el botón equivocado, se me notifica sobre mi error, y se ejecuta de nuevo la serie correcta de pulsaciones para recordarme cuál es la secuencia correcta, tras lo cual puedo intentar de nuevo.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo ver cuántos pasos hay en la serie de pulsaciones actual.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Si deseo reiniciar, puedo pulsar un botón para hacerlo, y el juego comenzará desde una secuencia con un solo paso.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo jugar en modo estricto donde si presiono el botón equivocado, se me notifica de mi error, y el juego vuelve a comenzar con una nueva serie aleatoria de colores.",
|
||||
"<span class='text-info'>Historia de usuario:</span> Puedo ganar el juego si completo 20 pasos correctos. Se me notifica sobre mi victoria, tras lo cual el juego se reinicia.",
|
||||
"<span class='text-info'>Pista:</span> Aquí hay algunos mp3s que puedes utilizar para tus botones: <code>https://s3.amazonaws.com/freecodecamp/simonSound1.mp3</code>, <code>https://s3.amazonaws.com/freecodecamp/simonSound2.mp3</code>, <code>https://s3.amazonaws.com/freecodecamp/simonSound3.mp3</code>, <code>https://s3.amazonaws.com/freecodecamp/simonSound4.mp3</code>.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leer-Buscar-Preguntar</a> si te sientes atascado.",
|
||||
"Cuando hayas terminado, pulsa el botón de \"I've completed this challenge\" e incluye un enlace a tu CodePen.",
|
||||
"Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiéndolo en nuestra <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Sala de chat para revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7156d8c242eddfaeb5bd13",
|
||||
"title": "Build a Camper Leaderboard",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/eZGMjp/' target='_blank'>https://codepen.io/freeCodeCamp/full/eZGMjp/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can see a table of the freeCodeCamp campers who've earned the most brownie points in the past 30 days.",
|
||||
"<strong>User Story:</strong> I can see how many brownie points they've earned in the past 30 days, and how many they've earned total.",
|
||||
"<strong>User Story:</strong> I can toggle between sorting the list by how many brownie points they've earned in the past 30 days and by how many brownie points they've earned total.",
|
||||
"<strong>Hint:</strong> To get the top 100 campers for the last 30 days: <a href='https://fcctop100.herokuapp.com/api/fccusers/top/recent' target='_blank'>https://fcctop100.herokuapp.com/api/fccusers/top/recent</a>.",
|
||||
"<strong>Hint:</strong> To get the top 100 campers of all time: <a href='https://fcctop100.herokuapp.com/api/fccusers/top/alltime' target='_blank'>https://fcctop100.herokuapp.com/api/fccusers/top/alltime</a>.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. ",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"releasedOn": "January 1, 2016",
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"isRequired": false,
|
||||
"challengeType": 3,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Crea un marcador para los campistas",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> que funcione de forma similar al siguiente ejemplo: <a href='https://codepen.io/freeCodeCamp/full/eZGMjp/' target='_blank'>https://codepen.io/freeCodeCamp/full/eZGMjp/</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o API que sea necesaria. ¡Ponle un toque personal!.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver un tablero con los campistas de freeCodeCamp que han ganado más puntos de brownie en los últimos 30 días.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver cuántos puntos de brownie han ganado en los últimos 30 días, y cuántos han ganado en total.",
|
||||
"<strong>Historia de usuario:</strong> Puedo elegir entre dos formas de organizar la lista: 1) En base a cuántos puntos de brownie se han ganado en los últimos 30 días. 2) En base al número de puntos de brownie que han ganado en total.",
|
||||
"<strong>Pista:</strong> Para obtener los 100 mejores campistas para los últimos 30 días: <a href='https://fcctop100.herokuapp.com/api/fccusers/top/recent' target='_blank'>https://fcctop100.herokuapp.com/api/fccusers/top/recent</a>.",
|
||||
"<strong>Pista:</strong> Para obtener los 100 mejores campistas de toda la historia: <a href='http://fcctop100.herokuapp.com/api/fccusers/top/alltime' target='_blank'>http://fcctop100.herokuapp.com/api/fccusers/top/alltime</a>.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado.",
|
||||
"Cuando termines, haz clic en el botón de \"I've completed this challenge\" e incluye el vínculo de tu proyecto en CodePen. ",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
},
|
||||
"ru": {
|
||||
"title": "Создайте таблицу Кемперов-Лидеров",
|
||||
"description": [
|
||||
"<strong>Задание:</strong> Создайте приложение <a href='https://codepen.io' target='_blank'>CodePen.io</a>, функционал которого схож с этим: <a href='https://codepen.io/freeCodeCamp/full/eZGMjp/' target='_blank'>https://codepen.io/freeCodeCamp/full/eZGMjp/</a>.",
|
||||
"Приложение должно удовлетворять нижеприведённым <a href='https://ru.wikipedia.org/wiki/Пользовательские_истории' target='_blank'>пользовательским историям</a>. Используйте любые библиотеки или API, которые потребуются. Придайте ему свой личный стиль.",
|
||||
"<strong>Пользовательская история:</strong> Я могу видеть таблицу кемперов freeCodeCamp, которые получили наибольшее количество очков за последние 30 дней.",
|
||||
"<strong>Пользовательская история:</strong> Я могу видеть сколько очков они получили за последние 30 дней, и сколько они получили их всего.",
|
||||
"<strong>Пользовательская история:</strong> Я могу отсортировать список по количеству очков, которые они получили за последние 30 дней, и по общему количеству полученных очков.",
|
||||
"<strong>Подсказка:</strong> Ссылка на топ 100 кемперов за последние 30 дней в формате JSON: <a href='https://fcctop100.herokuapp.com/api/fccusers/top/recent' target='_blank'>https://fcctop100.herokuapp.com/api/fccusers/top/recent</a>.",
|
||||
"<strong>Подсказка:</strong> Ссылка на топ 100 кемперов за все время в формате JSON: <a href='http://fcctop100.herokuapp.com/api/fccusers/top/alltime' target='_blank'>http://fcctop100.herokuapp.com/api/fccusers/top/alltime</a>.",
|
||||
"Если что-то не получается, не забывайте пользоваться методом <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Читай-Ищи-Спрашивай</a>.",
|
||||
"Когда закончите, нажмите кнопку \"I've completed this challenge\" и укажите ссылку на вашу работу на CodePen.",
|
||||
"Вы можете получить отзыв о вашем проекте от коллег, поделившись ссылкой на него в нашем <a href='//gitter.im/freecodecamp/codereview' target='_blank'>чате для рассмотрения кода</a>. Также вы можете поделиться ею через Twitter и на странице freeCodeCamp вашего города на Facebook."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7155d8c242eddfaeb5bd13",
|
||||
"title": "Build a Recipe Box",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/dNVazZ/' target='_blank'>https://codepen.io/freeCodeCamp/full/dNVazZ/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can create recipes that have names and ingredients.",
|
||||
"<strong>User Story:</strong> I can see an index view where the names of all the recipes are visible.",
|
||||
"<strong>User Story:</strong> I can click into any of those recipes to view it.",
|
||||
"<strong>User Story:</strong> I can edit these recipes.",
|
||||
"<strong>User Story:</strong> I can delete these recipes.",
|
||||
"<strong>User Story:</strong> All new recipes I add are saved in my browser's local storage. If I refresh the page, these recipes will still be there.",
|
||||
"<strong>Hint: </strong> You should prefix your local storage keys on CodePen, i.e. <code>_username_recipes</code>",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/FreeCodeCamp-Get-Help' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"releasedOn": "January 1, 2016",
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"isRequired": false,
|
||||
"challengeType": 3,
|
||||
"translations": {
|
||||
"ru": {
|
||||
"title": "Создайте хранилище рецептов",
|
||||
"description": [
|
||||
"<strong>Задание:</strong> Создайте приложение <a href='https://codepen.io' target='_blank'>CodePen.io</a>, функционал которого схож с этим: <a href='https://codepen.io/freeCodeCamp/full/dNVazZ/' target='_blank'>https://codepen.io/freeCodeCamp/full/dNVazZ/</a>.",
|
||||
"<strong>Правило #1:</strong> Не подсматривайте код приложения-примера. Напишите его самостоятельно.",
|
||||
"<strong>Правило #2:</strong> Приложение должно удовлетворять нижеприведённым <a href='https://ru.wikipedia.org/wiki/Пользовательские_истории' target='_blank'>пользовательским историям</a>. Используйте любые библиотеки или API, которые потребуются. Придайте ему свой личный стиль.",
|
||||
"<strong>Правило #3:</strong> Для создания этого проекта вы должны использовать Sass и React.",
|
||||
"<strong>Пользовательская история:</strong> Я могу создавать рецепты, содержащие название и ингредиенты.",
|
||||
"<strong>Пользовательская история:</strong> Я могу просмотреть корневой вид, на котором видны все рецепты.",
|
||||
"<strong>Пользовательская история:</strong> Я могу нажать на имя каждого из рецептов для просмотра содержимого.",
|
||||
"<strong>Пользовательская история:</strong> Я могу отредактировать эти рецепты.",
|
||||
"<strong>Пользовательская история:</strong> Я могу удалить эти рецепты.",
|
||||
"<strong>Пользовательская история:</strong> Все новые рецепты, которые я добавил, сохранены в локальном хранилище моего браузера. Если я обновлю страницу, эти рецепты будут всё ещё там.",
|
||||
"Если что-то не получается, не забывайте пользоваться методом <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/FreeCodeCamp-Get-Help' target='_blank'>Читай-Ищи-Спрашивай</a>.",
|
||||
"Когда закончите, нажмите кнопку \"I've completed this challenge\" и укажите ссылку на вашу работу на CodePen.",
|
||||
"Вы можете получить отзыв о вашем проекте от коллег, поделившись ссылкой на него в нашем <a href='//gitter.im/freecodecamp/codereview' target='_blank'>чате для рассмотрения кода</a>. Также вы можете поделиться ею через Twitter и на странице Free Code Camp вашего города на Facebook."
|
||||
]
|
||||
},
|
||||
"es":{
|
||||
"title": "Crea una caja de recetas",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> que funcione de forma similar al siguiente ejemplo: <a href='https://codepen.io/freeCodeCamp/full/dNVazZ/' target='_blank'>https://codepen.io/freeCodeCamp/full/dNVazZ/</a>.",
|
||||
"<strong>Regla #1:</strong> No veas el código del proyecto de ejemplo. Encuentra la forma de hacerlo por tu cuenta.",
|
||||
"<strong>Regla #2:</strong> Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o API que sea necesaria. ¡Ponle un toque personal!.",
|
||||
"<strong>Rule #3:</strong> Debes utilizar ambos Sass y React para construir este proyecto.",
|
||||
"<strong>Historia de usuario:</strong> Puedo crear recetas a las que les puedo poner un nombre y los ingredientes necesarios.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver un índice que contenga los nombres de todas las recetas.",
|
||||
"<strong>Historia de usuario:</strong> Puedo pulsar cualquiera de las recetas para verla.",
|
||||
"<strong>Historia de usuario:</strong> Puedo editar las recetas.",
|
||||
"<strong>Historia de usuario:</strong> Puedo eliminar las recetas.",
|
||||
"<strong>Historia de usuario:</strong> Las recetas que voy agregando deben guardarse en el almacenamiento local de mi navegador. Las recetas deben seguir allí si refresco la página.",
|
||||
"Recuerda utilizar <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/FreeCodeCamp-Get-Help' target='_blank'>Read-Search-Ask</a> si te sientes atascado.",
|
||||
"Cuando termines, haz clic en el botón de \"I've completed this challenge\" e incluye el vínculo de tu proyecto en CodePen. ",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7154d8c242eddfaeb5bd13",
|
||||
"title": "Build the Game of Life",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/BpwMZv/' target='_blank'>https://codepen.io/freeCodeCamp/full/BpwMZv/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> When I first arrive at the game, it will randomly generate a board and start playing.",
|
||||
"<strong>User Story:</strong> I can start and stop the board.",
|
||||
"<strong>User Story:</strong> I can set up the board.",
|
||||
"<strong>User Story:</strong> I can clear the board.",
|
||||
"<strong>User Story:</strong> When I press start, the game will play out.",
|
||||
"<strong>User Story:</strong> Each time the board changes, I can see how many generations have gone by.",
|
||||
"<strong>Hint:</strong> Here's an explanation of Conway's Game of Life from John Conway himself: <a href='https://www.youtube.com/watch?v=E8kUJL04ELA' target='_blank'>https://www.youtube.com/watch?v=E8kUJL04ELA</a>",
|
||||
"<strong>Hint:</strong> Here's an overview of Conway's Game of Life with rules for your reference: <a href='https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life' target='_blank'>https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life</a>",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/FreeCodeCamp-Get-Help' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. ",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"releasedOn": "January 1, 2016",
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"isRequired": false,
|
||||
"challengeType": 3,
|
||||
"translations":{
|
||||
"ru": {
|
||||
"title": "Создайте игру \"Жизнь\"",
|
||||
"description": [
|
||||
"<strong>Задание:</strong> Создайте приложение <a href='https://codepen.io' target='_blank'>CodePen.io</a>, функционал которого схож с этим: <a href='https://codepen.io/freeCodeCamp/full/BpwMZv/' target='_blank'>https://codepen.io/freeCodeCamp/full/BpwMZv/</a>.",
|
||||
"<strong>Правило #1:</strong> Не подсматривайте код приложения-примера. Напишите его самостоятельно.",
|
||||
"<strong>Правило #2:</strong> Приложение должно удовлетворять нижеприведённым <a href='https://ru.wikipedia.org/wiki/Пользовательские_истории' target='_blank'>пользовательским историям</a>. Используйте любые библиотеки или API, которые потребуются. Придайте ему свой личный стиль.",
|
||||
"<strong>Правило #3:</strong> Для создания этого проекта вы должны использовать Sass и React.",
|
||||
"<strong>Пользовательская история:</strong> Когда я впервые запускаю игру, она генерирует доску случайным образом и начинает игру.",
|
||||
"<strong>Пользовательская история:</strong> Я могу запустить и остановить игру.",
|
||||
"<strong>Пользовательская история:</strong> Я могу настроить доску.",
|
||||
"<strong>Пользовательская история:</strong> Я могу очистить доску.",
|
||||
"<strong>Пользовательская история:</strong> Когда я нажимаю начать, игра начинает воспроизведение.",
|
||||
"<strong>Пользовательская история:</strong> Каждый раз, когда доска меняется, я могу видеть сколько поколений прошло.",
|
||||
"<strong>Подсказка:</strong> Вот объяснение игры \"Жизнь\" от её создателя Джона Конвея: <a href='https://www.youtube.com/watch?v=E8kUJL04ELA' target='_blank'>https://www.youtube.com/watch?v=E8kUJL04ELA</a>",
|
||||
"<strong>Подсказка:</strong> Вот обзор правил игры \"Жизнь\" для вашего сведения: <a href='https://ru.wikipedia.org/wiki/Жизнь_(игра)' target='_blank'>https://ru.wikipedia.org/wiki/Жизнь_(игра)</a>",
|
||||
"Если что-то не получается, не забывайте пользоваться методом <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/FreeCodeCamp-Get-Help' target='_blank'>Читай-Ищи-Спрашивай</a>.",
|
||||
"Когда закончите, нажмите кнопку \"I've completed this challenge\" и укажите ссылку на вашу работу на CodePen.",
|
||||
"Вы можете получить отзыв о вашем проекте от коллег, поделившись ссылкой на него в нашем <a href='//gitter.im/freecodecamp/codereview' target='_blank'>чате для рассмотрения кода</a>. Также вы можете поделиться ею через Twitter и на странице Free Code Camp вашего города на Facebook."
|
||||
]
|
||||
},
|
||||
"es": {
|
||||
"title": "Crea un Juego de la vida",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> que funcione de forma similar al siguiente ejemplo: <a href='https://codepen.io/freeCodeCamp/full/BpwMZv/' target='_blank'>https://codepen.io/freeCodeCamp/full/BpwMZv/</a>.",
|
||||
"<strong>Regla #1:</strong> No veas el código del proyecto de ejemplo. Encuentra la forma de hacerlo por tu cuenta.",
|
||||
"<strong>Regla #2:</strong> Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o API que sea necesaria. ¡Ponle un toque personal!.",
|
||||
"<strong>Rule #3:</strong> Debes utilizar ambos Sass y React para construir este proyecto.",
|
||||
"<strong>Historia de usuario:</strong> La aplicación debe generar aleatoriamente un tablero y comenzar a jugar cuando entro al juego por primera vez.",
|
||||
"<strong>Historia de usuario:</strong> Puedo iniciar y detener el tablero.",
|
||||
"<strong>Historia de usuario:</strong> Puedo preparar el tablero.",
|
||||
"<strong>Historia de usuario:</strong> Puedo limpiar el tablero.",
|
||||
"<strong>Historia de usuario:</strong> El juego inicia cuando presiono un botón de inicio.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver cuántas generaciones han pasado cada vez que el tablero cambia.",
|
||||
"<strong>Pista:</strong> Puedes encontrar una explicación del Juego de la vida de Conway de parte del mismísimo John Conway aquí: <a href='https://www.youtube.com/watch?v=E8kUJL04ELA' target='_blank'>https://www.youtube.com/watch?v=E8kUJL04ELA</a>",
|
||||
"<strong>Pista:</strong> Puedes referirte al siguiente enlace para obtener información general acerca del Juego de la vida de Conway incluyendo las reglas del juego: <a href='https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life' target='_blank'>https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life</a>",
|
||||
"Recuerda utilizar <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/FreeCodeCamp-Get-Help' target='_blank'>Read-Search-Ask</a> si te sientes atascado.",
|
||||
"Cuando termines, haz clic en el botón de \"I've completed this challenge\" e incluye el vínculo de tu proyecto en CodePen. ",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7153d8c242eddfaeb5bd13",
|
||||
"title": "Build a Roguelike Dungeon Crawler Game",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/apLXEJ/' target='_blank'>https://codepen.io/freeCodeCamp/full/apLXEJ/</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I have health, a level, and a weapon. I can pick up a better weapon. I can pick up health items.",
|
||||
"<strong>User Story:</strong> All the items and enemies on the map are arranged at random.",
|
||||
"<strong>User Story:</strong> I can move throughout a map, discovering items.",
|
||||
"<strong>User Story:</strong> I can move anywhere within the map's boundaries, but I can't move through an enemy until I've beaten it.",
|
||||
"<strong>User Story:</strong> Much of the map is hidden. When I take a step, all spaces that are within a certain number of spaces from me are revealed.",
|
||||
"<strong>User Story:</strong> When I beat an enemy, the enemy goes away and I get XP, which eventually increases my level.",
|
||||
"<strong>User Story:</strong> When I fight an enemy, we take turns damaging each other until one of us loses. I do damage based off of my level and my weapon. The enemy does damage based off of its level. Damage is somewhat random within a range.",
|
||||
"<strong>User Story:</strong> When I find and beat the boss, I win.",
|
||||
"<strong>User Story:</strong> The game should be challenging, but theoretically winnable.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. ",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"releasedOn": "January 1, 2016",
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"isRequired": false,
|
||||
"challengeType": 3,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Crea un juego de dragones al estilo Rogue",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> que funcione de forma similar al siguiente ejemplo: <a href='https://codepen.io/freeCodeCamp/full/apLXEJ/' target='_blank'>https://codepen.io/freeCodeCamp/full/apLXEJ/</a>.",
|
||||
"Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o API que sea necesaria. ¡Ponle un toque personal!.",
|
||||
"<strong>Historia de usuario:</strong> Tengo energía, nivel de habilidad y un arma. Puedo recoger un arma mejor. Puedo recoger ítems que recuperan mi energía.",
|
||||
"<strong>Historia de usuario:</strong> Todos los ítems y los enemigos en el mapa están colocados aleatoriamente.",
|
||||
"<strong>Historia de usuario:</strong> Puedo moverme a lo largo de un mapa y descubrir ítems.",
|
||||
"<strong>Historia de usuario:</strong> Puedo moverme hacia cualquier parte dentro de los límites del mapa, pero no puedo moverme sobre un enemigo hasta que lo haya vencido.",
|
||||
"<strong>Historia de usuario:</strong> Gran parte del mapa está escondido. Cuando doy un paso, todos los espacios que están a cierto número de espacios de distancia de mi son revelados.",
|
||||
"<strong>Historia de usuario:</strong> Cuando venzo un enemigo, este desaparece y yo gano puntos de experiencia (XP), lo que eventualmente me permite aumentar de nivel.",
|
||||
"<strong>Historia de usuario:</strong> Cuando peleo con un enemigo, tomamos turnos haciéndonos daño hasta que uno de los dos pierde. El daño que hago está basado en mi nivel de experiencia y en el arma que estoy utilizando. El enemigo hace daño basado en su nivel. El daño es aleatorio dentro de cierto márgen.",
|
||||
"<strong>Historia de usuario:</strong> Gano el juego cuando encuentre y venza al jefe.",
|
||||
"<strong>Historia de usuario:</strong> El juego debe representar un reto, pero ganar debe ser teóricamente posible.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado.",
|
||||
"Cuando termines, haz clic en el botón de \"I've completed this challenge\" e incluye el vínculo de tu proyecto en CodePen. ",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
},
|
||||
"ru": {
|
||||
"title": "Создайте Roguelike-подобную игру Подземелье",
|
||||
"description": [
|
||||
"<strong>Задание:</strong> Создайте приложение <a href='https://codepen.io' target='_blank'>CodePen.io</a>, функционал которого схож с этим: <a href='https://codepen.io/freeCodeCamp/full/apLXEJ/' target='_blank'>https://codepen.io/freeCodeCamp/full/apLXEJ/</a>.",
|
||||
"Приложение должно удовлетворять нижеприведённым <a href='https://ru.wikipedia.org/wiki/Пользовательские_истории' target='_blank'>пользовательским историям</a>. Используйте любые библиотеки или API, которые потребуются. Придайте ему свой личный стиль.",
|
||||
"<strong>Пользовательская история:</strong> У меня есть жизни, уровень и оружие. Я могу подобрать оружие получше. Я могу подобрать очки здоровья.",
|
||||
"<strong>Пользовательская история:</strong> Все предметы и враги располагаются на карте случайным образом.",
|
||||
"<strong>Пользовательская история:</strong> Я могу передвигаться по карте, обнаруживая новые предметы.",
|
||||
"<strong>Пользовательская история:</strong> Я могу двигаться куда угодно в рамках карты, но не могу продвинуться дальше врага, пока он не будет побежден.",
|
||||
"<strong>Пользовательская история:</strong> Большая часть карты скрыта. Когда я делаю шаг, все клетки в определенном количестве клеток от меня становятся видимы.",
|
||||
"<strong>Пользовательская история:</strong> Когда я побеждаю врага, враг исчезает, а я получаю очки опыта (XP), что увеличивает мой уровень.",
|
||||
"<strong>Пользовательская история:</strong> Когда я веду бой с врагом, мы поочередно наносим друг-другу повреждения, до тех пор пока кто-нибудь не победит. Я наношу повреждения, которые зависят от моего уровня и моего оружия. Враг наносит повреждения, которые зависят от его уровня. Значение повреждений распределено случайным образом в некотором диапазоне.",
|
||||
"<strong>Пользовательская история:</strong> Когад я нахожу и побеждаю босса, я выигрываю игру.",
|
||||
"<strong>Пользовательская история:</strong> Игра должна быть интересной и достаточно сложной, но теоретически проходимой.",
|
||||
"Если что-то не получается, не забывайте пользоваться методом <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Читай-Ищи-Спрашивай</a>.",
|
||||
"Когда закончите, нажмите кнопку \"I've completed this challenge\" и укажите ссылку на вашу работу на CodePen.",
|
||||
"Вы можете получить отзыв о вашем проекте от коллег, поделившись ссылкой на него в нашем <a href='//gitter.im/freecodecamp/codereview' target='_blank'>чате для рассмотрения кода</a>. Также вы можете поделиться ею через Twitter и на странице freeCodeCamp вашего города на Facebook."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7150d8c442eddfafb5bd1c",
|
||||
"title": "P2P Video Chat Application",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://glitch.com' target='_blank'>Glitch</a> app that is functionally similar to this: <a href='https://grove-voice.glitch.me/' target='_blank'>https://grove-voice.glitch.me</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> Upon arriving, the browser will prompt me to access my camera and microphone. ",
|
||||
"<strong>User Story:</strong> After I give it permission, I am prompted to type in a room name.",
|
||||
"<strong>User Story:</strong> Once I type in the room name, a room will be created if no room of that name existed before. ",
|
||||
"<strong>User Story:</strong> A friend of mine can subsequently go to the same website, type in the same room I entered, and join the same room, then enter into a video chat with me. ",
|
||||
"<strong>User Story:</strong> If I type in a room name, and there are already two people in that room, I get a notification that the room is full. ",
|
||||
"<strong>User Story:</strong> Anyone can create or join any room. And there can be any number of rooms, but all of them must have unique names. ",
|
||||
"<strong>User Story:</strong> I can choose to not permit the site to access my microphone and webcam. If I choose not to do this, if some other driver problem occurs, I see an error message saying these are required. ",
|
||||
"<strong>User Story:</strong> When I choose to cancel the room name input step, or if I type in no name, or just spaces, it should again ask me again to type in a valid room name. ",
|
||||
"<strong>User Story:</strong> If one of the two people in the room get disconnected, they can reconnect to the same room and continue chatting.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your Glitch App.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false,
|
||||
"releasedOn": "January 1, 2016"
|
||||
},
|
||||
{
|
||||
"id": "bd7198d8c242eddfaeb5bd13",
|
||||
"title": "Show National Contiguity with a Force Directed Graph",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/xVopBo' target='_blank'>https://codepen.io/freeCodeCamp/full/xVopBo</a>.",
|
||||
"Fulfill the following <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can see a Force-directed Graph that shows which countries share borders.",
|
||||
"<strong>User Story:</strong> I can see each country's flag on its node.",
|
||||
"<strong>Hint:</strong> Here's a dataset you can use to build this: <a href='https://raw.githubusercontent.com/DealPete/forceDirected/master/countries.json' target='_blank'>https://raw.githubusercontent.com/DealPete/forceDirected/master/countries.json</a>",
|
||||
"<strong>Hint:</strong> You can create a spritesheet of national flags at <a href='https://www.flag-sprites.com' target='_blank'>https://www.flag-sprites.com</a>.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. ",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"isRequired": false,
|
||||
"releasedOn": "January 1, 2016",
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Muestra asociaciones utilizando un gráfico de fuerzas dirigidas",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> que funcione de forma similar al siguiente ejemplo: <a href='https://codepen.io/freeCodeCamp/full/KVNNXY' target='_blank'>https://codepen.io/freeCodeCamp/full/KVNNXY</a>.",
|
||||
"<strong>Regla #1:</strong> No veas el código del proyecto de ejemplo. Encuentra la forma de hacerlo por tu cuenta.",
|
||||
"<strong>Regla #2:</strong> Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o API que sea necesaria. ¡Ponle un toque personal!.",
|
||||
"<strong>Regla #3:</strong> Debes utilizar D3.js para construir este proyecto.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver un gráfico de fuerza dirigida que muestra qué campistas están publicando enlaces en Camper News hacia qué dominios.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver el icono de cada campista en su nodo respectivo.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver la relación entre los campistas y los dominios que publican.",
|
||||
"<strong>Historia de usuario:</strong> Puedo conocer aproximadamente cuántas veces los campistas han enlazado un dominio en particular a partir del tamaño del nodo respectivo.",
|
||||
"<strong>Historia de usuario:</strong> Puedo conocer aproximadamente cuántas veces un campista específico ha publicado un enlace a partir del tamaño de su nodo.",
|
||||
"<strong>Pista:</strong> La siguiente es la ruta del API de noticias de Camper News: <code>http://www.freecodecamp.org/news/hot</code>.",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado.",
|
||||
"Cuando termines, haz clic en el botón de \"I've completed this challenge\" e incluye el vínculo de tu proyecto en CodePen. ",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7108d8c242eddfaeb5bd13",
|
||||
"title": "Map Data Across the Globe",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/mVEJag' target='_blank'>https://codepen.io/freeCodeCamp/full/mVEJag</a>.",
|
||||
"Fulfill the following <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can see where all Meteorites landed on a world map.",
|
||||
"<strong>User Story:</strong> I can tell the relative size of the meteorite, just by looking at the way it's represented on the map.",
|
||||
"<strong>User Story:</strong> I can mouse over the meteorite's data point for additional data.",
|
||||
"<strong>Hint:</strong> Here's a dataset you can use to build this: <a href='https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/meteorite-strike-data.json' target='_blank'>https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/meteorite-strike-data.json</a>",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen. ",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"isRequired": false,
|
||||
"releasedOn": "January 1, 2016",
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"translations": {
|
||||
"es": {
|
||||
"title": "Mapea datos a lo largo del Globo",
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación en <a href='https://codepen.io' target='_blank'>CodePen.io</a> que funcione de forma similar al siguiente ejemplo: <a href='https://codepen.io/freeCodeCamp/full/mVEJag' target='_blank'>https://codepen.io/freeCodeCamp/full/mVEJag</a>.",
|
||||
"<strong>Regla #1:</strong> No veas el código del proyecto de ejemplo. Encuentra la forma de hacerlo por tu cuenta.",
|
||||
"<strong>Regla #2:</strong> Satisface las siguientes <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>historias de usuario</a>. Usa cualquier librería o API que sea necesaria. ¡Ponle un toque personal!.",
|
||||
"<strong>Regla #3:</strong> Debes utilizar D3.js para construir este proyecto.",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver a dónde cayeron todos los meteoritos en un mapa mundi.",
|
||||
"<strong>Historia de usuario:</strong> Puedo distinguir el tamaño relativo de cada meteorito simplemente viendo la forma en que está representado en el mapa.",
|
||||
"<strong>Historia de usuario:</strong> Puedo mover el ratón sobre el dato de cada meteorito para obtener información adicional.",
|
||||
"<strong>Pista:</strong> Puedes utilizar el siguiente conjunto de datos para construir tu proyecto: <a href='https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/meteorite-strike-data.json' target='_blank'>https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/meteorite-strike-data.json</a>",
|
||||
"Recuerda utilizar <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> si te sientes atascado.",
|
||||
"Cuando termines, haz clic en el botón de \"I've completed this challenge\" e incluye el vínculo de tu proyecto en CodePen. ",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bd0f",
|
||||
"title": "Manage a Book Trading Club",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://glitch.com' target='_blank'>Glitch</a> app that is functionally similar to this: <a href='https://chrome-delivery.glitch.me/ /' target='_blank'>https://chrome-delivery.glitch.me</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can view all books posted by every user.",
|
||||
"<strong>User Story:</strong> I can add a new book.",
|
||||
"<strong>User Story:</strong> I can update my settings to store my full name, city, and state.",
|
||||
"<strong>User Story:</strong> I can propose a trade and wait for the other user to accept the trade.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "basejump",
|
||||
"challengeType": 4,
|
||||
"translations": {
|
||||
"es":{
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación de pila completa (full stack) en JavaScript que funcione de forma similar al siguiente proyecto: <a href='http://bookjump.herokuapp.com/' target='_blank'>http://bookjump.herokuapp.com/</a> y despliégalo en Heroku.",
|
||||
"Ten en cuenta que para cada proyecto, debes crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas cómo hacerlo, visita de nuevo <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.org/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Estas son las Historias de usuario que debes satisfacer para este Basejump:",
|
||||
"<strong>Historia de usuario:</strong> Puedo ver todos los libros agregados por cada usuario.",
|
||||
"<strong>Historia de usuario:</strong> Puedo agregar un nuevo libro.",
|
||||
"<strong>Historia de usuario:</strong> Puedo actualizar mi configuración para que almacene mi nombre completo, ciudad y Estado.",
|
||||
"<strong>Historia de usuario:</strong> Puedo proponer un intercambio y esperar a que algún otro usuario acepte el trato.",
|
||||
"Una vez hayas terminado de implementar estas historias de usuario, pulsa el botón de \"I've completed this challenge\" e incluye las URLs de tu repositorio GitHub y de tu aplicación corriendo en Heroku.",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
],
|
||||
"title": "Administra un club de intercambio de libros"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdee",
|
||||
"title": "Build a Pinterest Clone",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://glitch.com' target='_blank'>Glitch</a> app that is functionally similar to this: <a href='https://wild-song.glitch.me/' target='_blank'>https://wild-song.glitch.me</a>.",
|
||||
"Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> As an unauthenticated user, I can login with GitHub.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can link to images.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can delete images that I've linked to.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can see a Pinterest-style wall of all the images I've linked to.",
|
||||
"<strong>User Story:</strong> As an unauthenticated user, I can browse other users' walls of images.",
|
||||
"<strong>User Story:</strong> As an authenticated user, if I upload an image that is broken, it will be replaced by a placeholder image. (can use jQuery broken image detection)",
|
||||
"<strong>Hint:</strong> <a href='http://masonry.desandro.com/' target='_blank'>Masonry.js</a> is a library that allows for Pinterest-style image grids.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "basejump",
|
||||
"challengeType": 4,
|
||||
"translations": {
|
||||
"es":{
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación de pila completa (full stack) en JavaScript que funcione de forma similar al siguiente proyecto: <a href='https://midnight-dust.glitch.me/' target='_blank'>https://midnight-dust.glitch.me/</a> y despliégalo en Heroku.",
|
||||
"Ten en cuenta que para cada proyecto, debes crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas cómo hacerlo, visita de nuevo <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.org/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Estas son las Historias de usuario que debes satisfacer para este Basejump:",
|
||||
"<strong>Historia de usuario:</strong> Como usuario autenticado, puedo acceder a mi cuenta con Twitter.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario autenticado, puedo agregar enlaces a imágenes.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario autenticado, puedo elimiar imágenes que he agregado.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario autenticado, puedo ver un muro al estilo de Pinterest con todas las imágenes para las que he agregado un enlace.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario no autenticado, puedo navegar los muros de imágenes de otros usuarios.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario autenticado, si agrego una imagen corrupta, será reemplazada por una imagen predeterminada. (Puedes utilizar la detección de imágenes corruptas de jQuery)",
|
||||
"<strong>Pista:</strong> <a href='http://masonry.desandro.com/' target='_blank'>Masonry.js</a> es una librería que permite crear cuadrículas de imágenes al estilo de Pinterest.",
|
||||
"Una vez hayas terminado de implementar estas historias de usuario, pulsa el botón de \"I've completed this challenge\" e incluye las URLs de tu repositorio GitHub y de tu aplicación corriendo en Heroku.",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
],
|
||||
"title": "Crea un clon de Pinterest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdff",
|
||||
"title": "Build a Nightlife Coordination App",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='http://whatsgoinontonight.herokuapp.com/' target='_blank'>http://whatsgoinontonight.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each project, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.com/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Here are the specific user stories you should implement for this project:",
|
||||
"<strong>User Story:</strong> As an unauthenticated user, I can view all bars in my area.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can add myself to a bar to indicate I am going there tonight.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can remove myself from a bar if I no longer want to go there.",
|
||||
"<strong>User Story:</strong> As an unauthenticated user, when I login I should not have to search again.",
|
||||
"<strong>Hint:</strong> Try using the <a href='https://www.yelp.com/developers/documentation/v2/overview' target='_blank'>Yelp API</a> to find venues in the cities your users search for. If you use Yelp's API, be sure to mention so in your app.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"Gei7QfPmcMw"
|
||||
],
|
||||
"tests": [],
|
||||
"type": "basejump",
|
||||
"challengeType": 4,
|
||||
"isRequired": true,
|
||||
"translations": {
|
||||
"es": {
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación de pila completa (full stack) en JavaScript que funcione de forma similar al siguiente proyecto: <a href='http://whatsgoinontonight.herokuapp.com/' target='_blank'>http://whatsgoinontonight.herokuapp.com/</a> y despliégala en Heroku.",
|
||||
"Ten en cuenta que para cada proyecto, debes crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas cómo hacerlo, visita de nuevo <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.com/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Estas son las Historias de usuario que debes satisfacer para este Basejump:",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario no autenticado, puedo ver todos los bares en mi área.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo agregarme a mí mismo a un bar para indicar que voy a estar allí esta noche.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo removerme de un bar si ya no pienso ir allí.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario no autenticado, cuando accedo a mi cuenta no debo tener la necesidad de buscar de nuevo.",
|
||||
"<span class='text-info'>Pista:</span> Prueba utilizar el <a href='https://www.yelp.com/developers/documentation/v2/overview' target='_blank'>API de Yelp</a> para encontrar lugares en las ciudades donde tus usuarios buscan. Si utilizas el API de Yelp, asegúrate de mencionarlo en tu aplicación.",
|
||||
"Una vez hayas terminado de implementar estas historias de usuario, pulsa el botón de \"I've completed this challenge\" e incluye las URLs de tu repositorio GitHub y de tu aplicación corriendo en Heroku.",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bd0e",
|
||||
"title": "Chart the Stock Market",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='http://watchstocks.herokuapp.com/' target='_blank'>http://watchstocks.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each project, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.com/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Here are the specific user stories you should implement for this project:",
|
||||
"<strong>User Story:</strong> I can view a graph displaying the recent trend lines for each added stock.",
|
||||
"<strong>User Story:</strong> I can add new stocks by their symbol name.",
|
||||
"<strong>User Story:</strong> I can remove stocks.",
|
||||
"<strong>User Story:</strong> I can see changes in real-time when any other user adds or removes a stock. For this you will need to use Web Sockets.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"CENs50cnRgM"
|
||||
],
|
||||
"tests": [],
|
||||
"type": "basejump",
|
||||
"challengeType": 4,
|
||||
"isRequired": true,
|
||||
"translations": {
|
||||
"es": {
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación de pila completa (full stack) en JavaScript que funcione de forma similar al siguiente proyecto: <a href='http://watchstocks.herokuapp.com/' target='_blank'>http://watchstocks.herokuapp.com/</a> y despliégalo en Heroku.",
|
||||
"Ten en cuenta que para cada proyecto, debes crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas cómo hacerlo, visita de nuevo <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.com/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Estas son las Historias de usuario que debes satisfacer para este Basejump:",
|
||||
"<strong>Historia de usuario:</strong> Como usuario, puedo ver un gráfico que me muestre las líneas de tendencia recientes para cada acción agregada.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario, puedo agregar nuevas acciones por su símbolo.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario, puedo remover acciones.",
|
||||
"<strong>Historia de usuario:</strong> Como usuario, puedo ver cambios en tiempo real cuando algún otro usuario agrega o remueve una acción. Puedes usar Web Sockets para hacer esto.",
|
||||
"Una vez hayas terminado de implementar estas historias de usuario, pulsa el botón de \"I've completed this challenge\" e incluye las URLs de tu repositorio GitHub y de tu aplicación corriendo en Heroku.",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bd7158d8c443eddfaeb5bdef",
|
||||
"title": "Build a Voting App",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a full stack JavaScript app that is functionally similar to this: <a href='https://fcc-voting-arthow4n.herokuapp.com/' target='_blank'>https://fcc-voting-arthow4n.herokuapp.com/</a> and deploy it to Heroku.",
|
||||
"Note that for each project, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.com/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Here are the specific user stories you should implement for this project:",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can keep my polls and come back later to access them.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can share my polls with my friends.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can see the aggregate results of my polls.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can delete polls that I decide I don't want anymore.",
|
||||
"<strong>User Story:</strong> As an authenticated user, I can create a poll with any number of possible items.",
|
||||
"<strong>User Story:</strong> As an unauthenticated or authenticated user, I can see and vote on everyone's polls.",
|
||||
"<strong>User Story:</strong> As an unauthenticated or authenticated user, I can see the results of polls in chart form. (This could be implemented using Chart.js or Google Charts.)",
|
||||
"<strong>User Story:</strong> As an authenticated user, if I don't like the options on a poll, I can create a new option.",
|
||||
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"JBKnbY_fdg4"
|
||||
],
|
||||
"tests": [],
|
||||
"type": "basejump",
|
||||
"challengeType": 4,
|
||||
"isRequired": true,
|
||||
"translations": {
|
||||
"es": {
|
||||
"description": [
|
||||
"<strong>Objetivo:</strong> Construye una aplicación de pila completa (full stack) en JavaScript que funcione de forma similar al siguiente proyecto: <a href='https://fcc-voting-arthow4n.herokuapp.com/' target='_blank'>https://fcc-voting-arthow4n.herokuapp.com/</a> y despliégala en Heroku.",
|
||||
"Ten en cuenta que para cada proyecto, debes crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas cómo hacerlo, visita de nuevo <a href='/challenges/get-set-for-our-dynamic-web-application-projects'>https://freecodecamp.com/challenges/get-set-for-our-dynamic-web-application-projects</a>.",
|
||||
"Estas son las Historias de usuario que debes satisfacer para este proyecto:",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo guardar mis votaciones y acceder a ellas posteriormente.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo compartir mis votaciones con mis amigos.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo ver los resultados agregados de mis votaciones.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo eliminar votaciones que ya no quiero tener guardadas.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, puedo crear una votación con cualquier número de opciones.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado o no autenticado, puedo ver y votar en las votaciones de otros.",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado o no autenticado, puedo ver los resultados de las votaciones por medio de un gráfico. (Esto podría implementarse utilizando Chart.js o Google Charts.)",
|
||||
"<strong>Historia de usuario:</strong> Como un usuario autenticado, si no me gustan las opciones en una votación, puedo crear una nueva opción.",
|
||||
"Una vez hayas terminado de implementar estas historias de usuario, pulsa el botón de \"I've completed this challenge\" e incluye las URLs de tu repositorio GitHub y de tu aplicación corriendo en Heroku.",
|
||||
"Puedes obtener retroalimentación acerca de tu proyecto de parte de tus compañeros campistas compartiéndolo en nuestro <a href='//gitter.im/freecodecamp/codereview' target='_blank'>Cuarto de revisión de código</a>. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)."
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5a4b7fcdb66f799f199e11db",
|
||||
"title": "Build a Pong Game",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/satyamdev/full/pdMmBp' target='_blank'>https://codepen.io/satyamdev/full/pdMmBp</a>.",
|
||||
"<strong>Rule #1:</strong> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<strong>Rule #2:</strong> Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can control a paddle.",
|
||||
"<strong>User Story:</strong> The computer can control the other paddle.",
|
||||
"<strong>User Story:</strong> The computer's paddle is unbeatable. It should never miss the ball.",
|
||||
"<strong>User Story:</strong> The game keeps track of the player and computer's score.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false
|
||||
},
|
||||
{
|
||||
"id": "5a5d02bd919fcf9ca8cf46cb",
|
||||
"title": "Build a Light-Bright App",
|
||||
"description": [
|
||||
"<strong>Objective:</strong> Build a <a href='https://codepen.io' target='_blank'>CodePen.io</a> app that is functionally similar to this: <a href='https://codepen.io/freeCodeCamp/full/eyLYXE' target='_blank'>https://codepen.io/freeCodeCamp/full/eyLYXE</a>.",
|
||||
"<strong>Rule #1:</strong> Don't look at the example project's code. Figure it out for yourself.",
|
||||
"<strong>Rule #2:</strong> Fulfill the below <a href='https://en.wikipedia.org/wiki/User_story' target='_blank'>user stories</a>. Use whichever libraries or APIs you need. Give it your own personal style.",
|
||||
"<strong>User Story:</strong> I can click or drag the mouse cursor to color the circles.",
|
||||
"<strong>User Story:</strong> I can double-click on a colored circle to remove the color.",
|
||||
"<strong>User Story:</strong> I can click on a colored circle to change its color.",
|
||||
"<strong>User Story:</strong> I should get a circle of different color on each click.",
|
||||
"<strong>User Story:</strong> I can click on the 'Reset' button to remove the recent color.",
|
||||
"<strong>User Story:</strong> I can click on the 'Reset All' button to remove all the colors from the circles.",
|
||||
"Remember to use <a href='http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck.",
|
||||
"When you are finished, click the \"I've completed this challenge\" button and include a link to your CodePen.",
|
||||
"You can get feedback on your project by sharing it with your friends on Facebook."
|
||||
],
|
||||
"challengeSeed": [],
|
||||
"tests": [],
|
||||
"type": "zipline",
|
||||
"challengeType": 3,
|
||||
"isRequired": false
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user