From 8f0b5dad382d6f7aa0423881b8e74d6c8678f67b Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 08:24:30 -0500 Subject: [PATCH 01/14] name added to README --- .gitignore | 1 + REAME.md | 1 + 2 files changed, 2 insertions(+) create mode 100644 .gitignore create mode 100644 REAME.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/REAME.md b/REAME.md new file mode 100644 index 0000000..4b6dc3e --- /dev/null +++ b/REAME.md @@ -0,0 +1 @@ +Jeff Dederick From d971a97b122de5f616e5bc1396b2fbc21d897c91 Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 08:29:51 -0500 Subject: [PATCH 02/14] basic file structure added --- index.js | 0 package-lock.json | 966 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 28 ++ 3 files changed, 994 insertions(+) create mode 100644 index.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/index.js b/index.js new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1e145dd --- /dev/null +++ b/package-lock.json @@ -0,0 +1,966 @@ +{ + "name": "project_superchat", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "async-redis": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-redis/-/async-redis-1.0.0.tgz", + "integrity": "sha1-7YDN6Pcu+JPIhUYRGxQrjWwigKI=", + "requires": { + "redis": "2.8.0", + "redis-commands": "1.3.1" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": true + } + } + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "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" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "optional": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" + }, + "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.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "engine.io": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.4.tgz", + "integrity": "sha1-PQIRtwpVLOhB/8fahiezAamkFi4=", + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.6.9", + "engine.io-parser": "2.1.1", + "uws": "0.14.5", + "ws": "3.3.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + } + } + }, + "engine.io-client": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.4.tgz", + "integrity": "sha1-T88TcLRxY70s6b4nM5ckMDUNTqE=", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.6.9", + "engine.io-parser": "2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "3.3.2", + "xmlhttprequest-ssl": "1.5.4", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.1.tgz", + "integrity": "sha1-4Ps/DgRi9/WLt3waUun1p+JuRmg=", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "express-handlebars": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.0.0.tgz", + "integrity": "sha1-gKBwu4GbCeSvLKbQeA91zgXnXC8=", + "requires": { + "glob": "6.0.4", + "graceful-fs": "4.1.11", + "handlebars": "4.0.11", + "object.assign": "4.0.4", + "promise": "7.3.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "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=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + } + }, + "has-binary2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", + "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=", + "requires": { + "isarray": "2.0.1" + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "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.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.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.8" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + }, + "object.assign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", + "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", + "requires": { + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "object-keys": "1.0.11" + } + }, + "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" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "1.0.2" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "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=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "redis": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", + "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", + "requires": { + "double-ended-queue": "2.1.0-0", + "redis-commands": "1.3.1", + "redis-parser": "2.6.0" + } + }, + "redis-commands": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz", + "integrity": "sha1-gdgm9F+pyLIBH0zXoP5ZfSQdRCs=" + }, + "redis-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + }, + "socket.io": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", + "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", + "requires": { + "debug": "2.6.9", + "engine.io": "3.1.4", + "socket.io-adapter": "1.1.1", + "socket.io-client": "2.0.4", + "socket.io-parser": "3.1.2" + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" + }, + "socket.io-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.6.9", + "engine.io-client": "3.1.4", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "3.1.2", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.2.tgz", + "integrity": "sha1-28IoIVH8T6675Aru3Ady66YZ9/I=", + "requires": { + "component-emitter": "1.2.1", + "debug": "2.6.9", + "has-binary2": "1.0.2", + "isarray": "2.0.1" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": "1.0.1" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "optional": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "ultron": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz", + "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uws": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/uws/-/uws-0.14.5.tgz", + "integrity": "sha1-Z6rzPEaypYel9mZtAPdpEyjxSdw=", + "optional": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", + "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.0" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.4.tgz", + "integrity": "sha1-BPVgkVcks4kIhxXMDteBPpZ3v1c=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..7079b1b --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "project_superchat", + "version": "1.0.0", + "description": "Build a realtime multi-room chat application. Make it super.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Seeker0/project_superchat.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/Seeker0/project_superchat/issues" + }, + "homepage": "https://github.com/Seeker0/project_superchat#readme", + "dependencies": { + "async-redis": "^1.0.0", + "body-parser": "^1.18.2", + "express": "^4.16.2", + "express-handlebars": "^3.0.0", + "socket.io": "^2.0.4", + "socket.io-client": "^2.0.4" + } +} From 0760c3c4a7ae84c3f59d1f51e6cd6295c102433f Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 11:25:48 -0500 Subject: [PATCH 03/14] pre-pairing commit --- index.js | 23 +++++++++++++++++++++++ models/redis_data.js | 17 +++++++++++++++++ views/home.handlebars | 21 +++++++++++++++++++++ views/layouts/main.handlebars | 23 +++++++++++++++++++++++ views/room.handlebars | 0 5 files changed, 84 insertions(+) create mode 100644 models/redis_data.js create mode 100644 views/home.handlebars create mode 100644 views/layouts/main.handlebars create mode 100644 views/room.handlebars diff --git a/index.js b/index.js index e69de29..3db5e76 100644 --- a/index.js +++ b/index.js @@ -0,0 +1,23 @@ +const express = require('express'); +const app = express(); +const router = express.Router(); +const server = require('http').createServer(app); +const exphbs = require('express-handlebars'); +const redis = require('async-redis'); +const client = redis.createClient(); +const io = require('socket.io')(server); + +app.use( + '/socket.io', + express.static(__dirname + 'node_modules/socket.io-client/dist/') +); + +let count = 0; + +app.get('/', (req, res) => { + console.log('hit'); + client.set(); +}); + +//Start server +server.listen(3000); diff --git a/models/redis_data.js b/models/redis_data.js new file mode 100644 index 0000000..1ad2831 --- /dev/null +++ b/models/redis_data.js @@ -0,0 +1,17 @@ +const dataModel = { + messages: { + body: '', + postedBy: '', + postRoom: '' + }, + users: { + userName: '', + id: '' + }, + rooms: { + roomName: '', + roomMesages: [] + } +}; + +module.exports = dataModel; diff --git a/views/home.handlebars b/views/home.handlebars new file mode 100644 index 0000000..df846f6 --- /dev/null +++ b/views/home.handlebars @@ -0,0 +1,21 @@ +
+ +
+
Super Chat
+
+ +
+
+
Cats
+
user1
+
user2
+
user3
+
+
+
New Post
+
type here
+
user2
+
+
+ +
diff --git a/views/layouts/main.handlebars b/views/layouts/main.handlebars new file mode 100644 index 0000000..fc5f3e4 --- /dev/null +++ b/views/layouts/main.handlebars @@ -0,0 +1,23 @@ + + + + + + + Bootstrap 101 Template + + + + + + + +

