Skip to content

Commit

Permalink
reorganized
Browse files Browse the repository at this point in the history
  • Loading branch information
ujjujjuj committed Jan 7, 2022
1 parent d5409f9 commit 970a3ce
Show file tree
Hide file tree
Showing 10 changed files with 86 additions and 102 deletions.
52 changes: 8 additions & 44 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,67 +1,31 @@
const express = require("express");
const mongoose = require("mongoose");
const crypto = require("crypto")
const cookieParser = require("cookie-parser");
const bodyParser = require("body-parser");
const accessCode = require("./middleware/accessCode.js");
const User = require("./models/User.js");
const Player = require("./models/Player.js");
const Game = require("./models/Game.js");
const Worker = require("./models/Worker.js");

const db = require("./db")
require("dotenv").config();

const app = express();

app.set("view engine", "ejs");
app.use(express.static("public"));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET))
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(accessCode);

app.use("/auth", require("./routes/auth.js"));
app.use("/", require("./routes/dash.js"));
app.use("/admin", require("./routes/admin.js"));

app.get("/", (req, res) => {
return res.send("index");
});


const initDatabase = async () => {
let admin = new User({
_id: "frontman",
password: crypto.createHash('sha256').update(process.env.FRONTMAN_PASS).digest('hex'),
isFrontman: true
});
await admin.save();

const players = require("./data/players.json")
for (let i = 0; i < players.rows.length; i++) {
const record = new Player({ _id: i + 1, ...players.rows[i] });
await record.save()
}

const games = require("./data/games.json")
for (let game of games.rows) {
const uuid = game.uuid
delete game.uuid
const record = new Game({ _id: uuid, ...game });
await record.save()
}

const workers = require("./data/workers.json")
for (let i = 1; i <= workers.rows.length; i++) {
const record = new Worker({ ...workers.rows[i] });
await record.save()
}
}

const isProduction = process.env.NODE_ENV == "production";
mongoose.connect(isProduction ? process.env.DB_URL : "mongodb://localhost:27017/iitg-2021", async () => {
process.env.PORT = isProduction ? (process.env.PORT || 5000) : 5000;

let admin = await User.findOne({ _id: "frontman" });
if (!admin) initDatabase();

if (!process.env.PORT) process.env.PORT = isProduction ? 80 : 3000;
db(() => {
app.listen(process.env.PORT, () => {
console.log(`server is listening on port ${process.env.PORT}`);
});
});
});
45 changes: 45 additions & 0 deletions db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
const mongoose = require("mongoose");
const crypto = require("crypto");
const User = require("./models/User.js");
const Player = require("./models/Player.js");
const Game = require("./models/Game.js");
const Worker = require("./models/Worker.js");

const initDatabase = async () => {
let admin = new User({
_id: "frontman",
password: crypto.createHash('sha256').update(process.env.FRONTMAN_PASS).digest('hex'),
isFrontman: true
});
await admin.save();

const players = require("./data/players.json")
for (let i = 0; i < players.rows.length; i++) {
let firstName = players.rows[i].name.split(" ")[0];
// let gender = ["men","women"][Math.floor(Math.random()*2)]
let gender = ["a", "e", "i", "o", "u"].includes(firstName[firstName.length - 1]) ? "women" : "men"; // statistics :+1:
const record = new Player({ _id: i + 1, ...players.rows[i], pfp: `https://randomuser.me/api/portraits/${gender}/${i % 100}.jpg` });
await record.save()
}

const games = require("./data/games.json")
for (let game of games.rows) {
const record = new Game({ _id: game.uuid, ...game });
await record.save()
}

const workers = require("./data/workers.json")
for (let i = 1; i <= workers.rows.length; i++) {
const record = new Worker({ ...workers.rows[i] });
await record.save()
}
}


module.exports = callback => {
mongoose.connect(process.env.NODE_ENV == "production" ? process.env.DB_URL : "mongodb://localhost:27017/ojingeo", async () => {
let admin = await User.findOne({ _id: "frontman" });
if (!admin) await initDatabase();
callback();
});
}
2 changes: 1 addition & 1 deletion middleware/accessCode.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = (req, res, next) => {

if (req.body.accessCode == code) {
res.cookie("accessCode", code, { maxAge: 1000 * 60 * 99999 }); // TODO: change expiry to 30 min
res.redirect("/");
res.redirect("/login");
} else if (req.body.accessCode) {
res.render("accessCode", { "error": "invalid code" });
} else {
Expand Down
4 changes: 2 additions & 2 deletions middleware/isFrontman.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = (req,res,next) => {
if(req.user && req.user.isFrontman) next();
module.exports = (req, res, next) => {
if (req.user && req.user.isFrontman) return next();
return res.send("access denied");
}
1 change: 1 addition & 0 deletions models/Player.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const playerSchema = new mongoose.Schema(
_id: Number,
name: String,
dob: String,
pfp: String,
occupation: String,
address: String,
debt: Number,
Expand Down
45 changes: 2 additions & 43 deletions package-lock.json

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

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "iitg-2021",
"name": "ojingeo",
"version": "1.0.0",
"description": "",
"main": "app.js",
Expand All @@ -10,7 +10,6 @@
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.24.0",
"body-parser": "^1.19.1",
"cookie-parser": "^1.4.6",
"dotenv": "^10.0.0",
Expand Down
Binary file added public/frontman.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 25 additions & 8 deletions routes/admin.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,32 @@
const express = require("express");
const isLoggedIn = require("../middleware/isLoggedIn")
const isFrontman = require("../middleware/isFrontman")
const isLoggedIn = require("../middleware/isLoggedIn");
const isFrontman = require("../middleware/isFrontman");
const Player = require("../models/Player");

const router = express.Router();

router.use("/",isLoggedIn)
router.use("/",isFrontman)
router.use("/", isLoggedIn);
router.use("/", isFrontman);

router.get("/", (req, res) => {
console.log(req.user);
return res.send("dash")
})
router.get("/players", async (req, res) => {
const players = await Player.find({});
console.log(players);
return res.send("players")
});

router.post("/player/new",async (req,res) => {

});

router.post("/player/edit",async (req,res) => {

});

router.get("/players", (req, res) => {
return res.send("players")
});
router.get("/players", (req, res) => {
return res.send("players")
});

module.exports = router;
3 changes: 1 addition & 2 deletions routes/auth.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const express = require("express");
const axios = require("axios");
const User = require("../models/User");
const crypto = require("crypto");

Expand All @@ -11,7 +10,7 @@ router.get("/login", (req, res) => {

router.get("/logout", (req, res) => {
res.cookie("auth", "goodybe", { maxAge: 0, signed: true });
res.redirect("/auth")
res.redirect("/auth/login")
});

router.get("/register", (req, res) => {
Expand Down

0 comments on commit 970a3ce

Please sign in to comment.