Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
a720f8d
add views
shadowM8 Dec 19, 2018
8bd8a97
Merge pull request #8 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 19, 2018
13ccd5e
Password and encrypt , edit user by role delete table role
ChristianHS23 Dec 19, 2018
e08cf62
Merge pull request #9 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 19, 2018
9a0ed05
edit user get and post register
ChristianHS23 Dec 19, 2018
471e706
partial selesai dan index.ejs selesai
shadowM8 Dec 19, 2018
8fb7548
Merge pull request #10 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 19, 2018
963b9db
edit user get and post register
ChristianHS23 Dec 19, 2018
31d06e0
Fix css error
ChristianHS23 Dec 19, 2018
e4f2671
fix conflict
ChristianHS23 Dec 19, 2018
59615e8
Merge pull request #11 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 19, 2018
829d99c
change min-height style.css
shadowM8 Dec 19, 2018
ba1c3da
Merge pull request #12 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 19, 2018
5fb67c8
Add Register
ChristianHS23 Dec 19, 2018
4401cb1
Merge pull request #13 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 19, 2018
123932f
delete helper/top3, add routes/top10user.ejs
shadowM8 Dec 19, 2018
0faec74
fix error deklarasi
ChristianHS23 Dec 19, 2018
2017f28
Merge pull request #14 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 19, 2018
957497d
Merge pull request #15 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 19, 2018
fe5475c
Update models
ChristianHS23 Dec 19, 2018
4ba7040
Update session
ChristianHS23 Dec 19, 2018
4c5a1a4
Merge pull request #16 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 19, 2018
4d65e18
Update
ChristianHS23 Dec 20, 2018
a8d3787
Merge pull request #17 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
b81784e
add routes/user.js n views/login.ejs
shadowM8 Dec 20, 2018
e0891ed
Merge pull request #18 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
5fd49a1
update
ChristianHS23 Dec 20, 2018
064c558
fix conflict
ChristianHS23 Dec 20, 2018
fec4422
session done
ChristianHS23 Dec 20, 2018
3861685
tambah view/post.ejs n routes/Post.ejs
shadowM8 Dec 20, 2018
debd710
Merge pull request #20 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
420dd68
Merge pull request #19 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
fad28c0
add seeding
ChristianHS23 Dec 20, 2018
486bab9
Merge pull request #21 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
4e7ad59
tambah app.js routes/post.js views/post.ejs
shadowM8 Dec 20, 2018
49d963d
tambah app.js routes/post.js views/post.ejs part 2
shadowM8 Dec 20, 2018
595f166
Merge pull request #22 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
84de401
views/post.ejs
shadowM8 Dec 20, 2018
0fd4ac2
update
ChristianHS23 Dec 20, 2018
7a95cde
Merge pull request #25 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
91c4cc8
Merge branch 'development' into Antonius-Wibisono
ChristianHS23 Dec 20, 2018
d2710c0
Merge pull request #24 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
c58edeb
Add session
ChristianHS23 Dec 20, 2018
51464d5
Merge pull request #26 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
b282a5d
add session user and admin
ChristianHS23 Dec 20, 2018
225aeca
tambah detailedPost.ejs
shadowM8 Dec 20, 2018
0076871
Merge pull request #23 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
f1d369b
Merge pull request #27 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
48d1165
fix error
ChristianHS23 Dec 20, 2018
90306cf
Merge pull request #28 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
53ff460
update banner
ChristianHS23 Dec 20, 2018
54d922e
Merge pull request #29 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
de2040b
add hooks + err
shadowM8 Dec 20, 2018
98ae5a1
update banner
ChristianHS23 Dec 20, 2018
6cb29d1
Merge pull request #30 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
7cfb46f
Merge pull request #31 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
ba20eb0
routes/user.js
shadowM8 Dec 20, 2018
59694c5
Admin page
ChristianHS23 Dec 20, 2018
ad372b6
jam 3.20 pagi
shadowM8 Dec 20, 2018
1b2dc5a
Merge pull request #33 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
c04f2d8
Merge pull request #32 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
0a24247
StatusDone
ChristianHS23 Dec 20, 2018
29ac7e8
banner edit
shadowM8 Dec 20, 2018
5c0caab
Merge pull request #34 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
19659d4
Merge pull request #35 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
6227afe
Deploy
ChristianHS23 Dec 20, 2018
67f6f0e
update
ChristianHS23 Dec 20, 2018
6802e44
fix create user
shadowM8 Dec 20, 2018
c117e95
Merge pull request #36 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 20, 2018
e2f0057
Merge pull request #37 from ChristianHS23/Antonius-Wibisono
ChristianHS23 Dec 20, 2018
af320ee
Update
ChristianHS23 Dec 21, 2018
1e27b3e
Merge branch 'development' into christian-sihotang
ChristianHS23 Dec 21, 2018
1c38339
Merge pull request #38 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 21, 2018
61f5664
change port
ChristianHS23 Dec 21, 2018
91d087f
update Seeder
ChristianHS23 Dec 21, 2018
8cfcf61
add Icon
ChristianHS23 Dec 21, 2018
86849d9
Update Icon
ChristianHS23 Dec 21, 2018
41b4569
update
ChristianHS23 Dec 21, 2018
fb7bb6c
Update banner
ChristianHS23 Dec 21, 2018
ced12e6
update
ChristianHS23 Dec 23, 2018
df3f8b6
Merge branch 'christian-sihotang' of https://github.com/ChristianHS23…
ChristianHS23 Dec 23, 2018
7fd05a6
Merge pull request #39 from ChristianHS23/christian-sihotang
ChristianHS23 Dec 23, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: node app.js
41 changes: 34 additions & 7 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,52 @@
const express = require ('express')
const express = require('express')
const app = express()
const port = 3000
const port = process.env.PORT || 3000;
const Post = require('./routes/Post')
const Role = require('./routes/Role')
const Tag = require('./routes/Tag')
const User = require('./routes/User')
const Index = require('./routes/Index')
const path = require('path')
const session = require('express-session')
const middlewareLogin = require('./helpers/middlewareLogin')
const Admin = require('./routes/Admin')
const middlewareLoginRole = require('./helpers/middlewareLoginRole')

