From aff663229976d113d00aea8f2b78586e776b6c9f Mon Sep 17 00:00:00 2001 From: horaanchal Date: Mon, 10 Feb 2020 11:20:00 +0530 Subject: [PATCH 1/8] node.js express mongoDB CRUD on dashboard --- Anchal_Hora/nodejs/Login.js | 34 + Anchal_Hora/nodejs/UI/create.html | 82 ++ Anchal_Hora/nodejs/UI/delete.html | 78 ++ Anchal_Hora/nodejs/UI/index.html | 74 ++ Anchal_Hora/nodejs/UI/js/delete.js | 34 + Anchal_Hora/nodejs/UI/js/get.js | 27 + Anchal_Hora/nodejs/UI/js/post.js | 28 + Anchal_Hora/nodejs/UI/js/update.js | 43 + Anchal_Hora/nodejs/UI/styles/admin.css | 82 ++ Anchal_Hora/nodejs/UI/styles/style.css | 95 ++ Anchal_Hora/nodejs/UI/update.html | 77 ++ Anchal_Hora/nodejs/UI/view.html | 54 + Anchal_Hora/nodejs/controllers/.gitignore | 1 + Anchal_Hora/nodejs/controllers/employee.js | 57 + Anchal_Hora/nodejs/controllers/index.js | 4 + Anchal_Hora/nodejs/database/config.js | 15 + Anchal_Hora/nodejs/index.html | 64 + Anchal_Hora/nodejs/index.js | 25 + Anchal_Hora/nodejs/models/employee.js | 22 + Anchal_Hora/nodejs/models/index.js | 5 + Anchal_Hora/nodejs/package-lock.json | 1256 ++++++++++++++++++++ Anchal_Hora/nodejs/package.json | 19 + Anchal_Hora/nodejs/routes/route.js | 12 + Anchal_Hora/nodejs/schemas/employee.js | 29 + Anchal_Hora/nodejs/schemas/index.js | 4 + Anchal_Hora/nodejs/signup.js | 31 + Anchal_Hora/nodejs/style.css | 54 + 27 files changed, 2306 insertions(+) create mode 100644 Anchal_Hora/nodejs/Login.js create mode 100644 Anchal_Hora/nodejs/UI/create.html create mode 100644 Anchal_Hora/nodejs/UI/delete.html create mode 100644 Anchal_Hora/nodejs/UI/index.html create mode 100644 Anchal_Hora/nodejs/UI/js/delete.js create mode 100644 Anchal_Hora/nodejs/UI/js/get.js create mode 100644 Anchal_Hora/nodejs/UI/js/post.js create mode 100644 Anchal_Hora/nodejs/UI/js/update.js create mode 100644 Anchal_Hora/nodejs/UI/styles/admin.css create mode 100644 Anchal_Hora/nodejs/UI/styles/style.css create mode 100644 Anchal_Hora/nodejs/UI/update.html create mode 100644 Anchal_Hora/nodejs/UI/view.html create mode 100644 Anchal_Hora/nodejs/controllers/.gitignore create mode 100644 Anchal_Hora/nodejs/controllers/employee.js create mode 100644 Anchal_Hora/nodejs/controllers/index.js create mode 100644 Anchal_Hora/nodejs/database/config.js create mode 100644 Anchal_Hora/nodejs/index.html create mode 100644 Anchal_Hora/nodejs/index.js create mode 100644 Anchal_Hora/nodejs/models/employee.js create mode 100644 Anchal_Hora/nodejs/models/index.js create mode 100644 Anchal_Hora/nodejs/package-lock.json create mode 100644 Anchal_Hora/nodejs/package.json create mode 100644 Anchal_Hora/nodejs/routes/route.js create mode 100644 Anchal_Hora/nodejs/schemas/employee.js create mode 100644 Anchal_Hora/nodejs/schemas/index.js create mode 100644 Anchal_Hora/nodejs/signup.js create mode 100644 Anchal_Hora/nodejs/style.css diff --git a/Anchal_Hora/nodejs/Login.js b/Anchal_Hora/nodejs/Login.js new file mode 100644 index 0000000..d3d03a0 --- /dev/null +++ b/Anchal_Hora/nodejs/Login.js @@ -0,0 +1,34 @@ +function func(){ + window.location.href = "./admin/index.html"; + } +document.getElementById("button").addEventListener("click",Gettoken) +function Gettoken(){ + + var Sno=parseInt(document.getElementById("inputid").value); + var Username=document.getElementById("inputName").value; + var Email=document.getElementById("inputEmail").value; + var Password=document.getElementById("inputPassword").value; + + + var get = { + "Sno":Sno, + "Name":Username, + "Email":Email, + "Password":Password + }; + console.log(get); + //sendHTTPReq('POST', "http://localhost:51391/api/Panel", json).then(x => func() ); + var xhr= new XMLHttpRequest(); + var url="http://localhost:51391/api/Login"; + xhr.open('POST', url,true); + xhr.responseType='json'; + xhr.setRequestHeader('Content-type','application/json'); + console.log(JSON.stringify(get)); + xhr.onload = () => { + console.log(xhr.status); + //var jwtToken = xhr.response.token; + + }; + xhr.send(JSON.stringify(get)); +} + diff --git a/Anchal_Hora/nodejs/UI/create.html b/Anchal_Hora/nodejs/UI/create.html new file mode 100644 index 0000000..744dc08 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/create.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + Manage admin + + +
+ + + +
+ +
+ +
+ +
+

Add users

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+ +
+
+
+ + + + + + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/delete.html b/Anchal_Hora/nodejs/UI/delete.html new file mode 100644 index 0000000..b0c73b9 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/delete.html @@ -0,0 +1,78 @@ + + + + + + + + + + Manage user + + +
+ + + +
+ +
+ +
+
+ + Manage user +
+ +
+

User Information

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ +
+ +
+
+
+ + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/index.html b/Anchal_Hora/nodejs/UI/index.html new file mode 100644 index 0000000..16032b8 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/index.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + Manage admin + + +
+ + + +
+ +
+ +
+ + +
+

Manage users

+ + + + + + + + + + + + + + + + +
SNo.User nameAction
1Anchalupdatedelete
+
+
+ + + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/js/delete.js b/Anchal_Hora/nodejs/UI/js/delete.js new file mode 100644 index 0000000..008bb93 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/js/delete.js @@ -0,0 +1,34 @@ +document.getElementById("buttondelete").addEventListener("click",admindeletedata) +function admindeletedata(){ + + let id = document.getElementById("id").value; + console.log(id.value); + + // Creating a XHR object + var xhr = new XMLHttpRequest(); + let url = "https://localhost:51391/api/delete/"+id; + + + // open a connection + xhr.open("DELETE", url, true); + + // Set the request header i.e. which type of content you are sending + xhr.setRequestHeader("Content-Type", "application/json"); + + // Create a state change callback + xhr.onreadystatechange = function () { + if (xhr.readyState === 4 && xhr.status === 200) { + alert("deleted user") + console.log(url); + } + else{ + alert("no user with such ID"); + } + }; + + // Converting JSON data to string + var data = JSON.stringify({ "id": id.value}); + + // Sending data with the request + xhr.send(data); +} \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/js/get.js b/Anchal_Hora/nodejs/UI/js/get.js new file mode 100644 index 0000000..b69248a --- /dev/null +++ b/Anchal_Hora/nodejs/UI/js/get.js @@ -0,0 +1,27 @@ +function adminget(){} + + fetch('https://localhost:51391/api/get') + .then(function (response) { + return response.json(); + }) + .then(function (data) { + appendData(data); + }) + .catch(function (err) { + console.log(err); + }); + +function appendData(data) +{ + var users = document.getElementById("users"); + console.log(users); + + for (var i = 0; i < data.length; i++) { + var div = document.createElement("div"); + div.innerHTML = 'Name: ' + data[i].name + "Email :" + data[i].email + "Password :" + data[i].password + "ContactNo :" + data[i].contactno; + users.appendChild(div); + } +} + + + diff --git a/Anchal_Hora/nodejs/UI/js/post.js b/Anchal_Hora/nodejs/UI/js/post.js new file mode 100644 index 0000000..8e8d80f --- /dev/null +++ b/Anchal_Hora/nodejs/UI/js/post.js @@ -0,0 +1,28 @@ +document.getElementById("buttonsignup").addEventListener("click",adminpostdata); +function adminpostdata(){ + var Sno=document.getElementById("inputSno").value; + var Username=document.getElementById("inputName").value; + var Email=document.getElementById("inputEmail").value; + var Password=document.getElementById("inputPassword").value; + + var format={ + "Sno":Sno, + "Name":Username, + "Email":Email, + "Password":Password + }; + console.log(format); + //sendHTTPReq('POST', "http://localhost:51391/api/Panel", json).then(x => func() ); + var xhr= new XMLHttpRequest(); + var url="http://localhost:51391/api/post"; + xhr.open('POST', url,true); + xhr.responseType='json'; + xhr.setRequestHeader('Content-type','application/json'); + console.log(JSON.stringify(format)); + xhr.onload = () => { + console.log(xhr.status); + //var jwtToken = xhr.response.token; + + }; + xhr.send(JSON.stringify(format)); +} \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/js/update.js b/Anchal_Hora/nodejs/UI/js/update.js new file mode 100644 index 0000000..bda602e --- /dev/null +++ b/Anchal_Hora/nodejs/UI/js/update.js @@ -0,0 +1,43 @@ +document.getElementById("buttonupdate").addEventListener("click",adminupdatedata); +function adminupdatedata(){ + var Sno=document.getElementById("inputSno").value; + var Username=document.getElementById("inputName").value; + var Email=document.getElementById("inputEmail").value; + var Password=document.getElementById("inputPassword").value; + + + // Creating a XHR object + var xhr = new XMLHttpRequest(); + let url = "https://localhost:51391/api/update/"+id; + console.log(url); + + // open a connection + xhr.open("PUT", url, true); + + // Set the request header i.e. which type of content you are sending + xhr.setRequestHeader("Content-Type", "application/json"); + + // Create a state change callback + xhr.onreadystatechange = function () { + if (xhr.readyState===4){ + if (xhr.status === 200) { + console.log("updated"); + alert("successfully updated"); + } + else { + alert("unsuccessful"); + } + } + }; + + // Converting JSON data to string + var data = JSON.stringify({ + "Sno":Sno, + "Name":Username, + "Email":Email, + "Password":Password }); + console.log(data); + + // Sending data with the request + xhr.send(data); +} \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/styles/admin.css b/Anchal_Hora/nodejs/UI/styles/admin.css new file mode 100644 index 0000000..a1790ef --- /dev/null +++ b/Anchal_Hora/nodejs/UI/styles/admin.css @@ -0,0 +1,82 @@ +header{ + background: #01474a; +} +.nav{ + display: flex; +} +.admin-wrapper{ + display: flex; + height:calc(100%-66px); +} +.admin-wrapper .left-sidebar{ + flex:3; + height:100vh; + background: #FF7F50 ; + border-top: 1px solid black; +} +.admin-wrapper .left-sidebar ul{ + list-style:none; + margin-top:4rem; + text-align: center; + padding: 4rem; + border:5rem; + color:white; + +} +.admin-wrapper .left-sidebar ul li a { + padding:18px; + display: block; + border-bottom:1px solid black; +} +.admin-wrapper .left-sidebar ul li a:hover { + background:rgb(121, 145, 165); +} + +.admin-wrapper .admin-content{ + flex:7; + height:100%; + padding:40px 100px 100px; + +} +.admin-content .page-title{ + text-align:center; + margin-bottom:1.5rem; +} +table{ + width:100%; + border-collapse:collapse; + font-size:1.1rem; + +} + +th, +td{ + padding:15px; + text-align:left; + border-bottom:1px solid darkkhaki; +} + +.edit{ + color:firebrick; +} +.update{ + color:forestgreen; +} +.delete{ + color:darkslategray; +} + +.edit:hover, +.delete:hover, +.publish:hover{ + text-decoration:underline; +} + +form div{ + margin-bottom: 15px; +} + + + + + diff --git a/Anchal_Hora/nodejs/UI/styles/style.css b/Anchal_Hora/nodejs/UI/styles/style.css new file mode 100644 index 0000000..c1b7ff2 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/styles/style.css @@ -0,0 +1,95 @@ +*{ + box-sizing:border-box; +} + +body{ + padding:0px; + margin:0px; + background: #f6f6f6; + font-family: 'Lora', serif; +} + +header{ + background: #008489; + height:66px; +} + +header * { + color: white; +} + +header .logo{ + float:left; + height:inherit; + margin-left:2em; + +} + +header .logo-text{ +margin:10px; +font-family: 'Condal', serif; +} + +header .logo-text span { + color:#FF4500; + +} + +header ul{ + float:right; + margin:0px; + padding:0px; + list-style: none; +} + +header ul li{ + float:left; + position:relative; +} + +header ul li ul{ + position:absolute; + top:66px; + right:0px; + width:180px; + display:none; +} + +header ul li:hover ul{ + display:block; +} + +header ul li ul li{ + width:100%; +} + +header ul li ul li a{ + padding:10px; + background:white; + color:#444; +} + +header ul li ul li a{ + color:red; +} + +header ul li ul li a:hover{ + background: #d5d5d6; +} + + +header ul li a{ + display:block; + padding:21px; + font-size:1.1em; + text-decoration:none; +} + +header ul li a:hover{ + background: #008489; + transition:0.5s; +} + +header.menu-toggle{ + display:none; +} \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/update.html b/Anchal_Hora/nodejs/UI/update.html new file mode 100644 index 0000000..675ede0 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/update.html @@ -0,0 +1,77 @@ + + + + + + + + + + Manage user + + +
+ + + +
+ +
+ +
+
+ + Manage user +
+ +
+

User Information

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/view.html b/Anchal_Hora/nodejs/UI/view.html new file mode 100644 index 0000000..7e62d02 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/view.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + Manage admin + + +
+ + + +
+ +
+ +
+
+ + + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/controllers/.gitignore b/Anchal_Hora/nodejs/controllers/.gitignore new file mode 100644 index 0000000..db54059 --- /dev/null +++ b/Anchal_Hora/nodejs/controllers/.gitignore @@ -0,0 +1 @@ +./../node_modules/** \ No newline at end of file diff --git a/Anchal_Hora/nodejs/controllers/employee.js b/Anchal_Hora/nodejs/controllers/employee.js new file mode 100644 index 0000000..b89b56e --- /dev/null +++ b/Anchal_Hora/nodejs/controllers/employee.js @@ -0,0 +1,57 @@ +const model = require("../models"); +class Employee { + constructor() {} + async create(req, res) { + let employeeObj = { + name: req.body.name, + phoneNo: req.body.phoneNo, + address: { + city: req.body.city, + state: req.body.state + }, + designation: req.body.designation, + emailid: req.body.emailid, + age: req.body.age, + technologies: req.body.technologies + }; + const employee = await model.employee.save(employeeObj); + res.send(employee); + } + + + async update(req, res) { + let employeeObj = { + name: req.body.name, + phoneNo: req.body.phoneNo, + address: { + city: req.body.city, + state: req.body.state + }, + designation: req.body.designation, + emailid: req.body.emailid, + age: req.body.age, + technologies: req.body.technologies + }; + const employeeList=await model.employee.update({"id":req.params.id}); + res.send(employee); + + } + + async delete(req, res) { + const employeeList=await model.employee.delete({"id":req.params.id}); + res.send(employee) +} + + +async show(req, res) { + const employeeList=await model.employee.get({"id":req.params.id}); + res.send(employee); + +} + async index(req, res) { + const employeeList=await model.employee.get(); + res.send(employee); + + } +} +module.exports = new Employee(); diff --git a/Anchal_Hora/nodejs/controllers/index.js b/Anchal_Hora/nodejs/controllers/index.js new file mode 100644 index 0000000..80292df --- /dev/null +++ b/Anchal_Hora/nodejs/controllers/index.js @@ -0,0 +1,4 @@ +const employees= require('./employee') +module.exports={ + employees:employees, +} \ No newline at end of file diff --git a/Anchal_Hora/nodejs/database/config.js b/Anchal_Hora/nodejs/database/config.js new file mode 100644 index 0000000..1174b9d --- /dev/null +++ b/Anchal_Hora/nodejs/database/config.js @@ -0,0 +1,15 @@ +const mongoose = require("mongoose"); +const url = "mongodb://localhost:27017/bootcamp"; + +mongoose.Promise = global.Promise; +mongoose + .connect(url, { useNewUrlParser: true, keepAlive: 1 }) + .then(res => { + console.log("Connection Established"); + console.log(res); + }) + .catch(error => { + console.log(error.message); + }); + +module.exports = mongoose; diff --git a/Anchal_Hora/nodejs/index.html b/Anchal_Hora/nodejs/index.html new file mode 100644 index 0000000..f46d5b6 --- /dev/null +++ b/Anchal_Hora/nodejs/index.html @@ -0,0 +1,64 @@ + + + + + + + + + + Document + + + +
+

login Form

+
+ + + + + diff --git a/Anchal_Hora/nodejs/index.js b/Anchal_Hora/nodejs/index.js new file mode 100644 index 0000000..122c9b2 --- /dev/null +++ b/Anchal_Hora/nodejs/index.js @@ -0,0 +1,25 @@ +const express = require("express"); +const bodyParser = require("body-parser"); +const app = express(); +const database = require("./database/config"); +app.use(bodyParser.json()); + +require('./routes/route.js')(app); + +app.get("/", (req, res) => { + console.log("Hello, This is node"); + res.send({ text: "Welcome to node.js" }); +}); +app.post("/bootcamp", (req, res) => { + console.log(req.body); + res.send({ session: `Bootcamp session:${req.body.year}` }); +}); + +app.post("/resume", (req, res) => { + console.log(req.body); + res.send({ name: `${req.body.name}`, course: `${req.body.course}` }); +}); + +app.listen(3000, () => { + console.log("Listening port 3000"); +}); diff --git a/Anchal_Hora/nodejs/models/employee.js b/Anchal_Hora/nodejs/models/employee.js new file mode 100644 index 0000000..b5d6de2 --- /dev/null +++ b/Anchal_Hora/nodejs/models/employee.js @@ -0,0 +1,22 @@ +const mongoose = require("mongoose"); +const schema = require("../schemas"); +const employeeSchema = mongoose.Schema(schema.employee); +class Employee { + constructor() { + this.model = mongoose.model("Employee", employeeSchema); + } + async get(criteria = {}) { + return this.model.find(criteria); + } + async save(employeeObj = {}) { + return this.model.create(employeeObj); + } + async update(criteria = {}, updatedObj) { + return this.model.update(criteria, updatedObj); + } + async delete(criteria={}, employeeObj){ + return this.model.delete(criteria, employeeObj); + } + +} +module.exports = new Employee(); diff --git a/Anchal_Hora/nodejs/models/index.js b/Anchal_Hora/nodejs/models/index.js new file mode 100644 index 0000000..bc1b92a --- /dev/null +++ b/Anchal_Hora/nodejs/models/index.js @@ -0,0 +1,5 @@ +const employee = require("./employee"); + +module.exports = { + employee: employee +}; diff --git a/Anchal_Hora/nodejs/package-lock.json b/Anchal_Hora/nodejs/package-lock.json new file mode 100644 index 0000000..3fede9b --- /dev/null +++ b/Anchal_Hora/nodejs/package-lock.json @@ -0,0 +1,1256 @@ +{ + "name": "nodejs", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "bson": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", + "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "optional": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "kareem": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", + "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mongodb": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", + "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "mongoose": { + "version": "5.8.11", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.11.tgz", + "integrity": "sha512-Yz0leNEJsAtNtMTxTDEadacLWt58gaVeBVL3c1Z3vaBoc159aJqlf+T8jaL9mAdBxKndF5YWhh6Q719xac7cjA==", + "requires": { + "bson": "~1.1.1", + "kareem": "2.3.1", + "mongodb": "3.4.1", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.6.0", + "mquery": "3.2.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.1.2", + "sift": "7.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mongose": { + "version": "0.0.2-security", + "resolved": "https://registry.npmjs.org/mongose/-/mongose-0.0.2-security.tgz", + "integrity": "sha512-XJUBQHhC/12+hWtrcB1Ww+gkxSzbxg4VdjpNlBQGvFoyPm1bErhA+3n/IkWbGCkavFB1OSycpvpCRphPsZXgLw==" + }, + "mpath": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==" + }, + "mquery": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", + "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nodemon": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz", + "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==", + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "pstree.remy": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "requires": { + "picomatch": "^2.0.7" + } + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "requires": { + "debug": "^2.2.0" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } +} diff --git a/Anchal_Hora/nodejs/package.json b/Anchal_Hora/nodejs/package.json new file mode 100644 index 0000000..9b89ea9 --- /dev/null +++ b/Anchal_Hora/nodejs/package.json @@ -0,0 +1,19 @@ +{ + "name": "nodejs", + "version": "1.0.0", + "description": "Anchal", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "nodemon index.js" + }, + "author": "Anchal", + "license": "ISC", + "dependencies": { + "body-parser": "^1.19.0", + "express": "^4.17.1", + "mongoose": "^5.8.11", + "mongose": "0.0.2-security", + "nodemon": "^2.0.2" + } +} diff --git a/Anchal_Hora/nodejs/routes/route.js b/Anchal_Hora/nodejs/routes/route.js new file mode 100644 index 0000000..3f253eb --- /dev/null +++ b/Anchal_Hora/nodejs/routes/route.js @@ -0,0 +1,12 @@ +const controller = require("../controllers"); +module.exports = app => { + app.post("/employees/:Register", controller.employees.create); + app.get("/employees", controller.employees.index);//get without id + app.get("/employees", controller.employees.show);//get with id + app.delete("/employees/:id", controller.employees.delete); + app.put("/employees/:id", controller.employees.update); + + // app.get("/", (req, res) => { + // console.log("Hello, This is node"); + // res.send({ text: "Welcome to node.js" }); +}; diff --git a/Anchal_Hora/nodejs/schemas/employee.js b/Anchal_Hora/nodejs/schemas/employee.js new file mode 100644 index 0000000..370103a --- /dev/null +++ b/Anchal_Hora/nodejs/schemas/employee.js @@ -0,0 +1,29 @@ +module.exports = { + name: { + type: String, + default: null + }, + phoneNo: { + type: String, + default: null + }, + address: { + city:{ type: String, + default: null}, + state: + { type: String, + default: null} + }, + designation: { + type: String, + default: null + }, + emailid: { + type: String, + required: true + }, + age: { + type: Number + }, + technologies: [{ type: String }] +}; diff --git a/Anchal_Hora/nodejs/schemas/index.js b/Anchal_Hora/nodejs/schemas/index.js new file mode 100644 index 0000000..3ef5cbe --- /dev/null +++ b/Anchal_Hora/nodejs/schemas/index.js @@ -0,0 +1,4 @@ +const employee = require("./employee"); +module.exports = { + employee: employee +}; diff --git a/Anchal_Hora/nodejs/signup.js b/Anchal_Hora/nodejs/signup.js new file mode 100644 index 0000000..b48da0d --- /dev/null +++ b/Anchal_Hora/nodejs/signup.js @@ -0,0 +1,31 @@ +document.getElementById("btn").addEventListener("click",Postdata) +function Postdata(){ + var Sno=parseInt(document.getElementById("inputid").value); + var Username=document.getElementById("inputName").value; + var Email=document.getElementById("inputEmail").value; + var Password=document.getElementById("inputPassword").value; + + + var json={ + "Sno":Sno, + "Name":Username, + "Email":Email, + "Password":Password + }; + console.log(json); + //sendHTTPReq('POST', "http://localhost:51391/api/Panel", json).then(x => func() ); + var xhr= new XMLHttpRequest(); + var url="http://localhost:51391/api/Panel"; + xhr.open('POST', url,true); + xhr.responseType='json'; + xhr.setRequestHeader('Content-type','application/json'); + console.log(JSON.stringify(json)); + xhr.onload = () => { + console.log(xhr.status); + //var jwtToken = xhr.response.token; + + }; + xhr.send(JSON.stringify(json)); +} + + diff --git a/Anchal_Hora/nodejs/style.css b/Anchal_Hora/nodejs/style.css new file mode 100644 index 0000000..970f806 --- /dev/null +++ b/Anchal_Hora/nodejs/style.css @@ -0,0 +1,54 @@ +body#LoginForm{ background-image:url("https://hdwallsource.com/img/2014/9/blur-26347-27038-hd-wallpapers.jpg"); background-repeat:no-repeat; background-position:center; background-size:cover; padding:10px;} + +.form-heading { color:#fff; font-size:23px;} + +.panel h2{ color:#444444; font-size:18px; margin:0 0 8px 0;} +.panel p { color:#777777; font-size:14px; margin-bottom:30px; line-height:24px;} +.login-form .form-control { + background: #f7f7f7 none repeat scroll 0 0; + border: 1px solid #d4d4d4; + border-radius: 1rem; + font-size: 14px; + height: 50px; + line-height: 50px; +} +.main-div { + background: #ffffff none repeat scroll 0 0; + border-radius: 1rem; + margin: 1px auto 10px; + max-width: 38%; + padding: 1px 10px 10px 20px; +} + +.login-form .form-group { + margin-bottom:5px; +} +.login-form{ text-align:center;} +.forgot a { + color: #777777; + font-size: 14px; + text-decoration: underline; +} +.login-form .btn.btn-primary { + background: #f0ad4e none repeat scroll 0 0; + border-color: #f0ad4e; + color: #ffffff; + font-size: 14px; + width: 100%; + height: 50px; + line-height: 50px; + padding: 0; +} +.forgot { + text-align: left; margin-bottom:5px; +} +.botto-text { + color: #ffffff; + font-size: 14px; + margin: auto; +} +.login-form .btn.btn-primary.reset { + background: #ff9900 none repeat scroll 0 0; +} +.back { text-align: left; margin-top:10px;} +.back a {color: #444444; font-size: 13px;text-decoration: none;} From 2e97c1fa0cb76a72a2493b0bb708844e92931477 Mon Sep 17 00:00:00 2001 From: horaanchal Date: Mon, 10 Feb 2020 23:40:13 +0530 Subject: [PATCH 2/8] Issues resolved --- Anchal_Hora/nodejs/Login.js | 10 +++---- Anchal_Hora/nodejs/UI/js/delete.js | 6 ++-- Anchal_Hora/nodejs/UI/js/get.js | 4 +-- Anchal_Hora/nodejs/UI/js/post.js | 8 ++--- Anchal_Hora/nodejs/UI/js/update.js | 6 ++-- Anchal_Hora/nodejs/controllers/employee.js | 35 ++++++++++++++++++++-- Anchal_Hora/nodejs/database/config.js | 2 +- Anchal_Hora/nodejs/index.html | 8 ++++- Anchal_Hora/nodejs/index.js | 24 +++++++-------- Anchal_Hora/nodejs/models/employee.js | 22 ++++++++++---- Anchal_Hora/nodejs/routes/route.js | 6 ++-- Anchal_Hora/nodejs/signup.js | 8 ++--- 12 files changed, 93 insertions(+), 46 deletions(-) diff --git a/Anchal_Hora/nodejs/Login.js b/Anchal_Hora/nodejs/Login.js index d3d03a0..f5a0304 100644 --- a/Anchal_Hora/nodejs/Login.js +++ b/Anchal_Hora/nodejs/Login.js @@ -1,8 +1,8 @@ -function func(){ +function login(){ window.location.href = "./admin/index.html"; } -document.getElementById("button").addEventListener("click",Gettoken) -function Gettoken(){ +document.getElementById("button").addEventListener("click",getToken) +function getToken(){ var Sno=parseInt(document.getElementById("inputid").value); var Username=document.getElementById("inputName").value; @@ -17,9 +17,9 @@ function Gettoken(){ "Password":Password }; console.log(get); - //sendHTTPReq('POST', "http://localhost:51391/api/Panel", json).then(x => func() ); + //sendHTTPReq('POST', "http://localhost:3000/employees/login", json).then(x => func() ); var xhr= new XMLHttpRequest(); - var url="http://localhost:51391/api/Login"; + var url="http://localhost:3000/employees/login"; xhr.open('POST', url,true); xhr.responseType='json'; xhr.setRequestHeader('Content-type','application/json'); diff --git a/Anchal_Hora/nodejs/UI/js/delete.js b/Anchal_Hora/nodejs/UI/js/delete.js index 008bb93..0abfc6b 100644 --- a/Anchal_Hora/nodejs/UI/js/delete.js +++ b/Anchal_Hora/nodejs/UI/js/delete.js @@ -1,12 +1,12 @@ -document.getElementById("buttondelete").addEventListener("click",admindeletedata) -function admindeletedata(){ +document.getElementById("buttondelete").addEventListener("click",adminDeletedata) +function adminDeletedata(){ let id = document.getElementById("id").value; console.log(id.value); // Creating a XHR object var xhr = new XMLHttpRequest(); - let url = "https://localhost:51391/api/delete/"+id; + let url = "https://localhost:3000/employees/"+id; // open a connection diff --git a/Anchal_Hora/nodejs/UI/js/get.js b/Anchal_Hora/nodejs/UI/js/get.js index b69248a..671d9a7 100644 --- a/Anchal_Hora/nodejs/UI/js/get.js +++ b/Anchal_Hora/nodejs/UI/js/get.js @@ -1,6 +1,6 @@ -function adminget(){} +function adminGet(){} - fetch('https://localhost:51391/api/get') + fetch('https://localhost:3000/employees') .then(function (response) { return response.json(); }) diff --git a/Anchal_Hora/nodejs/UI/js/post.js b/Anchal_Hora/nodejs/UI/js/post.js index 8e8d80f..62d27c7 100644 --- a/Anchal_Hora/nodejs/UI/js/post.js +++ b/Anchal_Hora/nodejs/UI/js/post.js @@ -1,5 +1,5 @@ -document.getElementById("buttonsignup").addEventListener("click",adminpostdata); -function adminpostdata(){ +document.getElementById("buttonsignup").addEventListener("click",adminPostdata); +function adminPostdata(){ var Sno=document.getElementById("inputSno").value; var Username=document.getElementById("inputName").value; var Email=document.getElementById("inputEmail").value; @@ -12,9 +12,9 @@ function adminpostdata(){ "Password":Password }; console.log(format); - //sendHTTPReq('POST', "http://localhost:51391/api/Panel", json).then(x => func() ); + //sendHTTPReq('POST', "http://localhost:3000/employees", json).then(x => func() ); var xhr= new XMLHttpRequest(); - var url="http://localhost:51391/api/post"; + var url="http://localhost:3000/employees"; xhr.open('POST', url,true); xhr.responseType='json'; xhr.setRequestHeader('Content-type','application/json'); diff --git a/Anchal_Hora/nodejs/UI/js/update.js b/Anchal_Hora/nodejs/UI/js/update.js index bda602e..daac966 100644 --- a/Anchal_Hora/nodejs/UI/js/update.js +++ b/Anchal_Hora/nodejs/UI/js/update.js @@ -1,5 +1,5 @@ -document.getElementById("buttonupdate").addEventListener("click",adminupdatedata); -function adminupdatedata(){ +document.getElementById("buttonupdate").addEventListener("click",adminUpdatedata); +function adminUpdatedata(){ var Sno=document.getElementById("inputSno").value; var Username=document.getElementById("inputName").value; var Email=document.getElementById("inputEmail").value; @@ -8,7 +8,7 @@ function adminupdatedata(){ // Creating a XHR object var xhr = new XMLHttpRequest(); - let url = "https://localhost:51391/api/update/"+id; + let url = "https://localhost:3000/employees/"+id; console.log(url); // open a connection diff --git a/Anchal_Hora/nodejs/controllers/employee.js b/Anchal_Hora/nodejs/controllers/employee.js index b89b56e..4f42e56 100644 --- a/Anchal_Hora/nodejs/controllers/employee.js +++ b/Anchal_Hora/nodejs/controllers/employee.js @@ -18,9 +18,25 @@ class Employee { res.send(employee); } - + async add(req, res) { + let employeeObj = { + name: req.body.name, + phoneNo: req.body.phoneNo, + address: { + city: req.body.city, + state: req.body.state + }, + designation: req.body.designation, + emailid: req.body.emailid, + age: req.body.age, + technologies: req.body.technologies + }; + const employee = await model.employee.save(employeeObj); + res.send(employee); + } + async update(req, res) { - let employeeObj = { + const employeeObj = { name: req.body.name, phoneNo: req.body.phoneNo, address: { @@ -53,5 +69,18 @@ async show(req, res) { res.send(employee); } + async login(req,res){ + let loginObject={ + username: "Anchal", + password: "@nchal1995", + role: "Intern" + } + jwt.sign({user: {username: loginObject.username, role: loginObject.role}},'secretkey',{ expiresIn: '1h' },(err,token)=>{ + res.json({ + token:token + }); + }); + +} } -module.exports = new Employee(); +module.exports =new Employee(); \ No newline at end of file diff --git a/Anchal_Hora/nodejs/database/config.js b/Anchal_Hora/nodejs/database/config.js index 1174b9d..e6bd87c 100644 --- a/Anchal_Hora/nodejs/database/config.js +++ b/Anchal_Hora/nodejs/database/config.js @@ -1,5 +1,5 @@ const mongoose = require("mongoose"); -const url = "mongodb://localhost:27017/bootcamp"; +const url = "mongodb://localhost:27017/EmployeeDB"; mongoose.Promise = global.Promise; mongoose diff --git a/Anchal_Hora/nodejs/index.html b/Anchal_Hora/nodejs/index.html index f46d5b6..163a9e6 100644 --- a/Anchal_Hora/nodejs/index.html +++ b/Anchal_Hora/nodejs/index.html @@ -5,6 +5,8 @@ + + Document @@ -51,13 +53,17 @@

Login Page

- +

Designed by Anchal Hora

+ + + + diff --git a/Anchal_Hora/nodejs/index.js b/Anchal_Hora/nodejs/index.js index 122c9b2..847fa87 100644 --- a/Anchal_Hora/nodejs/index.js +++ b/Anchal_Hora/nodejs/index.js @@ -6,19 +6,19 @@ app.use(bodyParser.json()); require('./routes/route.js')(app); -app.get("/", (req, res) => { - console.log("Hello, This is node"); - res.send({ text: "Welcome to node.js" }); -}); -app.post("/bootcamp", (req, res) => { - console.log(req.body); - res.send({ session: `Bootcamp session:${req.body.year}` }); -}); +// app.get("/", (req, res) => { +// console.log("Hello, This is node"); +// res.send({ text: "Welcome to node.js" }); +// }); +// app.post("/bootcamp", (req, res) => { +// console.log(req.body); +// res.send({ session: `Bootcamp session:${req.body.year}` }); +// }); -app.post("/resume", (req, res) => { - console.log(req.body); - res.send({ name: `${req.body.name}`, course: `${req.body.course}` }); -}); +// app.post("/resume", (req, res) => { +// console.log(req.body); +// res.send({ name: `${req.body.name}`, course: `${req.body.course}` }); +// }); app.listen(3000, () => { console.log("Listening port 3000"); diff --git a/Anchal_Hora/nodejs/models/employee.js b/Anchal_Hora/nodejs/models/employee.js index b5d6de2..049b36d 100644 --- a/Anchal_Hora/nodejs/models/employee.js +++ b/Anchal_Hora/nodejs/models/employee.js @@ -8,15 +8,25 @@ class Employee { async get(criteria = {}) { return this.model.find(criteria); } + async save(empObj={}) +{ + return this.model.add(empObj) +} async save(employeeObj = {}) { return this.model.create(employeeObj); } - async update(criteria = {}, updatedObj) { - return this.model.update(criteria, updatedObj); - } - async delete(criteria={}, employeeObj){ - return this.model.delete(criteria, employeeObj); - } + async update(criteria={}){ + return this.model.update(criteria) +} +async delete(criteria={}) +{ + return this.model.delete(criteria) +} +async find(criteria={}) +{ + return this.model.find(criteria) +} + } module.exports = new Employee(); diff --git a/Anchal_Hora/nodejs/routes/route.js b/Anchal_Hora/nodejs/routes/route.js index 3f253eb..8a99319 100644 --- a/Anchal_Hora/nodejs/routes/route.js +++ b/Anchal_Hora/nodejs/routes/route.js @@ -1,8 +1,10 @@ const controller = require("../controllers"); module.exports = app => { - app.post("/employees/:Register", controller.employees.create); + app.post("/employees/register", controller.employees.create); + app.post("/employees/login", controller.employees.login); + app.post("/employees", controller.employees.add); app.get("/employees", controller.employees.index);//get without id - app.get("/employees", controller.employees.show);//get with id + app.get("/employees/:id", controller.employees.show);//get with id app.delete("/employees/:id", controller.employees.delete); app.put("/employees/:id", controller.employees.update); diff --git a/Anchal_Hora/nodejs/signup.js b/Anchal_Hora/nodejs/signup.js index b48da0d..83feff1 100644 --- a/Anchal_Hora/nodejs/signup.js +++ b/Anchal_Hora/nodejs/signup.js @@ -1,5 +1,5 @@ -document.getElementById("btn").addEventListener("click",Postdata) -function Postdata(){ +document.getElementById("btn").addEventListener("click",postData) +function postData(){ var Sno=parseInt(document.getElementById("inputid").value); var Username=document.getElementById("inputName").value; var Email=document.getElementById("inputEmail").value; @@ -13,9 +13,9 @@ function Postdata(){ "Password":Password }; console.log(json); - //sendHTTPReq('POST', "http://localhost:51391/api/Panel", json).then(x => func() ); + //sendHTTPReq('POST', "http://localhost:3000/employees/register", json).then(x => func() ); var xhr= new XMLHttpRequest(); - var url="http://localhost:51391/api/Panel"; + var url="http://localhost:3000/employees/register"; xhr.open('POST', url,true); xhr.responseType='json'; xhr.setRequestHeader('Content-type','application/json'); From bf87fc835efa5e2dfa9b9c494ebd486778f639b9 Mon Sep 17 00:00:00 2001 From: horaanchal Date: Mon, 10 Feb 2020 23:53:07 +0530 Subject: [PATCH 3/8] Request object name changed --- Anchal_Hora/nodejs/Login.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Anchal_Hora/nodejs/Login.js b/Anchal_Hora/nodejs/Login.js index f5a0304..cc319c8 100644 --- a/Anchal_Hora/nodejs/Login.js +++ b/Anchal_Hora/nodejs/Login.js @@ -10,25 +10,25 @@ function getToken(){ var Password=document.getElementById("inputPassword").value; - var get = { + var jformat= { "Sno":Sno, "Name":Username, "Email":Email, "Password":Password }; - console.log(get); + console.log(jformat); //sendHTTPReq('POST', "http://localhost:3000/employees/login", json).then(x => func() ); var xhr= new XMLHttpRequest(); var url="http://localhost:3000/employees/login"; xhr.open('POST', url,true); xhr.responseType='json'; xhr.setRequestHeader('Content-type','application/json'); - console.log(JSON.stringify(get)); + console.log(JSON.stringify(jformat)); xhr.onload = () => { console.log(xhr.status); //var jwtToken = xhr.response.token; }; - xhr.send(JSON.stringify(get)); + xhr.send(JSON.stringify(jformat)); } From 260eec7487162d07c2f39f7a2b0baf8ab8b19dce Mon Sep 17 00:00:00 2001 From: horaanchal Date: Mon, 10 Feb 2020 23:54:09 +0530 Subject: [PATCH 4/8] Request object name changed --- Anchal_Hora/nodejs/Login.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Anchal_Hora/nodejs/Login.js b/Anchal_Hora/nodejs/Login.js index cc319c8..09a1a81 100644 --- a/Anchal_Hora/nodejs/Login.js +++ b/Anchal_Hora/nodejs/Login.js @@ -10,25 +10,25 @@ function getToken(){ var Password=document.getElementById("inputPassword").value; - var jformat= { + var json= { "Sno":Sno, "Name":Username, "Email":Email, "Password":Password }; - console.log(jformat); + console.log(json); //sendHTTPReq('POST', "http://localhost:3000/employees/login", json).then(x => func() ); var xhr= new XMLHttpRequest(); var url="http://localhost:3000/employees/login"; xhr.open('POST', url,true); xhr.responseType='json'; xhr.setRequestHeader('Content-type','application/json'); - console.log(JSON.stringify(jformat)); + console.log(JSON.stringify(json)); xhr.onload = () => { console.log(xhr.status); //var jwtToken = xhr.response.token; }; - xhr.send(JSON.stringify(jformat)); + xhr.send(JSON.stringify(json)); } From 6bd6842dba9b50af2a1822dfa10c2f4b04c73637 Mon Sep 17 00:00:00 2001 From: horaanchal Date: Tue, 11 Feb 2020 16:53:32 +0530 Subject: [PATCH 5/8] JWT token generate and decode --- Anchal_Hora/nodejs/Login.js | 22 +++++++++++++++++ Anchal_Hora/nodejs/controllers/employee.js | 28 ++++++++++++++-------- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/Anchal_Hora/nodejs/Login.js b/Anchal_Hora/nodejs/Login.js index 09a1a81..e2c7f13 100644 --- a/Anchal_Hora/nodejs/Login.js +++ b/Anchal_Hora/nodejs/Login.js @@ -31,4 +31,26 @@ function getToken(){ }; xhr.send(JSON.stringify(json)); } +//saving token in local storage +function saveToken(token){ + if(typeof Storage !=="undefined"){ + localStorage.setItem("JWTtoken",token); + } + else{ + console.log("Browser doesn't support"); + } + decodeToken(token); +} + +//for decoding the token + +function decodeToken (token) { + var base64Url = token.split('.')[1]; + var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); + var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); + console.log(jsonPayload); + return JSON.parse(jsonPayload); +} diff --git a/Anchal_Hora/nodejs/controllers/employee.js b/Anchal_Hora/nodejs/controllers/employee.js index 4f42e56..6d23b93 100644 --- a/Anchal_Hora/nodejs/controllers/employee.js +++ b/Anchal_Hora/nodejs/controllers/employee.js @@ -1,4 +1,7 @@ -const model = require("../models"); +const model = require('../models'); +const jwt = require('jsonwebtoken') +const bcrypt= require('bcrypt') + class Employee { constructor() {} async create(req, res) { @@ -71,16 +74,21 @@ async show(req, res) { } async login(req,res){ let loginObject={ - username: "Anchal", - password: "@nchal1995", - role: "Intern" + Name: "req.body.Name", + password: "req.body.password", + Email: "req.body.Email" } - jwt.sign({user: {username: loginObject.username, role: loginObject.role}},'secretkey',{ expiresIn: '1h' },(err,token)=>{ - res.json({ - token:token + + if(loginObject.Name==="Anchal"&& loginObject.password==="hora" && loginObject.Email==="horaanchal@gmail.com"){ + jwt.sign({user: {Name: loginObj.username, Email: loginObj.Email}},'secretkey',{ expiresIn: '1h' },(err,token)=>{ + res.json({ + token:token + }); }); - }); - -} + } + else{ + console.log("error") + } + } } module.exports =new Employee(); \ No newline at end of file From 00aea274c4975e99f79f7c6396d1d74ef4e1e03c Mon Sep 17 00:00:00 2001 From: horaanchal Date: Wed, 12 Feb 2020 13:21:07 +0530 Subject: [PATCH 6/8] Indentation of UI improved --- Anchal_Hora/nodejs/UI/create.html | 2 +- Anchal_Hora/nodejs/UI/delete.html | 3 ++- Anchal_Hora/nodejs/UI/index.html | 2 +- Anchal_Hora/nodejs/UI/update.html | 3 ++- Anchal_Hora/nodejs/UI/view.html | 3 ++- Anchal_Hora/nodejs/index.html | 2 +- Anchal_Hora/nodejs/models/employee.js | 21 +++++++++------------ Anchal_Hora/nodejs/schemas/employee.js | 10 +++++++--- 8 files changed, 25 insertions(+), 21 deletions(-) diff --git a/Anchal_Hora/nodejs/UI/create.html b/Anchal_Hora/nodejs/UI/create.html index 744dc08..fa9096d 100644 --- a/Anchal_Hora/nodejs/UI/create.html +++ b/Anchal_Hora/nodejs/UI/create.html @@ -7,7 +7,7 @@ - + Manage admin diff --git a/Anchal_Hora/nodejs/UI/delete.html b/Anchal_Hora/nodejs/UI/delete.html index b0c73b9..6f7faa8 100644 --- a/Anchal_Hora/nodejs/UI/delete.html +++ b/Anchal_Hora/nodejs/UI/delete.html @@ -5,7 +5,7 @@ - + Manage user @@ -73,6 +73,7 @@

User Information

+ \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/index.html b/Anchal_Hora/nodejs/UI/index.html index 16032b8..5b2e0be 100644 --- a/Anchal_Hora/nodejs/UI/index.html +++ b/Anchal_Hora/nodejs/UI/index.html @@ -7,7 +7,7 @@ - + Manage admin diff --git a/Anchal_Hora/nodejs/UI/update.html b/Anchal_Hora/nodejs/UI/update.html index 675ede0..da6d662 100644 --- a/Anchal_Hora/nodejs/UI/update.html +++ b/Anchal_Hora/nodejs/UI/update.html @@ -5,7 +5,7 @@ - + Manage user @@ -72,6 +72,7 @@

User Information

+ \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/view.html b/Anchal_Hora/nodejs/UI/view.html index 7e62d02..19342d3 100644 --- a/Anchal_Hora/nodejs/UI/view.html +++ b/Anchal_Hora/nodejs/UI/view.html @@ -7,7 +7,7 @@ - + Manage admin @@ -48,6 +48,7 @@

View users

+ diff --git a/Anchal_Hora/nodejs/index.html b/Anchal_Hora/nodejs/index.html index 163a9e6..e3ec9d7 100644 --- a/Anchal_Hora/nodejs/index.html +++ b/Anchal_Hora/nodejs/index.html @@ -7,7 +7,7 @@ - + Document diff --git a/Anchal_Hora/nodejs/models/employee.js b/Anchal_Hora/nodejs/models/employee.js index 049b36d..17539d0 100644 --- a/Anchal_Hora/nodejs/models/employee.js +++ b/Anchal_Hora/nodejs/models/employee.js @@ -8,25 +8,22 @@ class Employee { async get(criteria = {}) { return this.model.find(criteria); } - async save(empObj={}) -{ + async save(empObj={}){ return this.model.add(empObj) -} + } async save(employeeObj = {}) { return this.model.create(employeeObj); } async update(criteria={}){ return this.model.update(criteria) -} -async delete(criteria={}) -{ + } + async delete(criteria={}){ return this.model.delete(criteria) -} -async find(criteria={}) -{ + } + async find(criteria={}){ return this.model.find(criteria) -} + } -} -module.exports = new Employee(); + } + module.exports = new Employee(); diff --git a/Anchal_Hora/nodejs/schemas/employee.js b/Anchal_Hora/nodejs/schemas/employee.js index 370103a..9ea8eb7 100644 --- a/Anchal_Hora/nodejs/schemas/employee.js +++ b/Anchal_Hora/nodejs/schemas/employee.js @@ -1,8 +1,12 @@ module.exports = { - name: { + Name: { type: String, default: null }, + password: { + type:String, + default: null + }, phoneNo: { type: String, default: null @@ -14,11 +18,11 @@ module.exports = { { type: String, default: null} }, - designation: { + Designation: { type: String, default: null }, - emailid: { + Emailid: { type: String, required: true }, From 69eed51f446f65dc902a77284ae0564e8a8c6fbf Mon Sep 17 00:00:00 2001 From: horaanchal Date: Wed, 12 Feb 2020 13:38:44 +0530 Subject: [PATCH 7/8] file path modified in UI --- Anchal_Hora/nodejs/UI/{ => admin}/create.html | 4 ++-- Anchal_Hora/nodejs/UI/{ => admin}/delete.html | 6 +++--- Anchal_Hora/nodejs/UI/{ => admin}/index.html | 2 +- Anchal_Hora/nodejs/UI/{ => admin}/js/delete.js | 0 Anchal_Hora/nodejs/UI/{ => admin}/js/get.js | 0 Anchal_Hora/nodejs/UI/{ => admin}/js/post.js | 0 Anchal_Hora/nodejs/UI/{ => admin}/js/update.js | 0 Anchal_Hora/nodejs/UI/{ => admin}/styles/admin.css | 0 Anchal_Hora/nodejs/UI/{ => admin}/styles/style.css | 0 Anchal_Hora/nodejs/UI/{ => admin}/update.html | 6 +++--- Anchal_Hora/nodejs/UI/{ => admin}/view.html | 4 ++-- 11 files changed, 11 insertions(+), 11 deletions(-) rename Anchal_Hora/nodejs/UI/{ => admin}/create.html (96%) rename Anchal_Hora/nodejs/UI/{ => admin}/delete.html (93%) rename Anchal_Hora/nodejs/UI/{ => admin}/index.html (97%) rename Anchal_Hora/nodejs/UI/{ => admin}/js/delete.js (100%) rename Anchal_Hora/nodejs/UI/{ => admin}/js/get.js (100%) rename Anchal_Hora/nodejs/UI/{ => admin}/js/post.js (100%) rename Anchal_Hora/nodejs/UI/{ => admin}/js/update.js (100%) rename Anchal_Hora/nodejs/UI/{ => admin}/styles/admin.css (100%) rename Anchal_Hora/nodejs/UI/{ => admin}/styles/style.css (100%) rename Anchal_Hora/nodejs/UI/{ => admin}/update.html (93%) rename Anchal_Hora/nodejs/UI/{ => admin}/view.html (94%) diff --git a/Anchal_Hora/nodejs/UI/create.html b/Anchal_Hora/nodejs/UI/admin/create.html similarity index 96% rename from Anchal_Hora/nodejs/UI/create.html rename to Anchal_Hora/nodejs/UI/admin/create.html index fa9096d..6e7d75a 100644 --- a/Anchal_Hora/nodejs/UI/create.html +++ b/Anchal_Hora/nodejs/UI/admin/create.html @@ -7,7 +7,7 @@ - + Manage admin @@ -76,7 +76,7 @@

Add users

- + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/delete.html b/Anchal_Hora/nodejs/UI/admin/delete.html similarity index 93% rename from Anchal_Hora/nodejs/UI/delete.html rename to Anchal_Hora/nodejs/UI/admin/delete.html index 6f7faa8..d2b2cc3 100644 --- a/Anchal_Hora/nodejs/UI/delete.html +++ b/Anchal_Hora/nodejs/UI/admin/delete.html @@ -5,8 +5,8 @@ - - + + Manage user @@ -73,7 +73,7 @@

User Information

- + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/index.html b/Anchal_Hora/nodejs/UI/admin/index.html similarity index 97% rename from Anchal_Hora/nodejs/UI/index.html rename to Anchal_Hora/nodejs/UI/admin/index.html index 5b2e0be..16032b8 100644 --- a/Anchal_Hora/nodejs/UI/index.html +++ b/Anchal_Hora/nodejs/UI/admin/index.html @@ -7,7 +7,7 @@ - + Manage admin diff --git a/Anchal_Hora/nodejs/UI/js/delete.js b/Anchal_Hora/nodejs/UI/admin/js/delete.js similarity index 100% rename from Anchal_Hora/nodejs/UI/js/delete.js rename to Anchal_Hora/nodejs/UI/admin/js/delete.js diff --git a/Anchal_Hora/nodejs/UI/js/get.js b/Anchal_Hora/nodejs/UI/admin/js/get.js similarity index 100% rename from Anchal_Hora/nodejs/UI/js/get.js rename to Anchal_Hora/nodejs/UI/admin/js/get.js diff --git a/Anchal_Hora/nodejs/UI/js/post.js b/Anchal_Hora/nodejs/UI/admin/js/post.js similarity index 100% rename from Anchal_Hora/nodejs/UI/js/post.js rename to Anchal_Hora/nodejs/UI/admin/js/post.js diff --git a/Anchal_Hora/nodejs/UI/js/update.js b/Anchal_Hora/nodejs/UI/admin/js/update.js similarity index 100% rename from Anchal_Hora/nodejs/UI/js/update.js rename to Anchal_Hora/nodejs/UI/admin/js/update.js diff --git a/Anchal_Hora/nodejs/UI/styles/admin.css b/Anchal_Hora/nodejs/UI/admin/styles/admin.css similarity index 100% rename from Anchal_Hora/nodejs/UI/styles/admin.css rename to Anchal_Hora/nodejs/UI/admin/styles/admin.css diff --git a/Anchal_Hora/nodejs/UI/styles/style.css b/Anchal_Hora/nodejs/UI/admin/styles/style.css similarity index 100% rename from Anchal_Hora/nodejs/UI/styles/style.css rename to Anchal_Hora/nodejs/UI/admin/styles/style.css diff --git a/Anchal_Hora/nodejs/UI/update.html b/Anchal_Hora/nodejs/UI/admin/update.html similarity index 93% rename from Anchal_Hora/nodejs/UI/update.html rename to Anchal_Hora/nodejs/UI/admin/update.html index da6d662..086ce6f 100644 --- a/Anchal_Hora/nodejs/UI/update.html +++ b/Anchal_Hora/nodejs/UI/admin/update.html @@ -5,8 +5,8 @@ - - + + Manage user @@ -72,7 +72,7 @@

User Information

- + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/view.html b/Anchal_Hora/nodejs/UI/admin/view.html similarity index 94% rename from Anchal_Hora/nodejs/UI/view.html rename to Anchal_Hora/nodejs/UI/admin/view.html index 19342d3..471cd29 100644 --- a/Anchal_Hora/nodejs/UI/view.html +++ b/Anchal_Hora/nodejs/UI/admin/view.html @@ -7,7 +7,7 @@ - + Manage admin @@ -48,7 +48,7 @@

View users

- + From 5b8f3a69b277861e075036c31e52730b44c18465 Mon Sep 17 00:00:00 2001 From: horaanchal Date: Wed, 12 Feb 2020 13:46:47 +0530 Subject: [PATCH 8/8] some UI files added --- Anchal_Hora/nodejs/UI/manager/create.html | 79 +++++++++++++++ Anchal_Hora/nodejs/UI/manager/index.html | 71 ++++++++++++++ .../nodejs/UI/manager/styles/admin.css | 86 +++++++++++++++++ .../nodejs/UI/manager/styles/style.css | 95 +++++++++++++++++++ Anchal_Hora/nodejs/UI/manager/update.html | 76 +++++++++++++++ Anchal_Hora/nodejs/UI/user/index.html | 78 +++++++++++++++ Anchal_Hora/nodejs/UI/user/styles/admin.css | 87 +++++++++++++++++ Anchal_Hora/nodejs/UI/user/styles/style.css | 95 +++++++++++++++++++ 8 files changed, 667 insertions(+) create mode 100644 Anchal_Hora/nodejs/UI/manager/create.html create mode 100644 Anchal_Hora/nodejs/UI/manager/index.html create mode 100644 Anchal_Hora/nodejs/UI/manager/styles/admin.css create mode 100644 Anchal_Hora/nodejs/UI/manager/styles/style.css create mode 100644 Anchal_Hora/nodejs/UI/manager/update.html create mode 100644 Anchal_Hora/nodejs/UI/user/index.html create mode 100644 Anchal_Hora/nodejs/UI/user/styles/admin.css create mode 100644 Anchal_Hora/nodejs/UI/user/styles/style.css diff --git a/Anchal_Hora/nodejs/UI/manager/create.html b/Anchal_Hora/nodejs/UI/manager/create.html new file mode 100644 index 0000000..4561f31 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/manager/create.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + Manage manager + + +
+ + + +
+ +
+ +
+ +
+

Add users

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+ +
+
+
+ + + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/manager/index.html b/Anchal_Hora/nodejs/UI/manager/index.html new file mode 100644 index 0000000..2786c77 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/manager/index.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + Manage manager + + +
+ + + +
+ +
+ +
+ + +
+

Manage users

+ + + + + + + + + + + + + + + +
SNo.User nameAction
1Anchalupdate
+
+
+ + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/manager/styles/admin.css b/Anchal_Hora/nodejs/UI/manager/styles/admin.css new file mode 100644 index 0000000..8b3987a --- /dev/null +++ b/Anchal_Hora/nodejs/UI/manager/styles/admin.css @@ -0,0 +1,86 @@ +header{ + background: #01474a; +} +.nav{ + display: flex; +} +.admin-wrapper{ + display: flex; + height:calc(100%-66px); +} + +.admin-wrapper .left-sidebar{ + flex:3; + height:100vh; + background: #FF7F50; + border-top: 1px solid black; + +} +.admin-wrapper .left-sidebar ul{ + list-style:none; + margin-top:4rem; + text-align: center; + padding: 4rem; + border:5rem; + color:white; + +} + +.admin-wrapper .left-sidebar ul li a { + padding:18px; + display: block; + border-bottom:1px solid black; +} + +.admin-wrapper .left-sidebar ul li a:hover { + background:rgb(121, 145, 165); +} + +.admin-wrapper .admin-content{ + flex:7; + height:100%; + padding:40px 100px 100px; + +} + +.admin-content .page-title{ + text-align:center; + margin-bottom:1.5rem; +} +table{ + width:100%; + border-collapse:collapse; + font-size:1.1rem; +} + +th, +td{ + padding:15px; + text-align:left; + border-bottom:1px solid darkkhaki; +} + +.edit{ + color:firebrick; +} +.update{ + color:forestgreen; +} +.delete{ + color:darkslategray; +} + +.edit:hover, +.delete:hover, +.publish:hover{ + text-decoration:underline; +} + +form div{ + margin-bottom: 15px; +} + + + + + diff --git a/Anchal_Hora/nodejs/UI/manager/styles/style.css b/Anchal_Hora/nodejs/UI/manager/styles/style.css new file mode 100644 index 0000000..c1b7ff2 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/manager/styles/style.css @@ -0,0 +1,95 @@ +*{ + box-sizing:border-box; +} + +body{ + padding:0px; + margin:0px; + background: #f6f6f6; + font-family: 'Lora', serif; +} + +header{ + background: #008489; + height:66px; +} + +header * { + color: white; +} + +header .logo{ + float:left; + height:inherit; + margin-left:2em; + +} + +header .logo-text{ +margin:10px; +font-family: 'Condal', serif; +} + +header .logo-text span { + color:#FF4500; + +} + +header ul{ + float:right; + margin:0px; + padding:0px; + list-style: none; +} + +header ul li{ + float:left; + position:relative; +} + +header ul li ul{ + position:absolute; + top:66px; + right:0px; + width:180px; + display:none; +} + +header ul li:hover ul{ + display:block; +} + +header ul li ul li{ + width:100%; +} + +header ul li ul li a{ + padding:10px; + background:white; + color:#444; +} + +header ul li ul li a{ + color:red; +} + +header ul li ul li a:hover{ + background: #d5d5d6; +} + + +header ul li a{ + display:block; + padding:21px; + font-size:1.1em; + text-decoration:none; +} + +header ul li a:hover{ + background: #008489; + transition:0.5s; +} + +header.menu-toggle{ + display:none; +} \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/manager/update.html b/Anchal_Hora/nodejs/UI/manager/update.html new file mode 100644 index 0000000..1527648 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/manager/update.html @@ -0,0 +1,76 @@ + + + + + + + + + + Manage user + + +
+ + + +
+ +
+ +
+
+ + Manage user +
+ +
+

User Information

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/user/index.html b/Anchal_Hora/nodejs/UI/user/index.html new file mode 100644 index 0000000..a9b6d57 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/user/index.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + Manage user + + +
+ + + +
+ +
+ +
+
+ + Manage user +
+ +
+

User Information

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/Anchal_Hora/nodejs/UI/user/styles/admin.css b/Anchal_Hora/nodejs/UI/user/styles/admin.css new file mode 100644 index 0000000..2171d15 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/user/styles/admin.css @@ -0,0 +1,87 @@ +header{ + background: #01474a; +} +.nav{ + display: flex; +} + +.admin-wrapper{ + display: flex; + height:calc(100%-66px); + +} + +.admin-wrapper .left-sidebar{ + flex:3; + height:100vh; + background: #FF7F50; + border-top: 1px solid black; + +} +.admin-wrapper .left-sidebar ul{ + list-style:none; + margin-top:4rem; + text-align: center; + padding: 4rem; + border:5rem; + color:white; +} + +.admin-wrapper .left-sidebar ul li a { + padding:18px; + display: block; + border-bottom:1px solid black; +} + +.admin-wrapper .left-sidebar ul li a:hover { + background:rgb(121, 145, 165); +} + +.admin-wrapper .admin-content{ + flex:7; + height:100%; + padding:40px 100px 100px; + +} + +.admin-content .page-title{ + text-align:center; + margin-bottom:1.5rem; +} +table{ + width:100%; + border-collapse:collapse; + font-size:1.1rem; +} + +th, +td{ + padding:15px; + text-align:left; + border-bottom:1px solid darkkhaki; +} + +.edit{ + color:firebrick; +} +.update{ + color:forestgreen; +} +.delete{ + color:darkslategray; +} + +.edit:hover, +.delete:hover, +.publish:hover{ + text-decoration:underline; +} + +form div{ + margin-bottom: 15px; +} + + + + + diff --git a/Anchal_Hora/nodejs/UI/user/styles/style.css b/Anchal_Hora/nodejs/UI/user/styles/style.css new file mode 100644 index 0000000..c1b7ff2 --- /dev/null +++ b/Anchal_Hora/nodejs/UI/user/styles/style.css @@ -0,0 +1,95 @@ +*{ + box-sizing:border-box; +} + +body{ + padding:0px; + margin:0px; + background: #f6f6f6; + font-family: 'Lora', serif; +} + +header{ + background: #008489; + height:66px; +} + +header * { + color: white; +} + +header .logo{ + float:left; + height:inherit; + margin-left:2em; + +} + +header .logo-text{ +margin:10px; +font-family: 'Condal', serif; +} + +header .logo-text span { + color:#FF4500; + +} + +header ul{ + float:right; + margin:0px; + padding:0px; + list-style: none; +} + +header ul li{ + float:left; + position:relative; +} + +header ul li ul{ + position:absolute; + top:66px; + right:0px; + width:180px; + display:none; +} + +header ul li:hover ul{ + display:block; +} + +header ul li ul li{ + width:100%; +} + +header ul li ul li a{ + padding:10px; + background:white; + color:#444; +} + +header ul li ul li a{ + color:red; +} + +header ul li ul li a:hover{ + background: #d5d5d6; +} + + +header ul li a{ + display:block; + padding:21px; + font-size:1.1em; + text-decoration:none; +} + +header ul li a:hover{ + background: #008489; + transition:0.5s; +} + +header.menu-toggle{ + display:none; +} \ No newline at end of file