From fe03ee557dd17a62622b2bdda5d61bd4809e734c Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 7 Jul 2015 18:54:27 -0700 Subject: [PATCH] restructure entire curriculum sequence and json files --- seed/challenges/angularjs.json | 125 ++++ seed/challenges/basejumps.json | 2 +- seed/challenges/basic-javascript.json | 2 +- seed/challenges/basic-ziplines.json | 137 ++++ seed/challenges/computer-science.json | 178 ----- seed/challenges/future-jquery-ajax-json.json | 598 --------------- seed/challenges/git.json | 60 ++ ...-html5-and-css.json => html5-and-css.json} | 2 +- ...plines.json => intermediate-ziplines.json} | 145 +--- seed/challenges/jquery-ajax-and-json.json | 690 +++++++++++++++--- seed/challenges/mongodb.json | 60 ++ ...ascript.json => nodejs-and-expressjs.json} | 151 +--- .../object-oriented-javascript.json | 245 ------- .../object-oriented-programming.json | 168 +++++ 14 files changed, 1145 insertions(+), 1418 deletions(-) create mode 100644 seed/challenges/angularjs.json create mode 100644 seed/challenges/basic-ziplines.json delete mode 100644 seed/challenges/computer-science.json delete mode 100644 seed/challenges/future-jquery-ajax-json.json create mode 100644 seed/challenges/git.json rename seed/challenges/{basic-html5-and-css.json => html5-and-css.json} (99%) rename seed/challenges/{ziplines.json => intermediate-ziplines.json} (57%) create mode 100644 seed/challenges/mongodb.json rename seed/challenges/{full-stack-javascript.json => nodejs-and-expressjs.json} (62%) delete mode 100644 seed/challenges/object-oriented-javascript.json create mode 100644 seed/challenges/object-oriented-programming.json diff --git a/seed/challenges/angularjs.json b/seed/challenges/angularjs.json new file mode 100644 index 0000000000..30ad5d0cb0 --- /dev/null +++ b/seed/challenges/angularjs.json @@ -0,0 +1,125 @@ +{ + "name": "Angular JS", + "order": 0.012, + "challenges": [ + { + "id": "bd7154d8c441eddfaeb5bdef", + "name": "Waypoint: Get Started with Angular.js", + "dashedName": "waypoint-get-started-with-angularjs", + "difficulty": 0.34, + "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 http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/1/section/1/video/1 and complete the section." + ], + "challengeType": 2, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7155d8c441eddfaeb5bdef", + "name": "Waypoint: Apply Angular.js Directives", + "dashedName": "waypoint-apply-angularjs-directives", + "difficulty": 0.35, + "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 http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/2/section/1/video/1 and complete the section." + ], + "challengeType": 2, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7156d8c441eddfaeb5bdef", + "name": "Waypoint: Power Forms with Angular.js", + "dashedName": "waypoint-power-forms-with-angularjs", + "difficulty": 0.36, + "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 http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/3/section/1/video/1 and complete the section." + ], + "challengeType": 2, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7157d8c441eddfaeb5bdef", + "name": "Waypoint: Customize Angular.js Directives", + "dashedName": "waypoint-customize-angularjs-directives", + "difficulty": 0.37, + "challengeSeed": ["114685062"], + "description": [ + "Now we'll learn how to modify existing Angular.js directives, and even build directives of your own.", + "Go to http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/4/section/1/video/1 and complete the section." + ], + "challengeType": 2, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7158d8c441eddfaeb5bdef", + "name": "Waypoint: Create Angular.js Services", + "dashedName": "waypoint-create-angularjs-services", + "difficulty": 0.38, + "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 http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/5/section/1/video/1 and complete the section." + ], + "challengeType": 2, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + } + ] +} diff --git a/seed/challenges/basejumps.json b/seed/challenges/basejumps.json index 70e07e0788..7ca97c87dc 100644 --- a/seed/challenges/basejumps.json +++ b/seed/challenges/basejumps.json @@ -1,6 +1,6 @@ { "name": "Full Stack JavaScript Projects", - "order": 0.014, + "order": 0.016, "challenges": [ { "id": "bd7158d8c443eddfaeb5bcef", diff --git a/seed/challenges/basic-javascript.json b/seed/challenges/basic-javascript.json index 6911a9f484..ee5029e241 100644 --- a/seed/challenges/basic-javascript.json +++ b/seed/challenges/basic-javascript.json @@ -1,6 +1,6 @@ { "name": "Basic JavaScript", - "order": 0.006, + "order": 0.005, "challenges": [ { "_id":"bd7123c9c441eddfaeb4bdef", diff --git a/seed/challenges/basic-ziplines.json b/seed/challenges/basic-ziplines.json new file mode 100644 index 0000000000..716f6e3d87 --- /dev/null +++ b/seed/challenges/basic-ziplines.json @@ -0,0 +1,137 @@ +{ + "name": "Basic Front End Development Projects", + "order": 0.006, + "challenges": [ + { + "id": "bd7158d8c442eddfbeb5bd1f", + "name": "Waypoint: Get Set for Ziplines", + "dashedName": "waypoint-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.", + "For many of these challenges, you will be using JSON data from external API endpoints, such as Twitch.tv and Twitter. Note that you don't need to have a database to use these data.", + "The easiest way to manipulate these data is with jQuery $.getJSON().", + "Whatever you do, don't get discouraged! Remember to use RSAP if you get stuck.", + "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 to 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.", + "You can use this CodePen that you've just created as a starting point for your Ziplines. Just click the \"fork\" button at the top of your CodePen and it will create a duplicate CodePen.", + "Now you're ready for your first Zipline. Click the \"I've completed this challenge\" button." + ], + "challengeType": 2, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7158d8c442eddfaeb5bd13", + "name": "Zipline: Build a Random Quote Machine", + "dashedName": "zipline-build-a-random-quote-machine", + "difficulty": 1.01, + "challengeSeed": ["126415122"], + "description": [ + "Objective: Build a CodePen.io that successfully reverse-engineers this: http://codepen.io/AdventureBear/full/vEoVMw.", + "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 click a button to show me a new random quote.", + "Bonus User Story: As a user, I can press a button to tweet out a quote.", + "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.", + "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.

