Skip to content

Commit

Permalink
added login & signup
Browse files Browse the repository at this point in the history
  • Loading branch information
Piyush-Bhor committed May 1, 2023
1 parent 16dfe57 commit a88007f
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 2 deletions.
5 changes: 4 additions & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
CONNECTIONSTRING=mongodb+srv://site_admin:[email protected]/cc_snecahackathon?retryWrites=true&w=majority
CONNECTIONSTRING=mongodb+srv://site_admin:[email protected]/cc_snecahackathon?retryWrites=true&w=majority
SECRET=wrnwejcnwr23343
USERNAME=admin
PASSWORD=admin
119 changes: 118 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,136 @@ app.set('views', path.join(__dirname, 'views'));
app.use(express.urlencoded({extended:false}));

// database connection

const url = process.env.CONNECTIONSTRING;
mongoose.connect(url, {useNewUrlParser:true})
const con = mongoose.connection
con.on('open', ()=> {
console.log("Database Connnected....");
});

// user model
const User = mongoose.model('User',{
username: String,
password: String
});

// session
app.use(session({
secret: process.env.SECRET,
resave: false,
saveUninitialized: true
}));

//routes
app.get('/',(req, res) => {
res.render('home');
});

/* login & sign up */
app.get('/signup',(req,res) => {
res.render('signup_form');
});

app.get('/login',(req,res) => {
res.render('login_form');
});

/* login process */
app.get('/loginprocess',(req,res) => {
var username = req.query.username;
var password = req.query.password;
User.findOne({username: username, password: password}).then((user) => {
if(user){
// save in session
req.session.username = user.username;
req.session.loggedIn = true;
var pageData = {
login_msg : "Login Successful!"
}
res.render('login_form', pageData);
}
}).catch((err) => {
res.send(err);
});
});

/* logout process */
app.get('/logout',(req,res) => {
req.session.username = '';
req.session.loggedIn = false;
var pageData = {
login_msg : "Logout Successful!"
}
res.render('login_form', pageData);
});

/* signup process */
app.get('/signup_process', (req,res) => {
var username = req.query.username;
var password = req.query.password;
User.findOne({username: username}).then((user) => {
// check if user exists
if(user){
var pageData = {
error_msg : "User Already Exists"
}
res.render('signup_form', pageData);
}
// create new user
else {
var userData = {
username: username,
password: password
}
var newUser = new User(userData);
newUser.save();

var pageData = {
signup_msg : "User Created Successfully!"
}
res.render('signup_form', pageData);
}
}).catch((err) => {
res.send(err);
});
});

/* delete account */
app.get('/delete_account',(req,res) => {
if(req.session.loggedIn) {
var username = req.session.username;
User.findOneAndDelete({username:username}).exec(function(err, user){
if(user){
//clear session cookies
req.session.username = '';
req.session.loggedIn = false;
message = "Account Deleted Successfully!";
var pageData = {
login_msg : message
}
res.render('login_form', pageData);
}
});
}
else {
res.redirect('/login');
}
});

// ------- Application Setup Stuff -------
// DO NOT PUSH TO PRODUCTION

app.get('/setup',function(req, res){
var userData = {
username: process.env.USERNAME,
password: process.env.PASSWORD
}
var newUser = new User(userData);
newUser.save();
res.send('Done');
});


// server start
app.listen(8080);
console.log('Server running at http://localhost:8080');
5 changes: 5 additions & 0 deletions views/login_form.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<%- include('includes/header') %>

<h1> Login </h1>

<%- include('includes/footer') %>
5 changes: 5 additions & 0 deletions views/signup_form.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<%- include('includes/header') %>

<h1> Signup </h1>

<%- include('includes/footer') %>

0 comments on commit a88007f

Please sign in to comment.