app.set("view engine", "ejs")

app.use(express.urlencoded({extended:false}))
app.set("view engine", "ejs")
app.use(express.static('views'))
app.use(express.static(path.join(__dirname, 'views')))
app.use(express.urlencoded({ extended: false }))
app.use(express.json())

// Use the session middleware
var sess = {
secret: 'bebasajasihkak',
cookie: {}
}

app.use(session(sess))



// app.locals({})

app.use('/', Index)
app.use('/post', Post)

// register
// login

app.use(middlewareLogin)

app.use('/user', User)
// app.use('/post', Post)
app.use('/role', Role)
app.use('/tag', Tag)
app.use('/user', User)

app.use(middlewareLoginRole)
app.use('/admin', Admin)




app.listen(port,()=> console.log(`Server listen to port : ${port}`))
app.listen(port, () => console.log(`Server listen to port : ${port}`))
3 changes: 3 additions & 0 deletions config/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@
"database": "GoodTime",
"host": "127.0.0.1",
"dialect": "postgres"
},
"production": {
"use_env_variable": "DATABASE_URL"
}
}
11 changes: 11 additions & 0 deletions helpers/cryptoHash.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function cryptoHash(secret, password) {
const crypto = require('crypto')

const hash = crypto.createHmac( 'sha256', secret)
.update(password)
.digest('hex');

return hash
}

module.exports = cryptoHash
11 changes: 11 additions & 0 deletions helpers/middlewareLogin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

let middlewareLogin = function (req, res, next) {

if(!req.session.user) {
res.redirect('/login')
} else {
next()
}
}

module.exports = middlewareLogin
13 changes: 13 additions & 0 deletions helpers/middlewareLoginRole.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

let middlewareLoginRole = function (req, res, next) {

if(!req.session.user) {
res.redirect('/login')
} else if(req.session.user.role != "admin"){
res.redirect('/user')
} else {
next()
}
}

module.exports = middlewareLoginRole
11 changes: 11 additions & 0 deletions helpers/searchByOne.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const Model =require('../models')