Click here then add your link to your tweet's text" + ], + "challengeType": 3, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7158d8c442eddfaeb5bd10", + "name": "Zipline: Show the Local Weather", + "dashedName": "zipline-show-the-local-weather", + "difficulty": 1.02, + "challengeSeed": ["126415127"], + "description": [ + "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.", + "Here are the user stories you must enable, and optional bonus user stories:", + "User Story: As a user, I can see the weather in my current location.", + "Bonus User Story: As a user, I can see an icon depending on the temperature..", + "Bonus User Story: As a user, I see a different background image depending on the temperature (e.g. snowy mountain, hot desert).", + "Bonus User Story: As a user, I can push a button to toggle between Fahrenheit and Celsius.", + "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.", + "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.

Click here then add your link to your tweet's text" + ], + "challengeType": 3, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + }, + { + "id": "bd7158d8c442eddfaeb5bd0f", + "name": "Zipline: Build a Pomodoro Clock", + "dashedName": "zipline-build-a-pomodoro-clock", + "difficulty": 1.03, + "challengeSeed": ["126411567"], + "description": [ + "Objective: Build a CodePen.io that successfully reverse-engineers this: http://codepen.io/GeoffStorbeck/full/RPbGxZ/.", + "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 start a 25 minute pomodoro, and the timer will go off once 25 minutes has elapsed.", + "Bonus User Story: As a user, I can reset the clock for my next pomodoro.", + "Bonus User Story: As a user, I can customize the length of each pomodoro.", + "Remember to use RSAP if you get stuck.", + "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.

