diff --git a/app.js b/app.js
index 3228a33259..a014a3d828 100644
--- a/app.js
+++ b/app.js
@@ -119,10 +119,11 @@ app.use(express.static(path.join(__dirname, 'public'), { maxAge: week }));
*/
app.get('/', homeController.index);
-app.get('challenges/a-one-minute-introduction-to-free-code-camp', challengesController.aOneMinuteIntroToFreeCodeCamp);
+app.get('/challenges/a-one-minute-introduction-to-free-code-camp', challengesController.aOneMinuteIntroToFreeCodeCamp);
app.get('/challenges/enter-the-free-code-camp-chat-room', challengesController.enterTheFreeCodeCampChatRoom);
-app.get('/challenges/install-github-atom-text-editor', challengesController.installGithubAtomTextEditor);
app.get('/challenges/create-and-deploy-a-website', challengesController.createAndDeployAWebsite);
+app.get('/challenges/install-github-atom-text-editor', challengesController.installGithubAtomTextEditor);
+app.get('/challenges/modify-and-redeploy-your-website', challengesController.modifyAndRedeployYourWebsite);
app.get('/challenges/start-a-pair-programming-session', challengesController.startAPairProgrammingSession);
app.get('/challenges/add-dynamic-content-to-your-website', challengesController.addDynamicContentToYourWebsite);
app.get('/challenges/codecademy-html-and-css-track', challengesController.codecademyHtmlAndCssTrack)
diff --git a/controllers/challenges.js b/controllers/challenges.js
index ac75529b05..dd3d4e4460 100644
--- a/controllers/challenges.js
+++ b/controllers/challenges.js
@@ -8,9 +8,8 @@ exports.aOneMinuteIntroToFreeCodeCamp = function(req, res) {
res.render('challenges/a-one-minute-introduction-to-free-code-camp', {
name: 'A one-minute introduction to Free Code Camp',
video: "109134466",
- time: "5 minutes",
- directions: ["Link up with the Free Code Camp community in our HipChat chat room."],
- links: ["https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a"]
+ time: "1 minute",
+ steps: ["Watch this video.", "When you're done, click the \"I've completed this challenge\" button to move on to your next challenge."]
});
};
@@ -19,18 +18,7 @@ exports.enterTheFreeCodeCampChatRoom = function(req, res) {
name: 'Enter the Free Code Camp Chat Room',
video: "109134466",
time: "5 minutes",
- directions: ["Link up with the Free Code Camp community in our HipChat chat room."],
- links: ["https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a"]
- });
-};
-
-exports.installGithubAtomTextEditor = function(req, res) {
- res.render('challenges/install-github-atom-text-editor', {
- name: "Install Github's Atom Text Editor",
- video: "109134466",
- time: "5 minutes",
- directions: [""],
- links: ["http://atom.io"]
+ steps: ["Register for the Free Code Camp chat room at https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a", "Introduce yourself to our chat room by typing: \"hello world!\""]
});
};
@@ -39,45 +27,55 @@ exports.createAndDeployAWebsite = function(req, res) {
name: 'Create a Website and Deploy it to the Internet',
video: "109134466",
time: "5 minutes",
- directions: ["In the next 5 minutes, you'll create a website and deploy it to the internet!"],
- links: ["http://startbootstrap.com", "http://bitballoon.com"]
+ steps: ["Download a template from http://startbootstrap.com", "Go to http://bitballoon.com", "Find the template you downloaded in your file manager (Finder on Mac, Windows Explorer on Windows)", "Drag the entire template directory onto BitBalloon to deploy it", "Once it's deployed, share the link to it in the Free Code Camp chat room."]
+ });
+};
+
+exports.installGithubAtomTextEditor = function(req, res) {
+ res.render('challenges/install-github-atom-text-editor', {
+ name: "Install Github's Atom Text Editor",
+ video: "109134466",
+ time: "5 minutes",
+ steps: ["Download the Atom editor at http://atom.io", "Unzip it and install Atom.", "Open up Atom.", "Now you have a dedicated text editor!"]
+ });
+};
+
+exports.modifyAndRedeployYourWebsite = function(req, res) {
+ res.render('challenges/modify-and-redeploy-your-website', {
+ name: 'Modify and Redeploy Your Website',
+ video: "109134466",
+ time: "5 minutes",
+ steps: ["Open up the template you downloaded from http://startbootstrap.com in your file manager (Finder on Mac and Windows Explorer on Windows).", "Open up the index.html file with Atom", "Find the title tag in the HTML and change it.", "Go to http://bitballoon.com", "Drag the entire template directory onto BitBalloon to deploy it", "Verify that the title has indeed changed."]
});
};
exports.startAPairProgrammingSession = function(req, res) {
res.render('challenges/start-a-pair-programming-session', {
name: "Start Your First Pair Programming Session",
- source: "Free Code Camp",
video: "109547811",
time: "5 minutes",
- directions: [
- "What's all this Pair Programming stuff about? Let's find out!", "We'll use a popular pair programming tool called Screen Hero. We'll also visit the Free Code Camp chat room.", "We'll show you how to launch pair programming sessions right inside the chat room.", "Once you've \"paired\" with someone, they become your \"pair\". Show your new pair the website your just created."
- ],
- links: ["https://screenhero.com/download.html"]
+ steps: [
+ "Download Screen Hero, the popular pair programming tool, here: https://screenhero.com/download.html", "Register your account with the same email address you used when you registered for the Free Code Camp chat room.", "Go to the Free Code Camp chat room.", "Say hi to somebody, and ask if they can pair program with you real quick.", "Type '/hero @' and their name to start a Screen Hero session with them.", "Once you've \"paired\" with someone, they become your \"pair\". Show your new pair the website your just created."
+ ]
});
};
exports.addDynamicContentToYourWebsite = function(req, res) {
res.render('challenges/add-dynamic-content-to-your-website', {
name: "Add Dynamic Content to your Website",
- source: "Free Code Camp",
video: "109599487",
time: "10 minutes",
- directions: [
- "The website you created earlier is cool, but it's not very interactive.", "Let's make it dynamic with POWr.io's drag-and-drop form and database tools!"
- ],
- links: ["http://startbootstrap.com", "http://www.powr.io", "http://bitballoon.com"]
+ steps: ["Go to http://www.powr.io", "From the dropdown menus, choose 'Contact Form' and 'HTML'", "Open up the template you downloaded from http://startbootstrap.com in your file manager (Finder on Mac and Windows Explorer on Windows).", "Open up the index.html file with Atom", "Copy the lines of HTML from the POWr tutorial to your index.html file, being careful to put them where they belong.", "Drag the entire template directory onto BitBalloon to deploy it", "Go to http://bitballoon.com", "Verify that the form works by filling it out and submitting it. You can then go back to POWr.io and view the new database record that the form created."]
});
};
exports.codecademyHtmlAndCssTrack = function(req, res) {
res.render('challenges/codecademy-html-and-css-track', {
name: "Codecademy's HTML & CSS Track",
- links: ["http://www.codecademy.com/tracks/web"],
+ video: "109599487",
time: "7 hours",
- directions: [
- "Let's learn HTML and CSS! Then we'll understand the structure (HTML) and the style (CSS) that makes up all webpages.",
- "More than 5 million people have worked their way through this short, interactive course. Once you finish it, you'll be able create your own webpages from scratch."
+ steps: [
+ "Go to http://www.codecademy.com/tracks/web and complete the course."
]
});
};
@@ -85,26 +83,21 @@ exports.codecademyHtmlAndCssTrack = function(req, res) {
exports.experimentWithHtmlAndCssInCodepen = function(req, res) {
res.render('challenges/experiment-with-html-and-css-in-codepen', {
name: "Experiment with HTML and CSS in CodePen",
- source: "Free Code Camp",
video: "109611164",
time: "30 minutes",
- directions: [
- "Let's put those HTML and CSS skills to work!",
+ steps: [
"You'll learn bootstrap and see how you can build websites right in your browser with CodePen.",
"Load the HealthCare.gov page in CodePen.", "Find some cat pictures online, copy their image URLs, and change the HealthCare.gov page to use these cat pictures instead of its normal images.", "HealthCare.gov uses a multi-column bootstrap layout. See if you can change the layout to be a single-column layout at all widths, not just mobile width. Hint: the \"row\" and \"col-\" classes control this. Check the Bootstrap documentation linked to above if you get stuck."
- ],
- links: ["http://getbootstrap.com/", "http://www.usatoday.com/", "http://codepen.io/"]
+ ]
});
};
exports.codeSchoolTryJqueryCourse = function(req, res) {
res.render('challenges/code-school-try-jquery-course', {
name: "Code School's Try jQuery Course",
- links: ["https://www.codeschool.com/courses/try-jquery"],
- time: "2 hours",
- directions: [
- "jQuery gives you an easy way to modify your HTML and CSS without reloading your page.",
- "Code School's interactive jQuery course will help you understand how to manipulate page elements and capture information that your users give you."
+ time: "3 hours",
+ steps: [
+ "Go to https://www.codeschool.com/courses/try-jquery and complete the course."
]
});
};
@@ -114,8 +107,8 @@ exports.completeJqueryExercises = function(req, res) {
name: "Complete jQuery Exercises",
links: ["http://jqexercise.droppages.com/"],
time: "3 hours",
- directions: [
- "jQuery gives you an easy way to modify your HTML and CSS without reloading your page."
+ steps: [
+ "Go to http://jqexercise.droppages.com/ and complete all of the exercises.", "The person who created it was not a native English speaker, so please excuse the spelling and grammar mistakes.", "This will be a lot more fun if you pair program with someone from the Free Code Camp chat room."
]
});
};
@@ -125,10 +118,8 @@ exports.codeSchoolDiscoverDevtoolsCourse = function(req, res) {
name: "Code School's Discover DevTools",
links: ["http://discover-devtools.codeschool.com/"],
time: "2 hours",
- directions: [
- "Did you know you can change the HTML and CSS on this page? You can even inject JavaScript. In fact, you can do this on any webpage!",
- "Chrome has built in DevTools that allow you to debug webpages, right in your browser. This is a super handy tool when you're building web applications.",
- "This course will walk you through using these tools, and test your new skills with 75 exercises."
+ steps: [
+ "Go to http://discover-devtools.codeschool.com/ and complete the course."
]
});
};
@@ -138,7 +129,7 @@ exports.customizeBootstrapWithBootswatch = function(req, res) {
name: "Customize Bootstrap with Bootswatch",
time: "15 minutes",
links: ["http://bootswatch.com/"],
- directions: []
+ steps: []
});
};
@@ -147,7 +138,7 @@ exports.injectLifeWithCssTransformations = function(req, res) {
name: "Inject Life with CSS Transformations",
links: [""],
time: "15 minutes",
- directions: [
+ steps: [
]
});
};
@@ -157,7 +148,7 @@ exports.codecademyJavascriptTrack = function(req, res) {
name: "Codecademy JavaScript Track",
links: [ "http://www.codecademy.com/tracks/javascript"],
time: "10 hours",
- directions: [
+ steps: [
"All right, now let's start coding!",
"Codecademy's popular JavaScript track will teach you some basic syntax and common programming data structures in just a few hours."
]
@@ -169,7 +160,7 @@ exports.getHelpTheHackerWayWithRsap = function(req, res) {
name: "Get Help the Hacker Way with RSAP",
links: ["http://webchat.freenode.net/", "http://stackoverflow.com/"],
time: "30 minutes",
- directions: [
+ steps: [
]
});
};
@@ -179,7 +170,7 @@ exports.easyAlgorithmScriptingChallengesOnCoderbyte = function(req, res) {
name: "Easy Algorithm Scripting Challenges on Coderbyte",
links: [""],
time: "15 hours",
- directions: [
+ steps: [
]
});
};
@@ -189,7 +180,7 @@ exports.harvardIntroductionToComputerScienceCs50Course = function(req, res) {
name: "Introduction to Computer Science",
links: ["https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.VDWSfSldWpQ"],
time: "150 hours",
- directions: [
+ steps: [
"Harvard's CS50 course is one of the most popular online courses of all time. It will give you a solid programming foundation.",
"This course will introduce you to algorithms, databases, data structures, and a ton of theory.",
"It's a long course, so be sure to mix it up with frequent pair programming sessions on FreeCodeCamp challenges."
@@ -202,7 +193,7 @@ exports.mediumAlgorithmScriptingChallengesOnCoderbyte = function(req, res) {
name: "Medium Algorithm Scripting Challenges on Coderbyte",
links: [""],
time: "15 hours",
- directions: [
+ steps: [
]
});
};
@@ -212,7 +203,7 @@ exports.stanfordsRelationalDatabasesMiniCourse = function(req, res) {
name: "Stanford's Relational Databases Mini-course",
links: [""],
time: "10 hours",
- directions: [
+ steps: [
]
});
};
@@ -222,7 +213,7 @@ exports.stanfordsJsonMiniCourse = function(req, res) {
name: "Stanford's JSON Mini-course",
links: [""],
time: "2 hours",
- directions: [
+ steps: [
]
});
};
@@ -232,7 +223,7 @@ exports.buildATextBasedAdventure = function(req, res) {
name: "Build a Text-based Adventure",
links: [""],
time: "5 hours",
- directions: [
+ steps: [
]
});
};
@@ -242,7 +233,7 @@ exports.hardAlgorithmScriptingChallengesOnCoderbyte = function(req, res) {
name: "Hard Algorithm Scripting Challenges on Coderbyte",
links: [""],
time: "15 hours",
- directions: [
+ steps: [
]
});
};
@@ -252,7 +243,7 @@ exports.stanfordsSqlMiniCourse = function(req, res) {
name: "Stanford's SQL Mini-course",
links: [""],
time: "10 hours",
- directions: [
+ steps: [
]
});
};
@@ -262,7 +253,7 @@ exports.buildAnInterviewQuestionMachine = function(req, res) {
name: "Build an Interview Question Machine",
links: [""],
time: "5 hours",
- directions: [
+ steps: [
]
});
};
@@ -272,7 +263,7 @@ exports.codeSchoolTryGitCourse = function(req, res) {
name: "Code School's Try Git Course",
links: ["https://www.codeschool.com/courses/try-git"],
time: "15 minutes",
- directions: [
+ steps: [
"Have you ever accidentally deleted something? With Git, you will never have that problem again.",
"Git is a Version Control System. It will track all changes to your files. That way you don't have to worry about your code breaking. You can just rewind time to back when your code worked right.",
"This short course will help you install git and learn how it works."
@@ -285,7 +276,7 @@ exports.installNodeJs = function(req, res) {
name: "Install Node.js",
links: [""],
time: "15 minutes",
- directions: [
+ steps: [
]
});
};
@@ -295,7 +286,7 @@ exports.cloneAGithubRepo = function(req, res) {
name: "Clone a Github Repo",
links: [""],
time: "15 minutes",
- directions: [
+ steps: [
]
});
};
@@ -305,7 +296,7 @@ exports.deployAnAppToHeroku = function(req, res) {
name: "Deploy an app to Heroku",
links: [""],
time: "15 minutes",
- directions: [
+ steps: [
]
});
};
@@ -315,7 +306,7 @@ exports.codeSchoolRealTimeWithNodeJsCourse = function(req, res) {
name: "Code School's Real-time web with Node.JS",
links: ["https://www.codeschool.com/courses/real-time-web-with-node-js"],
time: "5 hours",
- directions: [
+ steps: [
"Learn NodeJS, the web server that makes the MEAN Stack possible.",
"You'll also get exposure to related technologies, like the web development framework ExpressJS, Redis and WebSockets.",
"Only the first section of this course is free, but you can use your two-day Code School free trial to finish it."
@@ -328,7 +319,7 @@ exports.tryMongoDb = function(req, res) {
name: "Try MongoDB",
links: ["http://try.mongodb.org/"],
time: "30 minutes",
- directions: [
+ steps: [
]
});
@@ -339,7 +330,7 @@ exports.exploreYourNetworkWithTheLinkedInApi = function(req, res) {
name: "Explore Your Network with the LinkedIn API",
links: ["http://developers.linkedin.com/"],
time: "2 hours",
- directions: [
+ steps: [
]
});
};
@@ -349,7 +340,7 @@ exports.buildYourFirstApi = function(req, res) {
name: "Build Your First API",
links: [""],
time: "5 hours",
- directions: [
+ steps: [
]
});
};
@@ -359,7 +350,7 @@ exports.aggregateDataWithChronJobsAndScreenScraping = function(req, res) {
name: "Aggregate Data with Chron Jobs and Screen Scraping",
links: [""],
time: "5 hours",
- directions: [
+ steps: [
]
});
};
@@ -369,7 +360,7 @@ exports.codeSchoolShapingUpWithAngularJsCourse = function(req, res) {
name: "Codeschool's Shaping up with Angular.js",
links: ["https://www.codeschool.com//courses/shaping-up-with-angular-js"],
time: "5 hours",
- directions: [
+ steps: [
"AngularJS is a powerful front end JavaScript framework. It's more powerful than jQuery, but it's also more challenging to master.",
"AngularJS is used heavily by Google and many other high tech companies. As such, it is a hot skill, and employers are looking for software engineers who are good with AngularJS."
]
@@ -381,7 +372,7 @@ exports.reverseEngineerSnapchat = function(req, res) {
name: "Reverse Engineer Snapchat",
links: [""],
time: "50 hours",
- directions: [
+ steps: [
]
});
};
@@ -391,7 +382,7 @@ exports.reverseEngineerReddit = function(req, res) {
name: "Reverse Engineer Reddit",
links: [""],
time: "50 hours",
- directions: [
+ steps: [
]
});
};
@@ -401,7 +392,7 @@ exports.reverseEngineerPintrest = function(req, res) {
name: "Reverse Engineer Pintrest",
links: [""],
time: "50 hours",
- directions: [
+ steps: [
]
});
};
@@ -411,7 +402,7 @@ exports.helpANonprofitTeamProject = function(req, res) {
name: "Help a Nonprofit Team Project",
links: [""],
time: "200 hours",
- directions: [
+ steps: [
]
});
};
@@ -421,7 +412,7 @@ exports.helpANonprofitSoloProject = function(req, res) {
name: "Help a Nonprofit Solo Project",
links: [""],
time: "200 hours",
- directions: [
+ steps: [
]
});
};
@@ -431,7 +422,7 @@ exports.crackTheCodingInterview = function(req, res) {
name: "Crack the Coding Interview",
links: [""],
time: "20 hours",
- directions: [
+ steps: [
]
});
};
\ No newline at end of file
diff --git a/public/css/styles.less b/public/css/styles.less
index c62f13afd2..68be8e87d0 100644
--- a/public/css/styles.less
+++ b/public/css/styles.less
@@ -127,6 +127,10 @@ ul {
font-size: 40px;
}
+.panel-heading {
+ font-size: 25px;
+}
+
.navbar-brand {
font-size: 26px;
}
diff --git a/public/js/main.js b/public/js/main.js
index fb94cd549d..798ccf708d 100644
--- a/public/js/main.js
+++ b/public/js/main.js
@@ -1,8 +1,7 @@
$(document).ready(function() {
$('.start-challenge').on("click", function() {
- $(this).addClass('animated zoomOut');
- $('.completed-challenge').removeClass('hidden-element').addClass('animated zoomIn delay-1');
- $('.skip-challenge').removeClass('hidden-element').addClass('animated zoomIn delay-1');
+ $(this).parent().remove();
+ $('.challenge-content').removeClass('hidden-element').addClass('animated fadeInDown');
});
$('.completed-challenge').on("click", function() {
$('#complete-dialog').modal('show');
diff --git a/views/challenges/modify-and-redeploy-your-website.jade b/views/challenges/modify-and-redeploy-your-website.jade
new file mode 100644
index 0000000000..3464508724
--- /dev/null
+++ b/views/challenges/modify-and-redeploy-your-website.jade
@@ -0,0 +1,7 @@
+extends ../layout
+block content
+ .row
+ .col-sm-12.col-md-8.col-xs-12
+ include partials/challenge
+ .col-sm-12.col-md-4.col-xs-12
+ include ../partials/challenges
diff --git a/views/challenges/partials/challenge.jade b/views/challenges/partials/challenge.jade
index ba985c1bfb..a1b2a46f2c 100644
--- a/views/challenges/partials/challenge.jade
+++ b/views/challenges/partials/challenge.jade
@@ -1,27 +1,26 @@
.panel.panel-primary
.panel-heading Challenge: #{name}
.panel.panel-body
- .responsive-container.animated.zoomIn.delay-1
- iframe(src='//player.vimeo.com/video/#{video}?autoplay=1', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
- .animated.fadeIn.delay-2
- h3 Instructions:
- for direction in directions
- p= direction
-
- h3 Links You'll need:
+ .challenge-brief
+ h3.text-center
+ span.ion-android-clock
+ span Takes about #{time}
+ .btn.btn-primary.btn-large.btn-block.start-challenge Start the challenge
+ .challenge-content.hidden-element
+ .responsive-container
+ iframe(src='//player.vimeo.com/video/#{video}', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
+ h3 Steps:
ol
- for link in links
- li
- a(href=link, target="blank")= link
- .button-container
- .btn.btn-primary.btn-large.btn-block.start-challenge Start my challenge and open these links in new tabs
- .btn.btn-success.btn-large.btn-block.completed-challenge.hidden-element I've completed this challenge
- .ten-pixel-break
- .btn.btn-primary.btn-large.btn-block.skip-challenge.hidden-element I want to skip this challenge
+ for step in steps
+ li!= step
+ .btn.btn-success.btn-large.btn-block.completed-challenge I've completed this challenge
+ .ten-pixel-break
+ .text-center
+ a.skip-challenge(href="#") I want to skip this challenge for now
.panel-footer.text-center
span Need a break?
a(href="http://blog.freecodecamp.com", target="_blank") Check out our blog
- | and
+ | and
a(href="https://twitter.com/freecodecamp", target="_blank") our recent tweets
| .
diff --git a/views/partials/challenges.jade b/views/partials/challenges.jade
index 7b9da5c5a9..4170057c56 100644
--- a/views/partials/challenges.jade
+++ b/views/partials/challenges.jade
@@ -3,11 +3,15 @@
.panel-body
ol
li
- a(href="challenges/enter-the-free-code-camp-chat-room") Enter the Free Code Camp Chat Room
+ a(href="/challenges/a-one-minute-introduction-to-free-code-camp") A One-minute Introduction to Free Code Camp
li
- a(href="challenges/install-github-atom-text-editor") Install Github's Atom Text Editor
+ a(href="/challenges/enter-the-free-code-camp-chat-room") Enter the Free Code Camp Chat Room
li
a(href="/challenges/create-and-deploy-a-website") Create a Website and Deploy it to the Internet
+ li
+ a(href="/challenges/install-github-atom-text-editor") Install Github's Atom Text Editor
+ li
+ a(href="/challenges/modify-and-redeploy-your-website") Modify and Redeploy Your Website
li
a(href="/challenges/start-a-pair-programming-session") Start Your First Pair Programming Session
li
@@ -19,63 +23,62 @@
li
a(href="/challenges/code-school-try-jquery-course") Code School's Try jQuery
li
- a(href="challenges/complete-jquery-exercises") Complete these jQuery Exercises
+ a(href="/challenges/complete-jquery-exercises") Complete these jQuery Exercises
li
a(href="/challenges/code-school-discover-devtools-course") Code School's Discover DevTools
li
- a.disabled(href="challenges/customize-bootstrap-with-bootswatch") Customize Bootstrap with Bootswatch
+ a(href="/challenges/customize-bootstrap-with-bootswatch") Customize Bootstrap with Bootswatch
li
- a.disabled(href="challenges/inject-life-with-css-transformations") Inject Life with CSS Transformations
+ a(href="/challenges/inject-life-with-css-transformations") Inject Life with CSS Transformations
li
a(href="/challenges/codecademy-javascript-track") Codecademy's JavaScript track
li
- a(href="challenges/get-help-the-hacker-way-with-rsap") Get Help The Hacker Way with RSAP
+ a(href="/challenges/get-help-the-hacker-way-with-rsap") Get Help The Hacker Way with RSAP
li
- a(href="challenges/easy-algorthim-scripting-challenges-on-coderbyte") Easy Algorithm Scripting Challenges on Coderbyte
+ a(href="/challenges/easy-algorthim-scripting-challenges-on-coderbyte") Easy Algorithm Scripting Challenges on Coderbyte
li
a(href="/challenges/harvard-introduction-to-computer-science-cs50-course") Harvard's CS50: Introduction to Computer Science
li
- a(href="challenges/medium-algorthim-scripting-challenges-on-coderbyte") Medium Algorithm Scripting Challenges on Coderbyte
+ a(href="/challenges/medium-algorthim-scripting-challenges-on-coderbyte") Medium Algorithm Scripting Challenges on Coderbyte
li
- a(href="challenges/stanfords-json-mini-course") Stanford's JSON Mini-course
+ a(href="/challenges/stanfords-json-mini-course") Stanford's JSON Mini-course
li
- a.disabled(href="challenges/build-a-text-based-adventure") Build a Text-based Adventure
+ a(href="/challenges/build-a-text-based-adventure") Build a Text-based Adventure
li
- a.disabled(href="challenges/hard-algorthim-scripting-challenges-on-coderbyte") Hard Algorithm Scripting Challenges on Coderbyte
+ a(href="/challenges/hard-algorthim-scripting-challenges-on-coderbyte") Hard Algorithm Scripting Challenges on Coderbyte
li
- a.disabled(href="challenges/stanfords-sql-mini-course") Stanford's SQL Mini-course
+ a(href="/challenges/stanfords-sql-mini-course") Stanford's SQL Mini-course
li
- a.disabled(href="#") Build an Interview Question Machine
-
+ a(href="/challenges/build-an-interview-question-machine") Build an Interview Question Machine
li
a(href="/challenges/code-school-try-git-course") Code School's Try Git
li
a(href="/challenges/install-node-js") Install Node.js
li
- a(href="/clone-a-github-repo") Clone a Github Repo
+ a(href="/challenges/clone-a-github-repo") Clone a Github Repo
li
- a.disabled(href="challenges/deploy-an-app-to-heroku") Deploy an app to Heroku
+ a(href="/challenges/deploy-an-app-to-heroku") Deploy an app to Heroku
li
a(href="/challenges/code-school-real-time-with-node-js-course") Code School's Real-time web with Node.JS
li
- a(href="challenges/try-mongodb") Try MongoDB
+ a(href="/challenges/try-mongodb") Try MongoDB
li
- a.disabled(href="challenges/explore-your-network-with-the-linkedin-api") Explore your Network with the LinkedIn API
+ a(href="/challenges/explore-your-network-with-the-linkedin-api") Explore your Network with the LinkedIn API
li
- a.disabled(href="challenges/build-your-first-api") Build your first API
+ a(href="/challenges/build-your-first-api") Build your first API
li
- a.disabled(href="challenges/aggregate-data-with-chron-jobs-and-screen-scraping") Aggregate Data with Chron Jobs and Screen Scraping
+ a(href="/challenges/aggregate-data-with-chron-jobs-and-screen-scraping") Aggregate Data with Chron Jobs and Screen Scraping
li
a(href="/challenges/code-school-shaping-up-with-angular-js-course") Code School's Shaping up with Angular.JS
li
- a.disabled(href="challenges/reverse-engineer-snapchat") Reverse Engineer SnapChat
+ a.disabled(href="/challenges/reverse-engineer-snapchat") Reverse Engineer SnapChat
li
- a.disabled(href="challenges/reverse-engineer-reddit") Reverse Engineer Reddit
+ a.disabled(href="/challenges/reverse-engineer-reddit") Reverse Engineer Reddit
li
- a.disabled(href="challenges/reverse-engineer-pintrest") Reverse Engineer Pintrest
+ a.disabled(href="/challenges/reverse-engineer-pintrest") Reverse Engineer Pintrest
li
- a.disabled(href="challenges/help-a-nonprofit-team-project") Help a Nonprofit: Team Project
+ a.disabled(href="/challenges/help-a-nonprofit-team-project") Help a Nonprofit: Team Project
li
- a.disabled(href="challenges/help-a-nonprofit-solo-project") Help a Nonprofit: Solo Project
+ a.disabled(href="/challenges/help-a-nonprofit-solo-project") Help a Nonprofit: Solo Project
li
- a.disabled(href="challenges/crack-the-coding-interview") Crack the Coding Interview
\ No newline at end of file
+ a.disabled(href="/challenges/crack-the-coding-interview") Crack the Coding Interview
\ No newline at end of file