Skip to content

Commit

Permalink
cleaned up the backend and added the file upload feature
Browse files Browse the repository at this point in the history
  • Loading branch information
kumaran-14 committed Aug 12, 2018
1 parent 2b9e557 commit 7ed6761
Show file tree
Hide file tree
Showing 18 changed files with 322 additions and 81 deletions.
Empty file modified .gitignore
100755 → 100644
Empty file.
Empty file modified README.md
100755 → 100644
Empty file.
7 changes: 0 additions & 7 deletions app/controllers/default-controller.js

This file was deleted.

46 changes: 46 additions & 0 deletions app/controllers/user-controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
const signale = require('signale')
const config = require('../../config/config.js');
const schema = require('../models/defaultSchema.js')
const _USERNAME = config.auth.name
const _PASSWORD = config.auth.password
var upload = require('../../config/upload.js');


exports.renderLoginForm = (req,res) => {
res.render('login');
}

exports.renderRegisterForm = (req,res) => {
res.render('register');
}
//matching login credentials to create a new session
exports.validateLogin = (req, res) => {
//checking for missing inputs
if (!req.body.username || !req.body.password) {
return res.redirect('/user/login')
}
// no missing inputs, go for further validations
let username = req.body.username
let password = req.body.password
// wrong credentials
if(username !== _USERNAME || password !== _PASSWORD ){
return res.redirect('/user/login')
}
//correct credentials, create session
req.session.user = {
name:_USERNAME,
password:_PASSWORD
}
return res.redirect(`/user/${_USERNAME}/register`)
}

exports.registerUser = (req,res) => {
upload(req, res, (error) => {
if (error) {
console.log(error);
return res.redirect('/user/scholarship/register');
}
console.log(req.file)
return res.send('registered')
})
}
8 changes: 0 additions & 8 deletions app/routes/default-router.js

This file was deleted.

28 changes: 28 additions & 0 deletions app/routes/user-router.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const router = require('express').Router();
const user = require('../controllers/user-controller.js');

//sessionChecker middlewares
let sessionChecker = (req,res,next) =>{
if(!req.session.user){
res.redirect('/user/login')
}else{
next()
}
}

// register
router.get('/:username/register',sessionChecker, user.renderRegisterForm)
router.post('/:username/register',sessionChecker, user.registerUser)

// // register
// router.get('/:username/register', user.renderRegisterForm)
// router.post('/:username/register', user.registerUser)


// login
router.get('/login',user.renderLoginForm)
router.post('/login',user.validateLogin)



module.exports = router
8 changes: 6 additions & 2 deletions config/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@

module.exports = {
mongodb: {
dbURI: "mongodb://localhost:27017/scholarshipportal"
dbURI: "mongodb://localhost:27017/scholarshipportal"
},
session:{
secretString:"Scholarships are goood xD"
secretString:"Scholarships are goooood xD"
},
auth:{
name:'scholarship',
password:'scholarship'
}
};
35 changes: 35 additions & 0 deletions config/upload.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
const multer = require('multer');
const path = require('path');

/** Storage Engine */
const storageEngine = multer.diskStorage({
destination: './public/files/uploads/',
filename: function(req, file, fn){
fn(null, new Date().getTime().toString()+'-'+file.fieldname+path.extname(file.originalname));
}
});

//init

const upload = multer({
storage: storageEngine,
limits: { fileSize:1000000 },
fileFilter: function(req, file, callback){
validateFile(file, callback);
}
}).array('document');


var validateFile = function(file, cb ){
allowedFileTypes = /jpeg|jpg|png|gif/;
const extension = allowedFileTypes.test(path.extname(file.originalname).toLowerCase());
const mimeType = allowedFileTypes.test(file.mimetype);
if(extension && mimeType){
return cb(null, true);
}else{
cb("Invalid file type. Only JPEG, PNG and GIF file are allowed.")
}
}


module.exports = upload;
137 changes: 137 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"express-session": "*",
"express-validator": "*",
"mongoose": "*",
"multer": "^1.3.1",
"nodemon": "^1.18.3",
"path": "*",
"pug": "*",
Expand Down
12 changes: 6 additions & 6 deletions public/css/home.css
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@ html,body{
margin: 0;
padding: 0;
background-color: rgb(249,249,249);
font-family: 'sans-serif';
}

.title{
text-align: center;
text-align: left;
margin-left:2em;
font-size: 4.5em;
padding: 5px;
margin-top: 6vh;
letter-spacing: 0.2em;
margin-top: 6vh;
}

.jumbo-container{
Expand All @@ -27,6 +26,7 @@ html,body{

.scholarship-name{
font-size: 1.7em;
text-decoration: underline;
}

.scholarship-details{
Expand All @@ -36,7 +36,7 @@ html,body{
}

@media only screen and (max-width: 500px) {

.title{
font-size: 2.5em;
}
Expand All @@ -57,4 +57,4 @@ html,body{
font-size: 1em;
}

}
}
Empty file modified public/css/login.css
100755 → 100644
Empty file.
Empty file modified public/css/register.css
100755 → 100644
Empty file.
Loading

0 comments on commit 7ed6761

Please sign in to comment.