Hello, world!

+ + + {{{body}}} + + + < + + diff --git a/views/room.handlebars b/views/room.handlebars new file mode 100644 index 0000000..e69de29 From e0ec0348f598a86ba1dee25e3d7b12211cca26c7 Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 11:35:08 -0500 Subject: [PATCH 04/14] initial pair commit --- package-lock.json | 9 --------- package.json | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1e145dd..0c50007 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,15 +58,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "async-redis": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-redis/-/async-redis-1.0.0.tgz", - "integrity": "sha1-7YDN6Pcu+JPIhUYRGxQrjWwigKI=", - "requires": { - "redis": "2.8.0", - "redis-commands": "1.3.1" - } - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", diff --git a/package.json b/package.json index 7079b1b..f9258b0 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,10 @@ }, "homepage": "https://github.com/Seeker0/project_superchat#readme", "dependencies": { - "async-redis": "^1.0.0", "body-parser": "^1.18.2", "express": "^4.16.2", "express-handlebars": "^3.0.0", + "redis": "^2.8.0", "socket.io": "^2.0.4", "socket.io-client": "^2.0.4" } From 368b54eb6bec9fb99a761972e25604426f6bfb1c Mon Sep 17 00:00:00 2001 From: SamuelLangenfeld Date: Wed, 22 Nov 2017 12:28:44 -0500 Subject: [PATCH 05/14] can store and retrieve objects in redis --- index.js | 59 ++++++++++++++++++++++++++++++++++++++++--- package.json | 1 + views/home.handlebars | 20 ++++++++++----- 3 files changed, 69 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index 3db5e76..ca9a7ec 100644 --- a/index.js +++ b/index.js @@ -3,9 +3,15 @@ const app = express(); const router = express.Router(); const server = require('http').createServer(app); const exphbs = require('express-handlebars'); -const redis = require('async-redis'); +const redis = require('redis'); const client = redis.createClient(); +const bodyParser = require("body-parser"); +app.use(bodyParser.urlencoded({ extended: true })); const io = require('socket.io')(server); +app.engine("handlebars", exphbs({ defaultLayout: "main" })); +app.set("view engine", "handlebars"); +app.use(express.static(__dirname + '/public')); + app.use( '/socket.io', @@ -14,10 +20,55 @@ app.use( let count = 0; +var hgetAllPromise = (hash) => { + return new Promise((resolve, reject) => { + client.hgetall(hash, (err, data) => resolve(data)) + }) +} + +var hmgetPromise = (hash, field) => { + return new Promise((resolve, reject) => { + client.hmget(hash, field, (err, data) => resolve(data)) + }) +} + + app.get('/', (req, res) => { - console.log('hit'); - client.set(); + let params = []; + hgetAllPromise('messages') + .then(console.log) + + /* + client.getall((err, data) => { + //data == 1 + let dataObj = hmget('messages', data); + console.log("dataobj is " + dataObj); + let jsonObj = JSON.parse(dataObj); + //jsonObj = {body:,postedBy:} + params.push(jsonObj); + }) + + */ + res.render('home'); }); + +app.post('/', (req, res) => { + let newMessage = req.body.newMessage; + + /* + client.hmget('messages', (err, data) => { + console.log(err); + console.log(data); + }) + + */ + let obj = { body: newMessage, postedBy: '', room: '' }; + obj = JSON.stringify(obj); + client.hmset('messages', '1', obj); + console.log(newMessage); + console.log(obj); +}) + //Start server -server.listen(3000); +server.listen(3000); \ No newline at end of file diff --git a/package.json b/package.json index 7079b1b..5a1b95b 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "body-parser": "^1.18.2", "express": "^4.16.2", "express-handlebars": "^3.0.0", + "redis": "^2.8.0", "socket.io": "^2.0.4", "socket.io-client": "^2.0.4" } diff --git a/views/home.handlebars b/views/home.handlebars index df846f6..b1c1b22 100644 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -6,16 +6,22 @@
-
Cats
-
user1
-
user2
-
user3
+ {{#each messages as |message|}} +
{{message.user}}
+ {{/each}}
-
New Post
-
type here
-
user2
+ {{#each messages as |message|}} +
{{message.body}}
+ {{/each}}
+
+
+ + +
+
+ From 21532ee3c82ff98133286c510d444193df3eaf76 Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 13:07:29 -0500 Subject: [PATCH 06/14] courtesty push --- dump.rdb | Bin 0 -> 263 bytes index.js | 44 +++++++++++++++++++++++++----------------- views/home.handlebars | 4 ++-- 3 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..6422ec5cc2d041d527da2873f8170e8565f43a47 GIT binary patch literal 263 zcmXX;y-ve07&MhC3Y2aPY>_7hQaK?N2~&iqDpuGKi=FQaSkyS!=1+)M;BC4`-5Gcl zHjG3_3euf)ce=Z?>B;FiV=VO>20_~J0Zl&{vvKS<{{kVMt#jWmoK(2HTkKr;!M#NY z6{=3hoj_Fh zt<^%8rA1d0KjgX$tL{+Du_iy{dyQ-l6k5x#(B`ulA!OLHN62R{eW60bGd-g2TH2rm j4{q@>_^;D_T50PLj=M_hjMl1CuTAszev?1#eq8 { +var hgetAllPromise = hash => { return new Promise((resolve, reject) => { - client.hgetall(hash, (err, data) => resolve(data)) - }) -} + client.hgetall(hash, (err, data) => resolve(data)); + }); +}; var hmgetPromise = (hash, field) => { return new Promise((resolve, reject) => { - client.hmget(hash, field, (err, data) => resolve(data)) - }) -} - + client.hmget(hash, field, (err, data) => resolve(data)); + }); +}; app.get('/', (req, res) => { let params = []; hgetAllPromise('messages') - .then(console.log) - + .then(data => { + let keys = Object.keys(data); + keys.forEach(key => { + let json = JSON.parse(data[key]); + params.push(json); + }); + }) + .then(data => { + console.log(params); + let paramsObj = {}; + paramsObj.messages = params; + res.render('home', paramsObj); + }); /* client.getall((err, data) => { //data == 1 @@ -49,10 +58,8 @@ app.get('/', (req, res) => { }) */ - res.render('home'); }); - app.post('/', (req, res) => { let newMessage = req.body.newMessage; @@ -66,9 +73,10 @@ app.post('/', (req, res) => { let obj = { body: newMessage, postedBy: '', room: '' }; obj = JSON.stringify(obj); client.hmset('messages', '1', obj); + client.hmset('messages', '2', obj); console.log(newMessage); console.log(obj); -}) +}); //Start server -server.listen(3000); \ No newline at end of file +server.listen(3000); diff --git a/views/home.handlebars b/views/home.handlebars index b1c1b22..236df32 100644 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -7,12 +7,12 @@
{{#each messages as |message|}} -
{{message.user}}
+
{{message.body}}
{{/each}}
{{#each messages as |message|}} -
{{message.body}}
+
{{message.postedBy}}
{{/each}}
From 3e087f2f36f564d542dfa0ebcc28ad2ef57524b1 Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 14:58:43 -0500 Subject: [PATCH 07/14] prep for afternoon pairing --- dump.rdb | Bin 263 -> 1261 bytes index.js | 70 +++++++++++++++++++++++----------- views/home.handlebars | 9 ++++- views/layouts/main.handlebars | 19 ++++++++- 4 files changed, 71 insertions(+), 27 deletions(-) diff --git a/dump.rdb b/dump.rdb index 6422ec5cc2d041d527da2873f8170e8565f43a47..14f118f8f6fc7af12ca72175c7c754498b04a4d9 100644 GIT binary patch literal 1261 zcmb`GPm9zr6u|4cH@u&5)!HLHuMM zEPL`3co0v10q+%DJL8xhH-eBy=!0K=ukR(V&Yr(`?fZVzYzv^7^xlE!h5P<~(Cqw4 zkW9(?xalP-V{rNT%l)@azmh;b2JG_X$AQxf1k4LhDgl^zl+;(v)+&?Hhm_(`GLA{? zM)LpdzeqW`SL(gK<)f;er`CMsUvBuT!j~`=Q>B z43)DqM>?-qsa0ix-g#osb6#j9(@dduEx4FT3;ymzZpKD-kz$2f7fJ+9W)^I(Gh!-jN3t0h<9d)5s@+bdbEd0ySx|%H6XSZ5 zW)e*~NW{z4UlOiVdsVK#LmS;ZC}w4*a8X!bcb^*f0$TGwdvE-g>i4>K)3$A*5*D>@ x9h%zzKDKtBT9CsdLtcnX0m5kghArTGV*{U8SDI%dQ%GVpTbrWO|`rl%G=xVtkjFz^5| z69dC1CW~sNr2LdhB`c+pjLc#MAWBroOD$J`Dp%4`D#$M`NlkGADFO0|^7C^+tlIzo N`_5)NR7hTo0RW7$D8B#z diff --git a/index.js b/index.js index 5d90525..c2ec91a 100644 --- a/index.js +++ b/index.js @@ -47,35 +47,59 @@ app.get('/', (req, res) => { paramsObj.messages = params; res.render('home', paramsObj); }); - /* - client.getall((err, data) => { - //data == 1 - let dataObj = hmget('messages', data); - console.log("dataobj is " + dataObj); - let jsonObj = JSON.parse(dataObj); - //jsonObj = {body:,postedBy:} - params.push(jsonObj); - }) - - */ }); +let getMessageCounter = () => { + return new Promise((resolve, reject) => { + client.get('messageCounter', (err, data) => { + if (err) { + console.error(err); + } + return resolve(data); + }); + }); +}; + +let incrMessageCounter = () => { + return new Promise((resolve, reject) => { + client.incr('messageCounter', (err, data) => { + if (err) { + console.error(err); + } + return resolve(data); + }); + }); +}; + +let newMessagePromise = (counter, data) => { + return new Promise((resolve, reject) => { + client.hmset('messages', counter, data, (err, data) => { + if (err) { + console.error(err); + } + return resolve(data); + }); + }); +}; + +client.setnx('messageCounter', 0); + app.post('/', (req, res) => { let newMessage = req.body.newMessage; - /* - client.hmget('messages', (err, data) => { - console.log(err); - console.log(data); - }) + incrMessageCounter() + .then(getMessageCounter) + .then(counter => { + let obj = { body: newMessage, postedBy: 'Anon', room: 'Cats' }; + obj = JSON.stringify(obj); + return newMessagePromise(counter, obj); + }) + .then(res.redirect('back')) + .catch(console.error); +}); - */ - let obj = { body: newMessage, postedBy: '', room: '' }; - obj = JSON.stringify(obj); - client.hmset('messages', '1', obj); - client.hmset('messages', '2', obj); - console.log(newMessage); - console.log(obj); +io.on('connection', client => { + client.on('newMessage', message => {}); }); //Start server diff --git a/views/home.handlebars b/views/home.handlebars index 236df32..6545b4a 100644 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -15,11 +15,16 @@
{{message.postedBy}}
{{/each}} +
+ {{#each messages as |message|}} +
{{message.room}}
+ {{/each}} +
-
- + +
diff --git a/views/layouts/main.handlebars b/views/layouts/main.handlebars index fc5f3e4..77f6c4d 100644 --- a/views/layouts/main.handlebars +++ b/views/layouts/main.handlebars @@ -8,16 +8,31 @@ - + -

Hello, world!

+

Super Chat!

{{{body}}} < + From 32a998d8eb07eb8958e2f595f789e087ebd2ea93 Mon Sep 17 00:00:00 2001 From: SamuelLangenfeld Date: Wed, 22 Nov 2017 16:20:35 -0500 Subject: [PATCH 08/14] sockets working --- index.js | 23 +++++++++++++++++++++-- views/home.handlebars | 6 +++--- views/layouts/main.handlebars | 21 +++++++++++++++------ 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index c2ec91a..ef500cc 100644 --- a/index.js +++ b/index.js @@ -87,6 +87,8 @@ client.setnx('messageCounter', 0); app.post('/', (req, res) => { let newMessage = req.body.newMessage; + /* + incrMessageCounter() .then(getMessageCounter) .then(counter => { @@ -96,11 +98,28 @@ app.post('/', (req, res) => { }) .then(res.redirect('back')) .catch(console.error); + + */ + res.redirect('back'); + }); io.on('connection', client => { - client.on('newMessage', message => {}); + client.on('newMessage', message => { + let obj; + incrMessageCounter() + .then(getMessageCounter) + .then(counter => { + obj = { body: message, postedBy: 'Anon', room: 'Cats' }; + let strObj = JSON.stringify(obj); + return newMessagePromise(counter, strObj); + }) + .then(data => { + io.emit("addMessage", obj) + }) + .catch(console.error); + }); }); //Start server -server.listen(3000); +server.listen(3000); \ No newline at end of file diff --git a/views/home.handlebars b/views/home.handlebars index 6545b4a..612beab 100644 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -5,17 +5,17 @@
-
+
{{#each messages as |message|}}
{{message.body}}
{{/each}}
-
+
{{#each messages as |message|}}
{{message.postedBy}}
{{/each}}
-
+
{{#each messages as |message|}}
{{message.room}}
{{/each}} diff --git a/views/layouts/main.handlebars b/views/layouts/main.handlebars index 77f6c4d..2082a58 100644 --- a/views/layouts/main.handlebars +++ b/views/layouts/main.handlebars @@ -5,8 +5,7 @@ Bootstrap 101 Template - - + @@ -18,18 +17,28 @@ {{{body}}} - < + - + +

Super Chat!

- +
{{{body}}} From 1b1d291ad289005f92b14e2ed58e142bd4d9499c Mon Sep 17 00:00:00 2001 From: SamuelLangenfeld Date: Wed, 22 Nov 2017 18:31:52 -0500 Subject: [PATCH 13/14] working on rooms --- index.js | 36 ++++++++++++++++++++++++++++++++++- lib/promises.js | 18 +++++++++++++++--- views/home.handlebars | 12 +++++++++--- views/layouts/main.handlebars | 19 ++++++++++++++++-- 4 files changed, 76 insertions(+), 9 deletions(-) diff --git a/index.js b/index.js index 11a1f0e..a970157 100644 --- a/index.js +++ b/index.js @@ -27,6 +27,7 @@ app.get('/', (req, res) => { return true; } let params = []; + let roomParams = []; promises .hgetAllPromise('messages') .then(data => { @@ -40,6 +41,21 @@ app.get('/', (req, res) => { }); return true; }) + .then(data => { + return promises.hgetAllPromise('rooms') + }) + .then(data => { + if (!data) { + return null; + } + console.log("room data is " + data); + let keys = Object.keys(data); + keys.forEach(key => { + let json = JSON.parse(data[key]); + roomParams.push(json); + }); + return true; + }) .then(data => { let paramsObj = {}; paramsObj.userName = req.cookies.userName; @@ -48,6 +64,8 @@ app.get('/', (req, res) => { return null; } paramsObj.messages = params; + paramsObj.rooms = roomParams; + paramsObj.currentRoom = paramsObj.rooms[0].name; res.render('home', paramsObj); }) .catch(err => { @@ -93,7 +111,23 @@ io.on('connection', client => { }) .catch(console.error); }); + + client.on('newRoom', room => { + let obj; + promises + .incrRoomCounter() + .then(promises.getRoomCounter) + .then(counter => { + obj = { name: room.name }; + let strObj = JSON.stringify(obj); + return promises.newRoomPromise(counter, strObj); + }) + .then(data => { + io.emit('addRoom', obj); + }) + .catch(console.error); + }); }); //Start server -server.listen(3000); +server.listen(3000); \ No newline at end of file diff --git a/lib/promises.js b/lib/promises.js index 924891f..45b115a 100644 --- a/lib/promises.js +++ b/lib/promises.js @@ -48,7 +48,7 @@ const promiser = { getRoomCounter: () => { return new Promise((resolve, reject) => { - client.get('messageCounter', (err, data) => { + client.get('roomCounter', (err, data) => { if (err) { console.error(err); } @@ -66,7 +66,19 @@ const promiser = { return resolve(room); }); }); - } + }, + + incrRoomCounter: () => { + return new Promise((resolve, reject) => { + client.incr('roomCounter', (err, data) => { + if (err) { + console.error(err); + } + return resolve(data); + }); + }); + }, + }; -module.exports = promiser; +module.exports = promiser; \ No newline at end of file diff --git a/views/home.handlebars b/views/home.handlebars index 329ce0f..988c384 100644 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -10,9 +10,14 @@
-
-
-
+
+
+ + +
+ {{#each rooms as |room|}} +
{{room.name}}
+ {{/each}}
@@ -34,6 +39,7 @@
+
diff --git a/views/layouts/main.handlebars b/views/layouts/main.handlebars index 32b975d..9b3e9a0 100644 --- a/views/layouts/main.handlebars +++ b/views/layouts/main.handlebars @@ -29,7 +29,15 @@ message.body=$('#message-input').val(); message.userName=$('#userName').val(); socket.emit('newMessage', message); - }) + }); + + $("#room\-form").submit((e) => { + e.preventDefault(); + let room={}; + room.name=$('#room-input').val(); + room.messages=[]; + socket.emit('newRoom', room); + }); socket.on("addMessage", obj=>{ console.log(obj); @@ -39,7 +47,14 @@ $('#bodyColumn').append(`
${body}
`); $('#roomColumn').append(`
${room}
`); $('#postedByColumn').append(`
${postedBy}
`); - }) + }); + + socket.on("addRoom", obj=>{ + console.log(obj); + let name = obj.name; + let messages = obj.messages; + $('#roomsColumn').append(`
${name}
`); + }); From 2860e23c43408bd59a3b39a324e6db62f39cf61f Mon Sep 17 00:00:00 2001 From: Jeff Dederick Date: Wed, 22 Nov 2017 18:48:01 -0500 Subject: [PATCH 14/14] final commit --- dump.rdb | Bin 1261 -> 1450 bytes views/layouts/main.handlebars | 6 ++++++ 2 files changed, 6 insertions(+) diff --git a/dump.rdb b/dump.rdb index 60f55c7f044c979f86d2b7136dd573d1e68d6137..ccdb4a26b743dde5c6cf5ede92945af8ec85785d 100644 GIT binary patch delta 253 zcmaFMxr%#&f#7CNv8Z1hrNyZ!y1A*jhYJ2rbj;voVPN6NO)V}?OiwKq+5Ci&pK0Ru zg30q4-NJ>tEi)e|RFt2e3*g7g<3wsvq~abaL!FjQa`VPjzU z#Kc{#l$V&B3N%@%miIH0&;tfO9_Re>r2I;tH6mY_1RgMmGUp^_rz!|D{Ab_>nc|#Z Unpcuqbb$GP { + let name = e.target.innerHTML; + $('#currentRoom').val(name); + console.log(name); + }); + socket.on("addMessage", obj=>{ console.log(obj); let body = obj.body;