tweaked challenges

This commit is contained in:
Michael Q Larson
2014-12-14 09:01:37 -08:00
parent c7a5a51c8d
commit 1d56a2572a
5 changed files with 221 additions and 162 deletions

View File

@ -7,7 +7,7 @@ var _ = require('lodash');
exports.returnChallenge = function(req, res, next) {
var challengeNumber = parseInt(req.params.challengeNumber) || 0;
if (challengeNumber > 41) { challengeNumber = 0; }
if (challengeNumber > 60) { challengeNumber = 0; }
Challenge.findOne({challengeNumber: challengeNumber}, function (err, c) {
if (err) {
console.error('Challenge err: ', err);

View File

@ -66,7 +66,17 @@ var userSchema = new mongoose.Schema({
46: { type: Number, default: 0 },
47: { type: Number, default: 0 },
48: { type: Number, default: 0 },
49: { type: Number, default: 0 }
49: { type: Number, default: 0 },
50: { type: Number, default: 0 },
51: { type: Number, default: 0 },
52: { type: Number, default: 0 },
53: { type: Number, default: 0 },
54: { type: Number, default: 0 },
55: { type: Number, default: 0 },
56: { type: Number, default: 0 },
57: { type: Number, default: 0 },
58: { type: Number, default: 0 },
59: { type: Number, default: 0 }
},
profile: {
name: { type: String, default: '' },

View File

@ -275,7 +275,6 @@ ul {
height: 100%;
}
<<<<<<< HEAD
.signup-btn.btn {
background-color: #ffac33;
background-image: linear-gradient(#ffcc4d, #ffac33);

View File

@ -1,11 +1,11 @@
[
{
"name": "A 3 Minute Introduction to Free Code Camp",
"time": 3,
"name": "Learn how Free Code Camp Works",
"time": 1,
"video": "114447214",
"challengeNumber": 0,
"steps": [
"Watch this 3-minute video, or simply read this summary:",
"Watch this 1-minute video, or simply read this summary:",
"Our goal is to help you become an employable software engineer.",
"We're going to do this by pair programming on projects for nonprofits.",
"Pair programming is where two people code together on the same computer.",
@ -15,7 +15,7 @@
]
},
{
"name": "Join the Free Code Camp Chat Room",
"name": "Join Our Chat Room",
"time": 5,
"video": "114447214",
"challengeNumber": 1,
@ -29,7 +29,7 @@
]
},
{
"name": "Join the Free Code Camp Subreddit",
"name": "Subscribe to Our Subreddit",
"time": 5,
"video": "114447214",
"challengeNumber": 2,
@ -92,7 +92,7 @@
"Go to <a href='https://dash.generalassemb.ly/projects/cotbots-1' target='_blank'>https://dash.generalassemb.ly/projects/cotbots-1</a> and complete the fourth project."]
},
{
"name": "Meet jQuery",
"name": "Get Started with jQuery",
"time": 30,
"video": "114447214",
"challengeNumber": 8,
@ -200,7 +200,7 @@
]
},
{
"name": "Inject Life with CSS Transformations",
"name": "Inject Animation into CSS",
"time": 15,
"video": "114447214",
"challengeNumber": 17,
@ -215,7 +215,7 @@
]
},
{
"name": "Learn Basic Computer Science Concepts from Stanford",
"name": "Learn Basic Computer Science",
"time": 120,
"video": "114447214",
"challengeNumber": 18,
@ -227,7 +227,7 @@
]
},
{
"name": "Learn Loops from Stanford",
"name": "Learn Loops",
"time": 120,
"video": "114447214",
"challengeNumber": 19,
@ -235,28 +235,28 @@
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z100/a7a70ce6e4724c58862ee6007284face/</a> and complete Week 2."]
},
{
"name": "Learn Computer Hardware Concepts from Stanford",
"name": "Learn Computer Hardware",
"time": 120,
"video": "114447214",
"challengeNumber": 20,
"steps": ["Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z143/z101/</a> and complete Week 3."]
},
{
"name": "Learn Computer Networking Concepts from Stanford",
"name": "Learn Computer Networking",
"time": 120,
"video": "114447214",
"challengeNumber": 21,
"steps": ["Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z187/z144/</a> and complete Week 4."]
},
{
"name": "Learn Boolean Logic from Stanford",
"name": "Learn Boolean Logic",
"time": 120,
"video": "114447214",
"challengeNumber": 22,
"steps": ["Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z208/z188/</a> and complete Week 5."]
},
{
"name": "Learn Computer Security Concepts from Stanford",
"name": "Learn Computer Security",
"time": 120,
"video": "114447214",
"challengeNumber": 23,
@ -265,7 +265,7 @@
"Go to <a href='https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/' target='_blank'>https://class.stanford.edu/courses/Engineering/CS101/Summer2014/courseware/z229/z213/</a> and complete Week 6, the final week of the course."]
},
{
"name": "Build a Choose Your Own Adventure Game",
"name": "Build an Adventure Game",
"time": 60,
"video": "114447214",
"challengeNumber": 24,
@ -340,7 +340,7 @@
"Go to <a href='http://www.codecademy.com/courses/objects-ii/0/1' target='_blank'>http://www.codecademy.com/courses/objects-ii/0/1</a> and complete this final section."]
},
{
"name": "Get Help The Hacker Way with RSAP",
"name": "Get Help The Hacker Way",
"time": 30,
"video": "114447214",
"challengeNumber": 32,
@ -366,8 +366,8 @@
]
},
{
"name": "Start Pair Programming on Coderbyte problems",
"time": 30,
"name": "Pair Program on Coderbyte",
"time": 60,
"video": "114447214",
"challengeNumber": 34,
"steps": [
@ -414,7 +414,7 @@
"Go to <a href='https://class.stanford.edu/courses/DB/RDB/SelfPaced/courseware/ch-introduction/seq-vid-introduction/' target='_blank'>https://class.stanford.edu/courses/DB/RDB/SelfPaced/courseware/ch-introduction/seq-vid-introduction/</a> and watch the videos."]
},
{
"name": "Pair program on SQL Movie Rating Queries",
"name": "Pair Program to Query SQL 1",
"time": 90,
"video": "114447214",
"challengeNumber": 36,
@ -426,7 +426,7 @@
]
},
{
"name": "Pair program on SQL Social Network Queries",
"name": "Pair Program to Query SQL 2",
"time": 60,
"video": "114447214",
"challengeNumber": 37,
@ -438,7 +438,7 @@
]
},
{
"name": "Pair program on SQL Movie-Rating Modification",
"name": "Pair Program to Modify SQL 1",
"time": 90,
"video": "114447214",
"challengeNumber": 38,
@ -450,7 +450,7 @@
]
},
{
"name": "Pair program on SQL Social Network Modification",
"name": "Pair Program to Modify SQL 2",
"time": 30,
"video": "114447214",
"challengeNumber": 39,
@ -474,7 +474,7 @@
]
},
{
"name": "Try Git, the popular Source Code Revision Control System",
"name": "Manage Source Code with Git",
"time": 30,
"video": "114447214",
"challengeNumber": 41,
@ -485,7 +485,7 @@
]
},
{
"name": "Get started with Node.JS",
"name": "Get Started with Node.js",
"time": 45,
"video": "114447214",
"challengeNumber": 42,
@ -511,7 +511,7 @@
"steps": ["Go to <a href='http://campus.codeschool.com/courses/real-time-web-with-node-js/level/3/video/1' target='_blank'>http://campus.codeschool.com/courses/real-time-web-with-node-js/level/3/video/1</a> and complete the section."]
},
{
"name": "See how Node.js Modules work",
"name": "Learn how Node.js Modules Work",
"time": 45,
"video": "114447214",
"challengeNumber": 45,
@ -532,7 +532,7 @@
"steps": ["Go to <a href='http://campus.codeschool.com/courses/real-time-web-with-node-js/level/3/video/1' target='_blank'>http://campus.codeschool.com/courses/real-time-web-with-node-js/level/6/video/1</a> and complete the section."]
},
{
"name": "Use Redis to persist data",
"name": "Use Redis to Persist Data",
"time": 45,
"video": "114447214",
"challengeNumber": 48,
@ -556,7 +556,7 @@
"steps": ["Go to <a href='http://campus.codeschool.com/courses/real-time-web-with-node-js/level/2/video/1' target='_blank'>http://campus.codeschool.com/courses/real-time-web-with-node-js/level/2/video/1</a> and complete the section."]
},
{
"name": "Take advantage of Parameters",
"name": "Take Advantage of Parameters",
"time": 45,
"video": "114447214",
"challengeNumber": 51,
@ -587,7 +587,7 @@
]
},
{
"name": " Angular.js",
"name": "Get Started with Angular.js",
"time": 45,
"video": "114447214",
"challengeNumber": 55,

View File

@ -2,135 +2,185 @@
.panel-heading Challenges
.panel-body
ol(start='0')
h4 Web Design
li
a(href="/challenges/0", class="#{ cc[0] > 0 ? 'strikethrough' : '' }") A One-minute Introduction to Free Code Camp
| &nbsp; (1 min)
li
a(href="/challenges/1", class="#{ cc[1] > 0 ? 'strikethrough' : '' }") Enter the Free Code Camp Chat Room
| &nbsp; (10 mins)
li
a(href="/challenges/2", class="#{ cc[2] > 0 ? 'strikethrough' : '' }") Create a Website and Deploy it to the Internet
| &nbsp; (5 mins)
li
a(href="/challenges/3", class="#{ cc[3] > 0 ? 'strikethrough' : '' }") Install Github's Atom Text Editor
| &nbsp; (5 mins)
li
a(href="/challenges/4", class="#{ cc[4] > 0 ? 'strikethrough' : '' }") Modify and Redeploy Your Website
| &nbsp; (5 mins)
li
a(href="/challenges/5", class="#{ cc[5] > 0 ? 'strikethrough' : '' }") Add Dynamic Content to your Website
| &nbsp; (10 mins)
li
a(href="/challenges/6", class="#{ cc[6] > 0 ? 'strikethrough' : '' }") Codecademy's HTML & CSS track
| &nbsp; (7 hrs)
li
a(href="/challenges/7", class="#{ cc[7] > 0 ? 'strikethrough' : '' }") Experiment with HTML and CSS in CodePen
| &nbsp; (10 mins)
li
a(href="/challenges/8", class="#{ cc[8] > 0 ? 'strikethrough' : '' }") Codecademy's jQuery track
| &nbsp; (3 hrs)
li
a(href="/challenges/9", class="#{ cc[9] > 0 ? 'strikethrough' : '' }") Code School's Try jQuery
| &nbsp; (4 hrs)
li
a(href="/challenges/10", class="#{ cc[10] > 0 ? 'strikethrough' : '' }") Code School's Discover DevTools
| &nbsp; (2 hrs)
li
a(href="/challenges/11", class="#{ cc[11] > 0 ? 'strikethrough' : '' }") jQuery Exercises
| &nbsp; (1 hr)
li
a(href="/challenges/12", class="#{ cc[12] > 0 ? 'strikethrough' : '' }") Customize Bootstrap with Bootswatch
| &nbsp; (10 mins)
li
a(href="/challenges/13", class="#{ cc[13] > 0 ? 'strikethrough' : '' }") Inject Life with CSS Transformations
| &nbsp; (15 mins)
h4 Computer Science and JavaScript
li
a(href="/challenges/14", class="#{ cc[14] > 0 ? 'strikethrough' : '' }") Codecademy's JavaScript track
| &nbsp; (10 hrs)
li
a(href="/challenges/15", class="#{ cc[15] > 0 ? 'strikethrough' : '' }") Stanford's Introduction to Computer Science
| &nbsp; (24 hrs)
li
a(href="/challenges/16", class="#{ cc[16] > 0 ? 'strikethrough' : '' }") Get Help The Hacker Way with RSAP
| &nbsp; (30 mins)
li
a(href="/challenges/17", class="#{ cc[17] > 0 ? 'strikethrough' : '' }") Learn Regular Expressions
| &nbsp; (1 hr)
li
a(href="/challenges/18", class="#{ cc[18] > 0 ? 'strikethrough' : '' }") Start Your First Pair Programming Session
| &nbsp; (30 mins | Pair)
li
a(href="/challenges/19", class="#{ cc[19] > 0 ? 'strikethrough' : '' }") Easy Algorithm Scripting Challenges on Coderbyte
| &nbsp; (15 hrs | Pair)
li
a(href="/challenges/20", class="#{ cc[20] > 0 ? 'strikethrough' : '' }") Stanford's Relational Databases Mini-course
| &nbsp; (1 hr)
li
a(href="/challenges/21", class="#{ cc[21] > 0 ? 'strikethrough' : '' }") Stanford's SQL Mini-course
| &nbsp; (4 hrs | Pair)
li
a(href="/challenges/22", class="#{ cc[22] > 0 ? 'strikethrough' : '' }") Stanford's JSON Mini-course
| &nbsp; (1 hrs | Pair)
li
a(href="/challenges/23", class="#{ cc[23] > 0 ? 'strikethrough' : '' }") Medium Algorithm Scripting Challenges on Coderbyte
| &nbsp; (15 hrs | Pair)
li
a.disabled(href="/challenges/24", class="#{ cc[24] > 0 ? 'strikethrough' : '' }") Build an Interview Question Machine
| &nbsp; (5 hrs | Pair)
li
a.disabled(href="/challenges/25", class="#{ cc[25] > 0 ? 'strikethrough' : '' }") Build a Text-based Adventure
| &nbsp; (5 hrs | Pair)
li
a.disabled(href="/challenges/26", class="#{ cc[26] > 0 ? 'strikethrough' : '' }") Hard Algorithm Scripting Challenges on Coderbyte
| &nbsp; (15 hrs | Pair)
h4 Full Stack JavaScript Development
li
a.disabled(href="/challenges/27", class="#{ cc[27] > 0 ? 'strikethrough' : '' }") Code School's Try Git
| &nbsp; (30 mins)
li
a.disabled(href="/challenges/28", class="#{ cc[28] > 0 ? 'strikethrough' : '' }") Install Node.js
| &nbsp; (1 hr)
li
a.disabled(href="/challenges/29", class="#{ cc[29] > 0 ? 'strikethrough' : '' }") Clone a Github Repo
| &nbsp; (15 mins)
li
a.disabled(href="/challenges/30", class="#{ cc[30] > 0 ? 'strikethrough' : '' }") Deploy an app to Heroku
| &nbsp; (15 mins)
li
a.disabled(href="/challenges/31", class="#{ cc[31] > 0 ? 'strikethrough' : '' }") Code School's Real-time web with Node.JS
| &nbsp; (5 hrs)
li
a.disabled(href="/challenges/32", class="#{ cc[32] > 0 ? 'strikethrough' : '' }") Try MongoDB
| &nbsp; (30 mins)
li
a.disabled(href="/challenges/33", class="#{ cc[33] > 0 ? 'strikethrough' : '' }") Explore your Network with the LinkedIn API
| &nbsp; (1 hr)
li
a.disabled(href="/challenges/34", class="#{ cc[34] > 0 ? 'strikethrough' : '' }") Build your first API
| &nbsp; (10 hrs | Pair)
li
a.disabled(href="/challenges/35", class="#{ cc[35] > 0 ? 'strikethrough' : '' }") Aggregate Data with Chron Jobs and Screen Scraping
| &nbsp; (10 hrs | Pair)
li
a.disabled(href="/challenges/36", class="#{ cc[36] > 0 ? 'strikethrough' : '' }") Code School's Shaping up with Angular.JS
| &nbsp; (5 hrs)
li
a.disabled(href="/challenges/37", class="#{ cc[37] > 0 ? 'strikethrough' : '' }") Reverse Engineer SnapChat
| &nbsp; (50 hrs | Pair)
li
a.disabled(href="/challenges/38", class="#{ cc[38] > 0 ? 'strikethrough' : '' }") Reverse Engineer Reddit
| &nbsp; (50 hrs | Pair)
li
a.disabled(href="/challenges/39", class="#{ cc[39] > 0 ? 'strikethrough' : '' }") Reverse Engineer Pintrest
| &nbsp; (50 hrs | Pair)
li
a.disabled(href="/challenges/40", class="#{ cc[40] > 0 ? 'strikethrough' : '' }") Help a Nonprofit: Team Project
| &nbsp; (150 hrs | Pair)
li
a.disabled(href="/challenges/41", class="#{ cc[41] > 0 ? 'strikethrough' : '' }") Help a Nonprofit: Solo Project
| &nbsp; (150 hrs | Pair)
li
a.disabled(href="/challenges/42", class="#{ cc[42] > 0 ? 'strikethrough' : '' }") Crack the Coding Interview
| &nbsp; (5 hrs)
li
a(href="/challenges/0", class="#{ cc[0] > 0 ? 'strikethrough' : '' }") Learn how Free Code Camp Works
| &nbsp; (1 minute)
li
a(href="/challenges/1", class="#{ cc[1] > 0 ? 'strikethrough' : '' }") Join Our Chat Room
| &nbsp; (5 minutes)
li
a(href="/challenges/2", class="#{ cc[2] > 0 ? 'strikethrough' : '' }") Subscribe to Our Subreddit
| &nbsp; (5 minutes)
li
a(href="/challenges/3", class="#{ cc[3] > 0 ? 'strikethrough' : '' }") Build a Personal Website
| &nbsp; (60 minutes)
li
a(href="/challenges/4", class="#{ cc[4] > 0 ? 'strikethrough' : '' }") Build a Responsive Blog Theme
| &nbsp; (60 minutes)
li
a(href="/challenges/5", class="#{ cc[5] > 0 ? 'strikethrough' : '' }") Build a Small Business Website
| &nbsp; (60 minutes)
li
a(href="/challenges/6", class="#{ cc[6] > 0 ? 'strikethrough' : '' }") Tweak HTML and CSS in CodePen
| &nbsp; (10 minutes)
li
a(href="/challenges/7", class="#{ cc[7] > 0 ? 'strikethrough' : '' }") Build a CSS Robot
| &nbsp; (60 minutes)
li
a(href="/challenges/8", class="#{ cc[8] > 0 ? 'strikethrough' : '' }") Get Started with jQuery
| &nbsp; (30 minutes)
li
a(href="/challenges/9", class="#{ cc[9] > 0 ? 'strikethrough' : '' }") Traverse the DOM
| &nbsp; (30 minutes)
li
a(href="/challenges/10", class="#{ cc[10] > 0 ? 'strikethrough' : '' }") Work with the DOM
| &nbsp; (30 minutes)
li
a(href="/challenges/11", class="#{ cc[11] > 0 ? 'strikethrough' : '' }") Listen for DOM Elements
| &nbsp; (30 minutes)
li
a(href="/challenges/12", class="#{ cc[12] > 0 ? 'strikethrough' : '' }") Use jQuery for Styling
| &nbsp; (30 minutes)
li
a(href="/challenges/13", class="#{ cc[13] > 0 ? 'strikethrough' : '' }") Build a MadLibs Game
| &nbsp; (60 minutes)
li
a(href="/challenges/14", class="#{ cc[14] > 0 ? 'strikethrough' : '' }") Discover Chrome's DevTools
| &nbsp; (90 minutes)
li
a(href="/challenges/15", class="#{ cc[15] > 0 ? 'strikethrough' : '' }") Tackle jQuery Exercises
| &nbsp; (60 minutes)
li
a(href="/challenges/16", class="#{ cc[16] > 0 ? 'strikethrough' : '' }") Customize Bootstrap
| &nbsp; (10 minutes)
li
a(href="/challenges/17", class="#{ cc[17] > 0 ? 'strikethrough' : '' }") Inject Animation into CSS
| &nbsp; (15 minutes)
li
a(href="/challenges/18", class="#{ cc[18] > 0 ? 'strikethrough' : '' }") Learn Basic Computer Science
| &nbsp; (120 minutes)
li
a(href="/challenges/19", class="#{ cc[19] > 0 ? 'strikethrough' : '' }") Learn Loops
| &nbsp; (120 minutes)
li
a(href="/challenges/20", class="#{ cc[20] > 0 ? 'strikethrough' : '' }") Learn Computer Hardware
| &nbsp; (120 minutes)
li
a(href="/challenges/21", class="#{ cc[21] > 0 ? 'strikethrough' : '' }") Learn Computer Networking
| &nbsp; (120 minutes)
li
a(href="/challenges/22", class="#{ cc[22] > 0 ? 'strikethrough' : '' }") Learn Boolean Logic
| &nbsp; (120 minutes)
li
a(href="/challenges/23", class="#{ cc[23] > 0 ? 'strikethrough' : '' }") Learn Computer Security
| &nbsp; (120 minutes)
li
a(href="/challenges/24", class="#{ cc[24] > 0 ? 'strikethrough' : '' }") Build an Adventure Game
| &nbsp; (60 minutes)
li
a(href="/challenges/25", class="#{ cc[25] > 0 ? 'strikethrough' : '' }") Build Rock Paper Scissors
| &nbsp; (60 minutes)
li
a(href="/challenges/26", class="#{ cc[26] > 0 ? 'strikethrough' : '' }") Learn For and While Loops
| &nbsp; (60 minutes)
li
a(href="/challenges/27", class="#{ cc[27] > 0 ? 'strikethrough' : '' }") Learn If and Then Statements
| &nbsp; (60 minutes)
li
a(href="/challenges/28", class="#{ cc[28] > 0 ? 'strikethrough' : '' }") Learn Control Flow
| &nbsp; (60 minutes)
li
a(href="/challenges/29", class="#{ cc[29] > 0 ? 'strikethrough' : '' }") Build a Contact List
| &nbsp; (60 minutes)
li
a(href="/challenges/30", class="#{ cc[30] > 0 ? 'strikethrough' : '' }") Build an Address Book
| &nbsp; (60 minutes)
li
a(href="/challenges/31", class="#{ cc[31] > 0 ? 'strikethrough' : '' }") Build a Cash Register
| &nbsp; (60 minutes)
li
a(href="/challenges/32", class="#{ cc[32] > 0 ? 'strikethrough' : '' }") Get Help the Hacker Way
| &nbsp; (30 minutes)
li
a(href="/challenges/33", class="#{ cc[33] > 0 ? 'strikethrough' : '' }") Learn Regular Expressions
| &nbsp; (60 minutes)
li
a(href="/challenges/34", class="#{ cc[34] > 0 ? 'strikethrough' : '' }") Start Pair Program on Coderbyte
| &nbsp; (60 minutes)
li
a(href="/challenges/35", class="#{ cc[35] > 0 ? 'strikethrough' : '' }") Learn Relational Databases
| &nbsp; (30 minutes)
li
a(href="/challenges/36", class="#{ cc[36] > 0 ? 'strikethrough' : '' }") Pair Program to Query SQL 1
| &nbsp; (90 minutes)
li
a(href="/challenges/37", class="#{ cc[37] > 0 ? 'strikethrough' : '' }") Pair Program to Query SQL 2
| &nbsp; (60 minutes)
li
a(href="/challenges/38", class="#{ cc[38] > 0 ? 'strikethrough' : '' }") Pair Program to modify SQL 1
| &nbsp; (90 minutes)
li
a(href="/challenges/39", class="#{ cc[39] > 0 ? 'strikethrough' : '' }") Pair Program to modify SQL 2
| &nbsp; (60 minutes)
li
a(href="/challenges/40", class="#{ cc[40] > 0 ? 'strikethrough' : '' }") Learn JSON
| &nbsp; (60 minutes)
li
a(href="/challenges/41", class="#{ cc[41] > 0 ? 'strikethrough' : '' }") Manage Source Code with Git
| &nbsp; (60 minutes)
li
a(href="/challenges/42", class="#{ cc[42] > 0 ? 'strikethrough' : '' }") Get Started with Node.js
| &nbsp; (45 minutes)
li
a(href="/challenges/43", class="#{ cc[43] > 0 ? 'strikethrough' : '' }") Try Node.js Events
| &nbsp; (45 minutes)
li
a(href="/challenges/44", class="#{ cc[44] > 0 ? 'strikethrough' : '' }") Try Node.js Streams
| &nbsp; (45 minutes)
li
a(href="/challenges/45", class="#{ cc[45] > 0 ? 'strikethrough' : '' }") Learn how Node.js Modules Work
| &nbsp; (45 minutes)
li
a(href="/challenges/46", class="#{ cc[46] > 0 ? 'strikethrough' : '' }") Start an Express.js Server
| &nbsp; (45 minutes)
li
a(href="/challenges/47", class="#{ cc[47] > 0 ? 'strikethrough' : '' }") Use Socket.io
| &nbsp; (45 minutes)
li
a(href="/challenges/48", class="#{ cc[48] > 0 ? 'strikethrough' : '' }") Use Redis to Persist Data
| &nbsp; (45 minutes)
li
a(href="/challenges/49", class="#{ cc[49] > 0 ? 'strikethrough' : '' }") Dive Deeper into Express.js
| &nbsp; (45 minutes)
li
a(href="/challenges/50", class="#{ cc[50] > 0 ? 'strikethrough' : '' }") Set up Express.js Middleware
| &nbsp; (45 minutes)
li
a(href="/challenges/51", class="#{ cc[51] > 0 ? 'strikethrough' : '' }") Take Advantage of Parameters
| &nbsp; (45 minutes)
li
a(href="/challenges/52", class="#{ cc[52] > 0 ? 'strikethrough' : '' }") Add the Body Parser
| &nbsp; (45 minutes)
li
a(href="/challenges/53", class="#{ cc[53] > 0 ? 'strikethrough' : '' }") Configure Routes in Express.js
| &nbsp; (45 minutes)
li
a(href="/challenges/54", class="#{ cc[54] > 0 ? 'strikethrough' : '' }") Try MongoDB
| &nbsp; (30 minutes)
li
a(href="/challenges/55", class="#{ cc[55] > 0 ? 'strikethrough' : '' }") Get Started with Angular.js
| &nbsp; (45 minutes)
li
a(href="/challenges/56", class="#{ cc[56] > 0 ? 'strikethrough' : '' }") Apply Angular.js Directives
| &nbsp; (45 minutes)
li
a(href="/challenges/57", class="#{ cc[57] > 0 ? 'strikethrough' : '' }") Power Forms with Angular.js
| &nbsp; (45 minutes)
li
a(href="/challenges/58", class="#{ cc[58] > 0 ? 'strikethrough' : '' }") Customize Angular.js Directives
| &nbsp; (45 minutes)
li
a(href="/challenges/59", class="#{ cc[59] > 0 ? 'strikethrough' : '' }") Create Angular.js Services
| &nbsp; (45 minutes)
a.btn.btn-primary.disabled(href="/done-with-first-100-hours") I've finished all Free Code Camp challenges and all 90 CoderByte Challenges