start grooming the challenges

This commit is contained in:
Michael Q Larson
2014-11-02 12:24:37 -08:00
parent de29af1e8a
commit 5a2de8c47b
7 changed files with 128 additions and 124 deletions

5
app.js
View File

@ -119,10 +119,11 @@ app.use(express.static(path.join(__dirname, 'public'), { maxAge: week }));
*/ */
app.get('/', homeController.index); 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/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/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/start-a-pair-programming-session', challengesController.startAPairProgrammingSession);
app.get('/challenges/add-dynamic-content-to-your-website', challengesController.addDynamicContentToYourWebsite); app.get('/challenges/add-dynamic-content-to-your-website', challengesController.addDynamicContentToYourWebsite);
app.get('/challenges/codecademy-html-and-css-track', challengesController.codecademyHtmlAndCssTrack) app.get('/challenges/codecademy-html-and-css-track', challengesController.codecademyHtmlAndCssTrack)

View File

@ -8,9 +8,8 @@ exports.aOneMinuteIntroToFreeCodeCamp = function(req, res) {
res.render('challenges/a-one-minute-introduction-to-free-code-camp', { res.render('challenges/a-one-minute-introduction-to-free-code-camp', {
name: 'A one-minute introduction to Free Code Camp', name: 'A one-minute introduction to Free Code Camp',
video: "109134466", video: "109134466",
time: "5 minutes", time: "1 minute",
directions: ["Link up with the Free Code Camp community in our HipChat chat room."], steps: ["Watch this video.", "When you're done, click the \"I've completed this challenge\" button to move on to your next challenge."]
links: ["https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a"]
}); });
}; };
@ -19,18 +18,7 @@ exports.enterTheFreeCodeCampChatRoom = function(req, res) {
name: 'Enter the Free Code Camp Chat Room', name: 'Enter the Free Code Camp Chat Room',
video: "109134466", video: "109134466",
time: "5 minutes", time: "5 minutes",
directions: ["Link up with the Free Code Camp community in our HipChat chat room."], steps: ["Register for the Free Code Camp chat room at <a href='https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a' target='_blank'>https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a</a>", "Introduce yourself to our chat room by typing: \"hello world!\""]
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"]
}); });
}; };
@ -39,45 +27,55 @@ exports.createAndDeployAWebsite = function(req, res) {
name: 'Create a Website and Deploy it to the Internet', name: 'Create a Website and Deploy it to the Internet',
video: "109134466", video: "109134466",
time: "5 minutes", time: "5 minutes",
directions: ["In the next 5 minutes, you'll create a website and deploy it to the internet!"], steps: ["Download a template from <a href='http://startbootstrap.com' target='_blank'>http://startbootstrap.com</a>", "Go to <a href='http://bitballoon.com' target='_blank'>http://bitballoon.com</a>", "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."]
links: ["http://startbootstrap.com", "http://bitballoon.com"] });
};
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 <a href='http://atom.io'>http://atom.io</a>", "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 <a href='http://startbootstrap.com' target='_blank'>http://startbootstrap.com</a> 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 <a href='http://bitballoon.com' target='_blank'>http://bitballoon.com</a>", "Drag the entire template directory onto BitBalloon to deploy it", "Verify that the title has indeed changed."]
}); });
}; };
exports.startAPairProgrammingSession = function(req, res) { exports.startAPairProgrammingSession = function(req, res) {
res.render('challenges/start-a-pair-programming-session', { res.render('challenges/start-a-pair-programming-session', {
name: "Start Your First Pair Programming Session", name: "Start Your First Pair Programming Session",
source: "Free Code Camp",
video: "109547811", video: "109547811",
time: "5 minutes", time: "5 minutes",
directions: [ steps: [
"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." "Download Screen Hero, the popular pair programming tool, here: <a href='https://screenhero.com/download.html' target='_blank'>https://screenhero.com/download.html</a>", "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."
], ]
links: ["https://screenhero.com/download.html"]
}); });
}; };
exports.addDynamicContentToYourWebsite = function(req, res) { exports.addDynamicContentToYourWebsite = function(req, res) {
res.render('challenges/add-dynamic-content-to-your-website', { res.render('challenges/add-dynamic-content-to-your-website', {
name: "Add Dynamic Content to your Website", name: "Add Dynamic Content to your Website",
source: "Free Code Camp",
video: "109599487", video: "109599487",
time: "10 minutes", time: "10 minutes",
directions: [ steps: ["Go to <a href='http://www.powr.io' target='_blank'>http://www.powr.io</a>", "From the dropdown menus, choose 'Contact Form' and 'HTML'", "Open up the template you downloaded from <a href='http://startbootstrap.com' target='_blank'>http://startbootstrap.com</a> 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 <a href='http://bitballoon.com' target='_blank'>http://bitballoon.com</a>", "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."]
"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"]
}); });
}; };
exports.codecademyHtmlAndCssTrack = function(req, res) { exports.codecademyHtmlAndCssTrack = function(req, res) {
res.render('challenges/codecademy-html-and-css-track', { res.render('challenges/codecademy-html-and-css-track', {
name: "Codecademy's HTML & CSS Track", name: "Codecademy's HTML & CSS Track",
links: ["http://www.codecademy.com/tracks/web"], video: "109599487",
time: "7 hours", time: "7 hours",
directions: [ steps: [
"Let's learn HTML and CSS! Then we'll understand the structure (HTML) and the style (CSS) that makes up all webpages.", "Go to <a href='http://www.codecademy.com/tracks/web' target='_blank'>http://www.codecademy.com/tracks/web</a> and complete the course."
"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."
] ]
}); });
}; };
@ -85,26 +83,21 @@ exports.codecademyHtmlAndCssTrack = function(req, res) {
exports.experimentWithHtmlAndCssInCodepen = function(req, res) { exports.experimentWithHtmlAndCssInCodepen = function(req, res) {
res.render('challenges/experiment-with-html-and-css-in-codepen', { res.render('challenges/experiment-with-html-and-css-in-codepen', {
name: "Experiment with HTML and CSS in CodePen", name: "Experiment with HTML and CSS in CodePen",
source: "Free Code Camp",
video: "109611164", video: "109611164",
time: "30 minutes", time: "30 minutes",
directions: [ steps: [
"Let's put those HTML and CSS skills to work!",
"You'll learn bootstrap and see how you can build websites right in your browser with CodePen.", "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." "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) { exports.codeSchoolTryJqueryCourse = function(req, res) {
res.render('challenges/code-school-try-jquery-course', { res.render('challenges/code-school-try-jquery-course', {
name: "Code School's Try jQuery Course", name: "Code School's Try jQuery Course",
links: ["https://www.codeschool.com/courses/try-jquery"], time: "3 hours",
time: "2 hours", steps: [
directions: [ "Go to <a href='https://www.codeschool.com/courses/try-jquery' target='_blank'>https://www.codeschool.com/courses/try-jquery</a> and complete the course."
"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."
] ]
}); });
}; };
@ -114,8 +107,8 @@ exports.completeJqueryExercises = function(req, res) {
name: "Complete jQuery Exercises", name: "Complete jQuery Exercises",
links: ["http://jqexercise.droppages.com/"], links: ["http://jqexercise.droppages.com/"],
time: "3 hours", time: "3 hours",
directions: [ steps: [
"jQuery gives you an easy way to modify your HTML and CSS without reloading your page." "Go to <a href='http://jqexercise.droppages.com/' target='_blank'>http://jqexercise.droppages.com/</a> 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", name: "Code School's Discover DevTools",
links: ["http://discover-devtools.codeschool.com/"], links: ["http://discover-devtools.codeschool.com/"],
time: "2 hours", time: "2 hours",
directions: [ steps: [
"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!", "Go to <a href='http://discover-devtools.codeschool.com/' target='_blank'>http://discover-devtools.codeschool.com/</a> and complete the course."
"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."
] ]
}); });
}; };
@ -138,7 +129,7 @@ exports.customizeBootstrapWithBootswatch = function(req, res) {
name: "Customize Bootstrap with Bootswatch", name: "Customize Bootstrap with Bootswatch",
time: "15 minutes", time: "15 minutes",
links: ["http://bootswatch.com/"], links: ["http://bootswatch.com/"],
directions: [] steps: []
}); });
}; };
@ -147,7 +138,7 @@ exports.injectLifeWithCssTransformations = function(req, res) {
name: "Inject Life with CSS Transformations", name: "Inject Life with CSS Transformations",
links: [""], links: [""],
time: "15 minutes", time: "15 minutes",
directions: [ steps: [
] ]
}); });
}; };
@ -157,7 +148,7 @@ exports.codecademyJavascriptTrack = function(req, res) {
name: "Codecademy JavaScript Track", name: "Codecademy JavaScript Track",
links: [ "http://www.codecademy.com/tracks/javascript"], links: [ "http://www.codecademy.com/tracks/javascript"],
time: "10 hours", time: "10 hours",
directions: [ steps: [
"All right, now let's start coding!", "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." "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", name: "Get Help the Hacker Way with RSAP",
links: ["http://webchat.freenode.net/", "http://stackoverflow.com/"], links: ["http://webchat.freenode.net/", "http://stackoverflow.com/"],
time: "30 minutes", time: "30 minutes",
directions: [ steps: [
] ]
}); });
}; };
@ -179,7 +170,7 @@ exports.easyAlgorithmScriptingChallengesOnCoderbyte = function(req, res) {
name: "Easy Algorithm Scripting Challenges on Coderbyte", name: "Easy Algorithm Scripting Challenges on Coderbyte",
links: [""], links: [""],
time: "15 hours", time: "15 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -189,7 +180,7 @@ exports.harvardIntroductionToComputerScienceCs50Course = function(req, res) {
name: "Introduction to Computer Science", name: "Introduction to Computer Science",
links: ["https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.VDWSfSldWpQ"], links: ["https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.VDWSfSldWpQ"],
time: "150 hours", 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.", "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.", "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." "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", name: "Medium Algorithm Scripting Challenges on Coderbyte",
links: [""], links: [""],
time: "15 hours", time: "15 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -212,7 +203,7 @@ exports.stanfordsRelationalDatabasesMiniCourse = function(req, res) {
name: "Stanford's Relational Databases Mini-course", name: "Stanford's Relational Databases Mini-course",
links: [""], links: [""],
time: "10 hours", time: "10 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -222,7 +213,7 @@ exports.stanfordsJsonMiniCourse = function(req, res) {
name: "Stanford's JSON Mini-course", name: "Stanford's JSON Mini-course",
links: [""], links: [""],
time: "2 hours", time: "2 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -232,7 +223,7 @@ exports.buildATextBasedAdventure = function(req, res) {
name: "Build a Text-based Adventure", name: "Build a Text-based Adventure",
links: [""], links: [""],
time: "5 hours", time: "5 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -242,7 +233,7 @@ exports.hardAlgorithmScriptingChallengesOnCoderbyte = function(req, res) {
name: "Hard Algorithm Scripting Challenges on Coderbyte", name: "Hard Algorithm Scripting Challenges on Coderbyte",
links: [""], links: [""],
time: "15 hours", time: "15 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -252,7 +243,7 @@ exports.stanfordsSqlMiniCourse = function(req, res) {
name: "Stanford's SQL Mini-course", name: "Stanford's SQL Mini-course",
links: [""], links: [""],
time: "10 hours", time: "10 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -262,7 +253,7 @@ exports.buildAnInterviewQuestionMachine = function(req, res) {
name: "Build an Interview Question Machine", name: "Build an Interview Question Machine",
links: [""], links: [""],
time: "5 hours", time: "5 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -272,7 +263,7 @@ exports.codeSchoolTryGitCourse = function(req, res) {
name: "Code School's Try Git Course", name: "Code School's Try Git Course",
links: ["https://www.codeschool.com/courses/try-git"], links: ["https://www.codeschool.com/courses/try-git"],
time: "15 minutes", time: "15 minutes",
directions: [ steps: [
"Have you ever accidentally deleted something? With Git, you will never have that problem again.", "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.", "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." "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", name: "Install Node.js",
links: [""], links: [""],
time: "15 minutes", time: "15 minutes",
directions: [ steps: [
] ]
}); });
}; };
@ -295,7 +286,7 @@ exports.cloneAGithubRepo = function(req, res) {
name: "Clone a Github Repo", name: "Clone a Github Repo",
links: [""], links: [""],
time: "15 minutes", time: "15 minutes",
directions: [ steps: [
] ]
}); });
}; };
@ -305,7 +296,7 @@ exports.deployAnAppToHeroku = function(req, res) {
name: "Deploy an app to Heroku", name: "Deploy an app to Heroku",
links: [""], links: [""],
time: "15 minutes", time: "15 minutes",
directions: [ steps: [
] ]
}); });
}; };
@ -315,7 +306,7 @@ exports.codeSchoolRealTimeWithNodeJsCourse = function(req, res) {
name: "Code School's Real-time web with Node.JS", name: "Code School's Real-time web with Node.JS",
links: ["https://www.codeschool.com/courses/real-time-web-with-node-js"], links: ["https://www.codeschool.com/courses/real-time-web-with-node-js"],
time: "5 hours", time: "5 hours",
directions: [ steps: [
"Learn NodeJS, the web server that makes the MEAN Stack possible.", "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.", "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." "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", name: "Try MongoDB",
links: ["http://try.mongodb.org/"], links: ["http://try.mongodb.org/"],
time: "30 minutes", time: "30 minutes",
directions: [ steps: [
] ]
}); });
@ -339,7 +330,7 @@ exports.exploreYourNetworkWithTheLinkedInApi = function(req, res) {
name: "Explore Your Network with the LinkedIn API", name: "Explore Your Network with the LinkedIn API",
links: ["http://developers.linkedin.com/"], links: ["http://developers.linkedin.com/"],
time: "2 hours", time: "2 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -349,7 +340,7 @@ exports.buildYourFirstApi = function(req, res) {
name: "Build Your First API", name: "Build Your First API",
links: [""], links: [""],
time: "5 hours", time: "5 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -359,7 +350,7 @@ exports.aggregateDataWithChronJobsAndScreenScraping = function(req, res) {
name: "Aggregate Data with Chron Jobs and Screen Scraping", name: "Aggregate Data with Chron Jobs and Screen Scraping",
links: [""], links: [""],
time: "5 hours", time: "5 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -369,7 +360,7 @@ exports.codeSchoolShapingUpWithAngularJsCourse = function(req, res) {
name: "Codeschool's Shaping up with Angular.js", name: "Codeschool's Shaping up with Angular.js",
links: ["https://www.codeschool.com//courses/shaping-up-with-angular-js"], links: ["https://www.codeschool.com//courses/shaping-up-with-angular-js"],
time: "5 hours", 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 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." "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", name: "Reverse Engineer Snapchat",
links: [""], links: [""],
time: "50 hours", time: "50 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -391,7 +382,7 @@ exports.reverseEngineerReddit = function(req, res) {
name: "Reverse Engineer Reddit", name: "Reverse Engineer Reddit",
links: [""], links: [""],
time: "50 hours", time: "50 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -401,7 +392,7 @@ exports.reverseEngineerPintrest = function(req, res) {
name: "Reverse Engineer Pintrest", name: "Reverse Engineer Pintrest",
links: [""], links: [""],
time: "50 hours", time: "50 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -411,7 +402,7 @@ exports.helpANonprofitTeamProject = function(req, res) {
name: "Help a Nonprofit Team Project", name: "Help a Nonprofit Team Project",
links: [""], links: [""],
time: "200 hours", time: "200 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -421,7 +412,7 @@ exports.helpANonprofitSoloProject = function(req, res) {
name: "Help a Nonprofit Solo Project", name: "Help a Nonprofit Solo Project",
links: [""], links: [""],
time: "200 hours", time: "200 hours",
directions: [ steps: [
] ]
}); });
}; };
@ -431,7 +422,7 @@ exports.crackTheCodingInterview = function(req, res) {
name: "Crack the Coding Interview", name: "Crack the Coding Interview",
links: [""], links: [""],
time: "20 hours", time: "20 hours",
directions: [ steps: [
] ]
}); });
}; };

