diff --git a/controllers/resources.js b/controllers/resources.js index 09ff65e659..6f0c402517 100644 --- a/controllers/resources.js +++ b/controllers/resources.js @@ -30,28 +30,29 @@ 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({}, 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, + c2: c2, + c4: c4, + c9: c9, + c19: c19, + c29: c29, + c39: c39, + all: all + }); }); }); }); @@ -131,8 +132,41 @@ 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({}, 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/about', { + title: 'About Free Code Camp and Our Team of Volunteers', + daysRunning: daysRunning, + users: users, + nonprofitProjects: nonprofitProjects, + c2: c2, + c4: c4, + c9: c9, + c19: c19, + c29: c29, + c39: c39, + all: all + }); + }); + }); + }); + }); + }); + }); + }); + }); }); }, 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..20a3cef44f 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 @@ -181,6 +215,18 @@ } }); #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 diff --git a/views/partials/stats.jade b/views/partials/stats.jade new file mode 100644 index 0000000000..5500b0bae9 --- /dev/null +++ b/views/partials/stats.jade @@ -0,0 +1,68 @@ +.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 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 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/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