Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
104 changes: 57 additions & 47 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,35 +1,36 @@
const express = require('express');
const authRoutes = require('./routes/auth-routes');
const profileRoutes = require('./routes/profile-routes');
const passportSetup = require('./config/passport-setup');
const mongoose = require('mongoose');
const keys = require('./config/keys');
const cookieSession = require('cookie-session');
const passport = require('passport');
const Contact = require('./models/contact-model');
const Notice = require('./models/notice-model');
var bodyParser = require('body-parser');

const app = express();
var urlencodedParser = bodyParser.urlencoded({ extended: false });
const express = require('express'),
authRoutes = require('./routes/auth-routes'),
profileRoutes = require('./routes/profile-routes'),
passportSetup = require('./config/passport-setup'),
mongoose = require('mongoose'),
keys = require('./config/keys'),
cookieSession = require('cookie-session'),
passport = require('passport'),
Contact = require('./models/contact-model'),
Notice = require('./models/notice-model'),
bodyParser = require('body-parser'),
app = express()
var urlencodedParser = bodyParser.urlencoded({
extended: false
});

//set up view engine
app.set('view engine','ejs');
app.set('view engine', 'ejs');

//static files
app.use(express.static('./public'));

app.use(cookieSession({
maxAge:24*60*60*1000,
keys:[keys.session.cookieKey]
maxAge: 24 * 60 * 60 * 1000,
keys: [keys.session.cookieKey]
}));

//initialise passport
app.use(passport.initialize());
app.use(passport.session());

