refactor views to remove hardcoded challenge data
parent
3eb09ab637
commit
ca6652a791
|
@ -6,6 +6,7 @@ var passport = require('passport');
|
|||
var User = require('../models/User');
|
||||
var secrets = require('../config/secrets');
|
||||
var moment = require('moment');
|
||||
var Challenge = require('./../models/Challenge');
|
||||
|
||||
/**
|
||||
* GET /login
|
||||
|
@ -130,11 +131,18 @@ exports.postEmailSignup = function(req, res, next) {
|
|||
*/
|
||||
|
||||
exports.getAccount = function(req, res) {
|
||||
Challenge.find({}, function (err, c) {
|
||||
if (err) {
|
||||
console.error('Challenge err: ', err);
|
||||
next(err);
|
||||
}
|
||||
res.render('account/profile', {
|
||||
title: 'Manage your Free Code Camp Account',
|
||||
cc: req.user.challengesHash,
|
||||
cc: c,
|
||||
ch: req.user.challengesHash,
|
||||
moment: moment
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -192,8 +192,8 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"name": "Customize Bootstrap with Bootswatch",
|
||||
"time": 10,
|
||||
"name": "Customize Bootstrap",
|
||||
"time": 15,
|
||||
"video": "110752741",
|
||||
"challengeNumber": 16,
|
||||
"steps": [
|
||||
|
|
|
@ -40,246 +40,12 @@ block content
|
|||
tr
|
||||
th Challenge
|
||||
th Date Finished
|
||||
if cc[0] > 0
|
||||
for challenge in cc
|
||||
if ch[challenge.challengeNumber] > 0
|
||||
tr
|
||||
td Learn how Free Code Camp Works
|
||||
td=moment(cc[0], 'X').format("MMM DD, YYYY")
|
||||
if cc[1] > 0
|
||||
tr
|
||||
td Join Our Chat Room
|
||||
td=moment(cc[1], 'X').format("MMM DD, YYYY")
|
||||
if cc[2] > 0
|
||||
tr
|
||||
td Subscribe to Our Subreddit
|
||||
td=moment(cc[2], 'X').format("MMM DD, YYYY")
|
||||
if cc[3] > 0
|
||||
tr
|
||||
td Build a Personal Website
|
||||
td=moment(cc[3], 'X').format("MMM DD, YYYY")
|
||||
if cc[4] > 0
|
||||
tr
|
||||
td Build a Responsive Blog Theme
|
||||
td=moment(cc[4], 'X').format("MMM DD, YYYY")
|
||||
if cc[5] > 0
|
||||
tr
|
||||
td Build a Small Business Website
|
||||
td=moment(cc[5], 'X').format("MMM DD, YYYY")
|
||||
if cc[6] > 0
|
||||
tr
|
||||
td Tweak HTML and CSS in CodePen
|
||||
td=moment(cc[6], 'X').format("MMM DD, YYYY")
|
||||
if cc[7] > 0
|
||||
tr
|
||||
td Build a CSS Robot
|
||||
td=moment(cc[7], 'X').format("MMM DD, YYYY")
|
||||
if cc[8] > 0
|
||||
tr
|
||||
td Get Started with jQuery
|
||||
td=moment(cc[8], 'X').format("MMM DD, YYYY")
|
||||
if cc[9] > 0
|
||||
tr
|
||||
td Traverse the DOM
|
||||
td=moment(cc[9], 'X').format("MMM DD, YYYY")
|
||||
if cc[10] > 0
|
||||
tr
|
||||
td Work with the DOM
|
||||
td=moment(cc[10], 'X').format("MMM DD, YYYY")
|
||||
if cc[11] > 0
|
||||
tr
|
||||
td Listen for DOM Events
|
||||
td=moment(cc[11], 'X').format("MMM DD, YYYY")
|
||||
if cc[12] > 0
|
||||
tr
|
||||
td Use jQuery for Styling
|
||||
td=moment(cc[12], 'X').format("MMM DD, YYYY")
|
||||
if cc[13] > 0
|
||||
tr
|
||||
td Build a MadLibs Game
|
||||
td=moment(cc[13], 'X').format("MMM DD, YYYY")
|
||||
if cc[14] > 0
|
||||
tr
|
||||
td Discover Chrome's DevTools
|
||||
td=moment(cc[14], 'X').format("MMM DD, YYYY")
|
||||
if cc[15] > 0
|
||||
tr
|
||||
td Tackle jQuery Exercises
|
||||
td=moment(cc[15], 'X').format("MMM DD, YYYY")
|
||||
if cc[16] > 0
|
||||
tr
|
||||
td Customize Bootstrap
|
||||
td=moment(cc[16], 'X').format("MMM DD, YYYY")
|
||||
if cc[17] > 0
|
||||
tr
|
||||
td Inject Animation into CSS
|
||||
td=moment(cc[17], 'X').format("MMM DD, YYYY")
|
||||
if cc[18] > 0
|
||||
tr
|
||||
td Learn Basic Computer Science
|
||||
td=moment(cc[18], 'X').format("MMM DD, YYYY")
|
||||
if cc[19] > 0
|
||||
tr
|
||||
td Learn Loops
|
||||
td=moment(cc[19], 'X').format("MMM DD, YYYY")
|
||||
if cc[20] > 0
|
||||
tr
|
||||
td Learn Computer Hardware
|
||||
td=moment(cc[20], 'X').format("MMM DD, YYYY")
|
||||
if cc[21] > 0
|
||||
tr
|
||||
td Learn Computer Networking
|
||||
td=moment(cc[21], 'X').format("MMM DD, YYYY")
|
||||
if cc[22] > 0
|
||||
tr
|
||||
td Learn Boolean Logic
|
||||
td=moment(cc[22], 'X').format("MMM DD, YYYY")
|
||||
if cc[23] > 0
|
||||
tr
|
||||
td Learn Computer Security
|
||||
td=moment(cc[23], 'X').format("MMM DD, YYYY")
|
||||
if cc[24] > 0
|
||||
tr
|
||||
td Build an Adventure Game
|
||||
td=moment(cc[24], 'X').format("MMM DD, YYYY")
|
||||
if cc[25] > 0
|
||||
tr
|
||||
td Build Rock Paper Scissors
|
||||
td=moment(cc[25], 'X').format("MMM DD, YYYY")
|
||||
if cc[26] > 0
|
||||
tr
|
||||
td Learn JavaScript For Loops
|
||||
td=moment(cc[26], 'X').format("MMM DD, YYYY")
|
||||
if cc[27] > 0
|
||||
tr
|
||||
td Learn JavaScript While Loops
|
||||
td=moment(cc[27], 'X').format("MMM DD, YYYY")
|
||||
if cc[28] > 0
|
||||
tr
|
||||
td Learn Control Flow
|
||||
td=moment(cc[28], 'X').format("MMM DD, YYYY")
|
||||
if cc[29] > 0
|
||||
tr
|
||||
td Build a Contact List
|
||||
td=moment(cc[29], 'X').format("MMM DD, YYYY")
|
||||
if cc[30] > 0
|
||||
tr
|
||||
td Build an Address Book
|
||||
td=moment(cc[30], 'X').format("MMM DD, YYYY")
|
||||
if cc[31] > 0
|
||||
tr
|
||||
td Build a Cash Register
|
||||
td=moment(cc[31], 'X').format("MMM DD, YYYY")
|
||||
if cc[32] > 0
|
||||
tr
|
||||
td Get Help the Hacker Way
|
||||
td=moment(cc[32], 'X').format("MMM DD, YYYY")
|
||||
if cc[33] > 0
|
||||
tr
|
||||
td Learn Regular Expressions
|
||||
td=moment(cc[33], 'X').format("MMM DD, YYYY")
|
||||
if cc[34] > 0
|
||||
tr
|
||||
td Pair Program on CoderByte
|
||||
td=moment(cc[34], 'X').format("MMM DD, YYYY")
|
||||
if cc[35] > 0
|
||||
tr
|
||||
td Learn Relational Database Theory
|
||||
td=moment(cc[35], 'X').format("MMM DD, YYYY")
|
||||
if cc[36] > 0
|
||||
tr
|
||||
td Pair Program to Query SQL pt 1
|
||||
td=moment(cc[36], 'X').format("MMM DD, YYYY")
|
||||
if cc[37] > 0
|
||||
tr
|
||||
td Pair Program to Query SQL pt 2
|
||||
td=moment(cc[37], 'X').format("MMM DD, YYYY")
|
||||
if cc[38] > 0
|
||||
tr
|
||||
td Pair Program to modify SQL pt 1
|
||||
td=moment(cc[38], 'X').format("MMM DD, YYYY")
|
||||
if cc[39] > 0
|
||||
tr
|
||||
td Pair Program to modify SQL pt 2
|
||||
td=moment(cc[39], 'X').format("MMM DD, YYYY")
|
||||
if cc[40] > 0
|
||||
tr
|
||||
td Learn JSON
|
||||
td=moment(cc[40], 'X').format("MMM DD, YYYY")
|
||||
if cc[41] > 0
|
||||
tr
|
||||
td Manage Source Code with Git
|
||||
td=moment(cc[41], 'X').format("MMM DD, YYYY")
|
||||
if cc[42] > 0
|
||||
tr
|
||||
td Get Started with Node.js
|
||||
td=moment(cc[42], 'X').format("MMM DD, YYYY")
|
||||
if cc[43] > 0
|
||||
tr
|
||||
td Try Node.js Events
|
||||
td=moment(cc[43], 'X').format("MMM DD, YYYY")
|
||||
if cc[44] > 0
|
||||
tr
|
||||
td Try Node.js Streams
|
||||
td=moment(cc[44], 'X').format("MMM DD, YYYY")
|
||||
if cc[45] > 0
|
||||
tr
|
||||
td Learn how Node.js Modules Work
|
||||
td=moment(cc[45], 'X').format("MMM DD, YYYY")
|
||||
if cc[46] > 0
|
||||
tr
|
||||
td Start an Express.js Server
|
||||
td=moment(cc[46], 'X').format("MMM DD, YYYY")
|
||||
if cc[47] > 0
|
||||
tr
|
||||
td Use Socket.io
|
||||
td=moment(cc[47], 'X').format("MMM DD, YYYY")
|
||||
if cc[48] > 0
|
||||
tr
|
||||
td Use Redis to Persist Data
|
||||
td=moment(cc[48], 'X').format("MMM DD, YYYY")
|
||||
if cc[49] > 0
|
||||
tr
|
||||
td Dive Deeper into Express.js
|
||||
td=moment(cc[49], 'X').format("MMM DD, YYYY")
|
||||
if cc[50] > 0
|
||||
tr
|
||||
td Set up Express.js Middleware
|
||||
td=moment(cc[50], 'X').format("MMM DD, YYYY")
|
||||
if cc[51] > 0
|
||||
tr
|
||||
td Take Advantage of Parameters
|
||||
td=moment(cc[51], 'X').format("MMM DD, YYYY")
|
||||
if cc[52] > 0
|
||||
tr
|
||||
td Add the Body Parser
|
||||
td=moment(cc[52], 'X').format("MMM DD, YYYY")
|
||||
if cc[53] > 0
|
||||
tr
|
||||
td Configure Routes in Express.js
|
||||
td=moment(cc[53], 'X').format("MMM DD, YYYY")
|
||||
if cc[54] > 0
|
||||
tr
|
||||
td Try MongoDB
|
||||
td=moment(cc[54], 'X').format("MMM DD, YYYY")
|
||||
if cc[55] > 0
|
||||
tr
|
||||
td Get Started with Angular.js
|
||||
td=moment(cc[55], 'X').format("MMM DD, YYYY")
|
||||
if cc[56] > 0
|
||||
tr
|
||||
td Apply Angular.js Directives
|
||||
td=moment(cc[56], 'X').format("MMM DD, YYYY")
|
||||
if cc[57] > 0
|
||||
tr
|
||||
td Power Forms with Angular.js
|
||||
td=moment(cc[57], 'X').format("MMM DD, YYYY")
|
||||
if cc[58] > 0
|
||||
tr
|
||||
td Customize Angular.js Directives
|
||||
td=moment(cc[58], 'X').format("MMM DD, YYYY")
|
||||
if cc[59] > 0
|
||||
tr
|
||||
td Create Angular.js Services
|
||||
td=moment(cc[59], 'X').format("MMM DD, YYYY")
|
||||
td= cc[challenge.challengeNumber].name
|
||||
td= moment(ch[challenge.challengeNumber], 'X').format("MMM DD, YYYY")
|
||||
|
||||
h3 Danger Zone
|
||||
button.btn.btn-danger.confirm-deletion
|
||||
span.ion-trash-b
|
||||
|
|
|
@ -7,5 +7,4 @@
|
|||
a(href="/challenges/#{challenge.challengeNumber}", class="#{ (cc && cc[challenge.challengeNumber] > 0) ? 'strikethrough' : '' }") #{challenge.name}
|
||||
| (#{challenge.time} mins)
|
||||
|
||||
|
||||
a.btn.btn-primary(href="/done-with-first-100-hours", class="#{ cc && cc[59] > 0 ? 'disabled' : '' }") I've finished all Free Code Camp challenges and all the Easy and Medium CoderByte Challenges
|
||||
a.btn.btn-primary(href="/done-with-first-100-hours", class="#{ ((cc && cc[59] > 0) || (!cc)) ? 'disabled' : '' }") I've finished all Free Code Camp challenges and all the Easy and Medium CoderByte Challenges
|
Loading…
Reference in New Issue