finish setting up layouts
This commit is contained in:
40
app.js
40
app.js
@ -27,8 +27,8 @@ var connectAssets = require('connect-assets');
|
|||||||
|
|
||||||
var homeController = require('./controllers/home');
|
var homeController = require('./controllers/home');
|
||||||
var curriculumController = require('./controllers/curriculum');
|
var curriculumController = require('./controllers/curriculum');
|
||||||
var courseController = require('./controllers/course')
|
var coursesController = require('./controllers/courses')
|
||||||
var challengeController = require('./controllers/challenge')
|
var challengesController = require('./controllers/challenges')
|
||||||
var userController = require('./controllers/user');
|
var userController = require('./controllers/user');
|
||||||
var apiController = require('./controllers/api');
|
var apiController = require('./controllers/api');
|
||||||
var contactController = require('./controllers/contact');
|
var contactController = require('./controllers/contact');
|
||||||
@ -122,24 +122,24 @@ app.use(express.static(path.join(__dirname, 'public'), { maxAge: week }));
|
|||||||
|
|
||||||
app.get('/', homeController.index);
|
app.get('/', homeController.index);
|
||||||
app.get('/curriculum', curriculumController.index);
|
app.get('/curriculum', curriculumController.index);
|
||||||
app.get('/course/:id', courseController.view);
|
app.get('/course/:id', coursesController.view);
|
||||||
app.get('/courses', courseController.index);
|
app.get('/courses', coursesController.index);
|
||||||
app.get('/course/codecademy-html-and-css-track', courseController.codecademyHtmlAndCssTrack)
|
app.get('/courses/codecademy-html-and-css-track', coursesController.codecademyHtmlAndCssTrack)
|
||||||
app.get('/course/code-school-discover-devtools-course', courseController.codeSchoolDiscoverDevtoolsCourse)
|
app.get('/courses/code-school-discover-devtools-course', coursesController.codeSchoolDiscoverDevtoolsCourse)
|
||||||
app.get('/course/code-school-try-jquery-course', courseController.codeSchoolTryJqueryCourse)
|
app.get('/courses/code-school-try-jquery-course', coursesController.codeSchoolTryJqueryCourse)
|
||||||
app.get('/course/codecademy-javascript-track', courseController.codecademyJavascriptTrack)
|
app.get('/courses/codecademy-javascript-track', coursesController.codecademyJavascriptTrack)
|
||||||
app.get('/course/harvard-introduction-to-computer-science-cs50-course', courseController.harvardIntroductionToComputerScienceCs50Course)
|
app.get('/courses/harvard-introduction-to-computer-science-cs50-course', coursesController.harvardIntroductionToComputerScienceCs50Course)
|
||||||
app.get('/course/linux-command-line-tutorial', courseController.linuxCommandLineTutorial)
|
app.get('/courses/linux-command-line-tutorial', coursesController.linuxCommandLineTutorial)
|
||||||
app.get('/course/code-school-try-git-course', courseController.codeSchoolTryGitCourse)
|
app.get('/courses/code-school-try-git-course', coursesController.codeSchoolTryGitCourse)
|
||||||
app.get('/course/code-school-real-time-with-node-js-course', courseController.codeSchoolRealTimeWithNodeJsCourse)
|
app.get('/courses/code-school-real-time-with-node-js-course', coursesController.codeSchoolRealTimeWithNodeJsCourse)
|
||||||
app.get('/course/code-school-shaping-up-with-angular-js-course', courseController.codeSchoolShapingUpWithAngularJsCourse)
|
app.get('/courses/code-school-shaping-up-with-angular-js-course', coursesController.codeSchoolShapingUpWithAngularJsCourse)
|
||||||
app.get('/course/m101js-mongodb-for-node-js-developers-course', courseController.m101jsMongoDBForNodeJsDevelopersCourse)
|
app.get('/courses/m101js-mongodb-for-node-js-developers-course', coursesController.m101jsMongoDBForNodeJsDevelopersCourse)
|
||||||
//app.get('/challenges/:id', challengeController.view);
|
//app.get('/challenges/:id', challengesController.view);
|
||||||
//app.get('/challenges', challengeController.index);
|
//app.get('/challenges', challengesController.index);
|
||||||
app.get('/challenges/create-and-deploy-a-website', challengeController.createAndDeployAWebsite)
|
app.get('/challenges/create-and-deploy-a-website', challengesController.createAndDeployAWebsite)
|
||||||
app.get('/challenges/challenges/add-dynamic-content-to-your-website', challengeController.experimentWithHtmlAndCssInCodepen)
|
app.get('/challenges/challenges/add-dynamic-content-to-your-website', challengesController.experimentWithHtmlAndCssInCodepen)
|
||||||
app.get('/challenges/experiment-with-html-and-css-in-codepen', challengeController.addDynamicContentToYourWebsite)
|
app.get('/challenges/experiment-with-html-and-css-in-codepen', challengesController.addDynamicContentToYourWebsite)
|
||||||
app.get('/challenges/start-a-pair-programming-session', challengeController.startAPairProgrammingSession)
|
app.get('/challenges/start-a-pair-programming-session', challengesController.startAPairProgrammingSession)
|
||||||
app.get('/login', userController.getLogin);
|
app.get('/login', userController.getLogin);
|
||||||
app.post('/login', userController.postLogin);
|
app.post('/login', userController.postLogin);
|
||||||
app.get('/logout', userController.logout);
|
app.get('/logout', userController.logout);
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
/**
|
|
||||||
* GET /
|
|
||||||
* Home page.
|
|
||||||
*/
|
|
||||||
var Challenge = require('./../models/Challenge')
|
|
||||||
|
|
||||||
exports.index = function(req, res) {
|
|
||||||
Challenge.find(function(err, challenges){
|
|
||||||
res.render('challenge/index', {
|
|
||||||
title: 'Challenges',
|
|
||||||
challenges: challenges
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
exports.view = function(req, res) {
|
|
||||||
Challenge.findById(req.param.id, function(err, challenge){
|
|
||||||
res.render('challenge/view', {
|
|
||||||
title: 'Challenge',
|
|
||||||
challenge: challenge
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
exports.createAndDeployAWebsite = function(req, res) {
|
|
||||||
res.render('challenge/create-and-deploy-a-website', {
|
|
||||||
name: 'Create and Deploy a Website',
|
|
||||||
image: 'http://startbootstrap.com/assets/img/templates/landing-page.jpg',
|
|
||||||
video: '',
|
|
||||||
directions: "In the next 5 minutes, you'll create a website and deploy it to the internet!",
|
|
||||||
links: ["http://startbootstrap.com/template-overviews/freelancer/", "www.bitballoon.com", "https://atom.io/"]
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.addDynamicContentToYourWebsite = function(req, res) {
|
|
||||||
res.render('challenge/add-dynamic-content-to-your-website', {
|
|
||||||
name: 'Add dynamic content to your website'
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.experimentWithHtmlAndCssInCodepen = function(req, res) {
|
|
||||||
res.render('challenge/experiment-with-html-and-css-in-codepen', {
|
|
||||||
name: 'Experiment with HTML and CSS in Codepen'
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.startAPairProgrammingSession = function(req, res) {
|
|
||||||
res.render('challenge/start-a-pair-programming-session', {
|
|
||||||
name: 'Start a pair programming session'
|
|
||||||
});
|
|
||||||
};
|
|
71
controllers/challenges.js
Normal file
71
controllers/challenges.js
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
/**
|
||||||
|
* GET /
|
||||||
|
* Home page.
|
||||||
|
*/
|
||||||
|
var Challenge = require('./../models/Challenge')
|
||||||
|
|
||||||
|
exports.index = function(req, res) {
|
||||||
|
Challenge.find(function(err, challenges){
|
||||||
|
res.render('challenges/index', {
|
||||||
|
title: 'Challenges',
|
||||||
|
challenges: challenges
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.view = function(req, res) {
|
||||||
|
Challenge.findById(req.param.id, function(err, challenge){
|
||||||
|
res.render('challenges/view', {
|
||||||
|
title: 'Challenge',
|
||||||
|
challenge: challenge
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.createAndDeployAWebsite = function(req, res) {
|
||||||
|
res.render('challenges/create-and-deploy-a-website', {
|
||||||
|
name: 'Create and Deploy a Website',
|
||||||
|
image: 'http://startbootstrap.com/assets/img/templates/landing-page.jpg',
|
||||||
|
video: "",
|
||||||
|
directions: ["In the next 5 minutes, you'll create a website and deploy it to the internet!"],
|
||||||
|
links: ["http://startbootstrap.com/template-overviews/freelancer/", "http://bitballoon.com", "http://atom.io"]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.addDynamicContentToYourWebsite = function(req, res) {
|
||||||
|
res.render('challenges/add-dynamic-content-to-your-website', {
|
||||||
|
name: "Add Dynamic Content to your Website with POWr.io",
|
||||||
|
source: "Free Code Camp",
|
||||||
|
video: "",
|
||||||
|
image: "https://s3-us-west-1.amazonaws.com/powr/images/powr_showcase_bg_1.jpg",
|
||||||
|
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/template-overviews/freelancer/", "http://www.powr.io/", "http://bitballoon.com"]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.experimentWithHtmlAndCssInCodepen = function(req, res) {
|
||||||
|
res.render('challenges/experiment-with-html-and-css-in-codepen', {
|
||||||
|
name: "Create your first CodePen",
|
||||||
|
source: "Free Code Camp",
|
||||||
|
video: "",
|
||||||
|
image: "http://www.designtrending.com/wp-content/uploads/2013/02/codepen_split.png",
|
||||||
|
directions: [
|
||||||
|
"Let's put those HTML and CSS skills to work!",
|
||||||
|
"You'll create your own databaseless webpage. We'll show you how."
|
||||||
|
],
|
||||||
|
links: ["http://getbootstrap.com/", "http://www.usatoday.com/", "http://codepen.io/"]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
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: "",
|
||||||
|
image: "https://screenhero.com/img/anim-collaboration.gif",
|
||||||
|
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."
|
||||||
|
],
|
||||||
|
links: ["https://screenhero.com/download.html", "https://www.hipchat.com/invite/178107/cc2f6ea4dfac9e48b9a88b305adae48a"]
|
||||||
|
});
|
||||||
|
};
|
@ -1,82 +0,0 @@
|
|||||||
/**
|
|
||||||
* GET /
|
|
||||||
* Home page.
|
|
||||||
*/
|
|
||||||
var Course = require('./../models/Course')
|
|
||||||
|
|
||||||
exports.index = function(req, res) {
|
|
||||||
Course.find(function(err, courses){
|
|
||||||
res.render('course/index', {
|
|
||||||
title: 'Courses',
|
|
||||||
courses: courses
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
exports.view = function(req, res) {
|
|
||||||
Course.findById(req.param.id, function(err, course){
|
|
||||||
res.render('course/view', {
|
|
||||||
title: 'Course',
|
|
||||||
course: course
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codecademyHtmlAndCssTrack = function(req, res) {
|
|
||||||
res.render('course/codecademy-html-and-css-track', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codeSchoolDiscoverDevtoolsCourse = function(req, res) {
|
|
||||||
res.render('course/code-school-discover-devtools-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codeSchoolTryJqueryCourse = function(req, res) {
|
|
||||||
res.render('course/code-school-try-jquery-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codecademyJavascriptTrack = function(req, res) {
|
|
||||||
res.render('course/codecademy-javascript-track', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.harvardIntroductionToComputerScienceCs50Course = function(req, res) {
|
|
||||||
res.render('course/harvard-introduction-to-computer-science-cs50-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.linuxCommandLineTutorial = function(req, res) {
|
|
||||||
res.render('course/linux-command-line-tutorial', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codeSchoolTryGitCourse = function(req, res) {
|
|
||||||
res.render('course/code-school-try-git-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codeSchoolRealTimeWithNodeJsCourse = function(req, res) {
|
|
||||||
res.render('course/code-school-real-time-with-node-js-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.codeSchoolShapingUpWithAngularJsCourse = function(req, res) {
|
|
||||||
res.render('course/code-school-shaping-up-with-angular-js-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.m101jsMongoDBForNodeJsDevelopersCourse = function(req, res) {
|
|
||||||
res.render('course/m101js-mongodb-for-node-js-developers-course', {
|
|
||||||
name: ''
|
|
||||||
});
|
|
||||||
};
|
|
157
controllers/courses.js
Normal file
157
controllers/courses.js
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
/**
|
||||||
|
* GET /
|
||||||
|
* Home page.
|
||||||
|
*/
|
||||||
|
var Course = require('./../models/Course')
|
||||||
|
|
||||||
|
exports.index = function(req, res) {
|
||||||
|
Course.find(function(err, courses){
|
||||||
|
res.render('course/index', {
|
||||||
|
title: 'Courses',
|
||||||
|
courses: courses
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.view = function(req, res) {
|
||||||
|
Course.findById(req.param.id, function(err, course){
|
||||||
|
res.render('course/view', {
|
||||||
|
title: 'Course',
|
||||||
|
course: course
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codecademyHtmlAndCssTrack = function(req, res) {
|
||||||
|
res.render('courses/codecademy-html-and-css-track', {
|
||||||
|
name: "Codecademy HTML & CSS Track",
|
||||||
|
link: "http://www.codecademy.com/tracks/web",
|
||||||
|
image: "https://d13yacurqjgara.cloudfront.net/users/98247/screenshots/1673756/codecademy_design.png",
|
||||||
|
time: 7,
|
||||||
|
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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codeSchoolDiscoverDevtoolsCourse = function(req, res) {
|
||||||
|
res.render('courses/code-school-discover-devtools-course', {
|
||||||
|
name: "Code School's Discover DevTools",
|
||||||
|
link: "http://discover-devtools.codeschool.com/",
|
||||||
|
image: "https://d1ffx7ull4987f.cloudfront.net/images/achievements/large_badge/197/completed-discover-devtools-b769c8b681384be3ad04cdf813b4a62c.png",
|
||||||
|
time: 4,
|
||||||
|
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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codeSchoolTryJqueryCourse = function(req, res) {
|
||||||
|
res.render('courses/code-school-try-jquery-course', {
|
||||||
|
name: "Code School's Try jQuery Course",
|
||||||
|
link: "https://www.codeschool.com/courses/try-jquery",
|
||||||
|
image: "http://logoness.com/wp-content/uploads/2014/09/code-school-logo.jpg",
|
||||||
|
time: 7,
|
||||||
|
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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codecademyJavascriptTrack = function(req, res) {
|
||||||
|
res.render('courses/codecademy-javascript-track', {
|
||||||
|
name: "Codecademy JavaScript Track",
|
||||||
|
link: "http://www.codecademy.com/tracks/javascript",
|
||||||
|
image: "https://d13yacurqjgara.cloudfront.net/users/98247/screenshots/1673756/codecademy_design.png",
|
||||||
|
time: 10,
|
||||||
|
directions: [
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.harvardIntroductionToComputerScienceCs50Course = function(req, res) {
|
||||||
|
res.render('courses/harvard-introduction-to-computer-science-cs50-course', {
|
||||||
|
name: "Introduction to Computer Science",
|
||||||
|
link: "https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.VDWSfSldWpQ",
|
||||||
|
image: "http://content.sportslogos.net/logos/31/695/full/k7ahkuime41f6elmq8qx.png",
|
||||||
|
time: 150,
|
||||||
|
directions: [
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.linuxCommandLineTutorial = function(req, res) {
|
||||||
|
res.render('courses/linux-command-line-tutorial', {
|
||||||
|
name: "Linux Command Line Tutorial",
|
||||||
|
link: "https://www.udemy.com/linux-command-line-volume1/",
|
||||||
|
image: "https://udemyimages-a.akamaihd.net/course/200_H/95246_69f4_7.jpg",
|
||||||
|
time: 2,
|
||||||
|
directions: [
|
||||||
|
"If you are using a Mac or a Linux computer, this short course will help you learn some basic commands to get around your terminal.",
|
||||||
|
"If you are using a Windows computer, you can either skip this course or install a linux emulator here: http://cygwin.com/install.html"
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codeSchoolTryGitCourse = function(req, res) {
|
||||||
|
res.render('courses/code-school-try-git-course', {
|
||||||
|
name: "Code School's Try Git Course",
|
||||||
|
link: "https://www.codeschool.com/courses/try-git",
|
||||||
|
image: "http://logoness.com/wp-content/uploads/2014/09/code-school-logo.jpg",
|
||||||
|
time: 2,
|
||||||
|
directions: [
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codeSchoolRealTimeWithNodeJsCourse = function(req, res) {
|
||||||
|
res.render('courses/code-school-real-time-with-node-js-course', {
|
||||||
|
name: "Code School's Real-time web with Node.JS",
|
||||||
|
link: "https://www.codeschool.com/courses/real-time-web-with-node-js",
|
||||||
|
image: "https://d1ffx7ull4987f.cloudfront.net/images/achievements/large_badge/107/completed-real-time-web-with-node-js-c8408b2b17ff6492d3f4d241c0db322d.png",
|
||||||
|
time: 10,
|
||||||
|
directions: [
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.codeSchoolShapingUpWithAngularJsCourse = function(req, res) {
|
||||||
|
res.render('courses/code-school-shaping-up-with-angular-js-course', {
|
||||||
|
name: "Codeschool's Shaping up with Angular.js",
|
||||||
|
link: "https://www.codeschool.com//courses/shaping-up-with-angular-js",
|
||||||
|
image: "https://d1ffx7ull4987f.cloudfront.net/images/courses/large_badge/109/shaping-up-with-angular-js-83ceb89bd5255391f25230727ae3f019.png",
|
||||||
|
time: 10,
|
||||||
|
directions: [
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.m101jsMongoDBForNodeJsDevelopersCourse = function(req, res) {
|
||||||
|
res.render('courses/m101js-mongodb-for-node-js-developers-course', {
|
||||||
|
name: "M101JS: MongoDB for Node.js Developers",
|
||||||
|
link: "https://university.mongodb.com/courses/M101JS/about",
|
||||||
|
image: "http://fc01.deviantart.net/fs70/f/2010/168/e/1/Icon_MongoDB_by_xkneo.png",
|
||||||
|
time: 40,
|
||||||
|
directions: [
|
||||||
|
"MongoDB is a powerful Document Store Database. One reason it is so popular is that you can query it using JavaScript.",
|
||||||
|
"Instead of using traditional table to store data (similar to a spreadsheet), MongoDB stuffs everything into huge documents. It can store massive amounts of data more efficiently than traditional SQL-based databases, but has fewer features.",
|
||||||
|
"Tengen, the company that created MongoDB, has opened this course to everyone for free. It has specific start and end dates, so you may have to wait a few weeks for a session starts. In the meantime, you should keep working on other FreeCodeCamp challenges and projects."
|
||||||
|
]
|
||||||
|
});
|
||||||
|
};
|
@ -105,4 +105,8 @@ ul {
|
|||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.centered-iframe {
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
/**/
|
/**/
|
@ -4,27 +4,27 @@
|
|||||||
"source": "Free Code Camp",
|
"source": "Free Code Camp",
|
||||||
"link": "http://www.freecodecamp.com/create-and-deploy-a-website",
|
"link": "http://www.freecodecamp.com/create-and-deploy-a-website",
|
||||||
"image": "http://startbootstrap.com/assets/img/templates/landing-page.jpg",
|
"image": "http://startbootstrap.com/assets/img/templates/landing-page.jpg",
|
||||||
"time": 1,
|
|
||||||
"directions": [
|
"directions": [
|
||||||
"In the next 5 minutes, you'll create a website and deploy it to the internet!"
|
"In the next 5 minutes, you'll create a website and deploy it to the internet!"
|
||||||
]
|
],
|
||||||
|
"links": ["http://startbootstrap.com/template-overviews/freelancer/", "http://bitballoon.com", "http://atom.io"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Start Your First Pair Programming Session",
|
"name": "Start Your First Pair Programming Session",
|
||||||
"source": "Free Code Camp",
|
"source": "Free Code Camp",
|
||||||
"link": "http://www.freecodecamp.com/first_pair_programming_session",
|
"link": "http://www.freecodecamp.com/first_pair_programming_session",
|
||||||
"image": "https://screenhero.com/img/anim-collaboration.gif",
|
"image": "https://screenhero.com/img/anim-collaboration.gif",
|
||||||
"time": 1,
|
|
||||||
"directions": [
|
"directions": [
|
||||||
"What's all this Pair Programming stuff about? Let's find out! We'll use a popular pair programming tool called Screen Hero."
|
"What's all this Pair Programming stuff about? Let's find out! We'll use a popular pair programming tool called Screen Hero."
|
||||||
]
|
],
|
||||||
|
"links": ["https://screenhero.com/download.html"]
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Make Your Static Page Dynamic Using POWR.io",
|
"name": "Make Your Static Page Dynamic Using POWR.io",
|
||||||
"source": "Free Code Camp",
|
"source": "Free Code Camp",
|
||||||
"link": "http://www.freecodecamp.com/first_dynamic_website",
|
"link": "http://www.freecodecamp.com/first_dynamic_website",
|
||||||
"image": "https://s3-us-west-1.amazonaws.com/powr/images/powr_showcase_bg_1.jpg",
|
"image": "https://s3-us-west-1.amazonaws.com/powr/images/powr_showcase_bg_1.jpg",
|
||||||
"time": 1,
|
|
||||||
"directions": [
|
"directions": [
|
||||||
"The website you created earlier is cool, but it's not very interactive. Let's "
|
"The website you created earlier is cool, but it's not very interactive. Let's "
|
||||||
]
|
]
|
||||||
@ -34,7 +34,6 @@
|
|||||||
"source": "Free Code Camp",
|
"source": "Free Code Camp",
|
||||||
"link": "http://www.freecodecamp.com/first_codepen",
|
"link": "http://www.freecodecamp.com/first_codepen",
|
||||||
"image": "https://s3-us-west-1.amazonaws.com/powr/images/powr_showcase_bg_1.jpg",
|
"image": "https://s3-us-west-1.amazonaws.com/powr/images/powr_showcase_bg_1.jpg",
|
||||||
"time": 1,
|
|
||||||
"directions": [
|
"directions": [
|
||||||
"Let's put those HTML and CSS skills to work!",
|
"Let's put those HTML and CSS skills to work!",
|
||||||
"You'll create your own databaseless webpage. We'll show you how."
|
"You'll create your own databaseless webpage. We'll show you how."
|
||||||
|
@ -5,8 +5,19 @@
|
|||||||
"image": "https://d13yacurqjgara.cloudfront.net/users/98247/screenshots/1673756/codecademy_design.png",
|
"image": "https://d13yacurqjgara.cloudfront.net/users/98247/screenshots/1673756/codecademy_design.png",
|
||||||
"time": 7,
|
"time": 7,
|
||||||
"directions": [
|
"directions": [
|
||||||
"Let's learn will learn HTML and CSS! Then we'll understand the structure (HTML) and the style (CSS) that underlies all webpages.",
|
"Let's learn HTML and CSS! Then we'll understand the structure (HTML) and the style (CSS) that underlies 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 database-less 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."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Code School's Discover DevTools",
|
||||||
|
"link": "http://discover-devtools.codeschool.com/",
|
||||||
|
"image": "https://d1ffx7ull4987f.cloudfront.net/images/achievements/large_badge/197/completed-discover-devtools-b769c8b681384be3ad04cdf813b4a62c.png",
|
||||||
|
"time": 4,
|
||||||
|
"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 web pages, 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."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -19,17 +30,6 @@
|
|||||||
"Code School's interactive jQuery course will help you understand how to manipulate page elements and capture information that your users give you."
|
"Code School's interactive jQuery course will help you understand how to manipulate page elements and capture information that your users give you."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Code School's Discover DevTools",
|
|
||||||
"link": "http://discover-devtools.codeschool.com/",
|
|
||||||
"image": "https://d1ffx7ull4987f.cloudfront.net/images/achievements/large_badge/197/completed-discover-devtools-b769c8b681384be3ad04cdf813b4a62c.png",
|
|
||||||
"time": 4,
|
|
||||||
"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 a built in DevTools that allow you to debug web pages, 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."
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Codecademy JavaScript Track",
|
"name": "Codecademy JavaScript Track",
|
||||||
"link": "http://www.codecademy.com/tracks/javascript",
|
"link": "http://www.codecademy.com/tracks/javascript",
|
||||||
@ -40,6 +40,17 @@
|
|||||||
"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."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Introduction to Computer Science",
|
||||||
|
"link": "https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.VDWSfSldWpQ",
|
||||||
|
"image": "http://content.sportslogos.net/logos/31/695/full/k7ahkuime41f6elmq8qx.png",
|
||||||
|
"time": 150,
|
||||||
|
"directions": [
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Linux Command Line Tutorial",
|
"name": "Linux Command Line Tutorial",
|
||||||
"link": "https://www.udemy.com/linux-command-line-volume1/",
|
"link": "https://www.udemy.com/linux-command-line-volume1/",
|
||||||
@ -61,17 +72,6 @@
|
|||||||
"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."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Introduction to Computer Science",
|
|
||||||
"link": "https://www.edx.org/course/harvardx/harvardx-cs50x-introduction-computer-1022#.VDWSfSldWpQ",
|
|
||||||
"image": "http://content.sportslogos.net/logos/31/695/full/k7ahkuime41f6elmq8qx.png",
|
|
||||||
"time": 150,
|
|
||||||
"directions": [
|
|
||||||
"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."
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Code School's Real-time web with Node.JS",
|
"name": "Code School's Real-time web with Node.JS",
|
||||||
"link": "https://www.codeschool.com/courses/real-time-web-with-node-js",
|
"link": "https://www.codeschool.com/courses/real-time-web-with-node-js",
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
h1 Challenges:
|
|
||||||
h2= name
|
|
||||||
img= image
|
|
21
views/challenges/partials/challenge.jade
Normal file
21
views/challenges/partials/challenge.jade
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
.panel.panel-info
|
||||||
|
.panel-heading Challenge: #{name}
|
||||||
|
.panel.panel-body
|
||||||
|
img.img-center.img-responsive(src=image)
|
||||||
|
br
|
||||||
|
.visible-xs
|
||||||
|
iframe(src='//player.vimeo.com/video/109134466', width='300', height='187', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
|
||||||
|
.hidden-xs
|
||||||
|
iframe(src='//player.vimeo.com/video/109134466', width='600', height='375', style="display:block;", frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
|
||||||
|
h3 Instructions:
|
||||||
|
for direction in directions
|
||||||
|
p= direction
|
||||||
|
|
||||||
|
h3 Relevant Links (these open up in a new tab):
|
||||||
|
ol
|
||||||
|
for link in links
|
||||||
|
li
|
||||||
|
a(href=link, target="blank")= link
|
||||||
|
br
|
||||||
|
|
||||||
|
a.btn.btn-primary.btn-large.btn-block(href='/curriculum') I've completed this challenge
|
@ -1,3 +0,0 @@
|
|||||||
h1 Course:
|
|
||||||
h2= name
|
|
||||||
img= image
|
|
10
views/courses/partials/course.jade
Normal file
10
views/courses/partials/course.jade
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
.panel.panel-info
|
||||||
|
.panel-heading Course: #{name}
|
||||||
|
.panel.panel-body
|
||||||
|
img.img-center.img-responsive(src=image)
|
||||||
|
h3 Takes about #{time} hours to complete
|
||||||
|
|
||||||
|
for direction in directions
|
||||||
|
p= direction
|
||||||
|
|
||||||
|
a.btn.btn-primary.btn-large.btn-block(href=link, target="blank") Go to course
|
@ -5,19 +5,19 @@ block content
|
|||||||
h1 Welcome to Free Code Camp!
|
h1 Welcome to Free Code Camp!
|
||||||
ol
|
ol
|
||||||
li
|
li
|
||||||
a(href="challenges/create-and-deploy-a-website") Learn how to create a website and deploy it to the internet
|
a(href="/challenges/create-and-deploy-a-website") Learn how to create a website and deploy it to the internet
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges/start-a-pair-programming-session") Learn how to start Pair Programming session
|
a(href="/challenges/start-a-pair-programming-session") Learn how to start Pair Programming session
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges/add-dynamic-content-to-your-website") Learn how to add dynamic content to your website
|
a(href="/challenges/add-dynamic-content-to-your-website") Learn how to add dynamic content to your website
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges/experiment-with-html-and-css-in-codepen") Learn how to experiment with HTML and CSS in Codepen
|
a(href="/challenges/experiment-with-html-and-css-in-codepen") Learn how to experiment with HTML and CSS in Codepen
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges") Start the HTML and CSS challenges!
|
a(href="/challenges") Start the HTML and CSS challenges!
|
||||||
.col-sm-4.col-xs-12
|
.col-sm-4.col-xs-12
|
||||||
include ./../partials/challenges
|
include ./../partials/challenges
|
||||||
.col-sm-4.col-xs-12
|
.col-sm-4.col-xs-12
|
||||||
|
@ -7,7 +7,6 @@ html
|
|||||||
meta(name='description', content='')
|
meta(name='description', content='')
|
||||||
meta(name='csrf-token', content=_csrf)
|
meta(name='csrf-token', content=_csrf)
|
||||||
meta(name='author', content='')
|
meta(name='author', content='')
|
||||||
script(src='https://cdn.socket.io/socket.io-1.0.0.js')
|
|
||||||
title #{title} | Free Code Camp
|
title #{title} | Free Code Camp
|
||||||
!= css('styles')
|
!= css('styles')
|
||||||
body
|
body
|
||||||
|
@ -1,16 +1,24 @@
|
|||||||
h1 Challenges:
|
.panel.panel-primary
|
||||||
|
.panel-heading Challenges
|
||||||
|
.panel-body
|
||||||
|
ol
|
||||||
|
li Web Design:
|
||||||
ol
|
ol
|
||||||
li
|
li
|
||||||
a(href="challenges/create-and-deploy-a-website") Learn how to create a website and deploy it to the internet
|
a(href="/challenges/create-and-deploy-a-website") Learn how to create a website and deploy it to the internet
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges/start-a-pair-programming-session") Learn how to start Pair Programming session
|
a(href="/challenges/start-a-pair-programming-session") Learn how to start Pair Programming session
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges/add-dynamic-content-to-your-website") Learn how to add dynamic content to your website
|
a(href="/challenges/add-dynamic-content-to-your-website") Learn how to add dynamic content to your website
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li
|
||||||
a(href="challenges/experiment-with-html-and-css-in-codepen") Learn how to experiment with HTML and CSS in Codepen
|
a(href="/challenges/experiment-with-html-and-css-in-codepen") Learn how to experiment with HTML and CSS in Codepen
|
||||||
|   (takes 10 minutes)
|
|   (takes 10 minutes)
|
||||||
li
|
li JavaScript and Computer Science:
|
||||||
a(href="challenges") Start the HTML and CSS challenges!
|
ul
|
||||||
|
li Coming soon
|
||||||
|
li Full-stack JavaScript:
|
||||||
|
ul
|
||||||
|
li Coming soon
|
@ -1,30 +1,31 @@
|
|||||||
h1 Free Courses:
|
.panel.panel-primary
|
||||||
|
.panel-heading Free Courses
|
||||||
|
.panel-body
|
||||||
ol
|
ol
|
||||||
li Web Design:
|
li Web Design:
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
a(href="courses/codecademy-html-and-css-track") Codecademy's HTML & CSS Track
|
a(href="/courses/codecademy-html-and-css-track") Codecademy's HTML & CSS Track
|
||||||
li
|
li
|
||||||
a(href="courses/code-school-discover-devtools-course") Code School's Discover DevTools
|
a(href="/courses/code-school-discover-devtools-course") Code School's Discover DevTools
|
||||||
li
|
li
|
||||||
a(href="courses/code-school-try-jquery-course") Code School's Try jQuery course
|
a(href="/courses/code-school-try-jquery-course") Code School's Try jQuery course
|
||||||
li JavaScript and Computer Science:
|
li JavaScript and Computer Science:
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
a(href="courses/codecademy-javascript-track") Codecademy's JavaScript track
|
a(href="/courses/codecademy-javascript-track") Codecademy's JavaScript track
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
a(href="courses/harvard-introduction-to-computer-science-cs50-course") Harvard's Introduction to Computer Science (CS50)
|
a(href="/courses/harvard-introduction-to-computer-science-cs50-course") Harvard's Introduction to Computer Science (CS50)
|
||||||
li
|
li
|
||||||
a(href="courses/linux-command-line-tutorial") Linux Command Line tutorial
|
a(href="/courses/linux-command-line-tutorial") Linux Command Line tutorial
|
||||||
li
|
li
|
||||||
a(href="courses/code-school-try-git-course") Code School's Try Git
|
a(href="/courses/code-school-try-git-course") Code School's Try Git
|
||||||
li Full Stack JavaScript Development:
|
li Full Stack JavaScript Development:
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
a(href="courses/code-school-real-time-with-node-js-course") Code School's Real-time web with Node.JS
|
a(href="/courses/code-school-real-time-with-node-js-course") Code School's Real-time web with Node.JS
|
||||||
li
|
li
|
||||||
a(href="courses/code-school-shaping-up-with-angular-js-course") Code School's Shaping up with Angular.JS
|
a(href="/courses/code-school-shaping-up-with-angular-js-course") Code School's Shaping up with Angular.JS
|
||||||
li
|
li
|
||||||
a(href="courses/m101js-mongodb-for-node-js-developers-course") MongoDB University's MongoDB for Node.js Developers
|
a(href="/courses/m101js-mongodb-for-node-js-developers-course") MongoDB University's MongoDB for Node.js Developers
|
Reference in New Issue
Block a user