Skip to content

Commit d094781

Browse files
committed
Teacher can add courses
1 parent fd063b0 commit d094781

File tree

6 files changed

+43
-17
lines changed

6 files changed

+43
-17
lines changed

md5gen.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
bcrypt = require('bcryptjs');
2-
password = 'mad' ;
2+
password = 'pd' ;
33
bcrypt.genSalt(10 , function(err, salt)
44
{
55
bcrypt.hash(password, salt, function(err,hash)

models/teacher.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

models/teachers.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var teacherSchema = mongoose.Schema({
66
username: {type: String , index: true},
77
email: {type: String},
88
password: {type: String},
9-
Courses : {type: Array , "default": []}
9+
courses : {type: Array , "default": []}
1010
});
1111

1212
var User = module.exports = mongoose.model('teachers' , teacherSchema);
@@ -28,4 +28,12 @@ module.exports.comparePassword = function(candidatePassword , hash, callback){
2828
if(err) throw err;
2929
callback(null , isMatch);
3030
});
31+
}
32+
33+
module.exports.saveCourses = function(user, cname, callback) {
34+
var query = {_id:user._id};
35+
user.courses.push(cname);
36+
User.findOneAndUpdate(query , user , {upsert:true},callback);
37+
//User.update({_id:id}, {$push: {courses: cname}});
38+
3139
}

routes/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,34 @@
11
var express = require('express');
22
var router = express.Router();
3+
var teacher = require('../models/teachers');
34

45
//Get Homepage
56
router.get('/' ,ensureAuthenticated, function(req, res){
67
res.render('index');
78
});
89

10+
router.post('/', function(req, res) {
11+
var cname = req.body.cname;
12+
req.checkBody('cname', 'Course Name is required').notEmpty();
13+
var errors = req.validationErrors();
14+
15+
if(errors) {
16+
res.render('index', {
17+
errors:errors
18+
});
19+
}
20+
else {
21+
teacher.saveCourses(req.user, cname, function(err,doc) {
22+
if(err) throw err;
23+
console.log('Index: ', cname);
24+
req.flash('success_msg' , 'Course '+cname+' has been added');
25+
res.redirect('/');
26+
});
27+
28+
//console.log(res.locals.user.username);
29+
}
30+
});
31+
932

1033
function ensureAuthenticated(req , res , next ){
1134
if(req.isAuthenticated()) {

views/index.handlebars

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
1-
<h2 class="page-header">Dashboard</h2>
2-
<p>Welcome to your Dashboard, {{user.name}}</p>
1+
{{#if errors}}
2+
{{#each errors}}
3+
<div class="alert alert-danger">{{msg}}</div>
4+
{{/each}}
5+
{{/if}}
6+
<form method="post" action="/">
7+
Course Name: <input type="text" name="cname">
8+
<input type="submit" value="Submit">
9+
</form>

views/layouts/layout.handlebars

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
{{#if user}}
1717

1818
<li class="nav-item">
19-
<a class="nav-link active" href="/">Dashboard <span class="sr-only">(current)</span></a>
19+
<a class="nav-link active" href="/">{{user.username}}<span class="sr-only">(current)</span></a>
2020
</li>
2121
<li class="nav-item">
2222
<a class="nav-link" href="/users/logout">Logout</a>

0 commit comments

Comments
 (0)