diff --git a/controllers/resources.js b/controllers/resources.js
index 09ff65e659..8d829365e6 100644
--- a/controllers/resources.js
+++ b/controllers/resources.js
@@ -30,31 +30,20 @@ module.exports = {
var date2 = new Date();
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
- var nonprofitProjects = client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(data, response){return data.length;});
- User.count({}, function(err, users) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 2}}, function(err, c2) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 4}}, function(err, c4) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 9}}, function(err, c9) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 19}}, function(err, c19) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 29}}, function(err, c29) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 39}}, function(err, c39) { if (err) { debug('User err: ', err); next(err); }
- User.count({'points': {'$gt': 53}}, function(err, all) { if (err) { debug('User err: ', err); next(err); }
- res.render('resources/stats', {
- title: 'Free Code Camp Stats:',
- daysRunning: daysRunning,
- users: users,
- nonprofitProjects: nonprofitProjects, /* can't yet get this to work. Async issue?
- Hardcoded value for now and created a Trello card */
- c2: c2,
- c4: c4,
- c9: c9,
- c19: c19,
- c29: c29,
- c39: c39,
- all: all
- });
- });
- });
+ client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(trello, response) {
+ var nonprofitProjects = (trello && trello.length) || 15;
+ User.count({'points': {'$gt': 2}}, function(err, c3) { if (err) { debug('User err: ', err); next(err); }
+ User.count({'points': {'$gt': 9}}, function(err, c10) { if (err) { debug('User err: ', err); next(err); }
+ User.count({'points': {'$gt': 29}}, function(err, c30) { if (err) { debug('User err: ', err); next(err); }
+ User.count({'points': {'$gt': 53}}, function(err, all) { if (err) { debug('User err: ', err); next(err); }
+ res.render('resources/stats', {
+ title: 'Free Code Camp Stats:',
+ daysRunning: daysRunning,
+ nonprofitProjects: nonprofitProjects,
+ c3: c3,
+ c10: c10,
+ c30: c30,
+ all: all
});
});
});
@@ -131,8 +120,29 @@ module.exports = {
},
about: function(req, res) {
- res.render('resources/about', {
- title: 'About Free Code Camp and Our Team of Volunteers'
+ var date1 = new Date("10/15/2014");
+ var date2 = new Date();
+ var timeDiff = Math.abs(date2.getTime() - date1.getTime());
+ var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
+ client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(trello, response) {
+ var nonprofitProjects = trello.length || 15;
+ User.count({'points': {'$gt': 2}}, function(err, c3) { if (err) { debug('User err: ', err); next(err); }
+ User.count({'points': {'$gt': 9}}, function(err, c10) { if (err) { debug('User err: ', err); next(err); }
+ User.count({'points': {'$gt': 29}}, function(err, c30) { if (err) { debug('User err: ', err); next(err); }
+ User.count({'points': {'$gt': 53}}, function(err, all) { if (err) { debug('User err: ', err); next(err); }
+ res.render('resources/about', {
+ title: 'About Free Code Camp and Our Team of Volunteers',
+ daysRunning: daysRunning,
+ nonprofitProjects: nonprofitProjects,
+ c3: c3,
+ c10: c10,
+ c30: c30,
+ all: all
+ });
+ });
+ });
+ });
+ });
});
},
diff --git a/seed_data/challenges.json b/seed_data/challenges.json
index 9440ef63c2..999acfd08f 100644
--- a/seed_data/challenges.json
+++ b/seed_data/challenges.json
@@ -9,7 +9,7 @@
"Welcome to Free Code Camp. We're a community of busy people learning to code.",
"We built this community because learning to code is hard. But anyone who can stay motivated can learn to code. And the best way to stay motivated is to code with friends.",
"To maximize accessibility, all our challenges are self-paced, browser-based, and free.",
- "All of us start with the same 100 hours of interactive coding challenges. These cover everything from Computer Science to SQL. They also cover in-demand JavaScript tools like jQuery, Node.js and MongoDB.",
+ "All of us start with the same 100 hours of interactive coding challenges. These cover Computer Science and databases. They also cover in-demand JavaScript tools like jQuery, Node.js and MongoDB.",
"Once we have a basic understanding of web development, we'll spend another 900 hours putting that theory into practice. We'll build full stack solutions for nonprofits.",
"By the end of this process, we'll be good at coding. We'll have a portfolio of apps with happy users to prove it. We'll also have an alumni network of fellow coders and nonprofits ready to serve as references.",
"If you make it through Free Code Camp, you will be able to get a coding job. There are far more job openings out there than there are qualified coders to fill them.",
@@ -58,7 +58,7 @@
"video": "114627406",
"challengeNumber": 3,
"steps": [
- "There are tons of interactive HTML and CSS tutorials out there, but Nathan Bashaw's Dash tutorials, which he built for General Assembly, are our favorite.",
+ "There are tons of interactive HTML and CSS tutorials out there, but Nathan Bashaw and Christine Bower's Dash tutorials - which they built for General Assembly - are our favorite.",
"Go to https://dash.generalassemb.ly/projects/annas-website-1 and get started with your first project."]
},
{
@@ -456,7 +456,7 @@
"video": "114686471",
"challengeNumber": 36,
"steps": [
- "Now that we understand some Computer Science, JavaScript programming, and how Databases work, you're ready to move on to Full-stack JavaScript!",
+ "Now that we understand some Computer Science and JavaScript programming, you're ready to move on to Full-stack JavaScript!",
"The first step is to familiarize ourselves Node.js, the JavaScript-based web server that most full-stack JavaScript apps use.",
"Code School has an excellent course on Node.js. Note that this course requires a Code School subscription, but that you can get a free two-day membership to Code School by going to https://www.codeschool.com/hall_passes/213f3fedb6b9/claim_shared. The challenges immediately following these Node.js challenges also require a Code School course, so you may want to try to complete all these challenges in one two-day period. Alternatively, you could subscribe to Code School for one month, then take your time in completing these challenges.",
"When you're ready, go to http://campus.codeschool.com/courses/real-time-web-with-node-js/level/1/video/1 and complete the first chapter."
diff --git a/views/home.jade b/views/home.jade
index 23417eae5f..d4003bba25 100644
--- a/views/home.jade
+++ b/views/home.jade
@@ -37,5 +37,5 @@ block content
br
a.btn.nonprofit-cta.btn-success(href="/nonprofits") I'm with a nonprofit and want help coding something
- include partials/about-us
+ include partials/about
include partials/faq
\ No newline at end of file
diff --git a/views/partials/about-us.jade b/views/partials/about.jade
similarity index 78%
rename from views/partials/about-us.jade
rename to views/partials/about.jade
index 0bab283afe..ea78d6efa1 100644
--- a/views/partials/about-us.jade
+++ b/views/partials/about.jade
@@ -6,7 +6,41 @@
.masonry-row
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
+ p
+ | Getting back on track with
+ a(href='https://twitter.com/FreeCodeCamp') @freecodecamp
+ | and committing to a new career in 2015!
+ | — Jen (@jenbestyoga)
+ a(href='https://twitter.com/jenbestyoga/status/552261958221963264') January 6, 2015
+ script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
+ .masonry-block
+ .masonry-relative
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
+ p
+ a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
+ | I can't get enough of the free tutorials you're offering. Thanks for being awesome! Will be referring friends your way!
+ | — Chris Pearson (@CPearsonnn)
+ a(href='https://twitter.com/CPearsonnn/status/551513789401559042') January 3, 2015
+ script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
+ .masonry-block
+ .masonry-relative
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
+ p
+ | Great way to start learning code, it's the future.
+ a(href='http://t.co/pNwDAQ9xFe') http://t.co/pNwDAQ9xFe
+ a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
+ a(href='https://twitter.com/hashtag/Code?src=hash') #Code
+ a(href='https://twitter.com/hashtag/html?src=hash') #html
+ a(href='https://twitter.com/hashtag/css?src=hash') #css
+ a(href='https://twitter.com/hashtag/jquery?src=hash') #jquery
+ a(href='https://twitter.com/hashtag/javascript?src=hash') #javascript
+ | — Adam (@savageEWOK87)
+ a(href='https://twitter.com/savageEWOK87/status/549277640612278273') December 28, 2014
+ script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
+ .masonry-block
+ .masonry-relative
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| My boss was impressed by the troubleshooting I learned through
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
@@ -17,7 +51,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
a(href='https://twitter.com/DrivenByTatiana') @DrivenByTatiana
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
@@ -27,7 +61,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| Discovered
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
@@ -39,7 +73,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| For my friends who are learning to code,
a(href='https://twitter.com/ossia') @ossia
@@ -53,7 +87,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
| is such a fantastic program! I love the idea of it. Perfect for someone like me
@@ -62,7 +96,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| Just built my companies website
a(href='http://t.co/AUkS27oTm5') http://t.co/AUkS27oTm5
@@ -73,7 +107,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
| I'll make time to be part of this!!!!
@@ -82,7 +116,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
| Great idea. Great vision.
@@ -91,7 +125,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| Learn code for free! Your time, your pace! Sweet!
a(href='http://t.co/y6IMdPDPnH') http://t.co/y6IMdPDPnH
@@ -104,7 +138,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
| is my new favorite online learning tool right now.
@@ -117,7 +151,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| Started
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
@@ -131,7 +165,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| I don't consider myself a teacher, but getting involved & collaborating through
a(href='https://twitter.com/FreeCodeCamp') @FreeCodeCamp
@@ -141,7 +175,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| A6 -
a(href='http://t.co/M6Gyw8jszd') http://t.co/M6Gyw8jszd
@@ -153,7 +187,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.masonry-block
.masonry-relative
- blockquote.twitter-tweet(lang='en')
+ blockquote.twitter-tweet(lang='en', data-cards="hidden")
p
| I agree,
a(href='https://twitter.com/LeifPixel') @LeifPixel
@@ -168,7 +202,7 @@
script(async='', src='//platform.twitter.com/widgets.js', charset='utf-8')
.panel.panel-primary
- .panel-heading.landing-panel-heading.text-center Our Team of Volunteers
+ .panel-heading.landing-panel-heading.text-center Our Team of Volunteer Camp Counselors
.panel-body
.landing-panel-body.text-center
.col-xs-12
@@ -181,12 +215,24 @@
}
});
#shuffle
+ .col-xs-12.col-sm-4.col-md-3.team-member
+ h3.negative-10.text-nowrap Ammar Shah
+ h4.negative-10.text-nowrap Community Builder
+ img.profile-image(src='https://s3.amazonaws.com/freecodecamp/ammar-shah.jpg' alt="Ammar Shah's picture")
+ h4.text-nowrap Karachi, Pakistan
+ p.negative-10 "I code whenever I'm not sleeping or in school. Making computers obey me is a dream come true."
+ .col-xs-12.col-sm-4.col-md-3.team-member
+ h3.negative-10.text-nowrap Branden Byers
+ h4.negative-10.text-nowrap Community Builder
+ img.profile-image(src='https://s3.amazonaws.com/freecodecamp/branden-byers.jpg' alt="Branden Byers picture")
+ h4.text-nowrap Madison, Wisconsin
+ p.negative-10 "I'm a massage therapist and Stay-at-home-dad. I learned Hypercard, then Rails, but now I feel at home with JavaScript."
.col-xs-12.col-sm-4.col-md-3.team-member
h3.negative-10.text-nowrap Michael Johnson
h4.negative-10.text-nowrap Nonprofit Coordinator
img.profile-image(src='https://s3.amazonaws.com/freecodecamp/michael-johnson.jpeg' alt="Michael Johnson's picture")
h4.text-nowrap Washington, D.C.
- p.negative-10 "I'm a recent Harvard graduate who took a pass on Wall Street to code for a cause. Coding is the 21st century literacy."
+ p.negative-10 "I’m a recent Harvard University graduate who took a pass on Wall Street to code for a cause, and help others do the same."
.col-xs-12.col-sm-4.col-md-3.team-member
h3.negative-10.text-nowrap Berkeley Martinez
h4.negative-10.text-nowrap JavaScript Engineer
diff --git a/views/partials/stats.jade b/views/partials/stats.jade
new file mode 100644
index 0000000000..3a6d4585ac
--- /dev/null
+++ b/views/partials/stats.jade
@@ -0,0 +1,44 @@
+.panel.panel-primary
+ .panel-heading.landing-panel-heading.text-center Free Code Camp Stats
+ .panel-body
+ .landing-panel-body.text-center
+ .row
+ .col-xs-6.text-right
+ h2 Days since we Launched:
+ .col-xs-6.text-left
+ h2
+ = daysRunning
+ .row
+ .col-xs-6.text-right
+ h2 Nonprofit Projects:
+ .col-xs-6.text-left
+ h2
+ a(href="https://trello.com/b/BA3xVpz9/nonprofit-projects")=nonprofitProjects
+ .row
+ .col-xs-6.text-right
+ h2 Code Campers with at least...
+ .col-xs-6
+ .row
+ .col-xs-6.text-right
+ h2 3 Points:
+ .col-xs-6.text-left
+ h2
+ = c3
+ .row
+ .col-xs-6.text-right
+ h2 10 Points:
+ .col-xs-6.text-left
+ h2
+ = c10
+ .row
+ .col-xs-6.text-right
+ h2 30 Points:
+ .col-xs-6.text-left
+ h2
+ = c30
+ .row
+ .col-xs-6.text-right
+ h2 All 54 Points:
+ .col-xs-6.text-left
+ h2
+ = all
\ No newline at end of file
diff --git a/views/resources/about.jade b/views/resources/about.jade
index 3abae51944..4fdf1ccfc9 100644
--- a/views/resources/about.jade
+++ b/views/resources/about.jade
@@ -1,4 +1,5 @@
extends ../layout
block content
- include ../partials/about-us
+ include ../partials/stats
+ include ../partials/about
include ../partials/faq
\ No newline at end of file
diff --git a/views/resources/jquery-exercises.jade b/views/resources/jquery-exercises.jade
index 6f9580f2dd..a313019dec 100644
--- a/views/resources/jquery-exercises.jade
+++ b/views/resources/jquery-exercises.jade
@@ -22,8 +22,8 @@ block content
0: "$('#next-exercise').attr('disabled', false);",
1: "$('.target').appendTo('#location2');",
2: "$('.target').css('background', 'red');",
- 3: "$('.target:even').css('background', 'red');",
- 4: "$('.target:nth-child(4)').css('background', 'red');",
+ 3: "$('.target:even').css({'background': 'red'});",
+ 4: "$('.target:nth-child(4)').css({'background': 'red'});",
5: "$('.target:nth-child(2)').clone().appendTo($('#location2'));",
6: "$('.target:nth-child(3)').remove();",
7: "$('#location1 input').attr('checked', 'true')",
diff --git a/views/resources/live-pair-programming.jade b/views/resources/live-pair-programming.jade
index e3f2753a8b..f29f00e572 100644
--- a/views/resources/live-pair-programming.jade
+++ b/views/resources/live-pair-programming.jade
@@ -3,9 +3,9 @@ block content
.jumbotron.text-center
h1.hug-top Live Pair Programming
h2 We live pair program every Tuesday from 6 p.m. to 7 p.m. (Pacific Time).
- h2 Our next session is January 6th, 2015.
- a.btn.btn-big.btn-primary.big-break(href="http://www.crowdcast.io/e/freecodecamp-live-pair-programming-3" target='_blank') Watch us Pair Program on JavaScript Algorithms
- h2 Previous Live Pair Programming Sessions
+ h2 Our next session will be January 13th, 2015 at 6 p.m. PST!
+ //a.btn.btn-big.btn-primary.big-break(href="http://www.crowdcast.io/e/quincylarson11" target='_blank') Watch us Pair Program on JavaScript Algorithms
+ h3 Previous Live Pair Programming Sessions:
.embed-responsive.embed-responsive-16by9.big-break
iframe.embed-responsive-item(src='//www.youtube.com/embed/cBtysq16kqo')
.embed-responsive.embed-responsive-16by9.big-break
diff --git a/views/resources/stats.jade b/views/resources/stats.jade
index 72a63b61ae..71659d344a 100644
--- a/views/resources/stats.jade
+++ b/views/resources/stats.jade
@@ -1,68 +1,3 @@
extends ../layout
block content
- .jumbotron.text-center
- h1.hug-top Free Code Camp Stats
- .row
- .col-xs-6.text-right
- h2 Days since we Launched:
- .col-xs-6.text-left
- h2
- = daysRunning
- .row
- .col-xs-6.text-right
- h2 Nonprofit Projects:
- .col-xs-6.text-left
- h2
- a(href="https://trello.com/b/BA3xVpz9/nonprofit-projects") 14
- .row
- .col-xs-6.text-right
- h2 Total Code Campers:
- .col-xs-6.text-left
- h2
- = users
- .row
- .col-xs-6.text-right
- h2 Code Campers with at least...
- .col-xs-6
- .row
- .col-xs-6.text-right
- h2 2 Points:
- .col-xs-6.text-left
- h2
- = c2
- .row
- .col-xs-6.text-right
- h2 4 Points:
- .col-xs-6.text-left
- h2
- = c4
- .row
- .col-xs-6.text-right
- h2 9 Points:
- .col-xs-6.text-left
- h2
- = c9
- .row
- .col-xs-6.text-right
- h2 19 Points:
- .col-xs-6.text-left
- h2
- = c19
- .row
- .col-xs-6.text-right
- h2 29 Points:
- .col-xs-6.text-left
- h2
- = c29
- .row
- .col-xs-6.text-right
- h2 39 Points:
- .col-xs-6.text-left
- h2
- = c39
- .row
- .col-xs-6.text-right
- h2 All 54 Points:
- .col-xs-6.text-left
- h2
- = all
\ No newline at end of file
+ include ../partials/stats
\ No newline at end of file