//connect to mongodb
mongoose.connect(keys.mongodb.dbURI, function(){
mongoose.connect(keys.mongodb.dbURI, function () {
console.log('connected to mongodb');
});

Expand All @@ -39,49 +40,58 @@ app.use('/profile', profileRoutes);

//=====================================================================
//create home route
app.get('/', function(req, res){
//get data from mongodb and pass it to view
Notice.find({}, function (err, data) {
if(err) throw err;
res.render('home', {user: req.user ,notices: data});
})
});

app.post('/', urlencodedParser, function(req, res){
//get data from the view and it mongodb
var newNotice = Notice(req.body).save(function (err, data) {
if (err) throw err;
res.json(data);
app.get('/', function (req, res) {
//get data from mongodb and pass it to view
Notice.find({}, function (err, data) {
if (err) throw err;
res.render('home', {
user: req.user,
notices: data
});
})
});

app.post('/', urlencodedParser, function (req, res) {
//get data from the view and it mongodb
var newNotice = Notice(req.body).save(function (err, data) {
if (err) throw err;
res.json(data);
});
});

app.delete('/:item', function(req, res){
//delete the requested item from mongodb
Notice.find({item: req.params.item.replace(/\-/g," ")}).remove(function(err,data) {
if(err) throw err;
res.json(data);
});
app.delete('/:item', function (req, res) {
//delete the requested item from mongodb
Notice.find({
item: req.params.item.replace(/\-/g, " ")
}).remove(function (err, data) {
if (err) throw err;
res.json(data);
});
});
//======================================================================

app.get('/contact',function (req, res) {
res.render('contact');
app.get('/contact', function (req, res) {
res.render('contact', {
user: req.user
});
});

app.post('/contact', urlencodedParser, function (req, res) {
console.log(req.body);
new Contact({
email:req.body.email,
message:req.body.message,
branch:req.body.branch,
year:req.body.year
email: req.body.email,
message: req.body.message,
branch: req.body.branch,
year: req.body.year
}).save();
res.render('contact-success', {data: req.body});
res.render('contact-success', {
data: req.body
});
});




app.listen(process.env.PORT || 3000,function(){
console.log("listenning for the request");
});
app.listen(process.env.PORT || 3000, function () {
console.log("listenning for the request on 3000");
});
140 changes: 64 additions & 76 deletions views/contact.ejs
Original file line number Diff line number Diff line change
@@ -1,96 +1,84 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<!--Import Google Icon Font-->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-rc.2/css/materialize.min.css">
<title>SPS</title>
<style media="screen" type="text/css">
nav{

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ"
crossorigin="anonymous">
<!--Import Google Icon Font-->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-rc.2/css/materialize.min.css">
<title>SPS</title>
<style media="screen" type="text/css">
nav {
font: 30px Tahoma;
text-align: center;
padding-top: 10px;
background-color: grey;
}
</style>
</head>

<body>
<nav><a href="/"class="flow-text">Student Profile System</a></nav>
<ul class="sidenav sidenav-fixed">
<li class="center-align"><i class="large material-icons">account_circle</i></li>
<li><a href="/"><i class="material-icons">home</i>Home</a></li>
<li><a href="/profile"><i class="material-icons">face</i>Profile</a></li>
<li><a href="/contact"><i class="material-icons">contacts</i>Contact Us</a></li>
</ul>
</style>
</head>

<ul id="slide-out" class="sidenav">
<li class="center-align"><i class="large material-icons">account_circle</i></li>
<li><a href="/"><i class="material-icons">home</i>Home</a></li>
<li><a href="/profile"><i class="material-icons">face</i>Profile</a></li>
<li><a href="/contact"><i class="material-icons">contacts</i>Contact Us</a></li>
</ul>
<a href="#" data-target="slide-out" class="sidenav-trigger"><i class="material-icons">menu</i></a>
<body>
<% include sidebar.ejs %>



<div class="container">
<div class="row">
<div class="container">
<div class="row">
<div class="col s12 l9 offset-l3">
<form id="contact-form" method="POST" action="/contact">
<div class="input-field">
<i class="material-icons prefix">email</i>
<input type="email" id="email" name="email"required>
<label for="email">Your Email</label>
</div>
<div class="input-field">
<i class="material-icons prefix">message</i>
<textarea id="message"class="materialize-textarea" name="message"required></textarea>
<label for="message">Your Message</label>
</div>
<form id="contact-form" method="POST" action="/contact">
<div class="input-field">
<i class="material-icons prefix">email</i>
<input type="email" id="email" name="email" required>
<label for="email">Your Email</label>
</div>
<div class="input-field">
<select name="branch">
<option value="" disabled selected>Choose your option</option>
<option value="Computer">Computer</option>
<option value="Electronics">Electronics</option>
<option value="Electrical">Electrical</option>
<option value="Mechanical">Mechanical</option>
<option value="Civil">Civil</option>
</select>
<label>Branch</label>
<i class="material-icons prefix">message</i>
<textarea id="message" class="materialize-textarea" name="message" required></textarea>
<label for="message">Your Message</label>
</div>
<div class="input-field">
<select name="year">
<option value="" disabled selected>Choose your option</option>
<option value="First">First</option>
<option value="Second">Second</option>
<option value="Third">Third</option>
<option value="Fourth">Fourth</option>
</select>
<label>Year</label>
<select name="branch">
<option value="" disabled selected>Choose your option</option>
<option value="Computer">Computer</option>
<option value="Electronics">Electronics</option>
<option value="Electrical">Electrical</option>
<option value="Mechanical">Mechanical</option>
<option value="Civil">Civil</option>
</select>
<label>Branch</label>
</div>
<div class="input-field">
<select name="year">
<option value="" disabled selected>Choose your option</option>
<option value="First">First</option>
<option value="Second">Second</option>
<option value="Third">Third</option>
<option value="Fourth">Fourth</option>
</select>
<label>Year</label>
</div>
<div class="input-field center">
<button class="btn">Submit</button>
</div>
</form>
</div>
<button class="btn">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-rc.2/js/materialize.min.js"></script>
<script>
$(document).ready(function(){
$('.sidenav').sidenav();
$('select').formSelect();
} );
</script>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-rc.2/js/materialize.min.js"></script>
<script>
$(document).ready(function () {
$('.sidenav').sidenav();
$('select').formSelect();
});
</script>
</body>

</html>
</html>
Loading