View File

@ -127,6 +127,10 @@ ul {
font-size: 40px; font-size: 40px;
} }
.panel-heading {
font-size: 25px;
}
.navbar-brand { .navbar-brand {
font-size: 26px; font-size: 26px;
} }

View File

@ -1,8 +1,7 @@
$(document).ready(function() { $(document).ready(function() {
$('.start-challenge').on("click", function() { $('.start-challenge').on("click", function() {
$(this).addClass('animated zoomOut'); $(this).parent().remove();
$('.completed-challenge').removeClass('hidden-element').addClass('animated zoomIn delay-1'); $('.challenge-content').removeClass('hidden-element').addClass('animated fadeInDown');
$('.skip-challenge').removeClass('hidden-element').addClass('animated zoomIn delay-1');
}); });
$('.completed-challenge').on("click", function() { $('.completed-challenge').on("click", function() {
$('#complete-dialog').modal('show'); $('#complete-dialog').modal('show');

View File

@ -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

View File

@ -1,27 +1,26 @@
.panel.panel-primary .panel.panel-primary
.panel-heading Challenge: #{name} .panel-heading Challenge: #{name}
.panel.panel-body .panel.panel-body
.responsive-container.animated.zoomIn.delay-1 .challenge-brief
iframe(src='//player.vimeo.com/video/#{video}?autoplay=1', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='') h3.text-center
.animated.fadeIn.delay-2 span.ion-android-clock
h3 Instructions: span Takes about #{time}
for direction in directions .btn.btn-primary.btn-large.btn-block.start-challenge Start the challenge
p= direction .challenge-content.hidden-element
.responsive-container
h3 Links You'll need: iframe(src='//player.vimeo.com/video/#{video}', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
h3 Steps:
ol ol
for link in links for step in steps
li li!= step
a(href=link, target="blank")= link .btn.btn-success.btn-large.btn-block.completed-challenge I've completed this challenge
.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 .ten-pixel-break
.btn.btn-primary.btn-large.btn-block.skip-challenge.hidden-element I want to skip this challenge .text-center
a.skip-challenge(href="#") I want to skip this challenge for now
.panel-footer.text-center .panel-footer.text-center
span Need a break? &nbsp; span Need a break? &nbsp;
a(href="http://blog.freecodecamp.com", target="_blank") Check out our blog a(href="http://blog.freecodecamp.com", target="_blank") Check out our blog
| &nbsp; and &nbsp; | &ensp; and &ensp;
a(href="https://twitter.com/freecodecamp", target="_blank") our recent tweets a(href="https://twitter.com/freecodecamp", target="_blank") our recent tweets
| . | .

View File

@ -3,11 +3,15 @@
.panel-body .panel-body
ol ol
li 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 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 li
a(href="/challenges/create-and-deploy-a-website") Create a Website and Deploy it to the Internet 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 li
a(href="/challenges/start-a-pair-programming-session") Start Your First Pair Programming Session a(href="/challenges/start-a-pair-programming-session") Start Your First Pair Programming Session
li li
@ -19,63 +23,62 @@
li li
a(href="/challenges/code-school-try-jquery-course") Code School's Try jQuery a(href="/challenges/code-school-try-jquery-course") Code School's Try jQuery
li li
a(href="challenges/complete-jquery-exercises") Complete these jQuery Exercises a(href="/challenges/complete-jquery-exercises") Complete these jQuery Exercises
li li
a(href="/challenges/code-school-discover-devtools-course") Code School's Discover DevTools a(href="/challenges/code-school-discover-devtools-course") Code School's Discover DevTools
li 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 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 li
a(href="/challenges/codecademy-javascript-track") Codecademy's JavaScript track a(href="/challenges/codecademy-javascript-track") Codecademy's JavaScript track
li 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 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 li
a(href="/challenges/harvard-introduction-to-computer-science-cs50-course") Harvard's CS50: Introduction to Computer Science a(href="/challenges/harvard-introduction-to-computer-science-cs50-course") Harvard's CS50: Introduction to Computer Science
li 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 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 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 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 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 li
a.disabled(href="#") Build an Interview Question Machine a(href="/challenges/build-an-interview-question-machine") Build an Interview Question Machine
li li
a(href="/challenges/code-school-try-git-course") Code School's Try Git a(href="/challenges/code-school-try-git-course") Code School's Try Git
li li
a(href="/challenges/install-node-js") Install Node.js a(href="/challenges/install-node-js") Install Node.js
li li
a(href="/clone-a-github-repo") Clone a Github Repo a(href="/challenges/clone-a-github-repo") Clone a Github Repo
li 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 li
a(href="/challenges/code-school-real-time-with-node-js-course") Code School's Real-time web with Node.JS a(href="/challenges/code-school-real-time-with-node-js-course") Code School's Real-time web with Node.JS
li li
a(href="challenges/try-mongodb") Try MongoDB a(href="/challenges/try-mongodb") Try MongoDB
li 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 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 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 li
a(href="/challenges/code-school-shaping-up-with-angular-js-course") Code School's Shaping up with Angular.JS a(href="/challenges/code-school-shaping-up-with-angular-js-course") Code School's Shaping up with Angular.JS
li li
a.disabled(href="challenges/reverse-engineer-snapchat") Reverse Engineer SnapChat a.disabled(href="/challenges/reverse-engineer-snapchat") Reverse Engineer SnapChat
li li
a.disabled(href="challenges/reverse-engineer-reddit") Reverse Engineer Reddit a.disabled(href="/challenges/reverse-engineer-reddit") Reverse Engineer Reddit
li li
a.disabled(href="challenges/reverse-engineer-pintrest") Reverse Engineer Pintrest a.disabled(href="/challenges/reverse-engineer-pintrest") Reverse Engineer Pintrest
li 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 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 li
a.disabled(href="challenges/crack-the-coding-interview") Crack the Coding Interview a.disabled(href="/challenges/crack-the-coding-interview") Crack the Coding Interview