freeCodeCamp/seed_data/coursewares.json

738 lines
46 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

[
{
"_id": "bd7124d8c441eddfaeb5bdef",
"name": "Learn how Free Code Camp Works",
"difficulty": 0.01,
"challengeSeed": "114486344",
"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."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7125d8c441eddfaeb5bd0f",
"name": "Join Our Chat Room",
"difficulty": 0.03,
"challengeSeed": "114627322",
"description": [
"Now we're going to join the Free Code Camp chat room. You can come here any time of day to hang out, ask questions and get help.",
"If you don't already have a GitHub account, create one real quick at <a href='https://www.github.com' target='_blank'>https://www.github.com</a>.",
"Be sure to update your biographical information and upload an image. A picture of your face works best. This is how people will see you in the chat room, so put your best foot forward.",
"Now enter the chat room by going to <a href='https://gitter.im/FreeCodeCamp/FreeCodeCamp' target='_blank'>https://gitter.im/FreeCodeCamp/FreeCodeCamp</a> and clicking the \"sign in with GitHub\" button.",
"Introduce yourself to our chat room by typing: \"hello world!\".",
"Tell your fellow campers how you found Free Code Camp. Also tell us why you want to learn to code.",
"Keep the chat room open while you work through the other challenges. That way you ask for help if you get stuck on a challenge. You can also socialize when you feel like taking a break.",
"You can also access this chatroom by clicking the \"Chat\" button in the upper right hand corner."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7125d8c441eddfaeb5bd1f",
"name": "Browse our Field Guide",
"difficulty": 0.04,
"challengeSeed": "114627322",
"description": [
"Free Code Camp has an up-to-date field guide that will answer your many questions.",
"Click the \"Field Guide\" button in the upper right hand corner.",
"You can browse the field guide at your convenience. Most of its articles take less than 1 minute to read.",
"When you click the Field Guide button, it will always take you back to whichever article you were last reading"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7125d8c441eddfaeb5bd2f",
"name": "Customize your Porfolio Page",
"difficulty": 0.05,
"challengeSeed": "114627322",
"description": [
"You and all your fellow campers have portfolio pages.",
"To see your portfolio page, click your picture in the upper right hand corner.",
"Your portfolio page will automatically show off your progress through Free Code Camp.",
"Click the \"Update my portfolio page or manage my account\" button",
"You can link to your Github, Twitter and LinkedIn accounts. If you've already built some websites, you can link to them here as well.",
"Be sure to click the \"Update my Bio\" or \"Update my Social Links\" button to save this new information to your portfolio page."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7126d8c441eddfaeb5bd3f",
"name": "Try Camper News",
"difficulty": 0.06,
"challengeSeed": "115275066",
"description": [
"Camper News is the best place for our campers to share and discuss helpful links.",
"Click \"News\" in the upper right hand corner.",
"You'll see a variety of links that have been submitted. Click on the \"Discuss\" button under one of them.",
"You can upvote links. This will push the link up the rankings of hot links.",
"You an also comment on a link. If someone responds to your comment, you'll get an email notification so you can come back and respond to them.",
"You can also submit links. You can modify the link's headline and also leave an initial comment about the link.",
"You can view the portfolio pages of any camper who has posted links or comments on Camper News. Just click on their photo.",
"When you submit a link, you'll get a point. You will also get a point each time someone upvotes your link."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7137d8c441eddfaeb5bdef",
"name": "Get Help the Hacker Way with RSAP",
"difficulty": 0.07,
"challengeSeed": "111500801",
"description": [
"Let's cover one last thing before you start working through our lessons: how to get help.",
"Any time you get stuck or don't know what to do next, follow this simple algorithm (procedure): RSAP (Read, Search, Ask, Post).",
"First, R - Read the documentation or error message. A key skill that good coders have is the ability to interpret and then follow instructions.",
"Next, S - Search Google. Good Google queries take a lot of practice. When you search Google, you usually want to include the language or framework you're using. You also want to limit the results to a recent period.",
"Then, if you still haven't found an answer to your question, A - Ask your friends. If you have trouble, you can ask your fellow campers. We have a special chat room specifically for getting help with tools you learn through these Free Code Camp Challenges. Go to <a href='https://gitter.im/FreeCodeCamp/Help' target='_blank'>https://gitter.im/FreeCodeCamp/Help</a>. Keep this chat open while you work on the remaining challenges.",
"Finally, P - Post on Stack Overflow. Before you attempt to do this, re-read Stack Overflow's guide to asking a good question: <a href='http://stackoverflow.com/help/how-to-ask'>http://stackoverflow.com/help/how-to-ask</a>.",
"Now you have a clear algorithm to follow when you need help!"
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7127d8c441eddfaeb5bdef",
"name": "Build a Personal Website",
"difficulty": 0.08,
"challengeSeed": "114627406",
"description": [
"There are tons of interactive HTML and CSS tutorials out there, but Nathan Bashaw and Christine Bower's Dash tutorials - which they built for General Assembly - are our favorite.",
"Go to <a href='https://dash.generalassemb.ly/projects/annas-website-1' target='_blank'>https://dash.generalassemb.ly/projects/annas-website-1</a> and get started with your first project."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7128d8c441eddfaeb5bdef",
"name": "Build a Responsive Blog Theme",
"difficulty": 0.09,
"challengeSeed": "114578441",
"description": [
"Next, let's learn about responsive web design and continue learning about HTML and CSS.",
"A responsive website will automatically adapt to changes in your browser's width. This means that you can make one version of a website that will look good on desktop, tablet and phone.",
"Later, we'll use Twitter's Bootstrap CSS framework to build responsive websites.",
"You can check it out here: <a href='http://getbootstrap.com/' target='_blank'>http://getbootstrap.com/</a>.",
"Go to <a href='https://dash.generalassemb.ly/projects/jeffs-blog-1' target='_blank'>https://dash.generalassemb.ly/projects/jeffs-blog-1</a> and complete the second project."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8129d8c441eddfaeb5bdef",
"name": "Build a Small Business Website",
"difficulty": 0.10,
"challengeSeed": "114578438",
"description": [
"Ready for some more HTML and CSS fundamentals?",
"Go to <a href='https://dash.generalassemb.ly/projects/eshas-restaurant-1' target='_blank'>https://dash.generalassemb.ly/projects/eshas-restaurant-1</a> and complete the third project."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7112d8c441eddfaeb5bdef",
"name": "Get Started with jQuery",
"difficulty": 0.11,
"challengeSeed": "114578435",
"description": [
"jQuery is a powerful tool for manipulating HTML elements.",
"It's a lot easier to use than JavaScript itself, so we'll learn it first.",
"It's also extremely popular with employers, so we're going to learn it well.",
"Code School has an excellent free course that will walk us through the basics of jQuery.",
"Go to <a href='http://try.jquery.com/levels/1/challenges/1' target='_blank'>http://try.jquery.com/levels/1/challenges/1</a> and complete the first section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7113d8c441eddfaeb5bdef",
"name": "Traverse the DOM",
"difficulty": 0.12,
"challengeSeed": "114591805",
"description": [
"Now let's learn more about DOM traversal - that is, moving from one HTML element to the next.",
"Go to <a href='http://try.jquery.com/levels/2/challenges/1' target='_blank'>http://try.jquery.com/levels/2/challenges/1</a> and complete the second section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7114d8c441eddfaeb5bdef",
"name": "Work with the DOM",
"difficulty": 0.13,
"challengeSeed": "114591804",
"description": [
"Let's learn some more advanced ways to use jQuery to manipulate the DOM.",
"Go to <a href='http://try.jquery.com/levels/3/challenges/1' target='_blank'>http://try.jquery.com/levels/3/challenges/1</a> and complete the third section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7115d8c441eddfaeb5bdef",
"name": "Listen for DOM Events",
"difficulty": 0.14,
"challengeSeed": "114591802",
"description": [
"Now let's learn how to use jQuery Listeners. These will \"listen\" for something to happen, and then trigger a subsequent event",
"Go to <a href='http://try.jquery.com/levels/4/challenges/1' target='_blank'>http://try.jquery.com/levels/4/challenges/1</a> and complete the fourth section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7116d8c441eddfaeb5bdef",
"name": "Use jQuery for Styling",
"difficulty": 0.15,
"challengeSeed": "114591801",
"description": [
"Finally, let's use jQuery to manipulate the way websites look by changing the CSS of elements.",
"Go to <a href='http://try.jquery.com/levels/5/challenges/1' target='_blank'>http://try.jquery.com/levels/5/challenges/1</a> and complete the fifth section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7117d8c441eddfaeb5bdef",
"name": "Build a MadLibs Game",
"difficulty": 0.16,
"challengeSeed": "114591799",
"description": [
"Now that we've built a foundation in jQuery, let's go back to Dash and do its last challenge.",
"If you aren't familiar with Mad Libs, they basically involve inserting random nouns, adjectives and verbs into stories. The stories that result are often hilarious.",
"Go to <a href='https://dash.generalassemb.ly/projects/mad-libs-1' target='_blank'>https://dash.generalassemb.ly/projects/mad-libs-1</a> and complete the fifth project."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7123d8c441eddfaeb5bdef",
"name": "Learn Basic Computer Science",
"difficulty": 0.17,
"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 <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z54/z1/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z54/z1/</a> and complete the first week's course work."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8124d8c441eddfaeb5bdef",
"name": "Learn Loops",
"difficulty": 0.18,
"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 <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/</a> and complete Week 2."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8125d8c441eddfaeb5bdef",
"name": "Learn Computer Hardware",
"difficulty": 0.19,
"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 <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/</a> and complete Week 3."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8126d8c441eddfaeb5bdef",
"name": "Learn Computer Networking",
"difficulty": 0.20,
"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 <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/</a> and complete Week 4."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8127d8c441eddfaeb5bdef",
"name": "Learn Boolean Logic",
"difficulty": 0.21,
"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 <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/</a> and complete Week 5."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd8128d8c441eddfaeb5bdef",
"name": "Learn Computer Security",
"difficulty": 0.22,
"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 <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/</a> and complete Week 6, the final week of the course."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7129d8c441eddfaeb5bdef",
"name": "Build an Adventure Game",
"difficulty": 0.23,
"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 <a href='http://www.codecademy.com/courses/getting-started-v2/0/1' target='_blank'>http://www.codecademy.com/courses/getting-started-v2/0/1</a> and complete the section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-x9DnD/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-x9DnD/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7130d8c441eddfaeb5bdef",
"name": "Build Rock Paper Scissors",
"difficulty": 0.24,
"challengeSeed": "114604815",
"description": [
"Now we'll learn how JavaScript functions work, and use them to build a simple Rock Paper Scissors game.",
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-6LzGd/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-6LzGd/0/1</a> and complete the section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7131d8c441eddfaeb5bdef",
"name": "Learn JavaScript For Loops",
"difficulty": 0.25,
"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 <a href='http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1web</a> and complete both the both For and While loop section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-XEDZA/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-XEDZA/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7132d8c441eddfaeb5bdef",
"name": "Learn JavaScript While Loops",
"difficulty": 0.26,
"challengeSeed": "114612889",
"description": [
"Go to <a href='http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1</a> and complete the section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7133d8c441eddfaeb5bdef",
"name": "Learn Control Flow",
"difficulty": 0.27,
"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 <a href='http://www.codecademy.com/courses/javascript-beginner-en-qDwp0/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-qDwp0/0/1</a> and complete the section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-ZA2rb/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-ZA2rb/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7134d8c441eddfaeb5bdef",
"name": "Build a Contact List",
"difficulty": 0.28,
"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 <a href='http://www.codecademy.com/courses/javascript-beginner-en-9Sgpi/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-9Sgpi/0/1</a> and complete the section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/1' target='_blank'>http://www.codecademy.com/courses/javascript-beginner-en-3bmfN/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7135d8c441eddfaeb5bdef",
"name": "Build an Address Book",
"difficulty": 0.29,
"challengeSeed": "114612885",
"description": [
"Let's learn more about objects.",
"Go to <a href='http://www.codecademy.com/courses/spencer-sandbox/0/1' target='_blank'>http://www.codecademy.com/courses/spencer-sandbox/0/1</a> and complete the section.",
"Be sure to also complete this section: <a href='http://www.codecademy.com/courses/building-an-address-book/0/1?curriculum_id=506324b3a7dffd00020bf661' target='_blank'>http://www.codecademy.com/courses/building-an-address-book/0/1?curriculum_id=506324b3a7dffd00020bf661</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7136d8c441eddfaeb5bdef",
"name": "Build a Cash Register",
"difficulty": 0.30,
"challengeSeed": "114612882",
"description": [
"In this final Codecademy section, we'll learn even more about JavaScript objects.",
"Go to <a href='http://www.codecademy.com/courses/objects-ii/0/1' target='_blank'>http://www.codecademy.com/courses/objects-ii/0/1</a> and complete this section.",
"Be sure to also complete the final section: <a href='http://www.codecademy.com/courses/close-the-super-makert/0/1' target='_blank'>http://www.codecademy.com/courses/close-the-super-makert/0/1</a>."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7118d8c441eddfaeb5bdef",
"name": "Discover Chrome's DevTools",
"difficulty": 0.31,
"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: <a href='http://www.google.com/chrome/' target='_blank'>http://www.google.com/chrome/</a>. 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 <a href='http://discover-devtools.codeschool.com' target='_blank'>http://discover-devtools.codeschool.com</a> and complete this short course."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7138d8c441eddfaeb5bdef",
"name": "Learn Regular Expressions",
"difficulty": 0.32,
"challengeSeed": "112547802",
"description": [
"You can use a Regular Expression, or \"Regex\", to select specific types of characters in text.",
"Check out <a href='http://www.regexr.com' target='_blank'>http://www.regexr.com</a>. It's a Regular Expression Sandbox.",
"Now go to <a href='http://www.regexone.com' target='_blank'>http://www.regexone.com</a> 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.33,
"challengeSeed": "114684726",
"description": [
"Code School has a short, free Angular.js course. This will give us a quick tour of Angular.js's mechanics and features.",
"In this course, we'll build a virtual shop entirely in Angular.js.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/1/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/1/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7155d8c441eddfaeb5bdef",
"name": "Apply Angular.js Directives",
"difficulty": 0.34,
"challengeSeed": "114684727",
"description": [
"Directives serve as markers in your HTML. When Angular.js compiles your HTML, it will can alter the behavior of DOM elements based on the directives you've used.",
"Let's learn how these powerful directives work, and how to use them to make your web apps more dynamic",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/2/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/2/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7156d8c441eddfaeb5bdef",
"name": "Power Forms with Angular.js",
"difficulty": 0.35,
"challengeSeed": "114684729",
"description": [
"One area where Angular.js really shines is its powerful web forms.",
"Learn how to create reactive Angular.js forms, including real-time form validation.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/3/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/3/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7157d8c441eddfaeb5bdef",
"name": "Customize Angular.js Directives",
"difficulty": 0.36,
"challengeSeed": "114685062",
"description": [
"Now we'll learn how to modify existing Angular.js directives, and even build directives of your own.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/4/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/4/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7158d8c441eddfaeb5bdef",
"name": "Create Angular.js Services",
"difficulty": 0.37,
"challengeSeed": "114685060",
"description": [
"Services are functions that you can use and reuse throughout your Angular.js app to get things done.",
"We'll learn how to use services in this final Code School Angular.js challenge.",
"Go to <a href='http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/5/section/1/video/1' target='_blank'>http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/5/section/1/video/1</a> and complete the section."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bdff",
"name": "Start a Node.js Server",
"difficulty": 0.38,
"challengeSeed": "114685061",
"description": [
"MongoDB is a popular NoSQL (Not Only SQL) database used by many JavaScript apps.",
"Go to <a href='http://try.mongodb.org/' target='_blank'>http://try.mongodb.org/</a> and work through their interactive MongoDB tutorial."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bd0f",
"name": "Manage Packages with NPM",
"difficulty": 0.39,
"challengeSeed": "114685061",
"description": [
"MongoDB is a popular NoSQL (Not Only SQL) database used by many JavaScript apps.",
"Go to <a href='http://try.mongodb.org/' target='_blank'>http://try.mongodb.org/</a> and work through their interactive MongoDB tutorial."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bd1f",
"name": "Build Web Apps with Express.js",
"difficulty": 0.40,
"challengeSeed": "114685061",
"description": [
"MongoDB is a popular NoSQL (Not Only SQL) database used by many JavaScript apps.",
"Go to <a href='http://try.mongodb.org/' target='_blank'>http://try.mongodb.org/</a> and work through their interactive MongoDB tutorial."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7153d8c441eddfaeb5bd2f",
"name": "Manage Data with MongoDB",
"difficulty": 0.41,
"challengeSeed": "114685061",
"description": [
"MongoDB is a popular NoSQL (Not Only SQL) database used by many JavaScript apps.",
"Go to <a href='http://try.mongodb.org/' target='_blank'>http://try.mongodb.org/</a> and work through their interactive MongoDB tutorial."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7140d8c441eddfaeb5bdef",
"name": "Manage Source Code with Git",
"difficulty": 0.42,
"challengeSeed": "114635309",
"description": [
"Revision 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 <a href='https://www.codeschool.com/courses/try-git' target='_blank'>https://www.codeschool.com/courses/try-git</a> and complete this short interactive course."
],
"challengeType": 2,
"tests": []
},
{
"_id": "bd7139d8c441eddfaeb5bdef",
"name": "Pair Program on Bonfires",
"difficulty": 0.43,
"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 <a href='http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjowLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLnppcD9zb3VyY2U9d2ViIn0=' target='_blank'>Mac</a> or <a href='http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjoxLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLXNldHVwLmV4ZSJ9' target='_blank'>Windows</a>. Create your new user account from within the app.",
"We have a special chat room for people ready to pair program. Go to <a href='https://gitter.im/FreeCodeCamp/LetsPair' target='_blank'>https://gitter.im/FreeCodeCamp/LetsPair</a> 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 <a href='http://freecodecamp.com/bonfires' target='_blank'>http://freecodecamp.com/bonfires</a> 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, Zipline and Basejump 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": "bd7158d8c442eddfaeb5bdff",
"name": "Zipline: Integrate with Twitch's API",
"difficulty": 1.01,
"challengeSeed": "123488494",
"description": [
"Go to CodePen <a href='http://codepen.io/FreeCodeCamp/pen/gbEmJr'>http://codepen.io/FreeCodeCamp/pen/gbEmJr</a> and click the \"fork\" button. This will create a \"fork\", or copy of the file, which you can then edit yourself.",
"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. We will take a look at your code and eventually give you feedback. In the meantime, please move on to your next challenge."
],
"challengeType": 3,
"tests": []
},
{
"_id": "bd7158d8c442eddfaeb5bd0f",
"name": "Zipline: Integrate with Trello's API",
"difficulty": 1.02,
"challengeSeed": "123488494",
"description": [
"Go to CodePen <a href='http://codepen.io/FreeCodeCamp/pen/gbEmJr'>http://codepen.io/FreeCodeCamp/pen/gbEmJr</a> and click the \"fork\" button. This will create a \"fork\", or copy of the file, which you can then edit yourself.",
"In the JavaScript box, scroll down to the comment that reads \"//Changeable code be made here\". This CodePen is already pulling in the relevant JSON from our API. This JSON is from one of our Trello boards. You can view the actual Trello board here: <a href='https://trello.com/b/BA3xVpz9/nonprofit-projects'>https://trello.com/b/BA3xVpz9/nonprofit-projects</a>.",
"You can view the JSON output here: <a href='http://www.freecodecamp.com/api/trello'>http://www.freecodecamp.com/api/trello</a>.",
"In addition to each Trello card's description,(which is currently shown), you will also want to show it's name.",
"You'll also want to render each card's labels. Render each label with the card's <code>name</code> as the label's text and each label's <code>color</code> as the label's color.",
"Hint: you will need to write a jQuery loop that which dynamically inserts <code>&#60;li&#62;</code> elements. You will do this using jQuery's each function, described here: <a href='https://api.jquery.com/each/'>https://api.jquery.com/each/</a>.",
"Style the output to make it look visually appealing. Give it a custom font, color scheme, and a clear visual separation between data elements.",
"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. We will take a look at your code and eventually give you feedback. In the meantime, please move on to your next challenge."
],
"challengeType": 3,
"tests": []
},
{
"_id": "bd7158d8c442eddfaeb5bd1f",
"name": "Zipline: Integrate with a Weather API",
"difficulty": 1.03,
"challengeSeed": "123488494",
"description": [
"Go to CodePen <a href='http://codepen.io/FreeCodeCamp/pen/gbEmJr'>http://codepen.io/FreeCodeCamp/pen/gbEmJr</a> and click the \"fork\" button. This will create a \"fork\", or copy of the file, which you can then edit yourself.",
"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. We will take a look at your code and eventually give you feedback. In the meantime, please move on to your next challenge."
],
"challengeType": 3,
"tests": []
},
{
"_id": "bd7158d8c443eddfaeb5bdef",
"name": "Basejump: Build a Voting App",
"difficulty": 2.01,
"challengeSeed": "123488494",
"description": [
"For this Basejump challenge, you'll build a fully functional voting app. By the time you've finished, your app will function similarly to this: <a href='http://voteplex.herokuapp.com/'>http://voteplex.herokuapp.com/</a>. This Basejump is a great opportunity to pair program with a friend.",
"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 <a href='http://c9.io'>http://c9.io</a>.",
"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.",
"Click on the Create a new workspace in the dropdown after you select the button.",
"Name your workspace to match your project name that you are working on.",
"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.",
"<code>rm -rf * && npm install -g yo grunt grunt-cli generator-angular-fullstack && yo angular-fullstack</code>",
"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 <code> ERR! EEXIST, open /home/ubuntu/.npm</code>. This is caused when Cloud9 runs out of memory and kills an install. If you get this, simply rerun 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: <code>bower install && npm install</code>",
"To start MongoDB, run the following commands in your terminal: <code>mkdir data && echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod && chmod a+x mongod && ./mongod</code>",
"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: <code>grunt serve</code>",
"Wait for the following message to appear: <code>xdg-open: no method available for opening 'http://localhost:8080' </code>. 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: <code>git init && git add . && git commit -am 'initial commit'</code>.",
"Create a new Github repository by signing in to <a href='http://github.com'>http://github.com</a> 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 <a href=http://heroku.com>http://heroku.com</a>. 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 <code>control + c</code> hotkey to shut down these processes.",
"Run the following command in a Cloud9 terminal prompt tab: <code>npm install grunt-contrib-imagemin --save-dev && npm install --save-dev && heroku login</code>. At this point, the terminal will prompt you to log in to Heroku from the command line.",
"Now run <code>yo angular-fullstack:heroku</code>. 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: <code>cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab</code>.",
"As you build your app, you should frequently commit changes to your codebase. You can do this by running <code>git commit -am \"your commit message\"</code>. 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 <code>git push origin master</code>, and to Heroku by running <code>grunt --force && grunt buildcontrol:heroku</code>.",
"Now that you've configured your environment, here are the specific User Stories you should implement for this Basejump:,",
"As an authenticated user, I should be able to keep my polls and come back later to access them.",
"As an authenticated user, I should be able to share my polls with my friends.",
"As an authenticated user, I should be able to see the aggregate results of my polls.",
"As an authenticated user, I should be able to delete polls that I decide I don't want anymore.",
"As an authenticated user, I should be able to create a poll with any number of possible items.",
"Here are some bonus User Stories you can try to implement once you've finished the above User Stories:",
"As an unauthenticated user, I should be able to see everyone's polls, but not be able to vote.",
"As an unauthenticated or authenticated user, I should be able to see the in chart form. (This could be implemented using Chart.js or Google Charts.)",
"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."
],
"challengeType": 4,
"tests": []
},
{
"_id": "bd7158d8c443eddfaeb5bdff",
"name": "Basejump: Build a Yelp App",
"difficulty": 2.02,
"challengeSeed": "123488494",
"description": [
],
"challengeType": 4,
"tests": []
},
{
"_id": "bd7158d8c443eddfaeb5bd0f",
"name": "Basejump: Build a Pintrest Clone",
"difficulty": 2.03,
"challengeSeed": "123488494",
"description": [
],
"challengeType": 4,
"tests": []
}
]