diff --git a/Rev1/node/index.js b/Rev1/node/index.js
index 62d99aa..0901874 100644
--- a/Rev1/node/index.js
+++ b/Rev1/node/index.js
@@ -1,9 +1,13 @@
const express = require("express");
const path = require("path");
+const routes = require("./views/routes");
+
+const port = 3000;
// Init App
const app = express();
+app.set("view engine", "pug");
// Static Files
app.use(express.static("public"));
app.use("/css", express.static(__dirname + "public/css "));
@@ -11,11 +15,31 @@ app.use("/js", express.static(__dirname + "public/js "));
app.use("/img", express.static(__dirname + "public/img "));
// Home Route
+// for (route of routes) {
+// // console.log(route);
+// app.get(route.link, function (req, res) {
+// console.log(req.url);
+// console.log(route);
+// res.render(route.renderFile, routes);
+// });
+// }
app.get("/", function (req, res) {
- res.sendFile(__dirname + "/views/index.html");
+ res.render("index", routes);
+});
+app.get("/flasher", function (req, res) {
+ res.render("flasher", routes);
+});
+app.get("/p_generator", function (req, res) {
+ res.render("p_generator", routes);
+});
+app.get("/pcb_panel_bom", function (req, res) {
+ res.render("pcb_panel_bom", routes);
+});
+app.get("/invoice_sign", function (req, res) {
+ res.render("invoice_sign", routes);
});
// Start Server
-app.listen(3001, function () {
- console.log("Server started on port 3000...");
+app.listen(port, function () {
+ console.log(`Server started on port ${port}...`);
});
diff --git a/Rev1/node/public/js/pGenerator.js b/Rev1/node/public/js/pGenerator.js
new file mode 100644
index 0000000..d63d66b
--- /dev/null
+++ b/Rev1/node/public/js/pGenerator.js
@@ -0,0 +1,32 @@
+const saltMaster = "xG7t;a$LN=D5";
+const saltAdmin = "mXA4H_xb$g)c";
+
+function hash(m, salt) {
+ var result = "";
+ if (m.length != 24) throw "Invalid id";
+ for (var i = 0; i < 12; i++) {
+ //console.log(x.charAt(i));
+ playground = 0;
+ playground += salt.charCodeAt(i);
+ playground ^= m.charCodeAt(i);
+ playground ^= m.charCodeAt(i + 12);
+ playground &= 0xff;
+ playground %= 10;
+ result += playground.toString();
+ }
+ // console.log(result);
+ return result;
+}
+
+function getKeys(uid) {
+ var keys;
+ try {
+ keys = {
+ User: hash(uid, saltMaster),
+ Admin: hash(uid, saltAdmin),
+ };
+ } catch (error) {
+ keys = { err: "Invalid id" };
+ }
+ return keys;
+}
diff --git a/Rev1/node/views/flasher.pug b/Rev1/node/views/flasher.pug
new file mode 100644
index 0000000..6011f04
--- /dev/null
+++ b/Rev1/node/views/flasher.pug
@@ -0,0 +1,3 @@
+extends layout.pug
+block content
+ h1 flasher
\ No newline at end of file
diff --git a/Rev1/node/views/index.html b/Rev1/node/views/index.html
deleted file mode 100644
index ed59c66..0000000
--- a/Rev1/node/views/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
- Anka Anvil
-
-
- HEllo2
-
-
-
-
diff --git a/Rev1/node/views/index.pug b/Rev1/node/views/index.pug
index 9cee031..89f0d14 100644
--- a/Rev1/node/views/index.pug
+++ b/Rev1/node/views/index.pug
@@ -1,21 +1,8 @@
-doctype html
-html
- head
- title Anka Anvil
- body
- h1 #{title}
- h2 asdasd
- h2#terminal
- h1= title
- div= foo
- div
- label Bar
- input(
- type='text'
- name='city'
- placeholder='start typing...'
- )
- input(type='submit' id='submitbtn' value='Submit')
- script.
- document.addEventListener('keydown', event => {console.log("Bleep!")})
- document.getElementById('submitbtn').addEventListener('click', () => doSomething())
\ No newline at end of file
+extends layout.pug
+block scripts
+ script(src='/jquery.js')
+ script(src='/pets.js')
+
+block content
+ h1 hello world from index
+ p hi
\ No newline at end of file
diff --git a/Rev1/node/views/invoice_sign.pug b/Rev1/node/views/invoice_sign.pug
new file mode 100644
index 0000000..7f8d311
--- /dev/null
+++ b/Rev1/node/views/invoice_sign.pug
@@ -0,0 +1,3 @@
+extends layout.pug
+block content
+ h1 invoice signer
\ No newline at end of file
diff --git a/Rev1/node/views/layout.pug b/Rev1/node/views/layout.pug
new file mode 100644
index 0000000..b466b4c
--- /dev/null
+++ b/Rev1/node/views/layout.pug
@@ -0,0 +1,15 @@
+html
+ head
+ title My Site - #{title}
+ block scripts
+ script(src='/jquery.js')
+ body
+ ul
+ each route in routes
+ li
+ a(href=route.link)= route.name
+
+ block content
+ block foot
+ #footer
+ p some footer content
\ No newline at end of file
diff --git a/Rev1/node/views/p_generator.pug b/Rev1/node/views/p_generator.pug
new file mode 100644
index 0000000..2d9de44
--- /dev/null
+++ b/Rev1/node/views/p_generator.pug
@@ -0,0 +1,19 @@
+extends layout.pug
+block scripts
+ script(src='/js/pGenerator.js')
+block content
+ h1 p_generator
+ p UID:
+ input(id="in-id" type="text" name="imdb" placeholder="please input your device id")
+ button(onclick='clickme()') get keys
+ p
+ #response
+ script.
+ function clickme() {
+ var id = document.getElementById("in-id");
+ console.log(id.value);
+ var keys = getKeys(id.value);
+ console.log(keys);
+ var resp = document.getElementById("response");
+ resp.innerHTML = JSON.stringify(keys);
+ }
\ No newline at end of file
diff --git a/Rev1/node/views/pcb_panel_bom.pug b/Rev1/node/views/pcb_panel_bom.pug
new file mode 100644
index 0000000..1e14174
--- /dev/null
+++ b/Rev1/node/views/pcb_panel_bom.pug
@@ -0,0 +1,3 @@
+extends layout.pug
+block content
+ h1 pcb panelizer
\ No newline at end of file
diff --git a/Rev1/node/views/routes.js b/Rev1/node/views/routes.js
new file mode 100644
index 0000000..6d10fba
--- /dev/null
+++ b/Rev1/node/views/routes.js
@@ -0,0 +1,17 @@
+routes = [
+ { name: "Homepage", renderFile: "index", link: "/" },
+ { name: "Flasher", renderFile: "flasher", link: "/flasher" },
+ {
+ name: "Password Generator",
+ renderFile: "p_generator",
+ link: "/p_generator",
+ },
+ {
+ name: "PCB Panel BOM generator",
+ renderFile: "pcb_panel_bom",
+ link: "/pcb_panel_bom",
+ },
+ { name: "Invoice Signer", renderFile: "invoice_sign", link: "/invoice_sign" },
+];
+
+module.exports = routes;