@ -0,0 +1,7 @@ | |||||
{ | |||||
"port": 7000, | |||||
"sessionSecret": "superDuperSecret", | |||||
"clientID": "github client id", | |||||
"clientSecret": "clientSecret" | |||||
} |
@ -0,0 +1,33 @@ | |||||
const fileIO = require('./fileIO'); | |||||
const CONFIG_FILE_NAME = "conf.json"; | |||||
const config = fileIO.getFileAsJSON(CONFIG_FILE_NAME); | |||||
module.exports= | |||||
{ | |||||
getConfiguration: function() | |||||
{ | |||||
return config; | |||||
}, | |||||
syncToDisk: function() | |||||
{ | |||||
fileIO.writeJSONToFile(CONFIG_FILE_NAME, config); | |||||
}, | |||||
getPort: function() | |||||
{ | |||||
return config.port; | |||||
}, | |||||
getClientID: function() | |||||
{ | |||||
return config.clientID; | |||||
}, | |||||
getClientSecret: function() | |||||
{ | |||||
return config.clientSecret; | |||||
} | |||||
}; |
@ -0,0 +1,32 @@ | |||||
/** Used to read and write files from disk */ | |||||
const fs = require('fs'); | |||||
module.exports = | |||||
{ | |||||
writeJSONToFile: function(fileName, jsonObject) | |||||
{ | |||||
const json = JSON.stringify(jsonObject, null, 4); | |||||
fs.writeFile(fileName, json, 'utf8', function() | |||||
{ | |||||
console.log("Wrote to " + fileName); | |||||
}); | |||||
}, | |||||
/** | |||||
* | |||||
* @param fileName | |||||
* @returns {any} | |||||
*/ | |||||
getFileAsJSON: function(fileName) | |||||
{ | |||||
return JSON.parse(module.exports.getFile(fileName)); | |||||
}, | |||||
getFile: function(filename) | |||||
{ | |||||
return fs.readFileSync(filename, 'utf8'); | |||||
} | |||||
}; |
@ -0,0 +1,25 @@ | |||||
{ | |||||
"name": "github-graphs", | |||||
"version": "0.0.1", | |||||
"description": "Generates graphs of github things.", | |||||
"main": "server.js", | |||||
"scripts": { | |||||
"test": "echo \"Error: no test specified\" && exit 1", | |||||
"start": "node server.js" | |||||
}, | |||||
"repository": { | |||||
"type": "git", | |||||
"url": "git+https://github.com/jrtechs/github-graphs.git" | |||||
}, | |||||
"author": "Jeffery Russell", | |||||
"license": "ISC", | |||||
"bugs": { | |||||
"url": "https://github.com/jrtechs/github-graphs/issues" | |||||
}, | |||||
"homepage": "https://github.com/jrtechs/github-graphs#readme", | |||||
"dependencies": { | |||||
"express": "^4.16.4", | |||||
"express-session": "^1.15.6", | |||||
"fs": "0.0.1-security" | |||||
} | |||||
} |
@ -0,0 +1,36 @@ | |||||
/** express app for routing */ | |||||
const express = require("express"); | |||||
/**session data for login and storing preferences*/ | |||||
const session = require('express-session'); | |||||
const configLoader = require('./configManager.js'); | |||||
const app = express(); | |||||
/**Initializes sessions for login */ | |||||
app.use(session( | |||||
{ secret: configLoader.getConfiguration().sessionSecret, | |||||
cookie: { maxAge: 6000000 }} | |||||
)); | |||||
app.use(express.urlencoded()); //for easy retrieval of post and get data | |||||
app.use(express.json()); | |||||
app.use(express.static(__dirname,'css')); | |||||
app.use(express.static(__dirname, 'js')); | |||||
app.use(express.static(__dirname, 'img')); | |||||
app.use(express.static('html')); | |||||
app.use(express.static(__dirname, 'fonts')); | |||||
const routes = require('./routes'); | |||||
app.use('/', routes); | |||||
app.listen(configLoader.getConfiguration().port, () => | |||||
console.log(`App listening on port ${configLoader.getConfiguration().port}!`) | |||||
); |