[ { "_id": "bd7124d8c441eddfaeb5bdef", "name": "Learn how Free Code Camp Works", "difficulty": 0.01, "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 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:
$(document).ready()
.",
"Go to http://www.codecademy.com/courses/web-beginner-en-GfjC6/0/1 and complete the second section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7114d8c441eddfaeb5bdef",
"name": "Harness Dynamic HTML",
"difficulty": 0.15,
"challengeSeed": "125658028",
"description": [
"Did you know that you can create HTML elements using jQuery?",
"Let's learn some more advanced ways to use jQuery to manipulate the DOM.",
"Go to http://www.codecademy.com/courses/web-beginner-en-v6phg/0/1 and complete the third section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7115d8c441eddfaeb5bdef",
"name": "Listen for jQuery Events",
"difficulty": 0.16,
"challengeSeed": "125658027",
"description": [
"jQuery can listen for events, such as clicking a button, and respond to them.",
"Here we'll learn how to use the jQuery click()
function to respond to events in the browser.",
"Go to http://www.codecademy.com/courses/web-beginner-en-JwhI1/0/1 and complete the fourth section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7116d8c441eddfaeb5bdef",
"name": "Trigger jQuery Effects",
"difficulty": 0.17,
"challengeSeed": "125658025",
"description": [
"We can use jQuery to do all kinds of visual effects and transitions.",
"Let's explore some of the fun ways we can manipulate DOM elements with jQuery.",
"Go to http://www.codecademy.com/courses/web-beginner-en-jtFIC/0/1 and complete the fifth section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7123d8c441eddfaeb5bdef",
"name": "Learn Basic Computer Science",
"difficulty": 0.18,
"challengeSeed": "114628241",
"description": [
"Stanford has an excellent free online Computer Science curriculum. This interactive course uses a modified version of JavaScript. It will cover a lot of concepts quickly.",
"Note that Harvard also has an excellent introduction to computer science course called CS50, but it takes more than 100 hours to complete, and doesn't use JavaScript.",
"Despite being completely self-paced, Stanford's CS101 course is broken up into weeks. Each of the following challenges will address one of those weeks.",
"Go to https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z54/z1/ and complete the first week's course work."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8124d8c441eddfaeb5bdef",
"name": "Learn Loops",
"difficulty": 0.19,
"challengeSeed": "114597348",
"description": [
"Now let's tackle week 2 of Stanford's Intro to Computer Science course.",
"This will introduce us to loops, a fundamental feature of every programming language.",
"Go to https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/ and complete Week 2."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8125d8c441eddfaeb5bdef",
"name": "Learn Computer Hardware",
"difficulty": 0.20,
"challengeSeed": "114597347",
"description": [
"Week 3 of Stanford's Intro to Computer Science covers computer hardware and explains Moore's law of exponential growth in the price-performance of processors.",
"This challenge will also give you an understanding of how bits and bytes work.",
"Go to https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/ and complete Week 3."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8126d8c441eddfaeb5bdef",
"name": "Learn Computer Networking",
"difficulty": 0.21,
"challengeSeed": "114604811",
"description": [
"Now that you've learned about computer hardware, it's time to learn about the software that runs on top of it.",
"Particularly important, you will learn about networks and TCP/IP - the protocol that powers the internet.",
"Go to https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/ and complete Week 4."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8127d8c441eddfaeb5bdef",
"name": "Learn Boolean Logic",
"difficulty": 0.22,
"challengeSeed": "114604812",
"description": [
"Now we'll do some more table exercises and learn boolean logic.",
"We'll also learn the difference between digital data and analog data.",
"Go to https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/ and complete Week 5."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8128d8c441eddfaeb5bdef",
"name": "Learn Computer Security",
"difficulty": 0.23,
"challengeSeed": "114604813",
"description": [
"We're almost done with Stanford's Introduction to Computer Science course!",
"We'll learn about one of the most important inventions of the 20th century - spreadsheets.",
"We'll also learn about Computer Security and some of the more common vulnerabilities software systems have.",
"Go to https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/ and complete Week 6, the final week of the course."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7129d8c441eddfaeb5bdef",
"name": "Build an Adventure Game",
"difficulty": 0.24,
"challengeSeed": "114604814",
"description": [
"Now that you understand some Computer Science fundamentals, let's focus on programming JavaScript!",
"We're going to work through Codecademy's famous interactive JavaScript course.",
"This course will teach us some JavaScript fundamentals while guiding us through the process of building interesting web apps, all within Codecademy's learner-friendly environment!",
"Go to http://www.codecademy.com/courses/getting-started-v2/0/1 and complete the section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/javascript-beginner-en-x9DnD/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7130d8c441eddfaeb5bdef",
"name": "Build Rock Paper Scissors",
"difficulty": 0.25,
"challengeSeed": "114604815",
"description": [
"Now we'll learn how JavaScript functions work, and use them to build a simple Rock Paper Scissors game.",
"Go to http://www.codecademy.com/courses/javascript-beginner-en-6LzGd/0/1 and complete the section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7131d8c441eddfaeb5bdef",
"name": "Learn JavaScript For Loops",
"difficulty": 0.26,
"challengeSeed": "114614220",
"description": [
"Let's learn more about the loops that make virtually all programs possible - the \"For Loop\" and \"While Loop\". First, we'll learn the For Loop.",
"Go to http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1web and complete both the both For and While loop section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/javascript-beginner-en-XEDZA/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7132d8c441eddfaeb5bdef",
"name": "Learn JavaScript While Loops",
"difficulty": 0.27,
"challengeSeed": "114612889",
"description": [
"Go to http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1 and complete the section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7133d8c441eddfaeb5bdef",
"name": "Learn Control Flow",
"difficulty": 0.28,
"challengeSeed": "114612888",
"description": [
"Much of human reasoning can be broken down into what we call Boolean Logic. Lucky for us, computers can think the same way! Let's learn how to instruct our computers by writing \"If Statements\" and \"Else Statements\".",
"We'll also learn some advanced \"Control Flow\" principals, such as ways we can exit loops early.",
"Go to http://www.codecademy.com/courses/javascript-beginner-en-qDwp0/0/1 and complete the section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/javascript-beginner-en-ZA2rb/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7134d8c441eddfaeb5bdef",
"name": "Build a Contact List",
"difficulty": 0.29,
"challengeSeed": "114612887",
"description": [
"Up to this point, you've been working mostly with strings and numbers. Now we're going to learn more complicated data structures, like \"Arrays\" and \"Objects\".",
"Go to http://www.codecademy.com/courses/javascript-beginner-en-9Sgpi/0/1 and complete the section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7135d8c441eddfaeb5bdef",
"name": "Build an Address Book",
"difficulty": 0.30,
"challengeSeed": "114612885",
"description": [
"Let's learn more about objects.",
"Go to http://www.codecademy.com/courses/spencer-sandbox/0/1 and complete the section.",
"Be sure to also complete this section: http://www.codecademy.com/courses/building-an-address-book/0/1?curriculum_id=506324b3a7dffd00020bf661."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7136d8c441eddfaeb5bdef",
"name": "Build a Cash Register",
"difficulty": 0.31,
"challengeSeed": "114612882",
"description": [
"In this final Codecademy section, we'll learn even more about JavaScript objects.",
"Go to http://www.codecademy.com/courses/objects-ii/0/1 and complete this section.",
"Be sure to also complete the final section: http://www.codecademy.com/courses/close-the-super-makert/0/1."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7118d8c441eddfaeb5bdef",
"name": "Discover Chrome's DevTools",
"difficulty": 0.32,
"challengeSeed": "110752743",
"description": [
"It's time to learn the most powerful tool your browser has - the Development Tools!",
"If you aren't already using Chrome, you'll want to download it here: http://www.google.com/chrome/. While it's true that Firefox has a tool called Firebug that is very similar to Chrome's DevTools, we will use Chrome for this challenge.",
"Note that this course, jointly produced by Google and Code School, is technologically impressive, but occasionally buggy. If you encounter a bug, just ignore it and keep going.",
"Go to http://discover-devtools.codeschool.com and complete this short course."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7138d8c441eddfaeb5bdef",
"name": "Learn Regular Expressions",
"difficulty": 0.33,
"challengeSeed": "112547802",
"description": [
"You can use a Regular Expression, or \"Regex\", to select specific types of characters in text.",
"Check out http://www.regexr.com. It's a Regular Expression Sandbox.",
"Now go to http://www.regexone.com and complete the tutorial and exercises 1 - 6.",
"Note that you can click \"continue\" to move on to the next step as soon as all the tasks have green check marks beside them. You can often do this just by using the wildcard \"dot\" operator, but try to use the techniques that each lesson recommends."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7154d8c441eddfaeb5bdef",
"name": "Get Started with Angular.js",
"difficulty": 0.34,
"challengeSeed": "125671736",
"description": [
"Angular.js is a popular client-side JavaScript framework. It will help you create buttery smooth browser-based interactions.",
"Codecademy has a fun, interactive Angular.js course. This will give us a quick tour of Angular.js's mechanics and features.",
"Complete Unit 1 of http://www.codecademy.com/learn/learn-angularjs"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7155d8c441eddfaeb5bdef",
"name": "Apply Angular.js Directives",
"difficulty": 0.35,
"challengeSeed": "125671736",
"description": [
"Complete Unit 2 of http://www.codecademy.com/learn/learn-angularjs"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7156d8c441eddfaeb5bdef",
"name": "Create Angular.js Services",
"difficulty": 0.36,
"challengeSeed": "125671736",
"description": [
"Complete Unit 3 of http://www.codecademy.com/learn/learn-angularjs"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7157d8c441eddfaeb5bdef",
"name": "Structure Angular.js Routes",
"difficulty": 0.37,
"challengeSeed": "125671736",
"description": [
"Complete Unit 4 of http://www.codecademy.com/learn/learn-angularjs"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7158d8c441eddfaeb5bdef",
"name": "Build a Geolocation Angular App",
"difficulty": 0.38,
"challengeSeed": "125671736",
"description": [
"Complete Unit 5 of http://www.codecademy.com/learn/learn-angularjs"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bd0f",
"name": "Manage Packages with NPM",
"difficulty": 0.39,
"challengeSeed": "126433450",
"description": [
"We'll build this Waypoint 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.",
"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.",
"Run this command: sudo npm install how-to-npm -g
",
"Now start this tutorial by running how-to-npm
",
"Note that you can resize the c9.io's windows by dragging their borders.",
"Follow the directions and work through all of the the tutorial's steps before moving on."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bdff",
"name": "Start a Node.js Server",
"difficulty": 0.40,
"challengeSeed": "126411561",
"description": [
"We'll build this Waypoint 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.",
"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.",
"Run this command: sudo npm install learnyounode -g
",
"Now start this tutorial by running learnyounode
",
"Note that you can resize the c9.io's windows by dragging their borders.",
"Follow the directions and work through all of the the tutorial's steps before moving on."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bd1f",
"name": "Build Web Apps with Express.js",
"difficulty": 0.41,
"challengeSeed": "126411559",
"description": [
"We'll build this Waypoint 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.",
"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.",
"Run this command: git clone http://github.com/reddock/fcc_express && chmod 744 fcc_express/setup.sh && fcc_express/setup.sh && source ~/.profile
",
"Now start this tutorial by running expressworks
",
"Note that you can resize the c9.io's windows by dragging their borders.",
"Follow the directions and work through all of the the tutorial's steps before moving on."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7140d8c441eddfaeb5bdef",
"name": "Manage Source Code with Git",
"difficulty": 0.43,
"challengeSeed": "114635309",
"description": [
"Version Control Systems like Git ensure that, no matter how you experiment with your code, you can always roll back your app to a stable previous state.",
"Git is also a great way to share and contribute to open source software.",
"Go to https://www.codeschool.com/courses/try-git and complete this short interactive course."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7139d8c441eddfaeb5bdef",
"name": "Pair Program on Bonfires",
"difficulty": 0.44,
"challengeSeed": "119657641",
"description": [
"OK, we're finally ready to start pair programming!",
"Pair Programming is where two people code together on the same computer. It is an efficient way to collaborate, and widely practiced at software companies. Pair Programming is one of the core concepts of \"Agile\" Software Development, which you will hear more about later.",
"Many people use Skype or Google Hangouts to pair program, but if you talk with professional software engineers, they will tell you that it's not really pair programming unless both people have the ability to use the keyboard and mouse.",
"The most popular tool for pair programming is Screen Hero. You can download Screen Hero for Mac or Windows. Create your new user account from within the app.",
"We have a special chat room for people ready to pair program. Go to our Slack chatroom and navigate to the #letspair channel and type \"Hello Pair Programmers!\"",
"If someone is available, they will be your \"pair\" - the person you pair programming with.",
"If no one gets back to you in the first few minutes, don't worry. There will be lots of opportunities to pair program in the future.",
"If someone does get back to you, private message them and ask for the email address they used to register Screen Hero.",
"Add them as a new contact in Screen Hero, then click the monitor-looking button to attempt to share your screen with them.",
"Once the Screen Hero session starts, your screen's margins will glow orange. You are now sharing your screen.",
"Your pair will have their own cursor, and will be able to type text on his or her and keyboard.",
"Now it's time to tackle our Bonfires.",
"Go to http://freecodecamp.com/bonfires and start working through our Bonfire challenges.",
"Once you you finish pair programming, end the session in Screen Hero session.",
"Congratulations! You have completed your first pair programming session.",
"Pair program as much as possible with different campers until you've completed all the Bonfire challenges. This is a big time investment, but the JavaScript practice you get will be well worth it!",
"Mark this challenge as complete and move on to the Bonfires."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7158d8c442eddfbeb5bd1f",
"name": "Get Set for Ziplines",
"difficulty": 1.00,
"challengeSeed": "125658022",
"description": [
"Now you're ready to start our Zipline challenges. These front-end development challenges will give you many opportunities to apply the HTML, CSS, jQuery and JavaScript you've learned to build static (database-less) applications.",
"We'll build these challenges using CodePen, a popular tool for creating, sharing, and discovering static web applications.",
"Go to http://codepen.io and create an account.",
"Click your user image in the top right corner, then click the \"New pen\" button that drops down.",
"Drag the windows around and press the buttons in the lower-right hand corner to change the orientation to suit your preference.",
"Click the gear next to CSS. Then in the \"External CSS File or Another Pen\" text field, type \"bootstrap\" and scroll down until you see the latest version of Bootstrap. Click it.",
"Verify that bootstrap is active by adding the following code to your HTML: <h1 class='text-primary'>Hello CodePen!</h1>
. 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",
"difficulty": 1.01,
"challengeSeed": "126411564",
"description": [
"Objective: Build a CodePen.io that successfully reverse-engineers this: http://codepen.io/GeoffStorbeck/full/GJKRxZ.",
"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.",
"Here are the user stories you must enable, and optional bonus user stories:",
"User Story: As a user, I can see whether Free Code Camp is currently streaming on Twitch.tv.",
"User Story: As a user, I can click the status output and be sent directly to the Free Code Camp's Twitch.tv channel.",
"User Story: As a user, if Free Code Camp is streaming, I can see additional details about what they are streaming.",
"Bonus User Story: As a user, I can search through the streams listed.",
"Hint: Here's an example call to Twitch.tv's JSON API: https://api.twitch.tv/kraken/streams/freecodecamp
.",
"Hint: The relevant documentation about this API call is here: https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel.",
"Hint: Here's an array of the Twitch.tv usernames of people who regularly stream coding: [\"freecodecamp\", \"storbeck\", \"terakilobyte\", \"habathcx\",\"notmichaelmcdonald\",\"RobotCaleb\",\"comster404\",\"brunofin\",\"thomasballinger\",\"joe_at_underflow\",\"noobs2ninjas\",\"mdwasp\",\"beohoff\",\"xenocomagain\"]
",
"When you are finished, 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.http://www.freecodecamp.com/stories/hotStories
.",
"When you are finished, 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.http://www.mediawiki.org/wiki/API:Main_page
.",
"When you are finished, 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.rm -rf * && echo \"export NODE_PATH=$NODE_PATH:/home/ubuntu/.nvm/v0.10.35/lib/node_modules\" >> ~/.bashrc && source ~/.bashrc && 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
.",
"As you build your app, you should frequently commit changes to your codebase. Make sure you're in the ~/workspace
directory by running cd ~/workspace
. Then you can this code to stage the changes to your changes and commit them: git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a short summary of the changes you made to your code, such as \"added a records controller and corresponding routes\".",
"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 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, I can share my polls with my friends.",
"User Story: As an authenticated user, I can see the aggregate results of my polls.",
"User Story: As an authenticated user, I can delete polls that I decide I don't want anymore.",
"User Story: As an authenticated user, I can create a poll with any number of possible items.",
"Bonus User Story: As an unauthenticated user, I can see everyone's polls, but I can't vote on anything.",
"Bonus User Story: As an unauthenticated or authenticated user, I can see the results of polls in chart form. (This could be implemented using Chart.js or Google Charts.)",
"Bonus User Story: As an authenticated user, if I don't like the options on a poll, I can create a new option.",
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your Github repository and your live app running on Heroku. 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.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 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.",
"Bonus User Story: As an unauthenticated user, when I login I should not have to search again.",
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your Github repository and your live app running on Heroku. 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.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 a user, I can view a graph displaying the recent trend lines for each added stock.",
"User Story: As a user, I can add new stocks by their symbol name.",
"User Story: As a user, I can remove stocks.",
"Bonus User Story: As a user, I can see changes in real-time when any other user adds or removes a stock.",
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your Github repository and your live app running on Heroku. 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.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 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.",
"Bonus User Story: As an authenticated user, I can propose a trade and wait for the other user to accept the trade.",
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your Github repository and your live app running on Heroku. 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.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 unauthenticated user, I can login with Twitter.",
"User Story: As an authenticated user, I can link to images.",
"User Story: As an authenticated user, I can delete images that I've linked to.",
"User Story: As an authenticated user, I can see a Pinterest-style wall of all the images I've linked to.",
"User Story: As an unauthenticated user, I can browse other users' walls of images.",
"User Story: As an unauthenticated user, I can see everyone's polls, but not be able to vote.",
"Bonus User Story: As an authenticated user, if I upload an image that is broken, it will be replaced by a placeholder image. (can use jQuery broken image detection)",
"Hint: Masonry.js is a library that allows for Pinterest-style image grids.",
"Once you've finished implementing these user stories, click the \"I've completed this challenge\" button and enter the URLs for both your Github repository and your live app running on Heroku. 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.",
"If you'd like immediate feedback on your project, click this button and paste in a link to your Heroku project. Otherwise, we'll review it before you start your nonprofit projects.