Skip to content
Browse files

Fixed links and cleaned up some pages.

  • Loading branch information...
1 parent 019a5b6 commit 70c868e5d8e3078462e5ce196e6ed3a5cc7aff28 @Rafase282 Rafase282 committed
View
2 .gitignore
@@ -3,3 +3,5 @@ pages/
scripts/node_modules
public/
node_modules/
+*.db
+*.log
View
216 10-Steps-To-Plan-Better-So-You-Can-Write-Less-Code.md
@@ -1,116 +1,100 @@
-##Learn how to plan your future project!
-
-*Blog post written by BiancaMihai - [GitHub](https://github.com/biancamihai) / [Twitter](https://twitter.com/intent/user?screen_name=bubuslubu)*
-
-An ounce of preparation is worth a pound of cure. That's true in medicine, and that's definitely true in software development.
-
-Here's a structured 10-step workflow that will guide you through the app planning process, with the goal of saving you from writing a lot of unnecessary code.
-
-Together, we'll plan out a simple "To-do" single-page web app. We'll also plan for an API backend for a future mobile app.
-
-###1) Create our Trello board
-
-[Trello](https://trello.com/) is a fun, free way to break your planning and development process into small tasks that can be tracked.
-
-![Image of Trello board](https://lh3.googleusercontent.com/EI4AQ4NINm3B2DHR_YIS29JyKVa5dTPiT3RtITylmndFlpshTHepsKuO8_1KQNfdPDSBjslDReHCuPFeH1GNrDtgOwTyq6ZtGf3DFBmq1AsAhPHKt_0pLXQLf0o4ZbDuKVj4-Bo)
-
-
-[Here's what our Trello board will eventually look like](https://trello.com/b/O9MZcYyY/todo-app). I prefer to split my tasks into 3 columns (depending on the complexity of the project):
-
-* To Do - what is left to do
-* In progress - tasks that people are currently working on
-* Done - tasks that are done and ready for testing
-
-###2) Write user stories
-
-Here are some example user stories. These will guide how we think about our app's features and functionality. Note that they all follow a similar structure: as a [person] I can [do something].
-
-* as a logged-in user I can see the list of my to-do's.
-* as a logged-in user I can add a new to-do.
-* as a logged-in user I can delete a to-do (only my to-do's - not other users').
-* as a logged-in user I can complete a to-do (only my to-do's - not other users').
-* as an anonymous user, I can register for a new account, recover my password, or log in to the app with an existing account.
-
-###3) Create our use case model
-
-Our use case model will help us visualize our user stories so we can better understand how to implement them.
-
-![Anonymous user case diagram] (https://lh5.googleusercontent.com/2v6iIMbCrLSKVfqttEToum7OA3YGQCBKWUHcSCB1KEbEcijXxQtKJKY6fhLXeecJiO27P4icOuPlkVc9_uNXolzlzNXOo_TPh09GZsAqRH-JISqPrpx0PZdtbHOr0RIuQUbTbaw)
-![Authenticated user case diagram] (https://lh6.googleusercontent.com/3V6dVvAcyjqFkaOukimucYOX0CfwBBYNN9SvjmnVy40Pdhs4Wtrr34i3E-9pbV7tFsp4jHm77IFQvFupjq6OWyxqEgCzcQ995Ayh52Msczu6TfwKeNhL9PYHyxSgmPYA1TR6l6Q)
-
-###4) Create our activity diagram
-
-Our activity diagram will show the different paths our users can take through our app.
-
-![Activity diagram picture](https://lh6.googleusercontent.com/jAQL4myqWOPA3gk2iTpGyAQBrO6p1GlPe8BQQ1Se6a-Di40X3Zw1p0wfJewZUL-YyDmedYzX5Lxvo2GW2Qnr6I-6kuKe1sDb9_5F_n46cKoawWReWW_ZoZCIJO6Semc4fvsiuHc)
-
-A user accesses our to-do application.
-* If the user is not logged in she will see our login page.
-* If she already has an account, she can log in.
-* If she has an account, but she forgot her password, she can recover her password.
-* If she doesn't have an account, she can create one.
-* Both "create an account" and "recover my password" will require email validation. A user can log in to our application only after she has confirmed her email address.
-* If she is logged in, she will see her to-do list (this can be empty if she hasn't added any to-dos yet).
-* A logged in user:
- * is able to see her tasks list
- * is able to mark a task from her list as completed
- * is able to search within her task list
- * is able to delete a task from her list
- * can logout.
-* The user can exit the application at any time.
-
-###5) Create our mockups
-
-Our mockups show what our app should look like. It's much faster to iterate on a mockup than it is to do so on working code.
-
-![Mockup picture](https://lh3.googleusercontent.com/GBFhmBkfr-xM5YSXlR0Fm9y8b24ivdRlUtRWQOHJ8skNxEgjTkAef0e5nZ-CcHKNUq2p4V4hgDuAm9LSEuvbovlVborH1ZioAUXVlEblWZ4hN_d2tGEpxhfTkKH9os2JS1pab4w)
-
-###6) Choose the right technologies for our project
-
-Because this is a single page app, we'll rely heavily - or in this case exclusively - on JavaScript. Let's use one of the most popular JavaScript stacks: the MEAN stack. One big benefit of the MEAN stack is that all of its components are free and open-source. There are also tons of resources available for learning the MEAN stack, and for debugging it when you inevitably encounter errors.
-
-You can have a [MEAN stack development environment](http://www.freecodecamp.com/challenges/Challenge-get-set-for-Back End Projects) up and running in the cloud in less than an hour, for free.
-
-Here are the components we'll use:
-1. [MongoDB](http://mongodb.org/) for our database
-2. [Node.js](http://nodejs.org/) and [Express.js](http://expressjs.com/) for implementing our API
-3. [AngularJS](http://angularjs.org/), along with HTML and CSS (and Bootstrap) for our client-side application
-4. [Mongoose](http://mongoosejs.com/) to connect our application to MongoDB
-
-###7) Design our database schema
-
-It's worth the effort to design a database schema, even for our simple application.
-
-We'll have two collections: our "Users" collection will house our user data, and our "ToDo" collection will house our tasks that need to be done. One user can have zero, one, or many tasks in her to-do list, so we will have a one-to-many (1:m) relationship between our two collections.
-
-![Database schema diagram](https://lh6.googleusercontent.com/5uSb_xnSSc5CWXJD0yyUGVJsL92RRZl3Bex_3wjuzl5Xr69Ks0j3od-yFju24SAd5wWMBNy9uqBrvOzdrUWluOkbcr4H5zFg-ZemJX3ZRWS12D42OowuvWnxA7wWIGrhhzaQ0aw)
-
-###8) Define our use cases
-
-1. What happens to the to-dos related to a user that deletes her account? When the user deletes her account the to-dos related to that user should also be deleted.
-2. No to-do can be added without being attached to a confirmed user.
-3. A to-do can only be deleted by its owner.
-4. No user can be added with an empty username or password.
-5. No to-do can be added with an empty task.
-
-Things to keep in mind:
-
-1. Use the Mongoose middleware to remove dependent documents like to-dos when a user deletes her account.
-2. Use Mongoose validation rules on models to prevent empty fields from being added to our database.
-
-###9) Design and test our API
-
-I used a free product called Apiary [to document our API](http://docs.fcctodoapp.apiary.io/).
-
-Here's the syntax I used to [create this simple BluePrint](https://jsapi.apiary.io/apis/fcctodoapp.apib).
-
-I recommend you create an account and start playing with it. If you link your [GitHub](http://github.com/) account with Apiary, you can ensure your documentation always stays up to date. You'll also be able to test your data visually without the need for actually hitting your API endpoints. If you prefer to test your API from the command line, [here's an example of how to do this](http://docs.agendor.apiary.io/).
-
-
-Later, once you've implemented your API with Node.js and Express.js, you'll just need to set your URL in Apiary. Then you can start testing your calls. Our current host url (http://fcctodoapp.apiblueprint.org/) will be replaced by your API's URL.
-
-![App demo picture](https://lh6.googleusercontent.com/hU3ilG_y9FqtL_zajQ_KOjWy8Qx590Go8nkNvA1j0oR50YJTpjJhL1lAPgjyeLTAS06tq6V62EcJrLQyT_TR2BK49DYiX6kksU6s9cqJDvvaS6jvepIM6uiO4JMbXuu-oXhdsas)
-
-###10) Start writing code!
-
-This is the fun part, and it will take up most of your project's time. If you need help with this, join us and learn to code.
+# Learn how to plan your future project!
+_Blog post written by BiancaMihai - [GitHub](https://github.com/biancamihai) / [Twitter](https://twitter.com/intent/user?screen_name=bubuslubu)_
+
+An ounce of preparation is worth a pound of cure. That's true in medicine, and that's definitely true in software development.
+
+Here's a structured 10-step workflow that will guide you through the app planning process, with the goal of saving you from writing a lot of unnecessary code.
+
+Together, we'll plan out a simple "To-do" single-page web app. We'll also plan for an API backend for a future mobile app.
+
+## 1) Create our Trello board
+[Trello](https://trello.com/) is a fun, free way to break your planning and development process into small tasks that can be tracked.
+
+![Image of Trello board](https://lh3.googleusercontent.com/EI4AQ4NINm3B2DHR_YIS29JyKVa5dTPiT3RtITylmndFlpshTHepsKuO8_1KQNfdPDSBjslDReHCuPFeH1GNrDtgOwTyq6ZtGf3DFBmq1AsAhPHKt_0pLXQLf0o4ZbDuKVj4-Bo)
+
+[Here's what our Trello board will eventually look like](https://trello.com/b/O9MZcYyY/todo-app). I prefer to split my tasks into 3 columns (depending on the complexity of the project):
+- To Do - what is left to do
+- In progress - tasks that people are currently working on
+- Done - tasks that are done and ready for testing
+
+## 2) Write user stories
+Here are some example user stories. These will guide how we think about our app's features and functionality. Note that they all follow a similar structure: as a [person] I can [do something].
+- as a logged-in user I can see the list of my to-do's.
+- as a logged-in user I can add a new to-do.
+- as a logged-in user I can delete a to-do (only my to-do's - not other users').
+- as a logged-in user I can complete a to-do (only my to-do's - not other users').
+- as an anonymous user, I can register for a new account, recover my password, or log in to the app with an existing account.
+
+## 3) Create our use case model
+Our use case model will help us visualize our user stories so we can better understand how to implement them.
+
+![Anonymous user case diagram] ([https://lh5.googleusercontent.com/2v6iIMbCrLSKVfqttEToum7OA3YGQCBKWUHcSCB1KEbEcijXxQtKJKY6fhLXeecJiO27P4icOuPlkVc9_uNXolzlzNXOo_TPh09GZsAqRH-JISqPrpx0PZdtbHOr0RIuQUbTbaw](https://lh5.googleusercontent.com/2v6iIMbCrLSKVfqttEToum7OA3YGQCBKWUHcSCB1KEbEcijXxQtKJKY6fhLXeecJiO27P4icOuPlkVc9_uNXolzlzNXOo_TPh09GZsAqRH-JISqPrpx0PZdtbHOr0RIuQUbTbaw)) ![Authenticated user case diagram] ([https://lh6.googleusercontent.com/3V6dVvAcyjqFkaOukimucYOX0CfwBBYNN9SvjmnVy40Pdhs4Wtrr34i3E-9pbV7tFsp4jHm77IFQvFupjq6OWyxqEgCzcQ995Ayh52Msczu6TfwKeNhL9PYHyxSgmPYA1TR6l6Q](https://lh6.googleusercontent.com/3V6dVvAcyjqFkaOukimucYOX0CfwBBYNN9SvjmnVy40Pdhs4Wtrr34i3E-9pbV7tFsp4jHm77IFQvFupjq6OWyxqEgCzcQ995Ayh52Msczu6TfwKeNhL9PYHyxSgmPYA1TR6l6Q))
+
+## 4) Create our activity diagram
+Our activity diagram will show the different paths our users can take through our app.
+
+![Activity diagram picture](https://lh6.googleusercontent.com/jAQL4myqWOPA3gk2iTpGyAQBrO6p1GlPe8BQQ1Se6a-Di40X3Zw1p0wfJewZUL-YyDmedYzX5Lxvo2GW2Qnr6I-6kuKe1sDb9_5F_n46cKoawWReWW_ZoZCIJO6Semc4fvsiuHc)
+
+A user accesses our to-do application.
+- If the user is not logged in she will see our login page.
+- If she already has an account, she can log in.
+- If she has an account, but she forgot her password, she can recover her password.
+- If she doesn't have an account, she can create one.
+- Both "create an account" and "recover my password" will require email validation. A user can log in to our application only after she has confirmed her email address.
+- If she is logged in, she will see her to-do list (this can be empty if she hasn't added any to-dos yet).
+- A logged in user:
+ - is able to see her tasks list
+ - is able to mark a task from her list as completed
+ - is able to search within her task list
+ - is able to delete a task from her list
+ - can logout.
+
+- The user can exit the application at any time.
+
+## 5) Create our mockups
+Our mockups show what our app should look like. It's much faster to iterate on a mockup than it is to do so on working code.
+
+![Mockup picture](https://lh3.googleusercontent.com/GBFhmBkfr-xM5YSXlR0Fm9y8b24ivdRlUtRWQOHJ8skNxEgjTkAef0e5nZ-CcHKNUq2p4V4hgDuAm9LSEuvbovlVborH1ZioAUXVlEblWZ4hN_d2tGEpxhfTkKH9os2JS1pab4w)
+
+## 6) Choose the right technologies for our project
+Because this is a single page app, we'll rely heavily - or in this case exclusively - on JavaScript. Let's use one of the most popular JavaScript stacks: the MEAN stack. One big benefit of the MEAN stack is that all of its components are free and open-source. There are also tons of resources available for learning the MEAN stack, and for debugging it when you inevitably encounter errors.
+
+You can have a [MEAN stack development environment](http://www.freecodecamp.com/challenges/get-set-for-our-back-end-development-projects) up and running in the cloud in less than an hour, for free.
+
+Here are the components we'll use:
+1. [MongoDB](http://mongodb.org/) for our database
+2. [Node.js](http://nodejs.org/) and [Express.js](http://expressjs.com/) for implementing our API
+3. [AngularJS](http://angularjs.org/), along with HTML and CSS (and Bootstrap) for our client-side application
+4. [Mongoose](http://mongoosejs.com/) to connect our application to MongoDB
+
+## 7) Design our database schema
+It's worth the effort to design a database schema, even for our simple application.
+
+We'll have two collections: our "Users" collection will house our user data, and our "ToDo" collection will house our tasks that need to be done. One user can have zero, one, or many tasks in her to-do list, so we will have a one-to-many (1:m) relationship between our two collections.
+
+![Database schema diagram](https://lh6.googleusercontent.com/5uSb_xnSSc5CWXJD0yyUGVJsL92RRZl3Bex_3wjuzl5Xr69Ks0j3od-yFju24SAd5wWMBNy9uqBrvOzdrUWluOkbcr4H5zFg-ZemJX3ZRWS12D42OowuvWnxA7wWIGrhhzaQ0aw)
+
+## 8) Define our use cases
+1. What happens to the to-dos related to a user that deletes her account? When the user deletes her account the to-dos related to that user should also be deleted.
+2. No to-do can be added without being attached to a confirmed user.
+3. A to-do can only be deleted by its owner.
+4. No user can be added with an empty username or password.
+5. No to-do can be added with an empty task.
+
+Things to keep in mind:
+1. Use the Mongoose middleware to remove dependent documents like to-dos when a user deletes her account.
+2. Use Mongoose validation rules on models to prevent empty fields from being added to our database.
+
+## 9) Design and test our API
+I used a free product called Apiary [to document our API](http://docs.fcctodoapp.apiary.io/).
+
+Here's the syntax I used to [create this simple BluePrint](https://jsapi.apiary.io/apis/fcctodoapp.apib).
+
+I recommend you create an account and start playing with it. If you link your [GitHub](http://github.com/) account with Apiary, you can ensure your documentation always stays up to date. You'll also be able to test your data visually without the need for actually hitting your API endpoints. If you prefer to test your API from the command line, [here's an example of how to do this](http://docs.agendor.apiary.io/).
+
+Later, once you've implemented your API with Node.js and Express.js, you'll just need to set your URL in Apiary. Then you can start testing your calls. Our current host url ([http://fcctodoapp.apiblueprint.org/](http://fcctodoapp.apiblueprint.org/)) will be replaced by your API's URL.
+
+![App demo picture](https://lh6.googleusercontent.com/hU3ilG_y9FqtL_zajQ_KOjWy8Qx590Go8nkNvA1j0oR50YJTpjJhL1lAPgjyeLTAS06tq6V62EcJrLQyT_TR2BK49DYiX6kksU6s9cqJDvvaS6jvepIM6uiO4JMbXuu-oXhdsas)
+
+## 10) Start writing code!
+This is the fun part, and it will take up most of your project's time. If you need help with this, join us and learn to code.
View
305 Algorithm-Missing-letters.md
@@ -1,151 +1,154 @@
-# Problem Explanation:
-- You will create a program that will find the missing letter from a string and add it. If there is not missing letter it will return undefined. There is currently no test case for it missing more than one letter, but if anything recursion can be implemented or a second or more calls to the same function as needed. Also the letters are always provided in order so there is no need to sort them.
-
-## Hint: 1
-- You will need to convert from character to ASCII code using the two methods provided in the description.
-
-## Hint: 2
-- You will have to check for the difference in ASCII code as they are in order. Using a chart would be very helpful.
-
-## Hint: 3
-- You will need to figure out where to insert the letter and how to do it, along with handling the case that there is not missing letter as it needs an specific return value.
-
-## Spoiler Alert!
-[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
-
-**Solution ahead!**
-
-## Code Solution:
-####First solution:
-
-```js
-function fearNotLetter(str) {
- // Create our variables.
- var firstCharacter = str.charCodeAt(0);
- var valueToReturn = '';
- var secondCharacter = '';
-
- // Function to find the missing letters
- var addCharacters = function(a, b) {
- while (a - 1 > b) {
- b++;
- valueToReturn += String.fromCharCode(b);
- }
- return valueToReturn;
- };
-
- // Check if letters are missing in between.
- for (var index = 1; index < str.length; index++) {
- secondCharacter = str.charCodeAt(index);
-
- // Check if the diference in code is greater than one.
- if (secondCharacter - firstCharacter > 1) {
- // Call function to missing letters
- addCharacters(secondCharacter, firstCharacter);
- }
-
- // Switch positions
- firstCharacter = str.charCodeAt(index);
- }
-
- // Check whether to return undefined or the missing letters.
- if (valueToReturn === '')
- return undefined;
- else
- return valueToReturn;
-}
-```
-
-####Second solution:
-
-```js
-function fearNotLetter(str) {
-
- for(var i = 0; i < str.length; i++) {
- /* code of current character */
- var code = str.charCodeAt(i);
-
- /* if code of current character is not equal to first charcter + no of iteration
- hence character has been escaped*/
- if ( code !== str.charCodeAt(0) + i) {
-
- /* if current character has escaped one character find previous char and return*/
- return String.fromCharCode(code-1);
- }
- }
- return undefined;
-}
-```
-
-####Third solution (Declarative)
-```js
-// Adding this solution for the sake of avoiding using 'for' and 'while' loops.
-// See the explanation for reference as to why. It's worth the effort.
-
-function fearNotLetter(str) {
- var compare = str.charCodeAt(0), missing;
-
- str.split('').map(function(letter,index){
- if (str.charCodeAt(index) == compare) { ++compare; }
- else { missing = String.fromCharCode(compare); }
- });
-
- return missing;
-}
-```
-
-####Fourth solution:
-```js
-function fearNotLetter(str) {
- var strArr = str.split('');
- var missingChars = [], i = 0;
- var nextChar = String.fromCharCode(strArr[i].charCodeAt(0)+1);
- while (i<strArr.length - 1) {
- if (nextChar !== strArr[i+1]){
- missingChars.push(nextChar);
- nextChar = String.fromCharCode(nextChar.charCodeAt(0)+1);
- } else {
- i++;
- nextChar = String.fromCharCode(strArr[i].charCodeAt(0)+1);
- }
- }
- return missingChars.join('') === '' ? undefined : missingChars.join('') ;
-}
-```
-
-####Fifth solution:
-```js
-function fearNotLetter(str) {
- var allChars = '';
- var notChars = new RegExp('[^'+str+']','g');
- for (var i=0;allChars[allChars.length-1] !== str[str.length-1] ;i++)
- allChars += String.fromCharCode(str[0].charCodeAt(0)+i);
- return allChars.match(notChars) ? allChars.match(notChars).join('') : undefined;
-}
-```
-# Code Explanation:
-####First and second solutions:
-- Read comments in code.
-
-####Third solution (Declarative):
-- First we define variables to store the character code for the first letter in the string, and to store whatever missing letters we may find.
-- We turn the string to an array in order to map through it instead of using those nasty `for` and `whiles` (See [this article](http://www.sitepoint.com/quick-tip-stop-writing-loops-start-thinking-with-maps/) for refence as to why. And give it a serious try. Really... you'll thank me for it.
-(If you're not sure how to `map`, you can review [Challenge: Iterate over arrays with map] ](http://www.freecodecamp.com/challenges/Challenge-iterate-over-arrays-with-map) and [MDN's reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)).
-- As we `map` through our letters' character codes, we go comparing with the one that should be in that position.
-- If the current letter matches, we move the comparison variable to its next position so we can compare on the next cycle.
-- if not, the missing letter will be assigned to the `missing` variable, which will be returned after the map is finished.
-
-####Fourth solution:
-- Increase loop index only when you have found all the missing letters between current and next letter
-- Every time you find a missing letter push it to `missingchars`
-
-####Fifth solution:
-- Create a new String that consists all the letters in the range
-- Create a Regular Expression for anything except `str`
-- Use `match()` to strip off the `str` letters from your newly created String
-
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: **`thanks @Rafase282 @rohitnwn @sabahang @Hallaathrad for your help with Algorithm: Missing Letters`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+# Problem Explanation:
+- You will create a program that will find the missing letter from a string and add it. If there is not missing letter it will return undefined. There is currently no test case for it missing more than one letter, but if anything recursion can be implemented or a second or more calls to the same function as needed. Also the letters are always provided in order so there is no need to sort them.
+
+## Hint: 1
+- You will need to convert from character to ASCII code using the two methods provided in the description.
+
+## Hint: 2
+- You will have to check for the difference in ASCII code as they are in order. Using a chart would be very helpful.
+
+## Hint: 3
+- You will need to figure out where to insert the letter and how to do it, along with handling the case that there is not missing letter as it needs an specific return value.
+
+## Spoiler Alert!
+[![687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/thumb/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)](https://files.gitter.im/FreeCodeCamp/Wiki/nlOm/687474703a2f2f7777772e796f75726472756d2e636f6d2f796f75726472756d2f696d616765732f323030372f31302f31302f7265645f7761726e696e675f7369676e5f322e676966.gif)
+
+**Solution ahead!**
+
+## Code Solution:
+### First solution:
+
+```js
+function fearNotLetter(str) {
+ // Create our variables.
+ var firstCharacter = str.charCodeAt(0);
+ var valueToReturn = '';
+ var secondCharacter = '';
+
+ // Function to find the missing letters
+ var addCharacters = function(a, b) {
+ while (a - 1 > b) {
+ b++;
+ valueToReturn += String.fromCharCode(b);
+ }
+ return valueToReturn;
+ };
+
+ // Check if letters are missing in between.
+ for (var index = 1; index < str.length; index++) {
+ secondCharacter = str.charCodeAt(index);
+
+ // Check if the diference in code is greater than one.
+ if (secondCharacter - firstCharacter > 1) {
+ // Call function to missing letters
+ addCharacters(secondCharacter, firstCharacter);
+ }
+
+ // Switch positions
+ firstCharacter = str.charCodeAt(index);
+ }
+
+ // Check whether to return undefined or the missing letters.
+ if (valueToReturn === '')
+ return undefined;
+ else
+ return valueToReturn;
+}
+```
+
+### Second solution:
+
+```js
+function fearNotLetter(str) {
+
+ for(var i = 0; i < str.length; i++) {
+ /* code of current character */
+ var code = str.charCodeAt(i);
+
+ /* if code of current character is not equal to first charcter + no of iteration
+ hence character has been escaped*/
+ if ( code !== str.charCodeAt(0) + i) {
+
+ /* if current character has escaped one character find previous char and return*/
+ return String.fromCharCode(code-1);
+ }
+ }
+ return undefined;
+}
+```
+
+### Third solution (Declarative)
+
+```js
+// Adding this solution for the sake of avoiding using 'for' and 'while' loops.
+// See the explanation for reference as to why. It's worth the effort.
+
+function fearNotLetter(str) {
+ var compare = str.charCodeAt(0), missing;
+
+ str.split('').map(function(letter,index){
+ if (str.charCodeAt(index) == compare) { ++compare; }
+ else { missing = String.fromCharCode(compare); }
+ });
+
+ return missing;
+}
+```
+
+### Fourth solution:
+
+```js
+function fearNotLetter(str) {
+ var strArr = str.split('');
+ var missingChars = [], i = 0;
+ var nextChar = String.fromCharCode(strArr[i].charCodeAt(0)+1);
+ while (i<strArr.length - 1) {
+ if (nextChar !== strArr[i+1]){
+ missingChars.push(nextChar);
+ nextChar = String.fromCharCode(nextChar.charCodeAt(0)+1);
+ } else {
+ i++;
+ nextChar = String.fromCharCode(strArr[i].charCodeAt(0)+1);
+ }
+ }
+ return missingChars.join('') === '' ? undefined : missingChars.join('') ;
+}
+```
+
+### Fifth solution:
+
+```js
+function fearNotLetter(str) {
+ var allChars = '';
+ var notChars = new RegExp('[^'+str+']','g');
+ for (var i=0;allChars[allChars.length-1] !== str[str.length-1] ;i++)
+ allChars += String.fromCharCode(str[0].charCodeAt(0)+i);
+ return allChars.match(notChars) ? allChars.match(notChars).join('') : undefined;
+}
+```
+
+# Code Explanation:
+## First and second solutions:
+- Read comments in code.
+
+## Third solution (Declarative):
+- First we define variables to store the character code for the first letter in the string, and to store whatever missing letters we may find.
+- We turn the string to an array in order to map through it instead of using those nasty `for` and `whiles` (See [this article](http://www.sitepoint.com/quick-tip-stop-writing-loops-start-thinking-with-maps/) for refence as to why. And give it a serious try. Really... you'll thank me for it.
+- (If you're not sure how to `map`, you can review [Challenge: Iterate over arrays with map] ](http://www.freecodecamp.com/challenges/iterate-over-arrays-with-map) and [MDN's reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)).
+- As we `map` through our letters' character codes, we go comparing with the one that should be in that position.
+- If the current letter matches, we move the comparison variable to its next position so we can compare on the next cycle.
+- if not, the missing letter will be assigned to the `missing` variable, which will be returned after the map is finished.
+
+## Fourth solution:
+- Increase loop index only when you have found all the missing letters between current and next letter
+- Every time you find a missing letter push it to `missingchars`
+
+## Fifth solution:
+- Create a new String that consists all the letters in the range
+- Create a Regular Expression for anything except `str`
+- Use `match()` to strip off the `str` letters from your newly created String
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: **`thanks @Rafase282 @rohitnwn @sabahang @Hallaathrad for your help with Algorithm: Missing Letters`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
View
80 Algorithm-Style-Guide.md
@@ -1,40 +1,40 @@
-_work in progress_
-
-# Algorithm Style Guide
-Writing Algorithm challenges is a great way to exercise your own problem solving and testing abilities. It is a simple three step process.
-1. Fill out the [generator](http://www.freecodecamp.com/algorithm-challenge-generator) form and test your challenge.
-2. Once you have confirmed a working Algorithm challenge in the generator, copy and paste the fields into the [JSON generator.](http://www.freecodecamp.com/algorithm-json-generator)
-3. Copy the JSON, fork the freecodecamp repository, and submit a pull request with your addition to the challenge .json file.
-
-## Name
-Name your challenge
-
-## Difficulty
-Attempt to rate difficulty compared against existing Algorithm challenges.
-
-_TODO: add basic quantifiers for each difficulty level_
-
-## Description
-Separate paragraphs with a line break. Only the first paragraph is visible prior to a user clicking the "More information" button.
-
-All necessary information must be included in the first paragraph. Write this first paragraph as succinct as possible. Subsequent paragraphs should offer hints or details if needed.
-
-If your subject matter warrants deeper understanding, you may link to Wikipedia.
-
-## Challenge Seed
-This is important.
-
-## ~~Challenge Entry Point~~ (deprecated)
-_Leave this field blank. It will soon be removed from the generator._
-
-## Tests
-These tests are what bring your challenge to life. Without them, we cannot confirm the accuracy of a user's submitted answer. Choose your tests wisely.
-
-Algorithm tests are written using the [Chai.js](http://chaijs.com/) assertion library. Please use the `should` and `expect` syntax for end user readability. As an example of what not do to, many of the original Algorithm challenges are written with `assert` syntax and many of the test cases are difficult to read.
-
-If your Algorithm question has a lot of edge cases, you will need to write many tests for full coverage. If you find yourself writing more tests than you desire, you may consider simplifying the requirements of your Algorithm challenge. For difficulty level 1 through 3, you will generally only need 2 to 4 tests.
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat: **`Thanks @brandenbyers @Rafase282 for your help with the Algorithm Style Guide`**
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+_work in progress_
+
+# Algorithm Style Guide
+Writing Algorithm challenges is a great way to exercise your own problem solving and testing abilities. It is a simple three step process.
+1. Fill out the [generator](http://www.freecodecamp.com/algorithm-challenge-generator) form and test your challenge.
+2. Once you have confirmed a working Algorithm challenge in the generator, copy and paste the fields into the [JSON generator.](http://www.freecodecamp.com/algorithm-json-generator)
+3. Copy the JSON, fork the freecodecamp repository, and submit a pull request with your addition to the challenge .json file.
+
+## Name
+Name your challenge
+
+## Difficulty
+Attempt to rate difficulty compared against existing Algorithm challenges.
+
+_TODO: add basic quantifiers for each difficulty level_
+
+## Description
+Separate paragraphs with a line break. Only the first paragraph is visible prior to a user clicking the "More information" button.
+
+All necessary information must be included in the first paragraph. Write this first paragraph as succinct as possible. Subsequent paragraphs should offer hints or details if needed.
+
+If your subject matter warrants deeper understanding, you may link to Wikipedia.
+
+## Challenge Seed
+This is important.
+
+## ~~Challenge Entry Point~~ (deprecated)
+_Leave this field blank. It will soon be removed from the generator._
+
+## Tests
+These tests are what bring your challenge to life. Without them, we cannot confirm the accuracy of a user's submitted answer. Choose your tests wisely.
+
+Algorithm tests are written using the [Chai.js](http://chaijs.com/) assertion library. Please use the `should` and `expect` syntax for end user readability. As an example of what not do to, many of the original Algorithm challenges are written with `assert` syntax and many of the test cases are difficult to read.
+
+If your Algorithm question has a lot of edge cases, you will need to write many tests for full coverage. If you find yourself writing more tests than you desire, you may consider simplifying the requirements of your Algorithm challenge. For difficulty level 1 through 3, you will generally only need 2 to 4 tests.
+
+# Credits:
+If you found this page useful, you can give thanks by copying and pasting this on the main chat: **`Thanks @brandenbyers @Rafase282 for your help with the Algorithm Style Guide`**
+
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
View
77 Back-End-Project-Resources.md
@@ -1,36 +1,41 @@
-The curriculum lead-up to the first Back End Project is not very comprehensive. Here are a number of common resources which other campers have found helpful.
-
-### Getting Started with Back End Projects
-* https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Back End Projects - Lots of helpful tips and tricks for the Yeoman Angular Fullstack setup
-* https://github.com/DaftMonk/generator-angular-fullstack#generators - Generator used by Yeoman, you can find syntax and what files it creates
-
-### APIs
-* API for Charting the stock market: https://www.quandl.com/help/api
-
-### MEAN Stack Tutorials & Videos
-* 5 Part Series on setting up a MEAN stack
-https://www.youtube.com/watch?v=kHV7gOHvNdk
-
-* A MEAN tutorial that creates a simple Twitter clone
-https://channel9.msdn.com/Series/MEAN-Stack-Jump-Start
-
-* Clementine is a stripped down MEAN stack, great for learning the fundamentals.
-https://johnstonbl01.github.io/clementinejs/tutorials/tutorial-beginner.html
-
-* Authentication with Passport for the MEAN stack:
-https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs
-
-* An amazing list of resources for learning the MEAN stack:
-https://github.com/ericdouglas/MEAN-Learning
-
-### Scotch IO Tutorials
-* https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application
-* https://scotch.io/tutorials/node-and-angular-to-do-app-application-organization-and-structure
-
-### Node/Express
-* [Online Debugging for Node.js/Express](http://stackoverflow.com/a/16512303/1420506)
-
-### Cloud 9 Tricks
-##### Speed up browser reloads
-1. Open gruntfile.js and edit both instances of `livereload: true` to `livereload: false`.
-2. Open server/config/express.js and comment out the line `app.use(require('connect-livereload')());`
+The curriculum lead-up to the first Back End Project is not very comprehensive. Here are a number of common resources which other campers have found helpful.
+
+# Getting Started with Back End Projects
+- [https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Back-End-Projects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Back-End-Projects) - Lots of helpful tips and tricks for the Yeoman Angular Fullstack setup
+- [https://github.com/DaftMonk/generator-angular-fullstack#generators](https://github.com/DaftMonk/generator-angular-fullstack#generators) - Generator used by Yeoman, you can find syntax and what files it creates
+
+# APIs
+- API for Charting the stock market: [https://www.quandl.com/help/api](https://www.quandl.com/help/api)
+
+# MEAN Stack Tutorials & Videos
+- 5 Part Series on setting up a MEAN stack
+
+ [https://www.youtube.com/watch?v=kHV7gOHvNdk](https://www.youtube.com/watch?v=kHV7gOHvNdk)
+
+- A MEAN tutorial that creates a simple Twitter clone
+
+ [https://channel9.msdn.com/Series/MEAN-Stack-Jump-Start](https://channel9.msdn.com/Series/MEAN-Stack-Jump-Start)
+
+- Clementine is a stripped down MEAN stack, great for learning the fundamentals.
+
+ [https://johnstonbl01.github.io/clementinejs/tutorials/tutorial-beginner.html](https://johnstonbl01.github.io/clementinejs/tutorials/tutorial-beginner.html)
+
+- Authentication with Passport for the MEAN stack:
+
+ [https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs](https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs)
+
+- An amazing list of resources for learning the MEAN stack:
+
+ [https://github.com/ericdouglas/MEAN-Learning](https://github.com/ericdouglas/MEAN-Learning)
+
+# Scotch IO Tutorials
+- [https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application](https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application)
+- [https://scotch.io/tutorials/node-and-angular-to-do-app-application-organization-and-structure](https://scotch.io/tutorials/node-and-angular-to-do-app-application-organization-and-structure)
+
+# Node/Express
+- [Online Debugging for Node.js/Express](http://stackoverflow.com/a/16512303/1420506)
+
+# Cloud 9 Tricks
+## Speed up browser reloads
+1. Open gruntfile.js and edit both instances of `livereload: true` to `livereload: false`.
+2. Open server/config/express.js and comment out the line `app.use(require('connect-livereload')());`
View
10 Checkpoint-Counting-Cards.md
@@ -24,9 +24,9 @@ You will write a card counting function. It will receive a **card** parameter an
Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck) if you get stuck. Try to pair program. Write your own code.
## Useful Links
-- [Challenge: Selecting from many options with Switch Statements](http://www.freecodecamp.com/challenges/Challenge-selecting-from-many-options-with-switch-statements)
-- [Challenge: Chaining If Else Statements](http://www.freecodecamp.com/challenges/Challenge-chaining-if-else-statements)
-- [Challenge: Increment a Number with Javascript](http://www.freecodecamp.com/challenges/Challenge-increment-a-number-with-javascript)
+- [Challenge: Selecting from many options with Switch Statements](http://www.freecodecamp.com/challenges/selecting-from-many-options-with-switch-statements)
+- [Challenge: Chaining If Else Statements](http://www.freecodecamp.com/challenges/chaining-if-else-statements)
+- [Challenge: Increment a Number with Javascript](http://www.freecodecamp.com/challenges/increment-a-number-with-javascript)
## Problem Explanation:
- Change the code below `// Only change code below this line` and up to `// Only change code above this line`
@@ -98,8 +98,8 @@ function cc(card) {
- After the `switch` statement, the `if` statement checks `count`, which is now 0
- This then drops down to the `else` statement, which will return **0 Hold**
-***Note***
-As mentioned earlier, the `switch` statement could have also been an `else if` statment
+***Note***
+As mentioned earlier, the `switch` statement could have also been an `else if` statement
# Credits:
If you found this page useful, you can give thanks by copying and pasting this on the main chat: **`thanks @leftynaut for your help with Checkpoint: Counting Cards`**
View
6 Checkpoint-Golf-Code.md
@@ -20,9 +20,9 @@ par and strokes will always be numeric and positive.
Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck) if you get stuck. Try to pair program. Write your own code.
## Useful Links
-- [Challenge: Chaining If Else Statements](http://www.freecodecamp.com/challenges/Challenge-chaining-if-else-statements)
-- [Challenge: Comparison with the Greater Than Equal To Operator](http://www.freecodecamp.com/challenges/Challenge-comparison-with-the-greater-than-equal-to-operator)
-- [Challenge: Comparison with the Less Than Equal To Operator](http://www.freecodecamp.com/challenges/Challenge-comparison-with-the-less-than-equal-to-operator)
+- [Challenge: Chaining If Else Statements](http://www.freecodecamp.com/challenges/chaining-if-else-statements)
+- [Challenge: Comparison with the Greater Than Equal To Operator](http://www.freecodecamp.com/challenges/comparison-with-the-greater-than-equal-to-operator)
+- [Challenge: Comparison with the Less Than Equal To Operator](http://www.freecodecamp.com/challenges/comparison-with-the-less-than-equal-to-operator)
## Problem Explanation:
- Change the code below `// Only change code below this line` and above `// Only change code above this line`
View
6 Checkpoint-Profile-Lookup.md
@@ -17,8 +17,8 @@ If **prop** does not correspond to any valid properties then return **"No such p
Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck) if you get stuck. Try to pair program. Write your own code.
## Useful Links
-- [Challenge: Accessing Objects Properties with Bracket Notation](http://www.freecodecamp.com/challenges/Challenge-accessing-objects-properties-with-bracket-notation)
-- [Challenge: Iterate with JavaScript For Loops](http://www.freecodecamp.com/challenges/Challenge-iterate-with-javascript-for-loops)
+- [Challenge: Accessing Objects Properties with Bracket Notation](http://www.freecodecamp.com/challenges/accessing-objects-properties-with-bracket-notation)
+- [Challenge: Iterate with JavaScript For Loops](http://www.freecodecamp.com/challenges/iterate-with-javascript-for-loops)
## Problem Explanation:
- Change the code below `// Only change code below this line` and up to `// Only change code above this line`
@@ -79,4 +79,4 @@ return "No such contact";
# Credits:
If you found this page useful, you can give thanks by copying and pasting this on the main chat: **`thanks @leftynaut for your help with Checkpoint: Profile Lookup`**
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
+> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
View
8 Checkpoint-Record-Collection.md
@@ -19,10 +19,10 @@ Always return the entire collection object.
Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck) if you get stuck. Try to pair program. Write your own code.
## Useful Links
-- [Challenge: Accessing Objects Properties with Bracket Notation](http://www.freecodecamp.com/challenges/Challenge-accessing-objects-properties-with-bracket-notation)
-- [Challenge: Add New Properties to a JavaScript Object](http://www.freecodecamp.com/challenges/Challenge-add-new-properties-to-a-javascript-object)
-- [Challenge: Delete Properties from a JavaScript Object](http://www.freecodecamp.com/challenges/Challenge-delete-properties-from-a-javascript-object)
-- [Challenge: Accessing Nested Objects in JSON] (http://www.freecodecamp.com/challenges/Challenge-accessing-nested-objects-in-json)
+- [Challenge: Accessing Objects Properties with Bracket Notation](http://www.freecodecamp.com/challenges/accessing-objects-properties-with-bracket-notation)
+- [Challenge: Add New Properties to a JavaScript Object](http://www.freecodecamp.com/challenges/add-new-properties-to-a-javascript-object)
+- [Challenge: Delete Properties from a JavaScript Object](http://www.freecodecamp.com/challenges/delete-properties-from-a-javascript-object)
+- [Challenge: Accessing Nested Objects in JSON] (http://www.freecodecamp.com/challenges/accessing-nested-objects-in-json)
## Problem Explanation:
- Change the code below `// Only change code below this line` and up to `// Alter values below to test your code`
View
2 Checkpoint-Shopping-List.md
@@ -10,7 +10,7 @@ There should be at least 5 sub-arrays in the list.
Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck) if you get stuck. Try to pair program. Write your own code.
## Useful Link
-- [Challenge: Nest one Array within Another Array](http://www.freecodecamp.com/challenges/Challenge-nest-one-array-within-another-array)
+- [Challenge: Nest one Array within Another Array](http://www.freecodecamp.com/challenges/nest-one-array-within-another-array)
## Problem Explanation:
- `myList` should be an array.
View
12 Checkpoint-Stand-In-Line.md
@@ -6,18 +6,18 @@ In Computer Science a **queue** is an abstract *Data Structure* where items are
***Instructions***
-Write a function queue which takes an "array" and an "item" as arguments.
+Write a function queue which takes an "array" and an "item" as arguments.
-Add the item onto the end of the array, then remove the first element of the array.
+Add the item onto the end of the array, then remove the first element of the array.
The queue function should return the element that was removed.
Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck) if you get stuck. Try to pair program. Write your own code.
## Useful Links
-- [Challenge: Manipulate Arrays With push()](http://www.freecodecamp.com/challenges/Challenge-manipulate-arrays-with-push)
-- [Challenge: Manipulate Arrays With shift()](http://www.freecodecamp.com/challenges/Challenge-manipulate-arrays-with-shift)
-- [Challenge: Passing Values to Functions with Arguments](http://www.freecodecamp.com/challenges/Challenge-passing-values-to-functions-with-arguments)
+- [Challenge: Manipulate Arrays With push()](http://www.freecodecamp.com/challenges/manipulate-arrays-with-push)
+- [Challenge: Manipulate Arrays With shift()](http://www.freecodecamp.com/challenges/manipulate-arrays-with-shift)
+- [Challenge: Passing Values to Functions with Arguments](http://www.freecodecamp.com/challenges/passing-values-to-functions-with-arguments)
## Problem Explanation:
- Change the code below `//Your Code here` and up to `//Change this line`
@@ -63,7 +63,7 @@ function queue(arr, item) {
- `var removed = arr.shift();` Removes the first element. So `arr` is now [1]. 2 has been removed and is stored in `removed`
- `return removed;` 2 is returned
-***Note***
+***Note***
You don't actually need to store it in a variable if you return it directly!
```js
View
6 Checkpoint-Word-Blanks.md
@@ -10,9 +10,9 @@ Remember to use [ Read-Search-Ask](http://github.com/FreeCodeCamp/freecodecamp/w
## Useful Links
- [Mad Libs](https://en.wikipedia.org/wiki/Mad_Libs)
-- [Challenge: Constructing Strings with Variables](http://www.freecodecamp.com/challenges/Challenge-constructing-strings-with-variables)
-- [Challenge: Concatenating Strings with Plus Operator](http://www.freecodecamp.com/challenges/Challenge-concatenating-strings-with-plus-operator)
-- [Challenge: Concatenating Strings with the Plus Equals Operator](http://www.freecodecamp.com/challenges/Challenge-concatenating-strings-with-the-plus-equals-operator)
+- [Challenge: Constructing Strings with Variables](http://www.freecodecamp.com/challenges/constructing-strings-with-variables)
+- [Challenge: Concatenating Strings with Plus Operator](http://www.freecodecamp.com/challenges/concatenating-strings-with-plus-operator)
+- [Challenge: Concatenating Strings with the Plus Equals Operator](http://www.freecodecamp.com/challenges/concatenating-strings-with-the-plus-equals-operator)
## Problem Explanation:
- Change the code below `//Your Code here` and up to `//Change this line`.
View
14 Contributions-Guide---with-Typo-Demo.md
@@ -1,9 +1,9 @@
# Detailed Guide to Contributions.
===================================
- Guide first posted at [Sean Campbell's Blog](https://natacseanc.wordpress.com/2015/09/07/beginners-guide-to-easy-contributions-to-free-code-camp/)
+ Guide first posted at [Sean Campbell's Blog](https://natacseanc.wordpress.com/2015/09/07/beginners-guide-to-easy-contributions-to-free-code-camp/)
-The first 2 steps are *setting up* the environment.
+The first 2 steps are *setting up* the environment.
### Step 1: Fork, Clone, Upstream Setup
@@ -32,7 +32,7 @@ Your local `staging` branch is up to date with the [Free Code Camp repo](https:/
### Step 2: Follow README.md Instructions for more Setup.
-This guide stresses importance of reading the [README.md](https://github.com/FreeCodeCamp/FreeCodeCamp#contributing) on contributing. Please have [ESlinter](http://eslint.org/docs/user-guide/integrations.html) running, as the warning are there to help you.
+This guide stresses importance of reading the [README.md](https://github.com/FreeCodeCamp/FreeCodeCamp#contributing) on contributing. Please have [ESlinter](http://eslint.org/docs/user-guide/integrations.html) running, as the warning are there to help you.
### Prerequisites
@@ -61,7 +61,7 @@ npm install -g gulp
touch .env
```
-What goes in the .env file?? Well first if you do not have a [Mandrill account](https://mandrill.com/signup/?_ga=1.36983655.693747097.1440924471) you will need to set one up.
+What goes in the .env file?? Well first if you do not have a [Mandrill account](https://mandrill.com/signup/?_ga=1.36983655.693747097.1440924471) you will need to set one up.
Mandrill is an email service that is beyond the scope of this guide. A quick note; this file will not be included when pushing to GitHub as it will be listed in the `.gitignore` file.
#### .env file contents
@@ -135,7 +135,7 @@ The issue on GitHub will look something like this.
<a href="https://natacseanc.files.wordpress.com/2015/09/issue1.png"><img class="alignnone wp-image-161" src="https://natacseanc.files.wordpress.com/2015/09/issue1.png?w=300" alt="issue" width="456" height="205" /></a>
-To find out what file the challenge will be in go to the FCC Map to find out which section the challenge is a part of; the example is [Learn how Script Tags and Document Ready Work](http://freecodecamp.com/challenges/Challenge-learn-how-script-tags-and-document-ready-work) and it is a part of the jQuery section.
+To find out what file the challenge will be in go to the FCC Map to find out which section the challenge is a part of; the example is [Learn how Script Tags and Document Ready Work](http://freecodecamp.com/challenges/learn-how-script-tags-and-document-ready-work) and it is a part of the jQuery section.
<a href="https://natacseanc.files.wordpress.com/2015/09/section.png"><img class="alignnone size-medium wp-image-164" src="https://natacseanc.files.wordpress.com/2015/09/section.png?w=300" alt="section" width="300" height="262" /></a>
@@ -158,7 +158,7 @@ Go to your terminal and run the command below to make sure that nothing has chan
git fetch upstream
```
-If there was a change then merge in like Step 1. Create a branch that explains the change ie `fix/typo-jquery-challenge-test`. Include a brief description of the changes you have made. Include `closes #1337` for each issue that this pull request intends to close.
+If there was a change then merge in like Step 1. Create a branch that explains the change ie `fix/typo-jquery-test`. Include a brief description of the changes you have made. Include `closes #1337` for each issue that this pull request intends to close.
```bash
# create and move to branch
@@ -236,7 +236,7 @@ Clicking this takes you to the screen where you can review the changes once agai
<img class="alignnone size-full wp-image-132" src="https://natacseanc.files.wordpress.com/2015/09/pr.png" alt="pr" width="600" height="489" />
-Guide written by: [@natac13](https://github.com/natac13) on Twitter [@natac1311](https://twitter.com/?lang=en)
+Guide written by: [@natac13](https://github.com/natac13) on Twitter [@natac1311](https://twitter.com/?lang=en)
### Appendix A: Stash
View
20 Frontend-file-structure.md
@@ -1,11 +1,9 @@
-First things first: All your user-facing files and angular files are in **/client/app/**
-
-1. **app.js**: defines your app and includes some basic app-wide functions, you probably don’t really need to mess with it unless you’re trying to add more dependencies to your app. We’re not gonna worry about that right now.
-2. **app.css**: an app-wide stylesheet, you can put styles here if you want but I’d recommend you put them in **main/main.css**, as these styles are also app-wide.
-3. **main/**: this folder contains what the user sees first when they load up your site. **main.html** is the page template, **main.js** routes the user to **main.html** when the user goes to the top level directory of your website—that is, <a href="#">http://yourapp.wherever.itis/</a> with no <a href="#">/other/url/hierarchy</a>. You’ll also learn soon that you can define your app’s <a href="#">/url/heirarchy/fairly/arbitrarily</a>. You won’t really need to edit **main.js** or **main.controller.spec.js**, so let's not worry about those right now. If you look through the **main.html** file you’ll see it uses *ng-repeat* to show *things* in *awesomeThings*. Where does it get *awesomeThings*?
-4. **main/main.controller.js**: all of the javascript functions you want to use to interact directly with the user go here! You’ll put functions here to interact with your API, refresh views for your user, etc. Here, *awesomeThings* are pulled from your database and added to the local scope so your HTML view can display them! How cool! We’ll get to adding custom objects to your database in a minute.
-
-Great! Now you know how to interact with the user! But what if you want your app to have another page that does something else? Maybe **main.html** shows the home page, but you want a page that shows a form to add a poll? maybe <a href="#">http://yourapp.wherever.itis/newpage</a>? This is where the yeoman generator comes in handy.
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Back End Projects-Table-of-Contents/)
-[NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
+First things first: All your user-facing files and angular files are in **/client/app/**
+1. **app.js**: defines your app and includes some basic app-wide functions, you probably don't really need to mess with it unless you're trying to add more dependencies to your app. We're not gonna worry about that right now.
+2. **app.css**: an app-wide stylesheet, you can put styles here if you want but I'd recommend you put them in **main/main.css**, as these styles are also app-wide.
+3. **main/**: this folder contains what the user sees first when they load up your site. **main.html** is the page template, **main.js** routes the user to **main.html** when the user goes to the top level directory of your website--that is, [http://yourapp.wherever.itis/](#) with no [/other/url/hierarchy](#). You'll also learn soon that you can define your app's [/url/heirarchy/fairly/arbitrarily](#). You won't really need to edit **main.js** or **main.controller.spec.js**, so let's not worry about those right now. If you look through the **main.html** file you'll see it uses _ng-repeat_ to show _things_ in _awesomeThings_. Where does it get _awesomeThings_?
+4. **main/main.controller.js**: all of the javascript functions you want to use to interact directly with the user go here! You'll put functions here to interact with your API, refresh views for your user, etc. Here, _awesomeThings_ are pulled from your database and added to the local scope so your HTML view can display them! How cool! We'll get to adding custom objects to your database in a minute.
+
+Great! Now you know how to interact with the user! But what if you want your app to have another page that does something else? Maybe **main.html** shows the home page, but you want a page that shows a form to add a poll? maybe [http://yourapp.wherever.itis/newpage](#)? This is where the yeoman generator comes in handy.
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Back-End-Projects-Table-of-Contents) [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
View
64 Guide-to-Back-End-Projects-Table-of-Contents.md
@@ -1,31 +1,33 @@
-###Table of contents
-* Part 1: Frontend
- - [Frontend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
- - [Creating a new route](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
- - [Creating a new directive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
- - [Grunt](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
-* Part 2: Backend
- - [Backend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
- - [Creating a new API endpoint](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
- - [Fixing exports.update](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
-* Part 3: Interfacing Between Frontend & Backend
- - [Accessing the database from your frontend](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
- - [Seed Data](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
- - [Quick tip: keep data in sync](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip-keep-data-in-sync)
-* Part 4: Dynamic URLs using $routeParams, more useful APIs
- - [Dynamic URLS using $routeParams](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-$routeParams)
- - [More Useful APIs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
-* Part 5: Auth, isLoggedInAsync()
- - [Get info about the current user](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
- - [Restrict a page to authenticated users](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
- - [isLoggedInAsync()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
-* [Bonus: SocketIO](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonus-SocketIO)
-* [Epilogue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Epilogue)
-
-###Legend
-**/bolded/names/with.extensions** are directories and files in the project file structure
-<a href="#">highlighted.items/are/hypothetical</a> URLs that allow access to different pages in your app
-*italicizedItems* are function and object names within your code
-
-[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Back End Projects)
-[NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
+# Table of contents
+- Part 1: Frontend
+ - [Frontend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
+ - [Creating a new route](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-route)
+ - [Creating a new directive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-directive)
+ - [Grunt](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Grunt)
+
+- Part 2: Backend
+ - [Backend file structure](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Backend-file-structure)
+ - [Creating a new API endpoint](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Creating-a-new-API-endpoint)
+ - [Fixing exports.update](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fixing-exports.update)
+
+- Part 3: Interfacing Between Frontend & Backend
+ - [Accessing the database from your frontend](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-the-database-from-your-frontend)
+ - [Seed Data](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Seed-data)
+ - [Quick tip: keep data in sync](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quick-tip-keep-data-in-sync)
+
+- Part 4: Dynamic URLs using $routeParams, more useful APIs
+ - [Dynamic URLS using $routeParams](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Dynamic-URLs-using-$routeParams)
+ - [More Useful APIs](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/More-useful-APIs)
+
+- Part 5: Auth, isLoggedInAsync()
+ - [Get info about the current user](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-info-about-the-current-user)
+ - [Restrict a page to authenticated users](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Restrict-a-page-to-authenticated-users)
+ - [isLoggedInAsync()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/isLoggedInAsync())
+
+- [Bonus: SocketIO](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Bonus-SocketIO)
+- [Epilogue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Epilogue)
+
+# Legend
+**/bolded/names/with.extensions** are directories and files in the project file structure<br>[highlighted.items/are/hypothetical](#) URLs that allow access to different pages in your app<br>_italicizedItems_ are function and object names within your code
+
+[PREVIOUS](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Intro-to-Yeoman-Angular-Fullstack-Back-End-Projects) [NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Frontend-file-structure)
View
217 How-to-get-the-MEAN-stack-running-locally-on-OSX.md
@@ -1,97 +1,120 @@
-## Requirements
-To install MongoDB, you should have Mac OS X 10.6 (Snow Leopard) or above. To find out which version of OS X you own, click the  icon in the top left corner of your screen and select `About This Mac`.
-
-:warning: **WARNING:** do a Time Machine backup before carrying out any of the following steps!
-
-## Step 1: installing MongoDB
-The easiest way to install MongoDB on OS X is using [HomeBrew](http://brew.sh/). If you haven't used HomeBrew before, simply execute the following command in a Terminal window:
-```sh
-ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-```
-After HomeBrew is successfully installed, follow up with this command:
-```sh
-brew update && brew install mongodb
-```
-HomeBrew will automatically install all the dependencies for you.
-
-## Step 2: installing Node.js
-Again, we'll let HomeBrew do the heavy lifting:
-```sh
-brew install node
-```
-The npm executable is already included in the Node.js package.
-
-Before continuing, let's make sure Node.js modules can be found by others (:warning: **CAUTION**: it's best to copy and paste these commands, as you'd lose the original contents of your `.bashrc` file if you typed `>` in place of `>>`):
-```sh
-echo 'export NODE_PATH="./node_modules:/usr/local/lib/node_modules"' >> ~/.bashrc && source ~/.bashrc
-```
-To check if the configuration is in effect, execute:
-```sh
-echo $NODE_PATH
-```
-You should see `./node_modules:/usr/local/lib/node_modules` printed out below your command.
-
-If you use a different shell than Bash, simply replace `~/.bashrc` with your shell configuration file.
-
-## Step 3: installing fullstack tools
-```sh
-npm install -g express yo grunt grunt-cli generator-angular-fullstack bower
-```
-
-## Step 4: generating a fullstack app
-Make a directory for your Back End Project projects. Assuming your desktop is your de facto workspace:
-```sh
-mkdir ~/Desktop/Back End Projects && cd ~/Desktop/Back End Projects
-```
-Now that all the preparations are in place, it's time for the main event:
-```sh
-yo angular-fullstack
-```
-Answer the questions according to checklist items #13-23 of [Challenge: Get Set for Back End Projects](http://www.freecodecamp.com/challenges/Challenge-get-set-for-Back End Projects). Consult #24-27 if you run into errors. This will download ~350MB worth of files into your current directory.
-
-Before going any further, we need to fix a [known issue](https://github.com/clnhll/guidetobasejumps#fixing-exportsupdate) in some generated files:
-```sh
-echo "sed -i '' -e 's/_.merge/_.extend/' server/api/*/*.controller.js" > \
-fix-exports-update.sh && chmod +x fix-exports-update.sh && \
-./fix-exports-update.sh
-```
-You need to run `./fix-exports-update.sh` every time you generate a new API endpoint (until they fix this upstream, that is).
-
-## Step 5: initialising local Git repository
-Tell Git not to track your database:
-```sh
-echo "data" >> .gitignore
-```
-
-Turn the directory in which your application is located into a Git repository by running the following commands:
-```sh
-git init && git add . && git commit -am 'initial commit'
-```
-
-## Step 6: starting MongoDB
-To start MongoDB for the first time in your app's directory, run the following commands in your terminal:
-```sh
-mkdir data && echo 'mongod --config /usr/local/etc/mongod.conf --dbpath=data --rest "$@" --httpinterface' > mongod.sh && chmod a+x mongod.sh && ./mongod.sh
-```
-From this point on you can simply start MongoDB by executing `./mongod.sh`. A few things to note:
-* The `.conf` file directs `mongod` to write messages to a log file instead of stdout. To view the log, run the following in a separate Terminal tab: `less /usr/local/var/log/mongodb/mongo.log`.
-* Since we're not on Cloud9, we don't need the `--nojournal` option. Journaling lets you recover the database in case of a `mongod` crash.
-* You have to make a clean database for each project. If you copied the `data` directory over from an earlier project, `mongod` will fail to start. If that's the case, just `rm -rf data && mkdir data && ./mongod.sh`.
-
-## Step 7: starting Grunt
-Open a new Terminal tab by pressing `⌘T`, and run the following command:
-```sh
-grunt serve
-```
-Grunt should automatically open your new Angular site's index page as soon as it finishes starting up.
-
-Now you should be able to follow the rest of the Challenge instructions to push to GitHub and Heroku. Just ignore the part about SSH key (#33-36) and replace `~/workspace` with your app directory's path.
-
-***
-
-##### Footnote
-The above steps were tested under the following configuration:
-* OS X 10.10.5
-* zsh 5.0.8 (x86_64-apple-darwin14.3.0)
-* node v0.12.7
-* npm 2.11.3
+# Requirements
+To install MongoDB, you should have Mac OS X 10.6 (Snow Leopard) or above. To find out which version of OS X you own, click the  icon in the top left corner of your screen and select `About This Mac`.
+
+:warning: **WARNING:** do a Time Machine backup before carrying out any of the following steps!
+
+# Step 1: installing MongoDB
+The easiest way to install MongoDB on OS X is using [HomeBrew](http://brew.sh/). If you haven't used HomeBrew before, simply execute the following command in a Terminal window:
+
+```sh
+ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+After HomeBrew is successfully installed, follow up with this command:
+
+```sh
+brew update && brew install mongodb
+```
+
+HomeBrew will automatically install all the dependencies for you.
+
+# Step 2: installing Node.js
+Again, we'll let HomeBrew do the heavy lifting:
+
+```sh
+brew install node
+```
+
+The npm executable is already included in the Node.js package.
+
+Before continuing, let's make sure Node.js modules can be found by others (:warning: **CAUTION**: it's best to copy and paste these commands, as you'd lose the original contents of your `.bashrc` file if you typed `>` in place of `>>`):
+
+```sh
+echo 'export NODE_PATH="./node_modules:/usr/local/lib/node_modules"' >> ~/.bashrc && source ~/.bashrc
+```
+
+To check if the configuration is in effect, execute:
+
+```sh
+echo $NODE_PATH
+```
+
+You should see `./node_modules:/usr/local/lib/node_modules` printed out below your command.
+
+If you use a different shell than Bash, simply replace `~/.bashrc` with your shell configuration file.
+
+# Step 3: installing fullstack tools
+
+```sh
+npm install -g express yo grunt grunt-cli generator-angular-fullstack bower
+```
+
+# Step 4: generating a fullstack app
+Make a directory for your Back End Project projects. Assuming your desktop is your de facto workspace:
+
+```sh
+mkdir ~/Desktop/Back End Projects && cd ~/Desktop/Back End Projects
+```
+
+Now that all the preparations are in place, it's time for the main event:
+
+```sh
+yo angular-fullstack
+```
+
+Answer the questions according to checklist items #13-23 of [Challenge: Get Set for Back End Projects](http://www.freecodecamp.com/challenges/get-set-for-our-back-end-development-projects). Consult #24-27 if you run into errors. This will download ~350MB worth of files into your current directory.
+
+Before going any further, we need to fix a [known issue](https://github.com/clnhll/guidetobasejumps#fixing-exportsupdate) in some generated files:
+
+```sh
+echo "sed -i '' -e 's/_.merge/_.extend/' server/api/*/*.controller.js" > \
+fix-exports-update.sh && chmod +x fix-exports-update.sh && \
+./fix-exports-update.sh
+```
+
+You need to run `./fix-exports-update.sh` every time you generate a new API endpoint (until they fix this upstream, that is).
+
+# Step 5: initialising local Git repository
+Tell Git not to track your database:
+
+```sh
+echo "data" >> .gitignore
+```
+
+Turn the directory in which your application is located into a Git repository by running the following commands:
+
+```sh
+git init && git add . && git commit -am 'initial commit'
+```
+
+# Step 6: starting MongoDB
+To start MongoDB for the first time in your app's directory, run the following commands in your terminal:
+
+```sh
+mkdir data && echo 'mongod --config /usr/local/etc/mongod.conf --dbpath=data --rest "$@" --httpinterface' > mongod.sh && chmod a+x mongod.sh && ./mongod.sh
+```
+
+From this point on you can simply start MongoDB by executing `./mongod.sh`. A few things to note:
+- The `.conf` file directs `mongod` to write messages to a log file instead of stdout. To view the log, run the following in a separate Terminal tab: `less /usr/local/var/log/mongodb/mongo.log`.
+- Since we're not on Cloud9, we don't need the `--nojournal` option. Journaling lets you recover the database in case of a `mongod` crash.
+- You have to make a clean database for each project. If you copied the `data` directory over from an earlier project, `mongod` will fail to start. If that's the case, just `rm -rf data && mkdir data && ./mongod.sh`.
+
+# Step 7: starting Grunt
+Open a new Terminal tab by pressing `⌘T`, and run the following command:
+
+```sh
+grunt serve
+```
+
+Grunt should automatically open your new Angular site's index page as soon as it finishes starting up.
+
+Now you should be able to follow the rest of the Challenge instructions to push to GitHub and Heroku. Just ignore the part about SSH key (#33-36) and replace `~/workspace` with your app directory's path.
+
+--------------------------------------------------------------------------------
+
+## Footnote
+The above steps were tested under the following configuration:
+- OS X 10.10.5
+- zsh 5.0.8 (x86_64-apple-darwin14.3.0)
+- node v0.12.7
+- npm 2.11.3
View
18 Intro-to-Yeoman-Angular-Fullstack-Back-End-Projects.md
@@ -1,9 +1,9 @@
-> Hey FreeCodeCampers! This guide is here to help you navigate creating your first Back End Project. When I encountered the first Back End Project, I had no idea what was going on and spent weeks learning all of these things myself. Everything here is stuff I wish I had known coming into the Back End Projects. Oh and by the way, if you have a question that isn't answered by this guide, that's an issue, and you should report it as an issue to this repository! [@clnhll](http://twitter.com/clnhll)
-
-Yeoman is a tool that allows you to generate barebones apps based on different software stacks using “generator” packages made by developers who want to make your life easier. These packages streamline your time developing and deploying websites using your platform of choice. We’re using a full-stack MEAN (MongoDB, ExpressJS, AngularJS, NodeJS) generator called generator-angular-fullstack by DaftMonk (https://github.com/DaftMonk/generator-angular-fullstack).
-
-Once youve completed the Challenge: Get Set for Back End Projects, use this guide to navigate the base structure of your new app and learn how to interact with the database as well as the user.
-
-[NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Back End Projects-Table-of-Contents)
-
-Sourced from (https://github.com/clnhll/guidetobasejumps) with permission.
+> Hey FreeCodeCampers! This guide is here to help you navigate creating your first Back End Project. When I encountered the first Back End Project, I had no idea what was going on and spent weeks learning all of these things myself. Everything here is stuff I wish I had known coming into the Back End Projects. Oh and by the way, if you have a question that isn't answered by this guide, that's an issue, and you should report it as an issue to this repository! --[@clnhll](http://twitter.com/clnhll)
+
+Yeoman is a tool that allows you to generate barebones apps based on different software stacks using "generator" packages made by developers who want to make your life easier. These packages streamline your time developing and deploying websites using your platform of choice. We're using a full-stack MEAN (MongoDB, ExpressJS, AngularJS, NodeJS) generator called generator-angular-fullstack by DaftMonk ([https://github.com/DaftMonk/generator-angular-fullstack](https://github.com/DaftMonk/generator-angular-fullstack)).
+
+Once you've completed the Challenge: Get Set for Back End Projects, use this guide to navigate the base structure of your new app and learn how to interact with the database as well as the user.
+
+[NEXT](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Back-End-Projects-Table-of-Contents)
+
+Sourced from ([https://github.com/clnhll/guidetobasejumps](https://github.com/clnhll/guidetobasejumps)) with permission.
View
482 Map.md
@@ -1,254 +1,254 @@
# HTML5 and CSS
-1. [Challenge: Say Hello to HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Say-Hello-to-HTML-Elements)
-2. [Challenge: Headline with the h2 Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Headline-with-the-h2-Element)
-3. [Challenge: Inform with the Paragraph Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Inform-with-the-Paragraph-Element)
-4. [Challenge: Make Unique Objects by Passing Parameters to our Constructor](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Make-Unique-Objects-by-Passing-Parameters-to-our-Constructor)
-5. [Challenge: Uncomment HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Uncomment-HTML)
-6. [Challenge: Comment out HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comment-out-HTML)
-7. [Challenge: Fill in the Blank with Placeholder Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Fill-in-the-Blank-with-Placeholder-Text)
-8. [Challenge: Delete HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Delete-HTML-Elements)
-9. [Challenge: Change the Color of Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Change-the-Color-of-Text)
-10. [Challenge: Use CSS Selectors to Style Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-CSS-Selectors-to-Style-Elements)
-11. [Challenge: Use a CSS Class to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-a-CSS-Class-to-Style-an-Element)
-12. [Challenge: Style Multiple Elements with a CSS Class](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Style-Multiple-Elements-with-a-CSS-Class)
-13. [Challenge: Change the Font Size of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Change-the-Font-Size-of-an-Element)
-14. [Challenge: Set the Font Family of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Set-the-Font-Family-of-an-Element)
-15. [Challenge: Import a Google Font](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Import-a-Google-Font)
-16. [Challenge: Specify How Fonts Should Degrade](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Specify-How-Fonts-Should-Degrade)
-17. [Challenge: Add Images to your Website](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Images-to-your-Website)
-18. [Challenge: Size your Images](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Size-your-Images)
-19. [Challenge: Add Borders Around your Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Borders-Around-your-Elements)
-20. [Challenge: Add Rounded Corners with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Rounded-Corners-with-a-Border-Radius)
-21. [Challenge: Make Circular Images with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Make-Circular-Images-with-a-Border-Radius)
-22. [Challenge: Link to External Pages with Anchor Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Link-to-External-Pages-with-Anchor-Elements)
-23. [Challenge: Nest an Anchor Element within a Paragraph](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Nest-an-Anchor-Element-within-a-Paragraph))
-24. [Challenge: Make Dead Links using the Hash Symbol](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Make-Dead-Links-using-the-Hash-Symbol)
-25. [Challenge: Turn an Image into a Link](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Turn-an-Image-into-a-Link)
-26. [Challenge: Add Alt Text to an Image for Accessibility](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Alt-Text-to-an-Image-for-Accessibility)
-27. [Challenge: Create a Bulleted Unordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Bulleted-Unordered-List)
-28. [Challenge: Create an Ordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-an-Ordered-List)
-29. [Challenge: Create a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Text-Field)
-30. [Challenge: Add Placeholder Text to a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Placeholder-Text-to-a-Text-Field)
-31. [Challenge: Create a Form Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Form-Element)
-32. [Challenge: Add a Submit Button to a Form](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-a-Submit-Button-to-a-Form)
-33. [Challenge: Use HTML5 to Require a Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-HTML5-to-Require-a-Field)
-34. [Challenge: Create a Set of Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Set-of-Radio-Buttons)
-35. [Challenge: Create a Set of Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Set-of-Checkboxes)
-36. [Challenge: Check Radio Buttons and Checkboxes by Default](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Check-Radio-Buttons-and-Checkboxes-by-Default)
-37. [Challenge: Nest Many Elements within a Single Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Nest-Many-Elements-within-a-Single-Div-Element)
-38. [Challenge: Give a Background Color to a Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Give-a-Background-Color-to-a-Div-Element)
-39. [Challenge: Set the ID of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Set-the-ID-of-an-Element)
-40. [Challenge: Use an ID Attribute to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-an-ID-Attribute-to-Style-an-Element)
-41. [Challenge: Adjusting the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Adjusting-the-Padding-of-an-Element)
-42. [Challenge: Adjust the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Adjust-the-Margin-of-an-Element)
-43. [Challenge: Add a Negative Margin to an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-a-Negative-Margin-to-an-Element)
-44. [Challenge: Add Different Padding to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Different-Padding-to-Each-Side-of-an-Element)
-45. [Challenge: Add Different Margins to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Different-Margins-to-Each-Side-of-an-Element)
-46. [Challenge: Use Clockwise Notation to Specify the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element)
-47. [Challenge: Use Clockwise Notation to Specify the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element)
-48. [Challenge: Style the HTML Body Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Style-the-HTML-Body-Element)
-49. [Challenge: Inherit Styles from the Body Element Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Inherit-Styles-from-the-Body-Element)
-50. [Challenge: Prioritize One Style Over Another Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Prioritize-One-Style-Over-Another)
-51. [Challenge: Override Styles in Subsequent CSS Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Override-Styles-in-Subsequent-CSS)
-52. [Challenge: Override Class Declarations by Styling ID Attributes Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Override-Class-Declarations-by-Styling-ID-Attributes)
-53. [Challenge: Override Class Declarations with Inline Styles Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Override-Class-Declarations-with-Inline-Styles)
-54. [Challenge: Override All Other Styles by using Important Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Override-All-Other-Styles-by-using-Important)
-55. [Challenge: Use Hex Code for Specific Colors Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-for-Specific-Colors)
-56. [Challenge: Use Hex Code to Color Elements White Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-to-Color-Elements-White)
-57. [Challenge: Use Hex Code to Color Elements Red Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-to-Color-Elements-Red)
-58. [Challenge: Use Hex Code to Color Elements Green Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-to-Color-Elements-Green)
-59. [Challenge: Use Hex Code to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-to-Color-Elements-Blue)
-60. [Challenge: Use Hex Code to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-to-Mix-Colors)
-61. [Challenge: Use Hex Code to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-to-Color-Elements-Gray)
-62. [Challenge: Use Hex Code for Specific Shades of Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Hex-Code-for-Specific-Shades-of-Gray)
-63. [Challenge: Use Abbreviated Hex Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Abbreviated-Hex-Code)
-64. [Challenge: Use RGB values to Color Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-values-to-Color-Elements)
-65. [Challenge: Use RGB to Color Elements White](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-to-Color-Elements-White)
-66. [Challenge: Use RGB to Color Elements Red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-to-Color-Elements-Red)
-67. [Challenge: Use RGB to Color Elements Green](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-to-Color-Elements-Green)
-68. [Challenge: Use RGB to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-to-Color-Elements-Blue)
-69. [Challenge: Use RGB to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-to-Mix-Colors)
-70. [Challenge: Use RGB to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-RGB-to-Color-Elements-Gray)
+1. [Challenge: Say Hello to HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Say-Hello-to-HTML-Elements)
+2. [Challenge: Headline with the h2 Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Headline-with-the-h2-Element)
+3. [Challenge: Inform with the Paragraph Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Inform-with-the-Paragraph-Element)
+4. [Challenge: Make Unique Objects by Passing Parameters to our Constructor](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Make-Unique-Objects-by-Passing-Parameters-to-our-Constructor)
+5. [Challenge: Uncomment HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Uncomment-HTML)
+6. [Challenge: Comment out HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comment-out-HTML)
+7. [Challenge: Fill in the Blank with Placeholder Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Fill-in-the-Blank-with-Placeholder-Text)
+8. [Challenge: Delete HTML Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Delete-HTML-Elements)
+9. [Challenge: Change the Color of Text](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Change-the-Color-of-Text)
+10. [Challenge: Use CSS Selectors to Style Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-CSS-Selectors-to-Style-Elements)
+11. [Challenge: Use a CSS Class to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-a-CSS-Class-to-Style-an-Element)
+12. [Challenge: Style Multiple Elements with a CSS Class](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Style-Multiple-Elements-with-a-CSS-Class)
+13. [Challenge: Change the Font Size of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Change-the-Font-Size-of-an-Element)
+14. [Challenge: Set the Font Family of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Set-the-Font-Family-of-an-Element)
+15. [Challenge: Import a Google Font](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Import-a-Google-Font)
+16. [Challenge: Specify How Fonts Should Degrade](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Specify-How-Fonts-Should-Degrade)
+17. [Challenge: Add Images to your Website](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Images-to-your-Website)
+18. [Challenge: Size your Images](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Size-your-Images)
+19. [Challenge: Add Borders Around your Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Borders-Around-your-Elements)
+20. [Challenge: Add Rounded Corners with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Rounded-Corners-with-a-Border-Radius)
+21. [Challenge: Make Circular Images with a Border Radius](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Make-Circular-Images-with-a-Border-Radius)
+22. [Challenge: Link to External Pages with Anchor Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Link-to-External-Pages-with-Anchor-Elements)
+23. [Challenge: Nest an Anchor Element within a Paragraph](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Nest-an-Anchor-Element-within-a-Paragraph))
+24. [Challenge: Make Dead Links using the Hash Symbol](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Make-Dead-Links-using-the-Hash-Symbol)
+25. [Challenge: Turn an Image into a Link](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Turn-an-Image-into-a-Link)
+26. [Challenge: Add Alt Text to an Image for Accessibility](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Alt-Text-to-an-Image-for-Accessibility)
+27. [Challenge: Create a Bulleted Unordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Bulleted-Unordered-List)
+28. [Challenge: Create an Ordered List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-an-Ordered-List)
+29. [Challenge: Create a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Text-Field)
+30. [Challenge: Add Placeholder Text to a Text Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Placeholder-Text-to-a-Text-Field)
+31. [Challenge: Create a Form Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Form-Element)
+32. [Challenge: Add a Submit Button to a Form](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-a-Submit-Button-to-a-Form)
+33. [Challenge: Use HTML5 to Require a Field](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-HTML5-to-Require-a-Field)
+34. [Challenge: Create a Set of Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Set-of-Radio-Buttons)
+35. [Challenge: Create a Set of Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Set-of-Checkboxes)
+36. [Challenge: Check Radio Buttons and Checkboxes by Default](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Check-Radio-Buttons-and-Checkboxes-by-Default)
+37. [Challenge: Nest Many Elements within a Single Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Nest-Many-Elements-within-a-Single-Div-Element)
+38. [Challenge: Give a Background Color to a Div Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Give-a-Background-Color-to-a-Div-Element)
+39. [Challenge: Set the ID of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Set-the-ID-of-an-Element)
+40. [Challenge: Use an ID Attribute to Style an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-an-ID-Attribute-to-Style-an-Element)
+41. [Challenge: Adjusting the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Adjusting-the-Padding-of-an-Element)
+42. [Challenge: Adjust the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Adjust-the-Margin-of-an-Element)
+43. [Challenge: Add a Negative Margin to an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-a-Negative-Margin-to-an-Element)
+44. [Challenge: Add Different Padding to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Different-Padding-to-Each-Side-of-an-Element)
+45. [Challenge: Add Different Margins to Each Side of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Different-Margins-to-Each-Side-of-an-Element)
+46. [Challenge: Use Clockwise Notation to Specify the Padding of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Clockwise-Notation-to-Specify-the-Padding-of-an-Element)
+47. [Challenge: Use Clockwise Notation to Specify the Margin of an Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Clockwise-Notation-to-Specify-the-Margin-of-an-Element)
+48. [Challenge: Style the HTML Body Element](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Style-the-HTML-Body-Element)
+49. [Challenge: Inherit Styles from the Body Element Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Inherit-Styles-from-the-Body-Element)
+50. [Challenge: Prioritize One Style Over Another Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Prioritize-One-Style-Over-Another)
+51. [Challenge: Override Styles in Subsequent CSS Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Override-Styles-in-Subsequent-CSS)
+52. [Challenge: Override Class Declarations by Styling ID Attributes Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Override-Class-Declarations-by-Styling-ID-Attributes)
+53. [Challenge: Override Class Declarations with Inline Styles Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Override-Class-Declarations-with-Inline-Styles)
+54. [Challenge: Override All Other Styles by using Important Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Override-All-Other-Styles-by-using-Important)
+55. [Challenge: Use Hex Code for Specific Colors Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-for-Specific-Colors)
+56. [Challenge: Use Hex Code to Color Elements White Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-to-Color-Elements-White)
+57. [Challenge: Use Hex Code to Color Elements Red Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-to-Color-Elements-Red)
+58. [Challenge: Use Hex Code to Color Elements Green Complete](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-to-Color-Elements-Green)
+59. [Challenge: Use Hex Code to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-to-Color-Elements-Blue)
+60. [Challenge: Use Hex Code to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-to-Mix-Colors)
+61. [Challenge: Use Hex Code to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-to-Color-Elements-Gray)
+62. [Challenge: Use Hex Code for Specific Shades of Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Hex-Code-for-Specific-Shades-of-Gray)
+63. [Challenge: Use Abbreviated Hex Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Abbreviated-Hex-Code)
+64. [Challenge: Use RGB values to Color Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-values-to-Color-Elements)
+65. [Challenge: Use RGB to Color Elements White](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-to-Color-Elements-White)
+66. [Challenge: Use RGB to Color Elements Red](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-to-Color-Elements-Red)
+67. [Challenge: Use RGB to Color Elements Green](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-to-Color-Elements-Green)
+68. [Challenge: Use RGB to Color Elements Blue](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-to-Color-Elements-Blue)
+69. [Challenge: Use RGB to Mix Colors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-to-Mix-Colors)
+70. [Challenge: Use RGB to Color Elements Gray](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-RGB-to-Color-Elements-Gray)
# Responsive Design with Bootstrap
-1. [Challenge: Use Responsive Design with Bootstrap Fluid Containers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Responsive-Design-with-Bootstrap-Fluid-Containers)
-2. [Challenge: Make Images Mobile Responsive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Make-Images-Mobile-Responsive)
-3. [Challenge: Center Text with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Center-Text-with-Bootstrap)
-4. [Challenge: Create a Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Bootstrap-Button)
-5. [Challenge: Create a Block Element Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Block-Element-Bootstrap-Button)
-6. [Challenge: Taste the Bootstrap Button Color Rainbow](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Taste-the-Bootstrap-Button-Color-Rainbow)
-7. [Challenge: Call out Optional Actions with Button Info](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Call-out-Optional-Actions-with-Button-Info)
-8. [Challenge: Warn your Users of a Dangerous Action](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Warn-your-Users-of-a-Dangerous-Action)
-9. [Challenge: Use the Bootstrap Grid to Put Elements Side By Side](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side)
-10. [Challenge: Ditch Custom CSS for Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Ditch-Custom-CSS-for-Bootstrap)
-11. [Challenge: Use Spans for Inline Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Spans-for-Inline-Elements)
-12. [Challenge: Create a Custom Heading](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Custom-Heading)
-13. [Challenge: Add Font Awesome Icons to our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Font-Awesome-Icons-to-our-Buttons)
-14. [Challenge: Add Font Awesome Icons to all of our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Font-Awesome-Icons-to-all-of-our-Buttons)
-15. [Challenge: Responsively Style Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Responsively-Style-Radio-Buttons)
-16. [Challenge: Responsively Style Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Responsively-Style-Checkboxes)
-17. [Challenge: Style Text Inputs as Form Controls](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Style-Text-Inputs-as-Form-Controls)
-18. [Challenge: Line up Form Elements Responsively with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Line-up-Form-Elements-Responsively-with-Bootstrap)
-19. [Challenge: Create a Bootstrap Headline](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Bootstrap-Headline)
-20. [Challenge: House our page within a Bootstrap Container Fluid Div](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-House-our-page-within-a-Bootstrap-Container-Fluid-Div)
-21. [Challenge: Create a Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Bootstrap-Row)
-22. [Challenge: Split your Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Split-your-Bootstrap-Row)
-23. [Challenge: Create Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-Bootstrap-Wells)
-24. [Challenge: Add Elements within your Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Elements-within-your-Bootstrap-Wells)
-25. [Challenge: Apply the Default Bootstrap Button Style](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Apply-the-Default-Bootstrap-Button-Style)
-26. [Challenge: Create a Class to Target with jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-a-Class-to-Target-with-jQuery-Selectors)
-27. [Challenge: Add ID Attributes to Bootstrap Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-ID-Attributes-to-Bootstrap-Elements)
-28. [Challenge: Label Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Label-Bootstrap-Wells)
-29. [Challenge: Give Each Element a Unique ID](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Give-Each-Element-a-Unique-ID)
-30. [Challenge: Label Bootstrap Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Label-Bootstrap-Buttons)
-31. [Challenge: Use Comments to Clarify Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Comments-to-Clarify-Code)
+1. [Challenge: Use Responsive Design with Bootstrap Fluid Containers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Responsive-Design-with-Bootstrap-Fluid-Containers)
+2. [Challenge: Make Images Mobile Responsive](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Make-Images-Mobile-Responsive)
+3. [Challenge: Center Text with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Center-Text-with-Bootstrap)
+4. [Challenge: Create a Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Bootstrap-Button)
+5. [Challenge: Create a Block Element Bootstrap Button](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Block-Element-Bootstrap-Button)
+6. [Challenge: Taste the Bootstrap Button Color Rainbow](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Taste-the-Bootstrap-Button-Color-Rainbow)
+7. [Challenge: Call out Optional Actions with Button Info](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Call-out-Optional-Actions-with-Button-Info)
+8. [Challenge: Warn your Users of a Dangerous Action](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Warn-your-Users-of-a-Dangerous-Action)
+9. [Challenge: Use the Bootstrap Grid to Put Elements Side By Side](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-the-Bootstrap-Grid-to-Put-Elements-Side-By-Side)
+10. [Challenge: Ditch Custom CSS for Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Ditch-Custom-CSS-for-Bootstrap)
+11. [Challenge: Use Spans for Inline Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Spans-for-Inline-Elements)
+12. [Challenge: Create a Custom Heading](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Custom-Heading)
+13. [Challenge: Add Font Awesome Icons to our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Font-Awesome-Icons-to-our-Buttons)
+14. [Challenge: Add Font Awesome Icons to all of our Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Font-Awesome-Icons-to-all-of-our-Buttons)
+15. [Challenge: Responsively Style Radio Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Responsively-Style-Radio-Buttons)
+16. [Challenge: Responsively Style Checkboxes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Responsively-Style-Checkboxes)
+17. [Challenge: Style Text Inputs as Form Controls](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Style-Text-Inputs-as-Form-Controls)
+18. [Challenge: Line up Form Elements Responsively with Bootstrap](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Line-up-Form-Elements-Responsively-with-Bootstrap)
+19. [Challenge: Create a Bootstrap Headline](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Bootstrap-Headline)
+20. [Challenge: House our page within a Bootstrap Container Fluid Div](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/House-our-page-within-a-Bootstrap-Container-Fluid-Div)
+21. [Challenge: Create a Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Bootstrap-Row)
+22. [Challenge: Split your Bootstrap Row](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Split-your-Bootstrap-Row)
+23. [Challenge: Create Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-Bootstrap-Wells)
+24. [Challenge: Add Elements within your Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Elements-within-your-Bootstrap-Wells)
+25. [Challenge: Apply the Default Bootstrap Button Style](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Apply-the-Default-Bootstrap-Button-Style)
+26. [Challenge: Create a Class to Target with jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-a-Class-to-Target-with-jQuery-Selectors)
+27. [Challenge: Add ID Attributes to Bootstrap Elements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-ID-Attributes-to-Bootstrap-Elements)
+28. [Challenge: Label Bootstrap Wells](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Label-Bootstrap-Wells)
+29. [Challenge: Give Each Element a Unique ID](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Give-Each-Element-a-Unique-ID)
+30. [Challenge: Label Bootstrap Buttons](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Label-Bootstrap-Buttons)
+31. [Challenge: Use Comments to Clarify Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Comments-to-Clarify-Code)
# Gear up for Success
-1. [Challenge: Browse Camper News ](http://freecodecamp.com/challenges/Challenge-browse-camper-news)
-2. [Challenge: Reference our Wiki ](http://freecodecamp.com/challenges/Challenge-reference-our-wiki)
-3. [Challenge: Join our LinkedIn Alumni Network ](http://freecodecamp.com/challenges/Challenge-join-our-linkedin-alumni-network)
-4. [Challenge: Commit to a Goal and a Nonprofit](http://freecodecamp.com/challenges/Challenge-commit-to-a-goal-and-a-nonprofit)
+1. [Challenge: Browse Camper News ](http://freecodecamp.com/challenges/browse-camper-news)
+2. [Challenge: Reference our Wiki ](http://freecodecamp.com/challenges/reference-our-wiki)
+3. [Challenge: Join our LinkedIn Alumni Network ](http://freecodecamp.com/challenges/join-our-linkedin-alumni-network)
+4. [Challenge: Commit to a Goal and a Nonprofit](http://freecodecamp.com/challenges/commit-to-a-goal-and-a-nonprofit)
# jQuery
-1. [Challenge: Learn how Script Tags and Document Ready Work](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Learn-how-Script-Tags-and-Document-Ready-Work)
-2. [Challenge: Target HTML Elements with Selectors Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-HTML-Elements-with-Selectors-Using-jQuery)
-3. [Challenge: Target Elements by Class Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-Elements-by-Class-Using-jQuery)
-4. [Challenge: Target Elements by ID Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-Elements-by-ID-Using-jQuery)
-5. [Challenge: Delete your jQuery Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Delete-your-jQuery-Functions)
-6. [Challenge: Target the same element with multiple jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-the-same-element-with-multiple-jQuery-Selectors)
-7. [Challenge: Remove Classes from an element with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Remove-Classes-from-an-element-with-jQuery)
-8. [Challenge: Change the CSS of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Change-the-CSS-of-an-Element-Using-jQuery)
-9. [Challenge: Disable an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Disable-an-Element-Using-jQuery)
-10. [Challenge: Change Text Inside an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Change-Text-Inside-an-Element-Using-jQuery)
-11. [Challenge: Remove an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Remove-an-Element-Using-jQuery)
-12. [Challenge: Use appendTo to Move Elements with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-appendTo-to-Move-Elements-with-jQuery)
-13. [Challenge: Clone an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Clone-an-Element-Using-jQuery)
-14. [Challenge: Target the Parent of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-the-Parent-of-an-Element-Using-jQuery)
-15. [Challenge: Target the Children of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-the-Children-of-an-Element-Using-jQuery)
-16. [Challenge: Target a Specific Child of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-a-Specific-Child-of-an-Element-Using-jQuery)
-17. [Challenge: Target Even Numbered Elements Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Target-Even-Numbered-Elements-Using-jQuery)
-18. [Challenge: Use jQuery to Modify the Entire Page](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-jQuery-to-Modify-the-Entire-Page)
+1. [Challenge: Learn how Script Tags and Document Ready Work](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Learn-how-Script-Tags-and-Document-Ready-Work)
+2. [Challenge: Target HTML Elements with Selectors Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-HTML-Elements-with-Selectors-Using-jQuery)
+3. [Challenge: Target Elements by Class Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-Elements-by-Class-Using-jQuery)
+4. [Challenge: Target Elements by ID Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-Elements-by-ID-Using-jQuery)
+5. [Challenge: Delete your jQuery Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Delete-your-jQuery-Functions)
+6. [Challenge: Target the same element with multiple jQuery Selectors](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-the-same-element-with-multiple-jQuery-Selectors)
+7. [Challenge: Remove Classes from an element with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Remove-Classes-from-an-element-with-jQuery)
+8. [Challenge: Change the CSS of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Change-the-CSS-of-an-Element-Using-jQuery)
+9. [Challenge: Disable an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Disable-an-Element-Using-jQuery)
+10. [Challenge: Change Text Inside an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Change-Text-Inside-an-Element-Using-jQuery)
+11. [Challenge: Remove an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Remove-an-Element-Using-jQuery)
+12. [Challenge: Use appendTo to Move Elements with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-appendTo-to-Move-Elements-with-jQuery)
+13. [Challenge: Clone an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Clone-an-Element-Using-jQuery)
+14. [Challenge: Target the Parent of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-the-Parent-of-an-Element-Using-jQuery)
+15. [Challenge: Target the Children of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-the-Children-of-an-Element-Using-jQuery)
+16. [Challenge: Target a Specific Child of an Element Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-a-Specific-Child-of-an-Element-Using-jQuery)
+17. [Challenge: Target Even Numbered Elements Using jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Target-Even-Numbered-Elements-Using-jQuery)
+18. [Challenge: Use jQuery to Modify the Entire Page](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-jQuery-to-Modify-the-Entire-Page)
# Basic JavaScript
-1. [Challenge: Comment your JavaScript Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comment-your-JavaScript-Code)
-2. [Challenge: Understand Boolean Values](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Understand-Boolean-Values)
-3. [Challenge: Declare JavaScript Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Declare-JavaScript-Variables)
-4. [Challenge: Storing Values with the Equal Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Storing-Values-with-the-Equal-Operator)
-5. [Challenge: Initializing Variables with the Equal Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Initializing-Variables-with-the-Equal-Operator)
-6. [Challenge: Understanding Uninitialized Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Understanding-Uninitialized-Variables)
-7. [Challenge: Understanding Case Sensitivity in Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Understanding-Case-Sensitivity-in-Variables)
-8. [Challenge: Add Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-Two-Numbers-with-JavaScript)
-9. [Challenge: Subtract One Number from Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Subtract-One-Number-from-Another-with-JavaScript)
-10. [Challenge: Multiply Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Multiply-Two-Numbers-with-JavaScript)
-11. [Challenge: Divide One Number by Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Divide-One-Number-by-Another-with-JavaScript)
-12. [Challenge: Increment a Number with Javascript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Increment-a-Number-with-Javascript)
-13. [Challenge: Decrement a Number with Javascript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Decrement-a-Number-with-Javascript)
-14. [Challenge: Create Decimal Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Create-Decimal-Numbers-with-JavaScript)
-15. [Challenge: Multiply Two Decimals with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript)
-16. [Challenge: Divide one Decimal by Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Perform-Arithmetic-Operations-on-Decimals-with-JavaScript)
-17. [Challenge: Finding a Remainder in Javascript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Finding-a-Remainder-in-Javascript)
-18. [Challenge: Assignment with Plus Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Assignment-with-Plus-Equals)
-19. [Challenge: Assignment with Minus Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Assignment-with-Minus-Equals)
-20. [Challenge: Assignment with Times Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Assignment-with-Times-Equals)
-21. [Challenge: Assignment with Divided by Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Assignment-with-Divided-by-Equals)
+1. [Challenge: Comment your JavaScript Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comment-your-JavaScript-Code)
+2. [Challenge: Understand Boolean Values](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Understand-Boolean-Values)
+3. [Challenge: Declare JavaScript Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Declare-JavaScript-Variables)
+4. [Challenge: Storing Values with the Equal Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Storing-Values-with-the-Equal-Operator)
+5. [Challenge: Initializing Variables with the Equal Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Initializing-Variables-with-the-Equal-Operator)
+6. [Challenge: Understanding Uninitialized Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Understanding-Uninitialized-Variables)
+7. [Challenge: Understanding Case Sensitivity in Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Understanding-Case-Sensitivity-in-Variables)
+8. [Challenge: Add Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-Two-Numbers-with-JavaScript)
+9. [Challenge: Subtract One Number from Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Subtract-One-Number-from-Another-with-JavaScript)
+10. [Challenge: Multiply Two Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Multiply-Two-Numbers-with-JavaScript)
+11. [Challenge: Divide One Number by Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Divide-One-Number-by-Another-with-JavaScript)
+12. [Challenge: Increment a Number with Javascript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Increment-a-Number-with-Javascript)
+13. [Challenge: Decrement a Number with Javascript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Decrement-a-Number-with-Javascript)
+14. [Challenge: Create Decimal Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Create-Decimal-Numbers-with-JavaScript)
+15. [Challenge: Multiply Two Decimals with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Perform-Arithmetic-Operations-on-Decimals-with-JavaScript)
+16. [Challenge: Divide one Decimal by Another with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Perform-Arithmetic-Operations-on-Decimals-with-JavaScript)
+17. [Challenge: Finding a Remainder in Javascript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Finding-a-Remainder-in-Javascript)
+18. [Challenge: Assignment with Plus Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Assignment-with-Plus-Equals)
+19. [Challenge: Assignment with Minus Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Assignment-with-Minus-Equals)
+20. [Challenge: Assignment with Times Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Assignment-with-Times-Equals)
+21. [Challenge: Assignment with Divided by Equals](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Assignment-with-Divided-by-Equals)
22. [Checkpoint: Convert Celsius to Fahrenheit](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Convert-Celsius-to-Fahrenheit)
-23. [Challenge: Declare String Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Declare-String-Variables)
-24. [Challenge: Escaping Literal Quotes in Strings](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Escaping-Literal-Quotes-in-Strings)
-25. [Challenge: Quoting Strings with Single Quotes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Quoting-Strings-with-Single-Quotes)
-26. [Challenge: Escape Sequences in Strings](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Escape-Sequences-in-Strings)
-27. [Challenge: Concatenating Strings with Plus Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Concatenating-Strings-with-Plus-Operator)
-28. [Challenge: Concatenating Strings with the Plus Equals Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Concatenating-Strings-with-the-Plus-Equals-Operator)
-29. [Challenge: Constructing Strings with Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Constructing-Strings-with-Variables)
-30. [Challenge: Appending Variables to Strings](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Appending-Variables-to-Strings)
-31. [Challenge: Find the Length of a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Check-the-Length-Property-of-a-String-Variable)
-32. [Challenge: Use Bracket Notation to Find the First Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Bracket-Notation-to-Find-the-First-Character-in-a-String)
-33. [Challenge: Understand String Immutability](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Understand-String-Immutability)
-34. [Challenge: Use Bracket Notation to Find the Nth Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String)
-35. [Challenge: Use Bracket Notation to Find the Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String)
-36. [Challenge: Use Bracket Notation to Find the Nth-to-Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String)
+23. [Challenge: Declare String Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Declare-String-Variables)
+24. [Challenge: Escaping Literal Quotes in Strings](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Escaping-Literal-Quotes-in-Strings)
+25. [Challenge: Quoting Strings with Single Quotes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Quoting-Strings-with-Single-Quotes)
+26. [Challenge: Escape Sequences in Strings](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Escape-Sequences-in-Strings)
+27. [Challenge: Concatenating Strings with Plus Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Concatenating-Strings-with-Plus-Operator)
+28. [Challenge: Concatenating Strings with the Plus Equals Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Concatenating-Strings-with-the-Plus-Equals-Operator)
+29. [Challenge: Constructing Strings with Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Constructing-Strings-with-Variables)
+30. [Challenge: Appending Variables to Strings](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Appending-Variables-to-Strings)
+31. [Challenge: Find the Length of a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Check-the-Length-Property-of-a-String-Variable)
+32. [Challenge: Use Bracket Notation to Find the First Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Bracket-Notation-to-Find-the-First-Character-in-a-String)
+33. [Challenge: Understand String Immutability](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Understand-String-Immutability)
+34. [Challenge: Use Bracket Notation to Find the Nth Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Bracket-Notation-to-Find-the-Nth-Character-in-a-String)
+35. [Challenge: Use Bracket Notation to Find the Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Bracket-Notation-to-Find-the-Last-Character-in-a-String)
+36. [Challenge: Use Bracket Notation to Find the Nth-to-Last Character in a String](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Bracket-Notation-to-Find-the-Nth-to-Last-Character-in-a-String)
37. [Checkpoint: Word Blanks](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint: Word-Blanks)
-38. [Challenge: Store Multiple Values in one Variable using JavaScript Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays)
-39. [Challenge: Nest one Array within Another Array](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Nest-one-Array-within-Another-Array)
-40. [Challenge: Access Array Data with Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Access-Array-Data-with-Indexes)
-41. [Challenge: Modify Array Data With Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Modify-Array-Data-With-Indexes)
-42. [Challenge: Access Multi-Dimensional Arrays With Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Access-Multi-Dimensional-Arrays-With-Indexes)
-43. [Challenge: Manipulate Arrays With pop()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Manipulate-Arrays-With-pop())
-44. [Challenge: Manipulate Arrays With push()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Manipulate-Arrays-With-push())
-45. [Challenge: Manipulate Arrays With shift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Manipulate-Arrays-With-shift())
-46. [Challenge: Manipulate Arrays With unshift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Manipulate-Arrays-With-unshift())
+38. [Challenge: Store Multiple Values in one Variable using JavaScript Arrays](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Store-Multiple-Values-in-one-Variable-using-JavaScript-Arrays)
+39. [Challenge: Nest one Array within Another Array](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Nest-one-Array-within-Another-Array)
+40. [Challenge: Access Array Data with Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Access-Array-Data-with-Indexes)
+41. [Challenge: Modify Array Data With Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Modify-Array-Data-With-Indexes)
+42. [Challenge: Access Multi-Dimensional Arrays With Indexes](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Access-Multi-Dimensional-Arrays-With-Indexes)
+43. [Challenge: Manipulate Arrays With pop()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Manipulate-Arrays-With-pop())
+44. [Challenge: Manipulate Arrays With push()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Manipulate-Arrays-With-push())
+45. [Challenge: Manipulate Arrays With shift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Manipulate-Arrays-With-shift())
+46. [Challenge: Manipulate Arrays With unshift()](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Manipulate-Arrays-With-unshift())
47. [Checkpoint: Shopping List](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Shopping-List)
-48. [Challenge: Write Reusable JavaScript with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Write-Reusable-JavaScript-with-Functions)
-49. [Challenge: Passing Values to Functions with Arguments](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Passing-Values-To-Functions-With-Arguments)
-50. [Challenge: Global Scope and Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Global-Scope-And-Functions)
-51. [Challenge: Local Scope and Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Local-Scope-And-Functions)
-52. [Challenge: Global vs. Local Scope in Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Global-Vs-Local-Scope-In-Functions)
-53. [Challenge: Return a Value from a Function with Return](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Return-A-Value-From-A-Function-With-Return)
-54. [Challenge: Assignment with a Returned Value](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Assignment-With-A-Returned-Value)
+48. [Challenge: Write Reusable JavaScript with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Write-Reusable-JavaScript-with-Functions)
+49. [Challenge: Passing Values to Functions with Arguments](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Passing-Values-To-Functions-With-Arguments)
+50. [Challenge: Global Scope and Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Global-Scope-And-Functions)
+51. [Challenge: Local Scope and Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Local-Scope-And-Functions)
+52. [Challenge: Global vs. Local Scope in Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Global-Vs-Local-Scope-In-Functions)
+53. [Challenge: Return a Value from a Function with Return](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Return-A-Value-From-A-Function-With-Return)
+54. [Challenge: Assignment with a Returned Value](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Assignment-With-A-Returned-Value)
55. [Checkpoint: Stand in Line](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Stand-in-Line)
-56. [Challenge: Use Conditional Logic with If-Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-Conditional-Logic-with-If-Else-Statements)
-57. [Challenge: Comparison with the Equality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Equality-Operator)
-58. [Challenge: Comparison with the Strict Equality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Strict-Equality-Operator)
-59. [Challenge: Comparison with the Inequality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Inequality-Operator)
-60. [Challenge: Comparison with the Strict Inequality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Strict-Inequality-Operator)
-61. [Challenge: Comparison with the Greater Than Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Greater-Than-Operator)
-62. [Challenge: Comparison with the Greater Than Equal To Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Greater-Than-Equal-To-Operator)
-63. [Challenge: Comparison with the Less Than Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Less-Than-Operator)
-64. [Challenge: Comparison with the Less Than Equal To Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparison-With-The-Less-Than-Equal-To-Operator)
-65. [Challenge: Comparisons with the Logical And Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparisons-With-The-Logical-And-Operator)
-66. [Challenge: Comparisons with the Logical Or Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Comparisons-With-The-Logical-Or-Operator)
-67. [Challenge: Introducing Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Introducing-Else-Statements)
-68. [Challenge: Introducing Else If Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Introducing-Else-If-Statements)
+56. [Challenge: Use Conditional Logic with If-Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-Conditional-Logic-with-If-Else-Statements)
+57. [Challenge: Comparison with the Equality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Equality-Operator)
+58. [Challenge: Comparison with the Strict Equality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Strict-Equality-Operator)
+59. [Challenge: Comparison with the Inequality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Inequality-Operator)
+60. [Challenge: Comparison with the Strict Inequality Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Strict-Inequality-Operator)
+61. [Challenge: Comparison with the Greater Than Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Greater-Than-Operator)
+62. [Challenge: Comparison with the Greater Than Equal To Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Greater-Than-Equal-To-Operator)
+63. [Challenge: Comparison with the Less Than Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Less-Than-Operator)
+64. [Challenge: Comparison with the Less Than Equal To Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparison-With-The-Less-Than-Equal-To-Operator)
+65. [Challenge: Comparisons with the Logical And Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparisons-With-The-Logical-And-Operator)
+66. [Challenge: Comparisons with the Logical Or Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Comparisons-With-The-Logical-Or-Operator)
+67. [Challenge: Introducing Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Introducing-Else-Statements)
+68. [Challenge: Introducing Else If Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Introducing-Else-If-Statements)
69. Challenge: Logical Order in If Else Statements
-70. [Challenge: Chaining If Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Chaining-If-Else-Statements)
+70. [Challenge: Chaining If Else Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Chaining-If-Else-Statements)
71. [Checkpoint: Golf Code](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Golf-Code)
-72. [Challenge: Selecting from many options with Switch Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Selecting-From-Many-Options-With-Switch-Statements)
-73. [Challenge: Adding a default option in Switch statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Adding-A-Default-Option-In-Switch-Statements)
-74. [Challenge: Multiple Identical Options in Switch Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Multiple-Identical-Options-In-Switch-Statements)
-75. [Challenge: Replacing If Else Chains with Switch](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Replacing-If-Else-Chains-With-Switch)
-76. [Challenge: Returning Boolean Values from Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Returning-Boolean-Values-From-Functions)
-77. [Challenge: Return Early Pattern for Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Return-Early-Pattern-For-Functions)
+72. [Challenge: Selecting from many options with Switch Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Selecting-From-Many-Options-With-Switch-Statements)
+73. [Challenge: Adding a default option in Switch statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Adding-A-Default-Option-In-Switch-Statements)
+74. [Challenge: Multiple Identical Options in Switch Statements](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Multiple-Identical-Options-In-Switch-Statements)
+75. [Challenge: Replacing If Else Chains with Switch](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Replacing-If-Else-Chains-With-Switch)
+76. [Challenge: Returning Boolean Values from Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Returning-Boolean-Values-From-Functions)
+77. [Challenge: Return Early Pattern for Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Return-Early-Pattern-For-Functions)
78. [Checkpoint: Counting Cards](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Counting-Cards)
-79. [Challenge: Build JavaScript Objects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Build-JavaScript-Objects)
-80. [Challenge: Accessing Objects Properties with the Dot Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Accessing-Objects-Properties-With-The-Dot-Operator)
-81. [Challenge: Accessing Objects Properties with Bracket Notation](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Accessing-Objects-Properties-With-Bracket-Notation)
-82. [Challenge: Accessing Objects Properties with Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Accessing-Objects-Properties-With-Variables)
-83. [Challenge: Updating Object Properties](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Manipulate-JavaScript-Objects)
-84. [Challenge: Add New Properties to a JavaScript Object](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Add-New-Properties-to-a-JavaScript-Object)
-85. [Challenge: Delete Properties from a JavaScript Object](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Delete-Properties-from-a-JavaScript-Object)
-86. [Challenge: Using Objects for Lookups](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Using-Objects-For-Lookups)
-87. [Challenge: Testing Objects for Properties](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Testing-Objects-For-Properties)
-88. [Challenge: Introducing JavaScript Object Notation (JSON)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Introducing-Javascript-Object-Notation-Json)
-89. [Challenge: Accessing Nested Objects in JSON](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Accessing-Nested-Objects-In-Json)
-90. [Challenge: Accessing Nested Arrays in JSON](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Accessing-Nested-Arrays-In-Json)
+79. [Challenge: Build JavaScript Objects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Build-JavaScript-Objects)
+80. [Challenge: Accessing Objects Properties with the Dot Operator](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-Objects-Properties-With-The-Dot-Operator)
+81. [Challenge: Accessing Objects Properties with Bracket Notation](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-Objects-Properties-With-Bracket-Notation)
+82. [Challenge: Accessing Objects Properties with Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-Objects-Properties-With-Variables)
+83. [Challenge: Updating Object Properties](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Manipulate-JavaScript-Objects)
+84. [Challenge: Add New Properties to a JavaScript Object](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Add-New-Properties-to-a-JavaScript-Object)
+85. [Challenge: Delete Properties from a JavaScript Object](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Delete-Properties-from-a-JavaScript-Object)
+86. [Challenge: Using Objects for Lookups](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Using-Objects-For-Lookups)
+87. [Challenge: Testing Objects for Properties](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Testing-Objects-For-Properties)
+88. [Challenge: Introducing JavaScript Object Notation (JSON)](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Introducing-Javascript-Object-Notation-Json)
+89. [Challenge: Accessing Nested Objects in JSON](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-Nested-Objects-In-Json)
+90. [Challenge: Accessing Nested Arrays in JSON](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Accessing-Nested-Arrays-In-Json)
91. [Checkpoint: Record Collection](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Record-Collection)
-92. [Challenge: Iterate with JavaScript For Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Iterate-with-JavaScript-For-Loops)
-93. [Challenge: Iterate Odd Numbers With a For Loop](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Iterate-Odd-Numbers-With-a-For-Loop)
-94. [Challenge: Count Backwards With a For Loop](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Count-Backwards-With-a-For-Loop)
-95. [Challenge: Iterate Through an Array with a For Loop](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Iterate-Through-An-Array-With-A-For-Loop)
-96. [Challenge: Nesting For Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Nesting-For-Loops)
-97. [Challenge: Iterate with JavaScript While Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Iterate-with-JavaScript-While-Loops)
+92. [Challenge: Iterate with JavaScript For Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Iterate-with-JavaScript-For-Loops)
+93. [Challenge: Iterate Odd Numbers With a For Loop](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Iterate-Odd-Numbers-With-a-For-Loop)
+94. [Challenge: Count Backwards With a For Loop](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Count-Backwards-With-a-For-Loop)
+95. [Challenge: Iterate Through an Array with a For Loop](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Iterate-Through-An-Array-With-A-For-Loop)
+96. [Challenge: Nesting For Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Nesting-For-Loops)
+97. [Challenge: Iterate with JavaScript While Loops](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Iterate-with-JavaScript-While-Loops)
98. [Checkpoint: Profile Lookup](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Checkpoint-Profile-Lookup)
-99. [Challenge: Generate Random Fractions with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Generate-Random-Fractions-with-JavaScript)
-100. [Challenge: Generate Random Whole Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Generate-Random-Whole-Numbers-with-JavaScript)
-101. [Challenge: Generate Random Whole Numbers within a Range](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Generate-Random-Whole-Numbers-within-a-Range)
-102. [Challenge: Sift through Text with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Sift-through-Text-with-Regular-Expressions)
-103. [Challenge: Find Numbers with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Find-Numbers-with-Regular-Expressions)
-104. [Challenge: Find White Space with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Find-White-Space-with-Regular-Expressions)
-105. [Challenge: Invert Regular Expression Matches with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Invert-Regular-Expression-Matches-with-JavaScript)
+99. [Challenge: Generate Random Fractions with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Generate-Random-Fractions-with-JavaScript)
+100. [Challenge: Generate Random Whole Numbers with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Generate-Random-Whole-Numbers-with-JavaScript)
+101. [Challenge: Generate Random Whole Numbers within a Range](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Generate-Random-Whole-Numbers-within-a-Range)
+102. [Challenge: Sift through Text with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Sift-through-Text-with-Regular-Expressions)
+103. [Challenge: Find Numbers with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Find-Numbers-with-Regular-Expressions)
+104. [Challenge: Find White Space with Regular Expressions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Find-White-Space-with-Regular-Expressions)
+105. [Challenge: Invert Regular Expression Matches with JavaScript](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Invert-Regular-Expression-Matches-with-JavaScript)
# Object Oriented and Functional Programming
-1. [Challenge: Declare JavaScript Objects as Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Declare-JavaScript-Objects-as-Variables)
-2. [Challenge: Construct JavaScript Objects with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Construct-JavaScript-Objects-with-Functions)
-3. [Challenge: Make Object Properties Private](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Make-Object-Properties-Private)
-4. [Challenge: Make Instances of Objects with a Constructor Function](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Make-Instances-of-Objects-with-a-Constructor-Function)
-5. [Challenge: Iterate over Arrays with .map](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Iterate-over-Arrays-with-map)
-6. [Challenge: Condense arrays with .reduce](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Condense-arrays-with-reduce)
-7. [Challenge: Filter Arrays with .filter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Filter-Arrays-with-filter)
-8. [Challenge: Sort Arrays with .sort](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Sort-Arrays-with-sort)
-9. [Challenge: Reverse Arrays with .reverse](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Reverse-Arrays-with-reverse)
-10. [Challenge: Concatenate Strings with .concat](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Concatenate-Strings-with-.concat)
-11. [Challenge: Split Strings with .split](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Split-Strings-with-split)
-12. [Challenge: Join Strings with .join](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Join-Strings-with-.join)
+1. [Challenge: Declare JavaScript Objects as Variables](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Declare-JavaScript-Objects-as-Variables)
+2. [Challenge: Construct JavaScript Objects with Functions](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Construct-JavaScript-Objects-with-Functions)
+3. [Challenge: Make Object Properties Private](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Make-Object-Properties-Private)
+4. [Challenge: Make Instances of Objects with a Constructor Function](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Make-Instances-of-Objects-with-a-Constructor-Function)
+5. [Challenge: Iterate over Arrays with .map](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Iterate-over-Arrays-with-map)
+6. [Challenge: Condense arrays with .reduce](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Condense-arrays-with-reduce)
+7. [Challenge: Filter Arrays with .filter](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Filter-Arrays-with-filter)
+8. [Challenge: Sort Arrays with .sort](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Sort-Arrays-with-sort)
+9. [Challenge: Reverse Arrays with .reverse](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Reverse-Arrays-with-reverse)
+10. [Challenge: Concatenate Strings with .concat](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Concatenate-Strings-with-.concat)
+11. [Challenge: Split Strings with .split](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Split-Strings-with-split)
+12. [Challenge: Join Strings with .join](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Join-Strings-with-.join)
# Basic Algorithm Scripting
1. [Algorithm: Meet Algorithm](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-Meet-Algorithm)
@@ -293,13 +293,13 @@
21. [Algorithm: Arguments Optional](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-Arguments-Optional)
# JSON APIs and Ajax  
-1. [Challenge: Trigger Click Events with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Trigger-Click-Events-with-jQuery)
-2. [Challenge: Change Text with Click Events](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Change-Text-with-Click-Events)
-3. [Challenge: Get JSON with the jQuery getJSON Method](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Get-JSON-with-the-jQuery-getJSON-Method)
-4. [Challenge: Convert JSON Data to HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Convert-JSON-Data-to-HTML)
-5. [Challenge: Render Images from Data Sources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Render-Images-from-Data-Sources)
-6. [Challenge: Prefilter JSON](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Prefilter-JSON)
-7. [Challenge: Get Geo-location Data](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Get-Geo-location-Data)
+1. [Challenge: Trigger Click Events with jQuery](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Trigger-Click-Events-with-jQuery)
+2. [Challenge: Change Text with Click Events](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Change-Text-with-Click-Events)
+3. [Challenge: Get JSON with the jQuery getJSON Method](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-JSON-with-the-jQuery-getJSON-Method)
+4. [Challenge: Convert JSON Data to HTML](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Convert-JSON-Data-to-HTML)
+5. [Challenge: Render Images from Data Sources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Render-Images-from-Data-Sources)
+6. [Challenge: Prefilter JSON](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Prefilter-JSON)
+7. [Challenge: Get Geo-location Data](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Get-Geo-location-Data)
# Upper Intermediate Algorithm Scripting
1. [Algorithm: Make a Person](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-make-a-person)
@@ -307,8 +307,8 @@
3. [Algorithm: Pairwise](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-pairwise)
# Automated Testing and Debugging
-1. [Challenge: Use the Javascript Console](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Use-the-Javascript-Console)
-2. [Challenge: Using typeof](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Using-typeof)
+1. [Challenge: Use the Javascript Console](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Use-the-Javascript-Console)
+2. [Challenge: Using typeof](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Using-typeof)
# Advanced Algorithm Scripting
1. [Algorithm: Validate US Telephone Numbers](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-Validate-US-Telephone-Numbers)
@@ -319,7 +319,7 @@
6. [Algorithm: Friendly Date Ranges](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-Friendly-Date-Ranges)
# Git
-1. [Challenge: Save your Code Revisions Forever with Git](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Challenge-Save-your-Code-Revisions-Forever-with-Git)
+1. [Challenge: Save your Code Revisions Forever with Git](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Save-your-Code-Revisions-Forever-with-Git)
# Node.js and Express.js
1. Challenge: Manage Packages with NPM
View
4 Start-Here.md
@@ -8,8 +8,8 @@
- The Back End Development Certificate
- [The Full Stack Development Certificate](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Free-Code-Camp-Full-Stack-Development-Certificate)
- The Coding Interview Preparation
-- [Guide to Back End Projects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Back End Projects-Table-of-Contents)
-- [Back End Project Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Back End Project-Resources)
+- [Guide to Back End Projects](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Guide-to-Back-End-Projects-Table-of-Contents)
+- [Back End Project Resources](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Back-End-Project-Resources)
- [Why JavaScript?](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Why-does-Free-Code-Camp-use-JavaScript-instead-of-Ruby-or-Python)
## Community
View
175 Using-Github-Pages-for-your-front-end-development-projects.md
@@ -1,94 +1,81 @@
-@freecodecamp [asked me nicely](https://twitter.com/FreeCodeCamp/status/648707819965837312) to explain how I use github (and github pages) instead of codepen for my front-end projects. Here's the how and why of it, starting with why.
-
-## Benefits
-
-I love Codepen.io, it's a wonderful, easy-to-use tool for simple front-end experimentation. But as the fcc projects got more complex, I realized coding locally was going to save me a bunch of headaches. My text-editor and [codekit](https://incident57.com/codekit/) combo are just waaay faster.
-
-* Autocomplete
-* Compile everything (codepen was really dragging trying to compile Jade)
-* Better auto-refresh
-* Built in bower
-* Git versioning
-* Improved screen real-estate experience
-
-## Git to Github
-
-Since I'm already saving locally, and using git for version control, I figured might as well upload to Github. Plus, Github has a fantastic, free service for front-end projects called [Github Pages](https://pages.github.com/). Just update your repo and your changes are live.
-
-How it works is simple. Github checks if your repository has a branch called `gh-pages` and serves any code that's sitting in that branch. No back-end stuff here, but HTML, CSS and JS work like a charm.
-
-## Make it Work
-
-### First things first
-
-Let's make a new folder for your project. I'll use the [Camper News](http://freecodecamp.com/challenges/Front End Project-stylize-stories-on-camper-news) project as my example.
-
-Got to your work directory and make a new one. You can do this in the terminal (or not).
-
-![Project Directory](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_06_PM.png)
-
-Now, go into the project directory, and (for sure in the terminal this time) use the command `git init`. Note, this tutorial assumes [you have git installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
-
-Alright, awesome. Now we're ready to work.
-
-### Next steps
-
-Create some files in your campNews directory. I don't know, maybe an index.html and probably app.css and app.js, or whatever naming convention you prefer. Put your code in these files. Alright, now we're ready for our first commit. It takes **two steps**.
-
-1. `git add -A` will prep all these new files and the new code inside them
-2. `git commit -m 'relevant message'` will commit all the work you've done to the branch you're currently on ('master' by default)
-
-### The key to this whole thing
-
-OK, so far we're still local. There's some stuff we gotta do to take our work and move it to github. It's at this point I like to switch branches. Remember - github only serves from gh-pages, and if you've followed along so far, your branch is called 'master'. Let's make a new (local) gh-pages branch.
-
-`git checkout -b gh-pages` will create it, copy all the work from master into gh-pages and switch me over to the branch. Phew.
-
-`git branch -d master` will get rid of the master branch. Sounds crazy I know, but what do we need it for? Just think of gh-pages as your NEW master branch.
-
-Now, `git add -A` and `git commit -m 'relevant message'` again, just in case. And be prepared to leave your editor and terminal and go online for the first time.
-
-Go to your github profile and create a new repo. Name it something relevant, like campNews.
-
-![New Repo](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_49_PM.png)
-
-Once it's created, go in and grab the HTTPS clone URL. (Ignore the files in my screenshot, your repo will be empty at this point).
-
-![clone url](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_51_PM.png)
-
-### Putting it all together
-
-And you can leave the online world. Back to the terminal! Let's connect our local project to this github repo. All it takes is one command.
-
-`git remote add origin <server>` Just replace server with the HTTPS url you just copied. So my command looks like this:
-
-`git remote add origin https://github.com/gkobilansky/campNews.git`.
-
-OK, so far we've:
-
-1. Created our project
-2. Versioned it in git
-3. Commited some changes
-4. Switched it to the 'gh-pages' branch
-5. Connected it to github
-
-### Last step!
-
-Push you project to github. Again, simple:
-
-`git push origin gh-pages`
-
-That command will make sure your latest commits get uploaded to github. Once you've done this at least once, your project should be available http://*username*.github.io/*repository*, so for me it's [http://gkobilansky.github.io/campNews](http://gkobilansky.github.io/campNews).
-
-Once this is all done, the process just repeats itself:
-
-1. `git add -A`
-2. `git commit -m 'relevant message'`
-3. `git push origin gh-pages`
-
-Granted, steeper learning curve than codepen.io, but faster and more flexible once you get the hang of it.
-
-Happy coding!
-
-
-PS. Thanks to [this guide](http://rogerdudler.github.io/git-guide/) by Roger Dudler for keeping things simple.
+@freecodecamp [asked me nicely](https://twitter.com/FreeCodeCamp/status/648707819965837312) to explain how I use github (and github pages) instead of codepen for my front-end projects. Here's the how and why of it, starting with why.
+
+# Benefits
+I love Codepen.io, it's a wonderful, easy-to-use tool for simple front-end experimentation. But as the fcc projects got more complex, I realized coding locally was going to save me a bunch of headaches. My text-editor and [codekit](https://incident57.com/codekit/) combo are just waaay faster.
+- Autocomplete
+- Compile everything (codepen was really dragging trying to compile Jade)
+- Better auto-refresh
+- Built in bower
+- Git versioning
+- Improved screen real-estate experience
+
+# Git to Github
+Since I'm already saving locally, and using git for version control, I figured might as well upload to Github. Plus, Github has a fantastic, free service for front-end projects called [Github Pages](https://pages.github.com/). Just update your repo and your changes are live.
+
+How it works is simple. Github checks if your repository has a branch called `gh-pages` and serves any code that's sitting in that branch. No back-end stuff here, but HTML, CSS and JS work like a charm.
+
+# Make it Work
+## First things first
+Let's make a new folder for your project. I'll use the [Camper News](http://www.freecodecamp.com/challenges/stylize-stories-on-camper-news) project as my example.
+
+Got to your work directory and make a new one. You can do this in the terminal (or not).
+
+![Project Directory](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_06_PM.png)
+
+Now, go into the project directory, and (for sure in the terminal this time) use the command `git init`. Note, this tutorial assumes [you have git installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
+
+Alright, awesome. Now we're ready to work.
+
+## Next steps
+Create some files in your campNews directory. I don't know, maybe an index.html and probably app.css and app.js, or whatever naming convention you prefer. Put your code in these files. Alright, now we're ready for our first commit. It takes **two steps**.
+1. `git add -A` will prep all these new files and the new code inside them
+2. `git commit -m 'relevant message'` will commit all the work you've done to the branch you're currently on ('master' by default)
+
+## The key to this whole thing
+OK, so far we're still local. There's some stuff we gotta do to take our work and move it to github. It's at this point I like to switch branches. Remember - github only serves from gh-pages, and if you've followed along so far, your branch is called 'master'. Let's make a new (local) gh-pages branch.
+
+`git checkout -b gh-pages` will create it, copy all the work from master into gh-pages and switch me over to the branch. Phew.
+
+`git branch -d master` will get rid of the master branch. Sounds crazy I know, but what do we need it for? Just think of gh-pages as your NEW master branch.
+
+Now, `git add -A` and `git commit -m 'relevant message'` again, just in case. And be prepared to leave your editor and terminal and go online for the first time.
+
+Go to your github profile and create a new repo. Name it something relevant, like campNews.
+
+![New Repo](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_49_PM.png)
+
+Once it's created, go in and grab the HTTPS clone URL. (Ignore the files in my screenshot, your repo will be empty at this point).
+
+![clone url](https://raw.githubusercontent.com/gkobilansky/campNews/gh-pages/images/Fullscreen_10_29_15__12_51_PM.png)
+
+## Putting it all together
+And you can leave the online world. Back to the terminal! Let's connect our local project to this github repo. All it takes is one command.
+
+`git remote add origin <server>` Just replace server with the HTTPS url you just copied. So my command looks like this:
+
+`git remote add origin https://github.com/gkobilansky/campNews.git`.
+
+OK, so far we've:
+1. Created our project
+2. Versioned it in git
+3. Commited some changes
+4. Switched it to the 'gh-pages' branch
+5. Connected it to github
+
+## Last step!
+Push you project to github. Again, simple:
+
+`git push origin gh-pages`
+
+That command will make sure your latest commits get uploaded to github. Once you've done this at least once, your project should be available [http://*username*.github.io/*repository*](http://*username*.github.io/*repository*), so for me it's [http://gkobilansky.github.io/campNews](http://gkobilansky.github.io/campNews).
+
+Once this is all done, the process just repeats itself:
+1. `git add -A`
+2. `git commit -m 'relevant message'`
+3. `git push origin gh-pages`
+
+Granted, steeper learning curve than codepen.io, but faster and more flexible once you get the hang of it.
+
+Happy coding!
+
+PS. Thanks to [this guide](http://rogerdudler.github.io/git-guide/) by Roger Dudler for keeping things simple.
View
77 bf-bouncer.md
@@ -1,77 +0,0 @@
-#:fire: Algorithm: Falsy Bouncer
-
-# The problem
-
-Remove all falsy values from an array.
-
-Falsy values in javascript are false, null, 0, "", undefined, and NaN.
-
-```javascript
-function bouncer(arr) {
- // Don't show a false ID to this bouncer.
- return arr;
-}
-
-bouncer([7, "ate", "", false, 9]);
-```
-
-## Analysis
-Using ![Array.filter(_callback_)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) to remove elements from an array.
-
-The _callback_ function is called for each array element to check if it will be filtered (removed).
-
-## Example
-```javascript
-function isBigEnough(value) {
- return value >= 10;
-}
-var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
-// filtered is [12, 130, 44]
-```
-
-## :warning: My Solution is coming up!
-Don't scroll down if you don't want to see it!
-
-
-```
- 10...
- 9...
- 8...
- 7...
- 6...
- 5...
- 4...
- 3...
- 2...
-1...
-
-GO!!!
-
-```
-
-## Code Solution:
-
-```javascript
-function bouncer(arr) {
- // Don't show a false ID to this bouncer.
- function isNotFalsy(value) {
- return value;
- }
-
- var myArr = arr.filter(isNotFalsy);
-
- return myArr;
-}
-```
-
-# References
-- **Array.filter()**: [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
-- **Gorka Hernández Blog**: [https://www.gorkahernandez.com/blog/fcc-Algorithm-series-115-falsey-bouncer/](https://www.gorkahernandez.com/blog/fcc-Algorithm-series-115-falsey-bouncer/)
-
-
-# Credits:
-If you found this page useful, you can give thanks by copying and pasting this on the main chat:
-`Thanks @StrongeLeeroy @HelioGuilherme66`
-
-> **NOTE:** Please add your username only if you have added any **relevant main contents** to the wiki page. (Please don't remove any existing usernames.)
-
View
6 html-elements.md
@@ -1,7 +1,7 @@
-Most HTML elements have an opening tag and a closing tag. Opening tags look like this: `<h1>`.
+Most HTML elements have an opening tag and a closing tag. Opening tags look like this: `<h1>`.
-Closing tags look like this: `</h1>`.
+Closing tags look like this: `</h1>`.
Note that the only difference between opening and closing tags is that closing tags have a slash after their opening angle bracket.
-Try it here! http://www.freecodecamp.com/challenges/Challenge-say-hello-to-html-elements
+Try it here! http://www.freecodecamp.com/challenges/say-hello-to-html-elements
View
85 npm-debug.log
@@ -1,85 +0,0 @@
-0 info it worked if it ends with ok
-1 verbose cli [ 'd:\\Program Files\\nodejs\\node.exe',
-1 verbose cli 'd:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
-1 verbose cli 'install',
-1 verbose cli 'gatsby-cli',
-1 verbose cli '-g' ]
-2 info using npm@2.14.7
-3 info using node@v4.2.2
-4 verbose install initial load of C:\Users\Rex\AppData\Roaming\npm\package.json
-5 verbose readDependencies loading dependencies from C:\Users\Rex\AppData\Roaming\npm\package.json
-6 silly cache add args [ 'gatsby-cli', null ]
-7 verbose cache add spec gatsby-cli
-8 silly cache add parsed spec Result {
-8 silly cache add raw: 'gatsby-cli',
-8 silly cache add scope: null,
-8 silly cache add name: 'gatsby-cli',
-8 silly cache add rawSpec: '',
-8 silly cache add spec: '*',
-8 silly cache add type: 'range' }
-9 silly addNamed gatsby-cli@*
-10 verbose addNamed "*" is a valid semver range for gatsby-cli
-11 silly addNameRange { name: 'gatsby-cli', range: '*', hasData: false }
-12 silly mapToRegistry name gatsby-cli
-13 silly mapToRegistry using default registry
-14 silly mapToRegistry registry https://registry.npmjs.org/
-15 silly mapToRegistry uri https://registry.npmjs.org/gatsby-cli
-16 verbose addNameRange registry:https://registry.npmjs.org/gatsby-cli not in flight; fetching
-17 verbose request uri https://registry.npmjs.org/gatsby-cli
-18 verbose request no auth needed
-19 info attempt registry request try #1 at 8:03:22 PM
-20 verbose request id 4a2cf26426b97b9f
-21 http request GET https://registry.npmjs.org/gatsby-cli
-22 http 404 https://registry.npmjs.org/gatsby-cli
-23 verbose headers { 'content-type': 'application/json',
-23 verbose headers 'cache-control': 'max-age=0',
-23 verbose headers 'content-length': '2',
-23 verbose headers 'accept-ranges': 'bytes',
-23 verbose headers date: 'Sun, 06 Dec 2015 04:03:24 GMT',
-23 verbose headers via: '1.1 varnish',
-23 verbose headers age: '0',
-23 verbose headers connection: 'keep-alive',
-23 verbose headers 'x-served-by': 'cache-lax1432-LAX',
-23 verbose headers 'x-cache': 'MISS',
-23 verbose headers 'x-cache-hits': '0',
-23 verbose headers 'x-timer': 'S1449374603.909664,VS0,VE90' }
-24 silly get cb [ 404,
-24 silly get { 'content-type': 'application/json',
-24 silly get 'cache-control': 'max-age=0',
-24 silly get 'content-length': '2',
-24 silly get 'accept-ranges': 'bytes',
-24 silly get date: 'Sun, 06 Dec 2015 04:03:24 GMT',
-24 silly get via: '1.1 varnish',
-24 silly get age: '0',
-24 silly get connection: 'keep-alive',
-24 silly get 'x-served-by': 'cache-lax1432-LAX',
-24 silly get 'x-cache': 'MISS',
-24 silly get 'x-cache-hits': '0',
-24 silly get 'x-timer': 'S1449374603.909664,VS0,VE90' } ]
-25 verbose stack Error: Registry returned 404 for GET on https://registry.npmjs.org/gatsby-cli
-25 verbose stack at makeError (d:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:264:12)
-25 verbose stack at CachingRegistryClient.<anonymous> (d:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:242:14)
-25 verbose stack at Request._callback (d:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:172:14)
-25 verbose stack at Request.self.callback (d:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:198:22)
-25 verbose stack at emitTwo (events.js:87:13)
-25 verbose stack at Request.emit (events.js:172:7)
-25 verbose stack at Request.<anonymous> (d:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:1063:14)
-25 verbose stack at emitOne (events.js:82:20)
-25 verbose stack at Request.emit (events.js:169:7)
-25 verbose stack at IncomingMessage.<anonymous> (d:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:1009:12)
-26 verbose statusCode 404
-27 verbose pkgid gatsby-cli
-28 verbose cwd d:\mean\wiki
-29 error Windows_NT 10.0.10240
-30 error argv "d:\\Program Files\\nodejs\\node.exe" "d:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "gatsby-cli" "-g"
-31 error node v4.2.2
-32 error npm v2.14.7
-33 error code E404
-34 error 404 Registry returned 404 for GET on https://registry.npmjs.org/gatsby-cli
-34 error 404
-34 error 404 'gatsby-cli' is not in the npm registry.
-34 error 404 You should bug the author to publish it (or use the name yourself!)
-34 error 404
-34 error 404 Note that you can also install from a
-34 error 404 tarball, folder, http url, or git url.
-35 verbose exit [ 1, true ]

0 comments on commit 70c868e

Please sign in to comment.
Something went wrong with that request. Please try again.