From 277fcb49cab024b0a27de9c1e844aa20593467e3 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 13 Oct 2015 01:47:53 -0700 Subject: [PATCH 1/7] add the codepen challenge --- seed/challenges/basic-ziplines.json | 68 +++++++++++++++-------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/seed/challenges/basic-ziplines.json b/seed/challenges/basic-ziplines.json index 94b59f69d1..f133fceac5 100644 --- a/seed/challenges/basic-ziplines.json +++ b/seed/challenges/basic-ziplines.json @@ -5,46 +5,48 @@ { "id": "bd7158d8c442eddfbeb5bd1f", "title": "Get Set for Ziplines", - "difficulty": 1.00, - "challengeSeed": ["125658022"], + "challengeSeed": [], "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.", - "Whatever you do, don't get discouraged! Remember to use Read-Search-Ask 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 under the \"Add External CSS\" section, use the \"Quick-add\" select box to select Bootstrap. Then click \"Save & Close\".", - "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 \"Quick-add\" select box and choose jQuery (not jQuery UI).", - "Click the \"Quick-add\" select box again and choose Bootstrap. Then click \"Save & Close\".", - "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." + [ + "http://i.imgur.com/6WLULsC.gif", + "A gif showing how to create a Codepen account.", + "For our front end Zipline challenges, we'll use a popular browser-based code editor CodePen. Open CodePen and click \"Sign up\" in the upper right hand corner, then scroll down to the free plan and click \"Sign up\" again. Click the \"Use info from GitHub button\", then add your email address and create a password. Click the \"Sign up\" button. Then in the upper right hand corner, click \"New pen\".", + "http://codepen.io" + ], + [ + "http://i.imgur.com/U4y9RJ1.gif", + "A gif showing that you can type \"hello world\" will output \"hello world\" in the preview window. You can also drag windows to resize them, and change their orientation.", + "In the HTML box, create an h1 element with the text \"Hello World\". You can drag the frames around to resize them. You can also click the \"Change View\" button and change the orientation of the frames.", + "" + ], + [ + "http://i.imgur.com/G9KFQDL.gif", + "A gif showing the process of adding Bootstrap to your pen.", + "Click the gear in the upper left hand corner of the CSS box, then scroll down to \"Quick add\" and choose Bootstrap. Now give your h1 element the class of \"text-primary\" to change its color and prove that Bootstrap is now available.", + "" + ], + [ + "http://i.imgur.com/Gi3aig0.gif", + "A gif showing the process of adding Animate.css and jQuery to pen.", + "Click the gear in the upper left hand corner of the CSS box, then scroll down to \"Quick add\" and choose Animate.css. Click the gear in the upper left hand corner of the JS box, then scroll down to \"Quick add\" and choose jQuery. Prove that Animate.css and jQuery are loaded properly. In the JS box, add the following code to make your h1 element bounce: $(document).ready(function(){ $(\"h1\").addClass(\"animated bounce\"); });.", + "" + ], + [ + "http://i.imgur.com/Wzt6Y9Y.gif", + "A gif showing the process of saving and forking a pen.", + "Save your pen with the \"Save\" button. Then click the \"Fork\" button. This will create a fork (copy) of your pen that you can experimient with.", + "" + ] ], - "type": "waypoint", - "challengeType": 2, + "type": "Waypoint", + "challengeType": 7, "tests": [], "nameCn": "", "descriptionCn": [], "nameFr": "", "descriptionFr": [], - "nameRu": "Приготовьтесь к Zipline'ам", - "descriptionRu": [ - "Теперь вы готовы приступить к Zipline'ам. Это задания по фронт-энд разработке, в них вы примените ранее изученные HTML, CSS, jQuery и JavaScript и создадите статические (не использующие базу данных) приложения.", - "Ни в коем случае не унывайте! Воспользуйтесь Read-Search-Ask, если что-то не получается.", - "Задания мы будем выполнять используя CodePen - популярный инструмент для создания и обмена статическими веб приложениями.", - "Перейдите по ссылке http://codepen.io и создайте аккаунт.", - "Нажмите на ваш аватар в правом верхнем углу, а затем в открывшемся меню на кнопку \"New pen\".", - "Выберите удобное расположение окон с помощью кнопок в правом нижнем углу, отрегулируйте их ширину.", - "Нажмите на звездочку рядом с CSS. Затем в секции \"Add External CSS\" выберите \"Quick-add\" и добавьте Bootstrap. Нажмите \"Save & Close\".", - "Проверьте, что Bootstrap подключен добавив следующий HTML код: <h1 class='text-primary'>Hello CodePen!</h1>. Цвет текста должен быть синим.", - "Нажмите на звездочку рядом с JavaScript. Нажмите \"Quick-add\" и выберите jQuery (не jQuery UI). Нажмите \"Save & Close\".", - "Снова нажмите на поле \"Quick-add\", выберите Bootstrap и затем нажмите \"Save & Close\".", - "Теперь добавьте следующий код в окошко JavaScript: $(document).ready(function() { $('.text-primary').text('Hi CodePen!') });. Нажмите на кнопку \"Save\" расположенную наверху. Текст \"Hello CodePen!\" должен измениться на \"Hi CodePen!\". Это значит что jQuery работает.", - "CodePen, который мы создали, можно использовать в качестве отправной точки для ваших Zipline'ов. Кликните кнопку \"fork\", чтобы создать копию текущего CodePen'a.", - "Все готово для первого Zipline'а. Жмите кнопку \"I've completed this challenge\"." - ], + "nameRu": "", + "descriptionRu": [], "nameEs": "", "descriptionEs": [], "namePt": "", From 6013a5e3ff4715a2681afd9c50e5598d08ccca98 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 13 Oct 2015 02:04:09 -0700 Subject: [PATCH 2/7] update gear up and getting started challenges --- seed/challenges/gear-up-for-success.json | 4 +-- seed/challenges/getting-started.json | 36 ++++++++++-------------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/seed/challenges/gear-up-for-success.json b/seed/challenges/gear-up-for-success.json index d11fdecf6e..b73404a129 100644 --- a/seed/challenges/gear-up-for-success.json +++ b/seed/challenges/gear-up-for-success.json @@ -60,9 +60,9 @@ "challengeSeed": [], "description": [ [ - "http://i.imgur.com/P7qfJXt.gif", + "http://i.imgur.com/vJyiXzU.gif", "A gif showing how you can click the link below and fill in the necessary fields to add your Free Code Camp studies to your LinkedIn profile.", - "You can add Free Code Camp to your LinkedIn education background. Set your graduation date as next year. For \"Degree\", type \"Full Stack Web Development\". For \"Field of study\", type \"Computer Software Engineering\". Then click \"Save Changes\".", + "You can add Free Code Camp to your LinkedIn education background. Set your graduation date as next year. For \"Degree\", type \"Full Stack Web Development Certification\". For \"Field of study\", type \"Computer Software Engineering\". Then click \"Save Changes\".", "https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp" ] ], diff --git a/seed/challenges/getting-started.json b/seed/challenges/getting-started.json index 8f8b559eb7..bd3638725f 100644 --- a/seed/challenges/getting-started.json +++ b/seed/challenges/getting-started.json @@ -9,13 +9,13 @@ "description": [ [ "http://i.imgur.com/RlEk2IF.jpg", - "a picture of Free Code Camp's 4 benefits: Get connected, Learn JavaScript, Build your Portfolio, Help nonprofits", + "A picture of Free Code Camp's 4 benefits: Get connected, Learn JavaScript, Build your Portfolio, Help nonprofits", "Welcome to Free Code Camp. We're an open source community of busy people who learn to code and help nonprofits.", "" ], [ "http://i.imgur.com/pYsTbjI.jpg", - "a screenshot of our curriculum alongside a screenshot of our chat room.", + "A screenshot of our curriculum alongside a screenshot of our chat room.", "Learning to code is hard. To succeed, you'll need lots of practice and support. That's why we've created a rigorous curriculum and supportive community.", "" ], @@ -33,13 +33,13 @@ ], [ "http://i.imgur.com/sKYQhdG.jpg", - "a screenshot of our Front End Development Certificate", + "A screenshot of our Front End Development Certificate", "About half way through our curriculum, you'll earn a verified Front End Development Certificate. If you can finish our entire curriculum, you'll earn a verified Full Stack Development Certificate.", "" ], [ "http://i.imgur.com/yXyxbDd.jpg", - "a screen shot of our nonprofit project directory.", + "A screen shot of our nonprofit project directory.", "Then you'll build several real-life projects for nonprofits. By the time you finish, you'll have a portfolio of real apps that people use every day.", "" ] @@ -65,7 +65,7 @@ "description": [ [ "http://i.imgur.com/EAR7Lvh.jpg", - "a screenshot of our one of our Gitter chat rooms.", + "A screenshot of our one of our Gitter chat rooms.", "Now let's join Free Code Camp's chat rooms. You can come here any time of day to hang out, ask questions, or find another camper to pair program with. First you'll need a GitHub account.", "" ], @@ -83,14 +83,14 @@ ], [ "http://i.imgur.com/OXL3G3n.gif", - "Click the link below to navigate to Free Code Camp's open-source repository. In the upper right hand corner, you can click the \"star\" button to star this repository.", + "A gif showing how you can star a GitHub repo.", "Go to Free Code Camp's open-source repository and \"star\" it. \"Starring\" is the GitHub equivalent of \"liking\" something.", "https://github.com/freecodecamp/freecodecamp" ], [ - "http://i.imgur.com/EZHzKCV.gif", + "http://i.imgur.com/zwYPeQT.gif", "A gif showing you how to click the link below to go to our chat room and click the \"sign in with GitHub\" button. Then you can click into the text input field and type a message to your fellow campers.", - " Now that you have a GitHub account, you can join our main chat room by logging in with GitHub. Introduce yourself by saying \"Hello world!\". Tell your fellow campers how you found Free Code Camp. Also tell us why you want to learn to code.", + "Now that you have a GitHub account, you can join our main chat room by logging in with GitHub. Introduce yourself by saying \"Hello world!\". Tell your fellow campers how you found Free Code Camp. Also tell us why you want to learn to code.", "https://gitter.im/FreeCodeCamp/FreeCodeCamp" ], [ @@ -112,7 +112,7 @@ "" ], [ - "http://i.imgur.com/SLQ27Gr.gif", + "http://i.imgur.com/WvQvNGN.gif", "A gif showing how you can click the link below to download a native chat room app for your computer.", "You can also download the chat room app to your computer or phone.", "https://gitter.im/apps" @@ -138,15 +138,9 @@ "challengeSeed": [], "description": [ [ - "http://i.imgur.com/FkEzbto.gif", + "http://i.imgur.com/tP2ccTE.gif", "A gif showing how you can click your profile image in your upper right hand corner to your code portfolio and connect GitHub.", - "Check out your code portfolio. Click your picture in your upper right hand corner. To activate your code portfolio, you'll need to link your GitHub account with Free Code Camp.", - "" - ], - [ - "http://i.imgur.com/WKzEr1q.gif", - "A gif showing how you can access your code portfolio and hover over different days to see how many brownie points you got on those days.", - "Your code portfolio shows your progress and how many Brownie Points you have. You can get Brownie Points by completing challenges and by helping other campers in our chat rooms. If you get Brownie Points on several days in a row, you'll get a streak.", + "Check out your code portfolio. Click your picture in your upper right hand corner. To activate your code portfolio, you'll need to link your GitHub account with Free Code Camp. Your code portfolio shows your progress and how many Brownie Points you have. You can get Brownie Points by completing challenges and by helping other campers in our chat rooms. If you get Brownie Points on several days in a row, you'll get a streak.", "" ] ], @@ -176,9 +170,9 @@ "" ], [ - "http://i.imgur.com/EZHzKCV.gif", + "http://i.imgur.com/fTFMjwf.gif", "A gif showing how you can click the link below, find your city on the list of Campsites, then click on the Facebook link for your city and join your city's Facebook group.", - "Find your city on this list, click the \"Facebook\" link, then click the \"Join group\" button to apply to join your city's Facebook group (someone from the campsite should approve you shortly). If your city isn't on this list, scroll to the bottom of the wiki article for instructions for how you can create your city's Campsite.", + "Find your city on this list and click it. This will take you to your city's Campsite's Facebook group. Click the \"Join group\" button to apply to join your city's Facebook group. Someone from the campsite should approve you shortly. If your city isn't on this list, scroll to the bottom of the wiki article for instructions for how you can create your city's Campsite.", "https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites" ] ], @@ -226,8 +220,8 @@ "https://gitter.im/FreeCodeCamp/Help" ], [ - "http://i.imgur.com/WsfzvVo.gif", - "A gif showing us clicking the \"map\" button in our upper right hand corner and browsing our challenge map.", + "http://i.imgur.com/ZRgXraT.gif", + "A gif showing us scrolling through our challenge map.", "Now you're ready to start coding! The \"Map\" button in your upper right hand corner will show you our challenge map. This map shows all our coding challenges. We recommend that you complete these from top to bottom, at a sustainable pace. You can also return to your next challenge by clicking the \"Learn\" button.", "" ] From a162c3eea5a3f5f86f15f440d033240a1ab76b68 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 13 Oct 2015 03:14:20 -0700 Subject: [PATCH 3/7] add clementine.js and codepen onboarding step challenges --- seed/challenges/basejumps.json | 153 ++++++++++++++++++---------- seed/challenges/basic-ziplines.json | 2 - 2 files changed, 100 insertions(+), 55 deletions(-) diff --git a/seed/challenges/basejumps.json b/seed/challenges/basejumps.json index b665d28622..edb7f45792 100644 --- a/seed/challenges/basejumps.json +++ b/seed/challenges/basejumps.json @@ -7,60 +7,107 @@ "title": "Get Set for Basejumps", "challengeSeed": ["128451852"], "description": [ - "Objective: Get the MEAN stack running on Cloud 9, push your code to GitHub, and deploy it to Heroku.", - "We'll build our Basejumps on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.", - "If you don't already have Cloud 9 account, create one now at http://c9.io.", - "Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.", - "Open up http://c9.io and sign in to your account.", - "Click on the \"+\" icon at the top right of the c9.io page to create a new workspace.", - "Give your workspace a name and an optional description.", - "Choose Node.js in the selection area below the name field.", - "Click the \"Create workspace\" button.", - "Once C9 builds and loads your workspace, you should see a terminal window in the lower right hand corner. In this window use the following commands. You don't need to know what these mean at this point.", - "Never run this command on your local machine. But in your Cloud 9 terminal window, run: 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'.", - "Now we need to add your GitHub SSH key to c9.io. Click the \"Add-on Services\" button in the lower left of your C9 dashboard. Click \"activate\" next to the GitHub icon.", - "A pop up will appear. Allow access to your account.", - "While still on the dashboard, under “Account Settings”, click the link for \"Show your SSH key\". Copy the key to you clipboard.", - "Sign in to http://github.com and navigate to the GitHub SSH settings page. Click the \"Add SSH Key\". Give your key the title \"cloud 9\". Paste your SSH Key into the \"Key\" box, then click \"Add Key\".", - "Create a new GitHub repository by 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 use 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.", - "If you need further guidance on using Yeoman Angular-Fullstack Generator, check out: https://github.com/clnhll/guidetobasejumps.", - "Now you're ready to move on to your first Basejump. Click the \"I've completed this challenge\" and move on." + [ + "http://i.imgur.com/4IZjWZ3.gif", + "A gif showing how to create a c9.io account.", + "We recommend building our full stack Basejump challenges on c9.io, a powerful browser-based development environment. This save you hours of time that you would spend configuring your local computer to run Node.js and MongoDB - time you could instead spend coding. Create a c9.io account bu clicking the GitHub symbol in the upper right hand corner of the c9.io page. Click the big plus symbol to create a new workspace. Enter your email address when prompted.", + "http://c9.io" + ], + [ + "http://i.imgur.com/F7i5Hhi.gif", + "A gif showing how to fill out the new workspace form", + "On c9.io, give your workspace a name, then leave \"Template\" as custom and create your workspace from this GitHub url: https://github.com/johnstonbl01/clementinejs-fcc.git", + "" + ], + [ + "http://i.imgur.com/42m1vyr.gif", + "A gif showing you how to show hidden files.", + "Click the gear in the upper right corner of c9.io's file structure. Select \"show hidden files\".", + "" + ], + [ + "http://i.imgur.com/qrE8xaK.gif", + "A gif showing you how to create a new file.", + "Right click and create a new file called .env.", + "" + ], + [ + "http://i.imgur.com/sULwMlo.gif", + "A gif showing you how to prep your environmental variables in your .env file.", + "Open your .env file and past this into it, then save it:", + "GITHUB_KEY=", + "GITHUB_SECRET=", + "APP_URL=", + "" + ], + [ + "http://i.imgur.com/BH2qLhB.gif", + "A gif showing you how to open c9.io's preview window.", + "Open up your application in a preview tab by clicking window > share > application > open.", + "" + ], + [ + "http://i.imgur.com/EIiaiPg.gif", + "A gif showing you how to creat ea GitHub app using c9.io's preview URL.", + "Create a GitHub app for authentication and choose an \"Application name\". For the homepage URL, paste the URL from your preview tab. You'll also paste the URL from your preview tab into \"Authorization callback URL\", then add to it: auth/github/callback", + "https://github.com/settings/applications/new" + ], + [ + "http://i.imgur.com/drPlNaE.gif", + "A gif showing you how to transfer GitHub's key and secret over to your .env file, as well as your c9.io URL.", + "GitHub will create an app and present you with a Client ID and a Client Secret. Set your .env file's GITHUB_KEY equal to the Client ID, and set your .env file's GITHUB_SECRET equal to the Client Secret. Copy the URL from the your preview tab and paste it into your .env file as your APP_URL.", + "" + ], + [ + "http://i.imgur.com/VqCmJOh.gif", + "A gif showing you how to update the ajax-functions.js file with your c9.io preview URL.", + "Open app/common/ajax-functions.js and replace \"http://localhost:8080/\" with the URL from your clipboard (the URL from your preview tab).", + "" + ], + [ + "http://i.imgur.com/bLXrt6P.gif", + "A gif showing you how to start mongoDB in c9.io's terminal.", + "In your terminal, start MongoDB by entering mongod --smallfiles", + "" + ], + [ + "http://i.imgur.com/TNygDfF.gif", + "A gif showing you how to open a new tab in c9.io's terminal.", + "Open a new terminal tab with the + button above your terminal, then run npm install", + "" + ], + [ + "http://i.imgur.com/NYk4VeS.gif", + "A gif showing you how to navigate to your preview tab and sign in to your new Clementine.js app.", + "run node server.js to start the server. Refresh your preview tab. You should see the Clementine.js logo. Click \"sign in\" and accept GitHub's prompt to authorize the application.", + "" + ], + [ + "http://i.imgur.com/hA2MCee.gif", + "A gif showing you how to use Clementine.js's simple demo app.", + "Click the \"click me\" button and you'll see that it increments the number clicks. Click the profile button and you'll see that it has your GitHub information.", + "" + ], + [ + "http://i.imgur.com/Q8IfdQj.gif", + "A gif showing you how to create a commit on c9.io, then create a GitHub repository and push your code up to it.", + "Create a commit by typing git add . && git commit -m\"first commit\". Then open GitHub in a new tab and click \"New repository\". Name your repository, then click \"Create repository\". Then copy its .git URL. Return to c9.io's terminal and set your GitHub remote URL: git remote set-url origin followed by the URL you copied from GitHub. Run git push origin master. Now tab back to GitHub and refresh, and you'll see that your code is now on GitHub.", + "" + ] ], - "type": "waypoint", - "challengeType": 2, - "tests": [] + "type": "Waypoint", + "challengeType": 7, + "tests": [], + "nameCn": "", + "descriptionCn": [], + "nameFr": "", + "descriptionFr": [], + "nameRu": "", + "descriptionRu": [], + "nameEs": "", + "descriptionEs": [], + "namePt": "", + "descriptionPt": [] }, { "id": "bd7158d8c443eddfaeb5bdef", diff --git a/seed/challenges/basic-ziplines.json b/seed/challenges/basic-ziplines.json index f133fceac5..b68158ef49 100644 --- a/seed/challenges/basic-ziplines.json +++ b/seed/challenges/basic-ziplines.json @@ -55,7 +55,6 @@ { "id": "bd7158d8c242eddfaeb5bd13", "title": "Build a Personal Portfolio Webpage", - "difficulty": 1.01, "challengeSeed": ["133315782"], "description": [ "Objective: Build a CodePen.io app that successfully reverse-engineers this: http://codepen.io/ThiagoFerreir4/full/eNMxEp.", @@ -109,7 +108,6 @@ { "id": "bd7158d8c442eddfaeb5bd13", "title": "Build a Random Quote Machine", - "difficulty": 1.02, "challengeSeed": ["126415122"], "description": [ "Objective: Build a CodePen.io app that successfully reverse-engineers this: http://codepen.io/AdventureBear/full/vEoVMw.", From 407bd16aaf7b04146f7f1d84d786576e9fccbcbf Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 13 Oct 2015 10:04:44 -0700 Subject: [PATCH 4/7] make additional improvements and fixes to step challenges --- seed/challenges/basejumps.json | 4 ++-- seed/challenges/basic-ziplines.json | 4 ++-- seed/challenges/gear-up-for-success.json | 2 +- seed/challenges/getting-started.json | 2 +- server/views/coursewares/showStep.jade | 2 +- server/views/partials/navbar.jade | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/seed/challenges/basejumps.json b/seed/challenges/basejumps.json index edb7f45792..67a630d701 100644 --- a/seed/challenges/basejumps.json +++ b/seed/challenges/basejumps.json @@ -5,7 +5,7 @@ { "id": "bd7158d8c443eddfaeb5bcef", "title": "Get Set for Basejumps", - "challengeSeed": ["128451852"], + "challengeSeed": [], "description": [ [ "http://i.imgur.com/4IZjWZ3.gif", @@ -16,7 +16,7 @@ [ "http://i.imgur.com/F7i5Hhi.gif", "A gif showing how to fill out the new workspace form", - "On c9.io, give your workspace a name, then leave \"Template\" as custom and create your workspace from this GitHub url: https://github.com/johnstonbl01/clementinejs-fcc.git", + "Instead of starting from scratch, we recommend using Clementine.js, a full stack JavaScript \"boilerplate\" that already has some basic code written for you. On c9.io, give your workspace a name, then leave \"Template\" as custom and create your workspace from this GitHub url: https://github.com/johnstonbl01/clementinejs-fcc.git", "" ], [ diff --git a/seed/challenges/basic-ziplines.json b/seed/challenges/basic-ziplines.json index b68158ef49..e2487d14ef 100644 --- a/seed/challenges/basic-ziplines.json +++ b/seed/challenges/basic-ziplines.json @@ -10,7 +10,7 @@ [ "http://i.imgur.com/6WLULsC.gif", "A gif showing how to create a Codepen account.", - "For our front end Zipline challenges, we'll use a popular browser-based code editor CodePen. Open CodePen and click \"Sign up\" in the upper right hand corner, then scroll down to the free plan and click \"Sign up\" again. Click the \"Use info from GitHub button\", then add your email address and create a password. Click the \"Sign up\" button. Then in the upper right hand corner, click \"New pen\".", + "For our front end Zipline challenges, we'll use a popular browser-based code editor called CodePen. Open CodePen and click \"Sign up\" in the upper right hand corner, then scroll down to the free plan and click \"Sign up\" again. Click the \"Use info from GitHub button\", then add your email address and create a password. Click the \"Sign up\" button. Then in the upper right hand corner, click \"New pen\".", "http://codepen.io" ], [ @@ -28,7 +28,7 @@ [ "http://i.imgur.com/Gi3aig0.gif", "A gif showing the process of adding Animate.css and jQuery to pen.", - "Click the gear in the upper left hand corner of the CSS box, then scroll down to \"Quick add\" and choose Animate.css. Click the gear in the upper left hand corner of the JS box, then scroll down to \"Quick add\" and choose jQuery. Prove that Animate.css and jQuery are loaded properly. In the JS box, add the following code to make your h1 element bounce: $(document).ready(function(){ $(\"h1\").addClass(\"animated bounce\"); });.", + "Click the gear in the upper left hand corner of the CSS box, then scroll down to \"Quick add\" and choose Animate.css. Click the gear in the upper left hand corner of the JS box, then scroll down to \"Quick add\" and choose jQuery. Let's prove that Animate.css and jQuery are loaded properly. In the JS box, add the following code to make your h1 element bounce: $(document).ready(function(){ $(\"h1\").addClass(\"animated bounce\"); });.", "" ], [ diff --git a/seed/challenges/gear-up-for-success.json b/seed/challenges/gear-up-for-success.json index b73404a129..382dc3b43a 100644 --- a/seed/challenges/gear-up-for-success.json +++ b/seed/challenges/gear-up-for-success.json @@ -36,7 +36,7 @@ [ "http://i.imgur.com/4GO4zcI.gif", "A gif showing how you can click the \"Wiki\" button in your upper-right corner to access the wiki.", - "Try this: Click the \"Wiki\" button in your upper right hand corner. Our community has contributed lots of useful information to this searchable wiki.", + "Click the \"Wiki\" button in your upper right hand corner. Our community has contributed lots of useful information to this searchable wiki.", "" ] ], diff --git a/seed/challenges/getting-started.json b/seed/challenges/getting-started.json index bd3638725f..5b32a65023 100644 --- a/seed/challenges/getting-started.json +++ b/seed/challenges/getting-started.json @@ -82,7 +82,7 @@ "https://github.com/settings/profile" ], [ - "http://i.imgur.com/OXL3G3n.gif", + "http://i.imgur.com/pYk0wOk.gif", "A gif showing how you can star a GitHub repo.", "Go to Free Code Camp's open-source repository and \"star\" it. \"Starring\" is the GitHub equivalent of \"liking\" something.", "https://github.com/freecodecamp/freecodecamp" diff --git a/server/views/coursewares/showStep.jade b/server/views/coursewares/showStep.jade index fb375a83d3..274b9e72b3 100644 --- a/server/views/coursewares/showStep.jade +++ b/server/views/coursewares/showStep.jade @@ -6,7 +6,7 @@ block content .thumbnail.challenge-step(class=index !== 0 ? 'hidden': '') img.gif-block.img-center.img-responsive.thumbnail(src='#{step[0]}' alt='#{step[1]}') .caption - p.large-p= step[2] + p.large-p!= step[2] if step[3] a.btn.btn-block.btn-primary.challenge-step-btn-action(id='#{index}' href='#{step[3]}' target='_blank') Open link in new tab if index + 1 === description.length diff --git a/server/views/partials/navbar.jade b/server/views/partials/navbar.jade index 7108bd05b4..18f3320315 100644 --- a/server/views/partials/navbar.jade +++ b/server/views/partials/navbar.jade @@ -14,7 +14,7 @@ nav.navbar.navbar-default.navbar-fixed-top.nav-height li a(href='//gitter.im/FreeCodeCamp/FreeCodeCamp', target='_blank') Chat li - a(href='/news') News + a(href='/news', target='_blank') News li a(href='//github.com/FreeCodeCamp/freecodecamp/wiki/Home', target='_blank') Wiki if !user From d805e9caae264c6cbe6228061e64959c9f9f0b54 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 13 Oct 2015 10:12:26 -0700 Subject: [PATCH 5/7] additional improvements to basejumps --- seed/challenges/basejumps.json | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/seed/challenges/basejumps.json b/seed/challenges/basejumps.json index 67a630d701..a65959e630 100644 --- a/seed/challenges/basejumps.json +++ b/seed/challenges/basejumps.json @@ -16,7 +16,7 @@ [ "http://i.imgur.com/F7i5Hhi.gif", "A gif showing how to fill out the new workspace form", - "Instead of starting from scratch, we recommend using Clementine.js, a full stack JavaScript \"boilerplate\" that already has some basic code written for you. On c9.io, give your workspace a name, then leave \"Template\" as custom and create your workspace from this GitHub url: https://github.com/johnstonbl01/clementinejs-fcc.git", + "Instead of starting from scratch, we recommend using Clementine.js, a full stack JavaScript \"boilerplate\" that already has some basic code written for you. Clementine.js has a detailed tutorial you can go through to build it yourself, but for now let's just clone its code. On c9.io, give your workspace a name, then leave \"Template\" as custom and create your workspace from this GitHub url: https://github.com/johnstonbl01/clementinejs-fcc.git", "" ], [ @@ -34,10 +34,7 @@ [ "http://i.imgur.com/sULwMlo.gif", "A gif showing you how to prep your environmental variables in your .env file.", - "Open your .env file and past this into it, then save it:", - "GITHUB_KEY=", - "GITHUB_SECRET=", - "APP_URL=", + "Open your .env file and paste this into it, then save it:
GITHUB_KEY=
GITHUB_SECRET=
APP_URL=
", "" ], [ @@ -61,7 +58,7 @@ [ "http://i.imgur.com/VqCmJOh.gif", "A gif showing you how to update the ajax-functions.js file with your c9.io preview URL.", - "Open app/common/ajax-functions.js and replace \"http://localhost:8080/\" with the URL from your clipboard (the URL from your preview tab).", + "Open app/common/ajax-functions.js and replace http://localhost:8080/ with the URL from your clipboard (the URL from your preview tab).", "" ], [ @@ -117,7 +114,6 @@ "Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://votingapp.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.", From 156d0247e91fa400038b7d42e8a82c1d81c977dd Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 13 Oct 2015 14:29:32 -0700 Subject: [PATCH 6/7] revert to old basejump.json --- seed/challenges/basejumps.json | 153 ++++++++++++--------------------- 1 file changed, 55 insertions(+), 98 deletions(-) diff --git a/seed/challenges/basejumps.json b/seed/challenges/basejumps.json index a65959e630..b665d28622 100644 --- a/seed/challenges/basejumps.json +++ b/seed/challenges/basejumps.json @@ -5,106 +5,62 @@ { "id": "bd7158d8c443eddfaeb5bcef", "title": "Get Set for Basejumps", - "challengeSeed": [], + "challengeSeed": ["128451852"], "description": [ - [ - "http://i.imgur.com/4IZjWZ3.gif", - "A gif showing how to create a c9.io account.", - "We recommend building our full stack Basejump challenges on c9.io, a powerful browser-based development environment. This save you hours of time that you would spend configuring your local computer to run Node.js and MongoDB - time you could instead spend coding. Create a c9.io account bu clicking the GitHub symbol in the upper right hand corner of the c9.io page. Click the big plus symbol to create a new workspace. Enter your email address when prompted.", - "http://c9.io" - ], - [ - "http://i.imgur.com/F7i5Hhi.gif", - "A gif showing how to fill out the new workspace form", - "Instead of starting from scratch, we recommend using Clementine.js, a full stack JavaScript \"boilerplate\" that already has some basic code written for you. Clementine.js has a detailed tutorial you can go through to build it yourself, but for now let's just clone its code. On c9.io, give your workspace a name, then leave \"Template\" as custom and create your workspace from this GitHub url: https://github.com/johnstonbl01/clementinejs-fcc.git", - "" - ], - [ - "http://i.imgur.com/42m1vyr.gif", - "A gif showing you how to show hidden files.", - "Click the gear in the upper right corner of c9.io's file structure. Select \"show hidden files\".", - "" - ], - [ - "http://i.imgur.com/qrE8xaK.gif", - "A gif showing you how to create a new file.", - "Right click and create a new file called .env.", - "" - ], - [ - "http://i.imgur.com/sULwMlo.gif", - "A gif showing you how to prep your environmental variables in your .env file.", - "Open your .env file and paste this into it, then save it:
GITHUB_KEY=
GITHUB_SECRET=
APP_URL=
", - "" - ], - [ - "http://i.imgur.com/BH2qLhB.gif", - "A gif showing you how to open c9.io's preview window.", - "Open up your application in a preview tab by clicking window > share > application > open.", - "" - ], - [ - "http://i.imgur.com/EIiaiPg.gif", - "A gif showing you how to creat ea GitHub app using c9.io's preview URL.", - "Create a GitHub app for authentication and choose an \"Application name\". For the homepage URL, paste the URL from your preview tab. You'll also paste the URL from your preview tab into \"Authorization callback URL\", then add to it: auth/github/callback", - "https://github.com/settings/applications/new" - ], - [ - "http://i.imgur.com/drPlNaE.gif", - "A gif showing you how to transfer GitHub's key and secret over to your .env file, as well as your c9.io URL.", - "GitHub will create an app and present you with a Client ID and a Client Secret. Set your .env file's GITHUB_KEY equal to the Client ID, and set your .env file's GITHUB_SECRET equal to the Client Secret. Copy the URL from the your preview tab and paste it into your .env file as your APP_URL.", - "" - ], - [ - "http://i.imgur.com/VqCmJOh.gif", - "A gif showing you how to update the ajax-functions.js file with your c9.io preview URL.", - "Open app/common/ajax-functions.js and replace http://localhost:8080/ with the URL from your clipboard (the URL from your preview tab).", - "" - ], - [ - "http://i.imgur.com/bLXrt6P.gif", - "A gif showing you how to start mongoDB in c9.io's terminal.", - "In your terminal, start MongoDB by entering mongod --smallfiles", - "" - ], - [ - "http://i.imgur.com/TNygDfF.gif", - "A gif showing you how to open a new tab in c9.io's terminal.", - "Open a new terminal tab with the + button above your terminal, then run npm install", - "" - ], - [ - "http://i.imgur.com/NYk4VeS.gif", - "A gif showing you how to navigate to your preview tab and sign in to your new Clementine.js app.", - "run node server.js to start the server. Refresh your preview tab. You should see the Clementine.js logo. Click \"sign in\" and accept GitHub's prompt to authorize the application.", - "" - ], - [ - "http://i.imgur.com/hA2MCee.gif", - "A gif showing you how to use Clementine.js's simple demo app.", - "Click the \"click me\" button and you'll see that it increments the number clicks. Click the profile button and you'll see that it has your GitHub information.", - "" - ], - [ - "http://i.imgur.com/Q8IfdQj.gif", - "A gif showing you how to create a commit on c9.io, then create a GitHub repository and push your code up to it.", - "Create a commit by typing git add . && git commit -m\"first commit\". Then open GitHub in a new tab and click \"New repository\". Name your repository, then click \"Create repository\". Then copy its .git URL. Return to c9.io's terminal and set your GitHub remote URL: git remote set-url origin followed by the URL you copied from GitHub. Run git push origin master. Now tab back to GitHub and refresh, and you'll see that your code is now on GitHub.", - "" - ] + "Objective: Get the MEAN stack running on Cloud 9, push your code to GitHub, and deploy it to Heroku.", + "We'll build our Basejumps on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.", + "If you don't already have Cloud 9 account, create one now at http://c9.io.", + "Now let's get your development environment ready for a new Angular-Fullstack application provided by Yeoman.", + "Open up http://c9.io and sign in to your account.", + "Click on the \"+\" icon at the top right of the c9.io page to create a new workspace.", + "Give your workspace a name and an optional description.", + "Choose Node.js in the selection area below the name field.", + "Click the \"Create workspace\" button.", + "Once C9 builds and loads your workspace, you should see a terminal window in the lower right hand corner. In this window use the following commands. You don't need to know what these mean at this point.", + "Never run this command on your local machine. But in your Cloud 9 terminal window, run: 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'.", + "Now we need to add your GitHub SSH key to c9.io. Click the \"Add-on Services\" button in the lower left of your C9 dashboard. Click \"activate\" next to the GitHub icon.", + "A pop up will appear. Allow access to your account.", + "While still on the dashboard, under “Account Settings”, click the link for \"Show your SSH key\". Copy the key to you clipboard.", + "Sign in to http://github.com and navigate to the GitHub SSH settings page. Click the \"Add SSH Key\". Give your key the title \"cloud 9\". Paste your SSH Key into the \"Key\" box, then click \"Add Key\".", + "Create a new GitHub repository by 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 use 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.", + "If you need further guidance on using Yeoman Angular-Fullstack Generator, check out: https://github.com/clnhll/guidetobasejumps.", + "Now you're ready to move on to your first Basejump. Click the \"I've completed this challenge\" and move on." ], - "type": "Waypoint", - "challengeType": 7, - "tests": [], - "nameCn": "", - "descriptionCn": [], - "nameFr": "", - "descriptionFr": [], - "nameRu": "", - "descriptionRu": [], - "nameEs": "", - "descriptionEs": [], - "namePt": "", - "descriptionPt": [] + "type": "waypoint", + "challengeType": 2, + "tests": [] }, { "id": "bd7158d8c443eddfaeb5bdef", @@ -114,6 +70,7 @@ "Objective: Build a full stack JavaScript app that successfully reverse-engineers this: http://votingapp.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.", From 1b784a70ae820d6c765b38a104d55de2b7f0a494 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Tue, 13 Oct 2015 15:00:46 -0700 Subject: [PATCH 7/7] Fix typo --- seed/challenges/gear-up-for-success.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/challenges/gear-up-for-success.json b/seed/challenges/gear-up-for-success.json index 382dc3b43a..00b6521bf6 100644 --- a/seed/challenges/gear-up-for-success.json +++ b/seed/challenges/gear-up-for-success.json @@ -88,7 +88,7 @@ [ "http://i.imgur.com/Og1ifsn.gif", "A gif showing how you can commit to a goal for your Free Code Camp studies and pledge a monthly donation to a nonprofit to give you external motivation to reach that goal.", - "You can set a goal and pledge to donate to a nonprofit each month until you achieve that goal. give you external motivation in your quest to learn to code, as well as the opportunity to help nonprofits right away. Choose your goal, choose a monthly donation. When you click \"commit\", the nonprofit's donate page will open in a new tab. You can change your committment or stop it at any time.", + "You can set a goal and pledge to donate to a nonprofit each month until you achieve that goal. give you external motivation in your quest to learn to code, as well as the opportunity to help nonprofits right away. Choose your goal, choose a monthly donation. When you click \"commit\", the nonprofit's donate page will open in a new tab. You can change your commitment or stop it at any time.", "/commit" ] ],