Click here then add your link to your tweet's text" + ], + "challengeType": 3, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] + } + ] +} diff --git a/seed/challenges/computer-science.json b/seed/challenges/computer-science.json deleted file mode 100644 index 7f2a11b91d..0000000000 --- a/seed/challenges/computer-science.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "name": "Computer Science", - "order": 0.005, - "challenges": [ - { - "id": "bd7123d8c441eddfaeb5bdef", - "name": "Waypoint: Learn Basic Computer Science", - "dashedName": "waypoint-learn-basic-computer-science", - "difficulty": 0.90, - "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": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "Waypoint: Aprende Informática Básica", - "descriptionEs": [ - "Stanford tiene en internet un excelente currículo gratuito sobre Informática. Este curso interactivo utiliza una versión modificada de JavaScript. En él se cubrirán varios conceptos rápidamente.", - "Vale recalcar que Harvard también tiene un excelente curso de introducción a la informática llamado CS50, pero éste toma más de 100 horas para completar y no utiliza JavaScript.", - "A pesar de que puedes llevarlo a tu propio ritmo, el curso de Stanford CS101 está separado en semanas. Cada uno de los desafíos apuntará a cada una de esas semanas.", - "Ingresa a https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z54/z1/ y completa la primera semana del curso." - ], - "namePt": "", - "descriptionPt": [] - }, - { - "id": "bd8124d8c441eddfaeb5bdef", - "name": "Waypoint: Learn Loops", - "dashedName": "waypoint-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": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "Waypoint: Aprende Loops", - "descriptionEs": [ - "Ahora apuntaremos a completar la semana 2 del curso de Introducción a Informática de Stanford.", - "Esto nos introducirá a los loops (bucles), una característica fundamental de todos los lenguajes de programación", - "Ingresa a https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/ y completa la segunda semana del curso." - ], - "namePt": "", - "descriptionPt": [] - }, - { - "id": "bd8125d8c441eddfaeb5bdef", - "name": "Waypoint: Learn Computer Hardware", - "dashedName": "waypoint-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": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "Waypoint: Aprende sobre el Hardware de las Computadoras", - "descriptionEs": [ - "La semana 3 del curso de Introducción a Informática de Stanford cubrirá el hardware de las computadoras y explicará la ley de Moore sobre el crecimiento exponencial del precio-desempeño de los procesadores.", - "Este desafío también te dará un entendimiento más amplio sobre como funcionan los bits y bytes.", - "Ingresa a https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/ y completa la tercera semana del curso." - ], - "namePt": "", - "descriptionPt": [] - }, - { - "id": "bd8126d8c441eddfaeb5bdef", - "name": "Waypoint: Learn Computer Networking", - "dashedName": "waypoint-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": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "Waypoint: Aprende sobre Redes de Computadoras", - "descriptionEs": [ - "Ahora que ya hemos aprendido sobre hardware, es hora de aprender sobre el software que corre encima de él.", - "Es importante recalcar que aprenderás sobre como funcionan las redes y TCP/IP - el protocolo que potencia el internet.", - "Ingresa a https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/ y completa la cuarta semana del curso." - ], - "namePt": "", - "descriptionPt": [] - }, - { - "id": "bd8127d8c441eddfaeb5bdef", - "name": "Waypoint: Learn Boolean Logic", - "dashedName": "waypoint-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": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "Waypoint: Aprende Lógica Booleana", - "descriptionEs": [ - "Ahora trabajaremos más ejercicios de tablas y aprenderemos lógica booleana.", - "También aprenderemos la diferencia entre datos digitales y datos análogos.", - "Ingresa a https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/ y completa la quinta semana del curso." - ], - "namePt": "", - "descriptionPt": [] - }, - { - "id": "bd8128d8c441eddfaeb5bdef", - "name": "Waypoint: Learn Computer Security", - "dashedName": "waypoint-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": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "Waypoint: Aprende sobre Seguridad Informática", - "descriptionEs": [ - "¡Ya casi completamos el curso de Introducción a la Informática!", - "Aprenderemos sobre una de la más importante invención del siglo 20 - la hoja de cálculo.", - "También aprenderemos sobre la Seguridad Informática y sobre algunas de las vulnerabilidades más comúnes en los sistemas de software.", - "Ingresa a https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/ y completa la sexta y última semana del curso." - ], - "namePt": "", - "descriptionPt": [] - } - ] -} diff --git a/seed/challenges/future-jquery-ajax-json.json b/seed/challenges/future-jquery-ajax-json.json deleted file mode 100644 index 435381f0b8..0000000000 --- a/seed/challenges/future-jquery-ajax-json.json +++ /dev/null @@ -1,598 +0,0 @@ -{ - "name": "jQuery, Ajax and JSON", - "dashedName": "jQuery, Ajax and JSON", - "order": 0.004, - "challenges": [{ - "id": "bad87fee1348bd9acdd08826", - "name": "Waypoint: Learn how Script Tags and Document Ready Work", - "dashedName": "Waypoint: Learn how Script Tags and Document Ready Work", - "difficulty": 0.072, - "description": [ - "We've simplified our Cat Photo App and removed our style element. Add a script element to your page and create a $(document).ready function within it.", - "Add $(document).ready(function() { to your script element, and then close it on the following line with });." - ], - "tests": [ - "assert(editor.match(/