Skip to content

Commit bf51402

Browse files
authored
Merge pull request #134 from Aggie-Web-Developers/develop
Release 1.0.0
2 parents cb95a5b + 510e8c6 commit bf51402

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+11166
-355
lines changed

.eslintrc

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"extends": ["google", "prettier"],
3+
"rules": {
4+
"linebreak-style": "off",
5+
"eol-last": "off",
6+
"max-len": "off",
7+
"one-var": "off",
8+
"no-use-before-define": ["warn", { "functions": true, "classes": true }],
9+
"no-warning-comments": "off",
10+
"brace-style": "off",
11+
"no-nested-ternary": "off",
12+
"no-mixed-requires": "off",
13+
"no-negated-condition": "off",
14+
"no-tabs": "off",
15+
"camelcase": "off",
16+
"new-cap": "off",
17+
"no-mixed-spaces-and-tabs": "off",
18+
"quote-props": "off",
19+
"space-before-function-paren": "off",
20+
"guard-for-in": "off",
21+
"max-nested-callbacks": "off",
22+
"no-unmodified-loop-condition": "off",
23+
"comma-dangle": "off",
24+
"require-jsdoc": "off",
25+
"arrow-parens": "off",
26+
"prettier/prettier": "error",
27+
"object-curly-spacing": "off",
28+
"array-bracket-spacing": "off",
29+
"no-invalid-this": 0,
30+
"no-var": "off",
31+
"no-unused-vars": "off",
32+
"prefer-const": "warn"
33+
},
34+
"globals": {
35+
"io": true,
36+
"app": true,
37+
"document": true,
38+
"window": true,
39+
"expect": true,
40+
"describe": true,
41+
"it": true
42+
},
43+
"parserOptions": {
44+
"sourceType": "module",
45+
"ecmaVersion": 2020
46+
},
47+
"plugins": ["prettier"]
48+
}

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.idea/
2+
.vs/
3+
node_modules/
4+
config.json
5+
.vscode/
6+
.env

.prettierignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
node_modules/
2+
build/
3+
dist/
4+
.yarn/
5+
.vscode/
6+
./views/partials/header.ejs

.prettierrc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"singleQuote": true,
3+
"trailingComma": "es5",
4+
"useTabs": true,
5+
"arrowParens": "always",
6+
"endOfLine": "lf"
7+
}

app.js

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
require('dotenv').config();
2+
const express = require('express');
3+
const session = require('express-session');
4+
const app = express();
5+
const bodyParser = require('body-parser');
6+
const methodOverride = require('method-override');
7+
const sql = require('mssql');
8+
const email = require('./email/email');
9+
const bcrypt = require('bcrypt');
10+
const initPassport = require('./passport-config');
11+
const passport = require('passport');
12+
const flash = require('express-flash');
13+
const indexRoutes = require('./routes/index');
14+
const eventRoutes = require('./routes/portal/events');
15+
const portalRoutes = require('./routes/portal/index');
16+
const emailRoutes = require('./routes/portal/emails');
17+
const sponsorRoutes = require('./routes/portal/sponsors');
18+
const projectRoutes = require('./routes/portal/projects');
19+
const middleware = require('./middleware');
20+
21+
initPassport(passport);
22+
23+
app.use(bodyParser.urlencoded({ extended: true }));
24+
app.use(flash());
25+
app.set('view engine', 'ejs');
26+
app.use(express.static(__dirname + '/public'));
27+
app.use(methodOverride('_method'));
28+
app.use(
29+
session({
30+
secret: process.env.SESSION_SECRET,
31+
resave: false,
32+
saveUninitialized: false,
33+
})
34+
);
35+
36+
app.use(passport.initialize());
37+
app.use(passport.session());
38+
39+
const config = {
40+
server: process.env.DB_SERVER,
41+
port: 1433,
42+
user: 'sa',
43+
password: process.env.DB_PASSWORD,
44+
database: process.env.DB_PROD || 'awd-site-dev',
45+
stream: false,
46+
options: {
47+
enableArithAbort: true,
48+
encrypt: false,
49+
useUTC: true,
50+
},
51+
pool: {
52+
max: 20,
53+
min: 0,
54+
idleTimeoutMillis: 30000,
55+
},
56+
};
57+
58+
sql
59+
.connect(config)
60+
.then((pool) => {
61+
if (pool.connected) {
62+
console.log('Connecting to database: [OK]');
63+
}
64+
65+
return pool;
66+
})
67+
.catch(function (err) {
68+
console.log('Connecting to database: [FAILED]');
69+
console.log(err);
70+
});
71+
72+
app.use(function (err, req, res, next) {
73+
if (err && err == 'Error: Deserialization error.') {
74+
req.logout();
75+
76+
if (req.originalUrl == '/portal/login') {
77+
next();
78+
} else {
79+
req.flash('error', 'Error: Please contact the System Administrator');
80+
res.redirect('/portal/login');
81+
}
82+
} else {
83+
next();
84+
}
85+
});
86+
87+
app.use(function (req, res, next) {
88+
// store current user
89+
res.locals.user = req.user;
90+
next();
91+
});
92+
93+
app.use(indexRoutes);
94+
app.use('/portal', portalRoutes);
95+
app.use('/portal/events', eventRoutes);
96+
app.use('/portal/emails', emailRoutes);
97+
app.use('/portal/sponsors', sponsorRoutes);
98+
app.use('/portal/projects', projectRoutes);
99+
100+
app.get('/*', function (req, res) {
101+
res.render('404');
102+
});
103+
104+
email.listenForScheduledEmails();
105+
106+
app.listen(process.env.PORT || 8080);

0 commit comments

Comments
 (0)