start refactoring points into progressTimestamps which is essentially points with timestamps

This commit is contained in:
Michael Q Larson
2015-02-22 18:16:26 -08:00
parent 67ff808734
commit fc1d560a89
6 changed files with 30 additions and 40 deletions

View File

@ -32,7 +32,7 @@ exports.index = function(req, res) {
tests: [],
challengeSeed: '',
cc: req.user ? req.user.bonfiresHash : undefined,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliments: resources.randomCompliment(),
@ -112,7 +112,7 @@ exports.returnIndividualBonfire = function(req, res, next) {
tests: bonfire.tests,
challengeSeed: bonfire.challengeSeed,
cc: !!req.user,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliment: resources.randomCompliment(),
@ -179,7 +179,7 @@ exports.testBonfire = function(req, res) {
tests: bonfireTests,
challengeSeed: bonfireChallengeSeed,
cc: req.user ? req.user.bonfiresHash : undefined,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliment: resources.randomCompliment(),
@ -236,14 +236,14 @@ exports.completedBonfire = function (req, res) {
} else {
var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
if (index > -1) {
req.user.points++;
req.user.progressTimestamps.push(Date.now() / 1000 | 0);
req.user.uncompletedBonfires.splice(index, 1)
}
pairedWith = pairedWith.pop();
index = pairedWith.uncompletedBonfires.indexOf(bonfireHash);
if (index > -1) {
pairedWith.points++;
pairedWith.progressTimestamps.push(Date.now() / 1000 | 0);
pairedWith.uncompletedBonfires.splice(index, 1);
}
@ -285,7 +285,7 @@ exports.completedBonfire = function (req, res) {
var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
if (index > -1) {
req.user.points++;
req.user.progressTimestamps.push(Date.now() / 1000 | 0);
req.user.uncompletedBonfires.splice(index, 1)
}

View File

@ -92,7 +92,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
tests: courseware.tests,
challengeSeed: courseware.challengeSeed,
cc: !!req.user,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliment: resources.randomCompliment(),
@ -111,7 +111,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
tests: courseware.tests,
challengeSeed: courseware.challengeSeed,
cc: !!req.user,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliment: resources.randomCompliment(),
@ -130,7 +130,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
tests: courseware.tests,
video: courseware.challengeSeed[0],
cc: !!req.user,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliment: resources.randomCompliment(),
@ -168,7 +168,7 @@ exports.testCourseware = function(req, res) {
challengeSeed: coursewareChallengeSeed,
challengeEntryPoint: coursewareEntryPoint,
cc: req.user ? req.user.coursewaresHash : undefined,
points: req.user ? req.user.points : undefined,
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
verb: resources.randomVerb(),
phrase: resources.randomPhrase(),
compliment: resources.randomCompliment(),
@ -224,7 +224,7 @@ exports.completedCourseware = function (req, res) {
var index = req.user.uncompletedCoursewares.indexOf(coursewareHash);
if (index > -1) {
req.user.points++;
req.user.progressTimestamps.push(Date.now() / 1000 | 0);
req.user.uncompletedCoursewares.splice(index, 1)
}

View File

@ -22,33 +22,6 @@ module.exports = {
});
},
stats: function stats(req, res) {
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 && 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
});
});
});
});
});
});
},
deployAWebsite: function deployAWebsite(req, res) {
res.render('resources/deploy-a-website', {
title: 'Deploy a Dynamic Website in 7 Minutes'
@ -145,6 +118,21 @@ module.exports = {
about: function(req, res) {
var date1 = new Date("10/15/2014");
var date2 = new Date();
var progressTimestamps = req.user.progressTimestamps;
var now = Date.now() / 1000 | 0;
if (req.user.pointsNeedMigration) {
var challengesHash = req.user.challengesHash;
for(var key in challengesHash) {
if (challengesHash[key] > 0) {
req.user.progressTimestamps.push(challengesHash[key]);
}
}
req.user.pointsNeedMigration = false;
req.user.save();
}
if (progressTimestamps[progressTimestamps.length - 1] <= (now - 43200)) {
req.user.progressTimestamps.push(now);
}
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
var announcements = resources.announcements;

View File

@ -21,7 +21,9 @@ var userSchema = new mongoose.Schema({
type: Number,
default: 0
},
progressTimestamps: { type: Array, default: [] },
challengesCompleted: { type: Array, default: [] },
pointsNeedMigration: { type: Boolean, default: true },
challengesHash: {
0: {
type: Number,

View File

@ -44,7 +44,7 @@ block content
.col-xs-12.col-sm-12.col-md-3.text-center
.background-svg.img-center
.points-on-top
= "[ " + points + " ]"
= "[ " + progressTimestamps.length + " ]"
.row

View File

@ -25,7 +25,7 @@
else
li
if (user.profile.username)
a(href='/' + user.profile.username) [&nbsp;#{user.points}&nbsp;]
a(href='/' + user.profile.username) [&nbsp;#{user.progressTimestamps.length}&nbsp;]
else
a(href='/account') [&nbsp;#{user.points}&nbsp;]
.hidden-xs