diff --git a/README.md b/README.md index 04a84392b8..68b31e96fb 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,15 @@ gulp ``` +Contributing +------------ + +We welcome pull requests from Free Code Camp "campers" (our students) and seasoned JavaScript developers alike! Follow these steps to contribute: + +1. Check our [public Waffle Board](https://waffle.io/freecodecamp/freecodecamp). +2. Pick an issue that nobody has claimed and start working on it. If your issue isn't on the board, open an issue. If you think you can fix it yourself, start working on it. Feel free to ask for help in our [Slack](http://freecode.slack.com). +3. Once your code is ready, submit a pull request. Please note that the code you submit should conform to [AirBnB's Style Guide](https://github.com/airbnb/javascript). We'll do a quick code review and give you feedback, and iterate from there. + Project Structure ----------------- @@ -151,14 +160,6 @@ Changelog - Installed Helmet to maximize security of application - Added .env and removed all trace of API keys from git history -Contributing ------------- - -We welcome pull requests from Free Code Camp "campers" (our students) and seasoned JavaScript developers alike! -1) Check our [public Waffle Board](https://waffle.io/freecodecamp/freecodecamp) -2) If your issue or feature isn't on the board, open an issue and if you think you can fix it yourself, start working on it. -3) Once your code is ready, submit the pull request. We'll do a quick code review and give you feedback, and iterate from there. - License ------- diff --git a/seed_data/bonfires.json b/seed_data/bonfires.json index 023df8403e..0f7373798a 100644 --- a/seed_data/bonfires.json +++ b/seed_data/bonfires.json @@ -605,21 +605,6 @@ "expect(pairwise([], 100)).to.equal(0);" ] }, - { - "_id": "a3f503de51cf954ede28891d", - "name": "Symmetric Difference", - "difficulty": "2.20", - "description": [ - "Create a function that takes two or more arrays and returns an array of the symmetric difference of the provided arrays.", - "The mathematical term symmetric difference refers to the elements in two sets that are in either the first or second set, but not in both." - ], - "challengeSeed": "function sym(arr) {\n return arr;\r\n}\n\nsym([1, 2, 3], [5, 2, 1, 4]);", - "tests": [ - "assert.deepEqual(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]), [1, 4, 5], 'should return the symmetric difference of the given arrays');", - "assert.deepEqual(sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]), [1, 4, 5], 'should return an array of unique values');", - "assert.deepEqual(sym([1, 1]), [1], 'should return an array of unique values');" - ] - }, { "_id": "a10d2431ad0c6a099a4b8b52", "name": "Everything Be True", @@ -735,10 +720,25 @@ ], "challengeSeed": "function telephoneCheck(str) {\n // Good luck!\n return true;\n}\n\n\n\ntelephoneCheck(\"555-555-5555\");" }, + { + "_id": "a3f503de51cf954ede28891d", + "name": "Symmetric Difference", + "difficulty": "4.02", + "description": [ + "Create a function that takes two or more arrays and returns an array of the symmetric difference of the provided arrays.", + "The mathematical term symmetric difference refers to the elements in two sets that are in either the first or second set, but not in both." + ], + "challengeSeed": "function sym(args) {\n return arr;\r\n}\n\nsym([1, 2, 3], [5, 2, 1, 4]);", + "tests": [ + "assert.deepEqual(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]), [1, 4, 5], 'should return the symmetric difference of the given arrays');", + "assert.deepEqual(sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]), [1, 4, 5], 'should return an array of unique values');", + "assert.deepEqual(sym([1, 1]), [1], 'should return an array of unique values');" + ] + }, { "_id": "aa2e6f85cab2ab736c9a9b24", "name": "Cash Register", - "difficulty": "4.02", + "difficulty": "4.03", "description": [ "Design a cash register drawer function that accepts purchase price as the first argument, payment as the second argument, and cash-in-drawer (cid) as the third argument.", "cid is a 2d array listing available currency.", "Return the string \"Insufficient Funds\" if cash-in-drawer is less than the change due. Return the string \"Closed\" if cash-in-drawer is equal to the change due.", "Otherwise, return change in coin and bills, sorted in highest to lowest order." ], @@ -756,7 +756,7 @@ { "_id": "a56138aff60341a09ed6c480", "name": "Inventory Update", - "difficulty": "4.03", + "difficulty": "4.04", "description": [ "Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical order." ], @@ -773,7 +773,7 @@ { "_id": "a7bf700cd123b9a54eef01d5", "name": "No repeats please", - "difficulty": "4.04", + "difficulty": "4.05", "description": [ "Return the number of total permutations of the provided string that don't have repeated consecutive letters.", "For example, 'aab' should return 2 because it has 6 total permutations, but only 2 of them don't have the same letter (in this case 'a') repeating." @@ -792,7 +792,7 @@ { "_id": "a19f0fbe1872186acd434d5a", "name": "Friendly Date Ranges", - "difficulty": "4.05", + "difficulty": "4.06", "description": [ "Implement a way of converting two dates into a more friendly date range that could be presented to a user.", "It must not show any redundant information in the date range.", diff --git a/seed_data/coursewares.json b/seed_data/coursewares.json index 3cca317822..08285288f8 100644 --- a/seed_data/coursewares.json +++ b/seed_data/coursewares.json @@ -3,36 +3,16 @@ "_id": "bd7124d8c441eddfaeb5bdef", "name": "Learn how Free Code Camp Works", "difficulty": 0.01, - "challengeSeed": "114486344", + "challengeSeed": "125407438", "description": [ "Watch this 1-minute video, or simply read this summary:", - "Welcome to Free Code Camp. We're a community of busy people learning to code.", - "We built this community because learning to code is hard. But anyone who can stay motivated can learn to code. And the best way to stay motivated is to code with friends.", - "To maximize accessibility, all our challenges are self-paced, browser-based, and free.", - "All of us start with the same 100 hours of interactive coding challenges. These cover Computer Science and databases. They also cover in-demand JavaScript tools like jQuery, Node.js and MongoDB.", - "Once we have a basic understanding of web development, we'll spend another 900 hours putting that theory into practice. We'll build full stack solutions for nonprofits.", - "By the end of this process, we'll be good at coding. We'll have a portfolio of apps with happy users to prove it. We'll also have an alumni network of fellow coders and nonprofits ready to serve as references.", - "If you make it through Free Code Camp, you will be able to get a coding job. There are far more job openings out there than there are qualified coders to fill them.", - "Also, for every pure coding job, there are at least 5 additional jobs that require some coding skills. So even if you decide not to pursue coding as a career, you'll still walk away with a valuable job skill.", - "There are 3 keys to succeeding in our community: do the challenges, make friends, and find a routine.", - "Now it's time to join our chatroom. Click the \"I've completed this challenge\" button to move on to your next challenge." - ], - "challengeType": 2, - "tests": [] - }, - { - "_id": "bd7125d8c441eddfaeb5bdff", - "name": "Preview our Challenge Map", - "difficulty": 0.02, - "challengeSeed": "114627322", - "description": [ - "Before you start learning how to code, we'd like to introduce you to a few things.", - "In the next 15 minutes, we'll introduce you to our challenges, chat rooms, field guide, portfolios and news site. Then we'll teach you how to get help if you get stuck somewhere.", - "First let's look at our Challenge Map. Click on the \"Map\" button in the upper right hand corner. This map shows all the challenges that will teach you how to code.", - "You should complete all these challenges in order.", - "Once you finish these Waypoint challenges, you'll move on to Bonfires (algorithm practice), then Ziplines (front end development practice) and finally Basejumps (full stack development practice). After that, you'll start building projects for nonprofits.", - "All of these challenges can be completed in a single one- or two-hour sitting.", - "This challenge map is just for your reference. When you return to FreeCodeCamp.com, we'll automatically redirect you to the next challenge that you should be doing." + "Welcome to Free Code Camp. We're a community of busy people learning to code by building projects for nonprofits.", + "We built this community because learning to code is hard. But anyone who can stay motivated can learn to code. And to stay motivated, you just need to:
Hello CodePen!
. The text's color should be Bootstrap blue.",
+ "Click the gear next the JavaScript. Click the \"Latest version of...\" select box and choose jQuery.",
+ "Now add the following code to your JavaScript: $(document).ready(function() { $('.text-primary').text('Hi CodePen!') });
. Click the \"Save\" button at the top. Your \"Hello CodePen!\" should change to \"Hi CodePen!\". This means that jQuery is working.",
+ "Now you're ready for your first Zipline. Click the \"I've completed this challenge\" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair."
+ ],
+ "challengeType": 3,
+ "tests": []
+ },
{
"_id": "bd7158d8c442eddfaeb5bd1f",
"name": "Zipline: Use the Twitch.tv JSON API",
@@ -686,7 +711,7 @@
"difficulty": 1.03,
"challengeSeed": "123488494",
"description": [
- "Objective: Build a CodePen.io that successfully reverse-engineers this: http://codepen.io/AdventureBear/full/aOobMg.",
+ "Objective: Build a CodePen.io that successfully reverse-engineers this: http://codepen.io/AdventureBear/full/yNBJRj.",
"Rule #1: Don't look at the example project's code. Figure it out for yourself.",
"Rule #2: You may use whichever libraries or APIs you need.",
"Rule #3: Reverse engineer the example project's functionality, and also feel free to personalize it.",
@@ -787,13 +812,13 @@
"tests": []
},
{
- "_id": "bd7158d8c443eddfaeb5bdef",
- "name": "Basejump: Build a Voting App",
- "difficulty": 2.01,
+ "_id": "bd7158d8c443eddfaeb5bcef",
+ "name": "Get Set for Basejumps",
+ "difficulty": 2.00,
"challengeSeed": "123488494",
"description": [
- "Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://voteplex.herokuapp.com/ and deploy it to Heroku.",
- "We'll build this Basejump on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
+ "Objective: Get the MEAN stack running on Cloud 9, push your code to GitHub, and deploy it to Heroku.",
+ "We'll build our Basejumps on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
"If you don't already have Cloud 9 account, create one now at http://c9.io.",
"Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.",
"Open up http://c9.io and sign in to your account.",
@@ -838,7 +863,22 @@
"Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab
.",
"As you build your app, you should frequently commit changes to your codebase. You can do this by running git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
"You can push these new commits to Github by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
- "Now that you've configured your environment, here are the specific User Stories you should implement for this Basejump:",
+ "Now you're ready to move on to your first Basejump. Click the \"I've completed this challenge\" button and enter the URLs for both your Github repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it."
+ ],
+ "challengeType": 4,
+ "tests": []
+ },
+ {
+ "_id": "bd7158d8c443eddfaeb5bdef",
+ "name": "Basejump: Build a Voting App",
+ "difficulty": 2.01,
+ "challengeSeed": "123488494",
+ "description": [
+ "Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://voteplex.herokuapp.com/ and deploy it to Heroku.",
+ "Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit http://freecodecamp.com/challenges/get-set-for-basejumps.",
+ "As you build your app, you should frequently commit changes to your codebase. You can do this by running git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
+ "You can push these new commits to Github by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
+ "Here are the specific User Stories you should implement for this Basejump:",
"User Story: As an authenticated user, I can keep my polls and come back later to access them.",
"User Story: As an authenticated user, can share my polls with my friends.",
"User Story: As an authenticated user, I can see the aggregate results of my polls.",
@@ -860,52 +900,10 @@
"challengeSeed": "123488494",
"description": [
"Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://sociallife.herokuapp.com/ and deploy it to Heroku.",
- "We'll build this Basejump on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
- "If you don't already have Cloud 9 account, create one now at http://c9.io.",
- "Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.",
- "Open up http://c9.io and sign in to your account.",
- "Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
- "Give your workspace a name.",
- "Choose Node.js in the selection area below the name field",
- "Click the Create button",
- "Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button",
- "Click the \"Start Editing\" button.",
- "In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
- "rm -rf * && npm install -g yo grunt grunt-cli generator-angular-fullstack && yo angular-fullstack
",
- "Yeoman will prompt you to answer some questions. Answer them like this:",
- "What would you like to write scripts with? JavaScript",
- "What would you like to write markup with? HTML",
- "What would you like to write stylesheets with? CSS",
- "What Angular router would you like to use? ngRoute",
- "Would you like to include Bootstrap? Yes",
- "Would you like to include UI Bootstrap? Yes",
- "Would you like to use MongoDB with Mongoose for data modeling? Yes",
- "Would you scaffold out an authentication boilerplate? Yes",
- "Would you like to include additional oAuth strategies? Twitter",
- "Would you like to use socket.io? No",
- "May bower anonymously report usage statistics to improve the tool over time? (Y/n) Y",
- "You may get an error similar to ERR! EEXIST, open ‘/home/ubuntu/.npm
. This is caused when Cloud9 runs out of memory and kills an install. If you get this, simply re-run this process with the command yo angular-fullstack
. You will then be asked a few questions regarding the re-install. Answer them as follows:",
- "Existing .yo-rc configuration found, would you like to use it? (Y/n) Y",
- "Overwrite client/favicon.ico? (Ynaxdh) Y",
- "To finish the installation run the commands: bower install && npm install
",
- "To start MongoDB, run the following commands in your terminal: mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod && chmod a+x mongod && ./mongod
",
- "You will want to open up a new terminal to work from by clicking on the + icon and select New Terminal",
- "Start the application by running the following command in your new terminal window: grunt serve
",
- "Wait for the following message to appear: xdg-open: no method available for opening 'http://localhost:8080'
. Now you can open the internal Cloud9 browser. To launch the browser select Preview in the toolbar then select the dropdown option Preview Running Application.",
- "Turn the folder in which your application is running into a Git repository by running the following commands: git init && git add . && git commit -am 'initial commit'
.",
- "Create a new Github repository by signing in to http://github.com and clicking on the + button next to your username in the upper-right hand side of your screen, then selecting \"New Repository\"",
- "Enter a project name, then click the \"Create Repository\" button.",
- "Find the \"...or push an existing repository from the command line\" section and click the Copy to Clipboard button beside it.",
- "Paste the commands from your clipboard into the Cloud9 terminal prompt. This will push your changes to your repository on Cloud 9 up to Github.",
- "Check back on your Github profile to verify the changes were successfully pushed up to Github.",
- "Now let's push your code to Heroku. If you don't already have a Heroku account, create one at http://heroku.com. You shouldn't be charged for anything, but you will need to add your credit card information to your Heroku before you will be able to use Heroku's free MongoLab add on.",
- "Before you publish to Heroku, you should free up as much memory as possible on Cloud9. In each of the Cloud9 terminal prompt tabs where MongoDB and Grunt are running, press the control + c
hotkey to shut down these processes.",
- "Run the following command in a Cloud9 terminal prompt tab: npm install grunt-contrib-imagemin --save-dev && npm install --save-dev && heroku login
. At this point, the terminal will prompt you to log in to Heroku from the command line.",
- "Now run yo angular-fullstack:heroku
. You can choose a name for your Heroku project, or Heroku will create a random one for you. You can choose whether you want to deploy to servers the US or the EU.",
- "Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab
.",
+ "Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit http://freecodecamp.com/challenges/get-set-for-basejumps.",
"As you build your app, you should frequently commit changes to your codebase. You can do this by running git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
"You can push these new commits to Github by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
- "Now that you've configured your environment, here are the specific User Stories you should implement for this Basejump:",
+ "Here are the specific User Stories you should implement for this Basejump:",
"User Story: As an unauthenticated user, I can view all bars in my area.",
"User Story: As an authenticated user, I can add myself to a bar to indicate I am going there tonight.",
"User Story: As an authenticated user, I can remove myself from a bar if I no longer want to go there.",
@@ -923,52 +921,10 @@
"challengeSeed": "123488494",
"description": [
"Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://stockjump.herokuapp.com/ and deploy it to Heroku.",
- "We'll build this Basejump on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
- "If you don't already have Cloud 9 account, create one now at http://c9.io.",
- "Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.",
- "Open up http://c9.io and sign in to your account.",
- "Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
- "Give your workspace a name.",
- "Choose Node.js in the selection area below the name field",
- "Click the Create button",
- "Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button",
- "Click the \"Start Editing\" button.",
- "In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
- "rm -rf * && npm install -g yo grunt grunt-cli generator-angular-fullstack && yo angular-fullstack
",
- "Yeoman will prompt you to answer some questions. Answer them like this:",
- "What would you like to write scripts with? JavaScript",
- "What would you like to write markup with? HTML",
- "What would you like to write stylesheets with? CSS",
- "What Angular router would you like to use? ngRoute",
- "Would you like to include Bootstrap? Yes",
- "Would you like to include UI Bootstrap? Yes",
- "Would you like to use MongoDB with Mongoose for data modeling? Yes",
- "Would you scaffold out an authentication boilerplate? Yes",
- "Would you like to include additional oAuth strategies? Twitter",
- "Would you like to use socket.io? No",
- "May bower anonymously report usage statistics to improve the tool over time? (Y/n) Y",
- "You may get an error similar to ERR! EEXIST, open ‘/home/ubuntu/.npm
. This is caused when Cloud9 runs out of memory and kills an install. If you get this, simply re-run this process with the command yo angular-fullstack
. You will then be asked a few questions regarding the re-install. Answer them as follows:",
- "Existing .yo-rc configuration found, would you like to use it? (Y/n) Y",
- "Overwrite client/favicon.ico? (Ynaxdh) Y",
- "To finish the installation run the commands: bower install && npm install
",
- "To start MongoDB, run the following commands in your terminal: mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod && chmod a+x mongod && ./mongod
",
- "You will want to open up a new terminal to work from by clicking on the + icon and select New Terminal",
- "Start the application by running the following command in your new terminal window: grunt serve
",
- "Wait for the following message to appear: xdg-open: no method available for opening 'http://localhost:8080'
. Now you can open the internal Cloud9 browser. To launch the browser select Preview in the toolbar then select the dropdown option Preview Running Application.",
- "Turn the folder in which your application is running into a Git repository by running the following commands: git init && git add . && git commit -am 'initial commit'
.",
- "Create a new Github repository by signing in to http://github.com and clicking on the + button next to your username in the upper-right hand side of your screen, then selecting \"New Repository\"",
- "Enter a project name, then click the \"Create Repository\" button.",
- "Find the \"...or push an existing repository from the command line\" section and click the Copy to Clipboard button beside it.",
- "Paste the commands from your clipboard into the Cloud9 terminal prompt. This will push your changes to your repository on Cloud 9 up to Github.",
- "Check back on your Github profile to verify the changes were successfully pushed up to Github.",
- "Now let's push your code to Heroku. If you don't already have a Heroku account, create one at http://heroku.com. You shouldn't be charged for anything, but you will need to add your credit card information to your Heroku before you will be able to use Heroku's free MongoLab add on.",
- "Before you publish to Heroku, you should free up as much memory as possible on Cloud9. In each of the Cloud9 terminal prompt tabs where MongoDB and Grunt are running, press the control + c
hotkey to shut down these processes.",
- "Run the following command in a Cloud9 terminal prompt tab: npm install grunt-contrib-imagemin --save-dev && npm install --save-dev && heroku login
. At this point, the terminal will prompt you to log in to Heroku from the command line.",
- "Now run yo angular-fullstack:heroku
. You can choose a name for your Heroku project, or Heroku will create a random one for you. You can choose whether you want to deploy to servers the US or the EU.",
- "Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab
.",
+ "Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit http://freecodecamp.com/challenges/get-set-for-basejumps.",
"As you build your app, you should frequently commit changes to your codebase. You can do this by running git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
"You can push these new commits to Github by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
- "Now that you've configured your environment, here are the specific User Stories you should implement for this Basejump:",
+ "Here are the specific User Stories you should implement for this Basejump:",
"User Story: As a user, I can view a graph displaying the recent trend line for all added stocks.",
"User Story: As a user, I can add new stocks by their symbol name.",
"User Story: As a user, I can remove stocks.",
@@ -986,52 +942,10 @@
"challengeSeed": "123488494",
"description": [
"Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://bookoutpost.herokuapp.com/ and deploy it to Heroku.",
- "We'll build this Basejump on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
- "If you don't already have Cloud 9 account, create one now at http://c9.io.",
- "Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.",
- "Open up http://c9.io and sign in to your account.",
- "Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
- "Give your workspace a name.",
- "Choose Node.js in the selection area below the name field",
- "Click the Create button",
- "Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button",
- "Click the \"Start Editing\" button.",
- "In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
- "rm -rf * && npm install -g yo grunt grunt-cli generator-angular-fullstack && yo angular-fullstack
",
- "Yeoman will prompt you to answer some questions. Answer them like this:",
- "What would you like to write scripts with? JavaScript",
- "What would you like to write markup with? HTML",
- "What would you like to write stylesheets with? CSS",
- "What Angular router would you like to use? ngRoute",
- "Would you like to include Bootstrap? Yes",
- "Would you like to include UI Bootstrap? Yes",
- "Would you like to use MongoDB with Mongoose for data modeling? Yes",
- "Would you scaffold out an authentication boilerplate? Yes",
- "Would you like to include additional oAuth strategies? Twitter",
- "Would you like to use socket.io? No",
- "May bower anonymously report usage statistics to improve the tool over time? (Y/n) Y",
- "You may get an error similar to ERR! EEXIST, open ‘/home/ubuntu/.npm
. This is caused when Cloud9 runs out of memory and kills an install. If you get this, simply re-run this process with the command yo angular-fullstack
. You will then be asked a few questions regarding the re-install. Answer them as follows:",
- "Existing .yo-rc configuration found, would you like to use it? (Y/n) Y",
- "Overwrite client/favicon.ico? (Ynaxdh) Y",
- "To finish the installation run the commands: bower install && npm install
",
- "To start MongoDB, run the following commands in your terminal: mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod && chmod a+x mongod && ./mongod
",
- "You will want to open up a new terminal to work from by clicking on the + icon and select New Terminal",
- "Start the application by running the following command in your new terminal window: grunt serve
",
- "Wait for the following message to appear: xdg-open: no method available for opening 'http://localhost:8080'
. Now you can open the internal Cloud9 browser. To launch the browser select Preview in the toolbar then select the dropdown option Preview Running Application.",
- "Turn the folder in which your application is running into a Git repository by running the following commands: git init && git add . && git commit -am 'initial commit'
.",
- "Create a new Github repository by signing in to http://github.com and clicking on the + button next to your username in the upper-right hand side of your screen, then selecting \"New Repository\"",
- "Enter a project name, then click the \"Create Repository\" button.",
- "Find the \"...or push an existing repository from the command line\" section and click the Copy to Clipboard button beside it.",
- "Paste the commands from your clipboard into the Cloud9 terminal prompt. This will push your changes to your repository on Cloud 9 up to Github.",
- "Check back on your Github profile to verify the changes were successfully pushed up to Github.",
- "Now let's push your code to Heroku. If you don't already have a Heroku account, create one at http://heroku.com. You shouldn't be charged for anything, but you will need to add your credit card information to your Heroku before you will be able to use Heroku's free MongoLab add on.",
- "Before you publish to Heroku, you should free up as much memory as possible on Cloud9. In each of the Cloud9 terminal prompt tabs where MongoDB and Grunt are running, press the control + c
hotkey to shut down these processes.",
- "Run the following command in a Cloud9 terminal prompt tab: npm install grunt-contrib-imagemin --save-dev && npm install --save-dev && heroku login
. At this point, the terminal will prompt you to log in to Heroku from the command line.",
- "Now run yo angular-fullstack:heroku
. You can choose a name for your Heroku project, or Heroku will create a random one for you. You can choose whether you want to deploy to servers the US or the EU.",
- "Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab
.",
+ "Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit http://freecodecamp.com/challenges/get-set-for-basejumps.",
"As you build your app, you should frequently commit changes to your codebase. You can do this by running git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
"You can push these new commits to Github by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
- "Now that you've configured your environment, here are the specific User Stories you should implement for this Basejump:",
+ "Here are the specific User Stories you should implement for this Basejump:",
"User Story: As an authenticated user, I can view all books posted by every user.",
"User Story: As an authenticated user, I can add a new book.",
"User Story: As an authenticated user, I can update my settings to store my full name, city, and state.",
@@ -1049,52 +963,10 @@
"challengeSeed": "123488494",
"description": [
"Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://linkterest.herokuapp.com/ and deploy it to Heroku.",
- "We'll build this Basejump on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
- "If you don't already have Cloud 9 account, create one now at http://c9.io.",
- "Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.",
- "Open up http://c9.io and sign in to your account.",
- "Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
- "Give your workspace a name.",
- "Choose Node.js in the selection area below the name field",
- "Click the Create button",
- "Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button",
- "Click the \"Start Editing\" button.",
- "In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
- "rm -rf * && npm install -g yo grunt grunt-cli generator-angular-fullstack && yo angular-fullstack
",
- "Yeoman will prompt you to answer some questions. Answer them like this:",
- "What would you like to write scripts with? JavaScript",
- "What would you like to write markup with? HTML",
- "What would you like to write stylesheets with? CSS",
- "What Angular router would you like to use? ngRoute",
- "Would you like to include Bootstrap? Yes",
- "Would you like to include UI Bootstrap? Yes",
- "Would you like to use MongoDB with Mongoose for data modeling? Yes",
- "Would you scaffold out an authentication boilerplate? Yes",
- "Would you like to include additional oAuth strategies? Twitter",
- "Would you like to use socket.io? No",
- "May bower anonymously report usage statistics to improve the tool over time? (Y/n) Y",
- "You may get an error similar to ERR! EEXIST, open ‘/home/ubuntu/.npm
. This is caused when Cloud9 runs out of memory and kills an install. If you get this, simply re-run this process with the command yo angular-fullstack
. You will then be asked a few questions regarding the re-install. Answer them as follows:",
- "Existing .yo-rc configuration found, would you like to use it? (Y/n) Y",
- "Overwrite client/favicon.ico? (Ynaxdh) Y",
- "To finish the installation run the commands: bower install && npm install
",
- "To start MongoDB, run the following commands in your terminal: mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod && chmod a+x mongod && ./mongod
",
- "You will want to open up a new terminal to work from by clicking on the + icon and select New Terminal",
- "Start the application by running the following command in your new terminal window: grunt serve
",
- "Wait for the following message to appear: xdg-open: no method available for opening 'http://localhost:8080'
. Now you can open the internal Cloud9 browser. To launch the browser select Preview in the toolbar then select the dropdown option Preview Running Application.",
- "Turn the folder in which your application is running into a Git repository by running the following commands: git init && git add . && git commit -am 'initial commit'
.",
- "Create a new Github repository by signing in to http://github.com and clicking on the + button next to your username in the upper-right hand side of your screen, then selecting \"New Repository\"",
- "Enter a project name, then click the \"Create Repository\" button.",
- "Find the \"...or push an existing repository from the command line\" section and click the Copy to Clipboard button beside it.",
- "Paste the commands from your clipboard into the Cloud9 terminal prompt. This will push your changes to your repository on Cloud 9 up to Github.",
- "Check back on your Github profile to verify the changes were successfully pushed up to Github.",
- "Now let's push your code to Heroku. If you don't already have a Heroku account, create one at http://heroku.com. You shouldn't be charged for anything, but you will need to add your credit card information to your Heroku before you will be able to use Heroku's free MongoLab add on.",
- "Before you publish to Heroku, you should free up as much memory as possible on Cloud9. In each of the Cloud9 terminal prompt tabs where MongoDB and Grunt are running, press the control + c
hotkey to shut down these processes.",
- "Run the following command in a Cloud9 terminal prompt tab: npm install grunt-contrib-imagemin --save-dev && npm install --save-dev && heroku login
. At this point, the terminal will prompt you to log in to Heroku from the command line.",
- "Now run yo angular-fullstack:heroku
. You can choose a name for your Heroku project, or Heroku will create a random one for you. You can choose whether you want to deploy to servers the US or the EU.",
- "Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab
.",
+ "Note that for each Basejump, you should create a new GitHub repository and a new Heroku project. If you can't remember how to do this, revisit http://freecodecamp.com/challenges/get-set-for-basejumps.",
"As you build your app, you should frequently commit changes to your codebase. You can do this by running git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a brief summary of the changes you made to your code.",
"You can push these new commits to Github by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
- "Now that you've configured your environment, here are the specific User Stories you should implement for this Basejump:",
+ "Here are the specific User Stories you should implement for this Basejump:",
"User Story: As an unauthenticated user, I should be able to login with Twitter.",
"User Story: As an authenticated user, I should be able to link to images.",
"User Story: As an authenticated user, I should be able to delete images that I've linked to.",
diff --git a/seed_data/field-guides.json b/seed_data/field-guides.json
index fadc0bcb31..4b24edd108 100644
--- a/seed_data/field-guides.json
+++ b/seed_data/field-guides.json
@@ -15,7 +15,7 @@
"name": "What is Free Code Camp?",
"description": [
"It takes about 1,000 hours of coding to develop the skills you'll need to get an entry level software engineering job. Most coding bootcamps try to jam all this into 12 weeks of intensive study. Free Code Camp is fully online, and there will always be other people at your skill level that you can pair program with, so you can learn at your own pace. Here are some example coding schedules:
", + "It takes about 1,600 hours of coding to develop the skills you'll need to get an entry level software engineering job. Most coding bootcamps try to jam all this into 3 or 4 months of intensive study. Free Code Camp is fully online, and there will always be other people at your skill level that you can pair program with, so you can learn at your own pace. Here are some example coding schedules:
", "Time budgeted | ", @@ -149,22 +148,22 @@ "|||
---|---|---|---|
Weekends | ", "10 hours/week | ", - "100 weeks (2 years) | ", + "160 weeks (36 months) | ", "
Nights and Weekends | ", "20 hours/week | ", - "50 weeks (1 year) | ", + "80 weeks (18 months) | ", "
Full time | ", "40 hours/week | ", - "25 weeks (6 months) | ", + "40 weeks (9 months) | ", "
Traditional Bootcamp Pacing | ", "80 hours/week | ", - "12 weeks (3 months) | ", + "20 weeks (5 months) | ", "