function searchByOne(idUser) {
return new Promise((resolve, reject)=> {
Model.User.findByPk(idUser)
.then(data => resolve(data))
.catch(err => reject(err))
})
}

module.exports = searchByOne
3 changes: 2 additions & 1 deletion migrations/20181218131011-create-user.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ module.exports = {
type: Sequelize.STRING
},
reputasi: {
type: Sequelize.REAL
type: Sequelize.REAL,
defaultValue: 0
},
createdAt: {
allowNull: false,
Expand Down
32 changes: 0 additions & 32 deletions migrations/20181218131207-create-role.js

This file was deleted.

2 changes: 1 addition & 1 deletion migrations/20181218143247-add-column-isBan-to-user.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ module.exports = {
return queryInterface.dropTable('users');
*/

return queryInterface.removeColumn('Users', 'isBan')
return queryInterface.removeColumn('Users', 'isBan', {})
}
};
25 changes: 25 additions & 0 deletions migrations/20181219052001-add-secret-column-to-user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
/*
Add altering commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
return queryInterface.addColumn('Users', 'secret', Sequelize.STRING)
},

down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.dropTable('users');
*/
return queryInterface.removeColumn('Users', 'secret')
}
};
25 changes: 25 additions & 0 deletions migrations/20181219053616-add-Role-to-User.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
/*
Add altering commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
return queryInterface.addColumn('Users', 'role' , {type: Sequelize.STRING, defaultValue: 'user'})
},

down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.dropTable('users');
*/
return queryInterface.removeColumn('Users', 'role')
}
};
25 changes: 25 additions & 0 deletions migrations/20181219110302-add-userId-to-post.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
/*
Add altering commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
return queryInterface.addColumn('Posts', 'UserId', Sequelize.INTEGER)
},

down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.dropTable('users');
*/
return queryInterface.removeColumn('Posts', 'UserId')
}
};
28 changes: 27 additions & 1 deletion models/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,36 @@
module.exports = (sequelize, DataTypes) => {
const Post = sequelize.define('Post', {
title: DataTypes.STRING,
content: DataTypes.TEXT
content: DataTypes.TEXT,
UserId:DataTypes.INTEGER
}, {});

Post.beforeCreate(function(value){
return sequelize.models.User.find({
where: {
id : value.UserId
}
})
.then(data=>{
if(data.isBan == true){
throw new Error(`you are banned from posting in this forum`)
}

})
.catch(err=>{
throw new Error(err)
})
})


Post.associate = function(models) {
// associations can be defined here

Post.hasMany(models.PostLike)
Post.belongsToMany(models.User, {through: models.PostLike })
Post.belongsToMany(models.Tag, {through: models.PostTag})
Post.belongsTo(models.User)

};
return Post;
};
23 changes: 23 additions & 0 deletions models/postlike.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,31 @@ module.exports = (sequelize, DataTypes) => {
UserId: DataTypes.INTEGER,
Like: DataTypes.BOOLEAN
}, {});
PostLike.beforeCreate(function(value){
return sequelize.models.PostLike.find({
where: {
UserId : value.UserId,
PostId : value.PostId
}
})
.then(data=>{
if(data){
throw Error(`you already liked this post`)
}

})
.catch(err=>{
throw new Error(err)
})
})
// PostLike.afterCreate(function(value) {

// })

PostLike.associate = function(models) {
// associations can be defined here
PostLike.belongsTo(models.Post)
PostLike.belongsTo(models.User)
};
return PostLike;
};
24 changes: 0 additions & 24 deletions models/role.js

This file was deleted.

2 changes: 2 additions & 0 deletions models/tag.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
'use strict';
module.exports = (sequelize, DataTypes) => {
const Op = sequelize.Op
const Tag = sequelize.define('Tag', {
name: {type: DataTypes.STRING,
isUnique: function(value, next) {
Expand All @@ -18,6 +19,7 @@ module.exports = (sequelize, DataTypes) => {
}, {});
Tag.associate = function(models) {
// associations can be defined here
Tag.belongsToMany(models.Post, {through : models.PostTag})
};
return Tag;
};
Loading