From 3d276ca66737aa95acc2149e3e6e3f827000c588 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Sun, 1 Dec 2019 01:06:29 -0500 Subject: [PATCH 01/14] now I think I've resolved the merge conflicts --- client/src/App.js | 3 - package-lock.json | 312 ++++++++++-------- package.json | 14 +- server/config/config.js | 7 - .../subscription.server.controller.js | 2 +- 5 files changed, 174 insertions(+), 164 deletions(-) diff --git a/client/src/App.js b/client/src/App.js index 207ac1a..6ba226f 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -41,12 +41,9 @@ class App extends Component { -<<<<<<< HEAD -======= ->>>>>>> master diff --git a/package-lock.json b/package-lock.json index eaf81d6..ac18a01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1233,26 +1233,10 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, -<<<<<<< HEAD - "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "babel-plugin-styled-components": { - "version": "1.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.6.tgz", - "integrity": "sha512-gyQj/Zf1kQti66100PhrCRjI5ldjaze9O0M3emXRPAN80Zsf8+e1thpTpaXJXVHXtaM4/+dJEgZHyS9Its+8SA==", -======= "@babel/plugin-syntax-top-level-await": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz", "integrity": "sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA==", ->>>>>>> master "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -2120,26 +2104,10 @@ } } }, -<<<<<<< HEAD - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "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=", -======= "@jest/test-result": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", ->>>>>>> master "requires": { "@jest/console": "^24.9.0", "@jest/types": "^24.9.0", @@ -3061,35 +3029,10 @@ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, -<<<<<<< HEAD - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "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" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" -======= "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" ->>>>>>> master }, "arrify": { "version": "1.0.1", @@ -3206,6 +3149,33 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "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" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + } + } + }, "axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -4562,6 +4532,15 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -5933,12 +5912,6 @@ } } }, - "eslint-plugin-react-hooks": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.1.2.tgz", - "integrity": "sha512-ZR+AyesAUGxJAyTFlF3MbzeVHAcQTFQt1fFVe5o0dzY/HFoj1dgQDMoIkiM+ltN/HhlHBYX4JpJwYonjxsyQMA==", - "dev": true - }, "eslint-scope": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", @@ -6593,22 +6566,26 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "optional": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "optional": true, "requires": { "delegates": "^1.0.0", @@ -6617,12 +6594,14 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "optional": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "optional": true, "requires": { "balanced-match": "^1.0.0", @@ -6631,32 +6610,38 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "optional": true, "requires": { "ms": "^2.1.1" @@ -6664,22 +6649,26 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -6687,12 +6676,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "^1.0.3", @@ -6707,7 +6698,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -6720,12 +6712,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -6733,7 +6727,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "^3.0.4" @@ -6741,7 +6736,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "^1.3.0", @@ -6750,17 +6746,20 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "optional": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -6768,12 +6767,14 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "optional": true, "requires": { "brace-expansion": "^1.1.7" @@ -6781,12 +6782,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "optional": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "optional": true, "requires": { "safe-buffer": "^5.1.2", @@ -6795,7 +6798,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -6803,7 +6807,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "optional": true, "requires": { "minimist": "0.0.8" @@ -6811,12 +6816,14 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "optional": true }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "optional": true, "requires": { "debug": "^4.1.0", @@ -6826,7 +6833,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -6843,7 +6851,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1", @@ -6852,12 +6861,14 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -6866,7 +6877,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -6877,17 +6889,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "optional": true, "requires": { "wrappy": "1" @@ -6895,17 +6910,20 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -6914,17 +6932,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -6935,14 +6956,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -6956,7 +6979,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "optional": true, "requires": { "glob": "^7.1.3" @@ -6964,37 +6988,44 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "optional": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -7004,7 +7035,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -7012,7 +7044,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -7020,12 +7053,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "optional": true, "requires": { "chownr": "^1.1.1", @@ -7039,12 +7074,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -7052,12 +7089,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "optional": true } } @@ -7278,9 +7317,9 @@ "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==" }, "handlebars": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.2.tgz", - "integrity": "sha512-29Zxv/cynYB7mkT1rVWQnV7mGX6v7H/miQ6dbEpYTKq5eJBN7PsRB+ViYJlcT6JINTSu4dVB9kOqEun78h6Exg==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", "requires": { "neo-async": "^2.6.0", "optimist": "^0.6.1", @@ -12621,15 +12660,6 @@ "shallowequal": "^1.0.1" } }, - "react-social-icons": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/react-social-icons/-/react-social-icons-4.1.0.tgz", - "integrity": "sha512-wbwSbyS4QWjpL6U+GFZDBrE5Ao8px0QkRgo0XkxDHF2LNRsFNErSDnIPKiowhQ7t7IyrSA2HYrEw7ETgpVTg+Q==", - "dev": true, - "requires": { - "prop-types": "^15.6.2" - } - }, "react-text-mask": { "version": "5.4.3", "resolved": "https://registry.npmjs.org/react-text-mask/-/react-text-mask-5.4.3.tgz", diff --git a/package.json b/package.json index 44e8a85..4f218da 100644 --- a/package.json +++ b/package.json @@ -28,11 +28,8 @@ "body-parser": "^1.19.0", "bootstrap": "^4.3.1", "concurrently": "^4.1.0", -<<<<<<< HEAD "cors": "^2.8.5", -======= "env-cmd": "^10.0.1", ->>>>>>> master "eslint": "^6.5.1", "express": "^4.17.1", "jquery": "^3.4.1", @@ -52,20 +49,13 @@ "react-reveal": "^1.2.2", "react-router-bootstrap": "^0.25.0", "react-router-dom": "^5.1.2", -<<<<<<< HEAD - "react-vertical-timeline-component": "^2.5.0", -======= "react-scripts": "^3.2.0", ->>>>>>> master + "react-vertical-timeline-component": "^2.5.0", "should": "^13.2.3", "supertest": "^4.0.2", "test": "^0.6.0", "typescript": "^3.6.4", "xoauth2": "^1.2.0" }, - "homepage": "https://github.com/Software5E/sw_project#readme", - "devDependencies": { - "eslint-plugin-react-hooks": "^2.1.2", - "react-social-icons": "^4.1.0" - } + "homepage": "https://github.com/Software5E/sw_project#readme" } diff --git a/server/config/config.js b/server/config/config.js index a491c73..503fc07 100644 --- a/server/config/config.js +++ b/server/config/config.js @@ -1,13 +1,6 @@ module.exports = { db: { -<<<<<<< HEAD uri: 'mongodb+srv://FaceR-Admin:Faceradtmp12345@subscriptiondb-uxxkh.mongodb.net/user-data?retryWrites=true&w=majority' }, port: 3001 -======= - uri: 'mongodb+srv://FaceR-Admin:Faceradtmp12345@subscriptiondb-uxxkh.mongodb.net/test?retryWrites=true&w=majority' - }, - port: process.env.PORT || 80 - ->>>>>>> master }; \ No newline at end of file diff --git a/server/controllers/subscription.server.controller.js b/server/controllers/subscription.server.controller.js index 8d73a3a..436e96f 100644 --- a/server/controllers/subscription.server.controller.js +++ b/server/controllers/subscription.server.controller.js @@ -9,7 +9,7 @@ exports.hello = function(req, res) { exports.create = function(req, res) { //creates new subscription - console.log('inside create function'); + //console.log('inside create function'); console.log(req.body); var subscrip = new Subscription(req.body); From 061e017f515e3c79aefcf6d75c3c9d9990c2e585 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Sun, 1 Dec 2019 17:58:23 -0500 Subject: [PATCH 02/14] added code to signup form that clears entry on submit --- client/package.json | 2 +- client/src/components/AboutUs/AboutUs.css | 6 +++--- client/src/components/SignUp/SignUp.js | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/package.json b/client/package.json index c0a0271..4d37213 100644 --- a/client/package.json +++ b/client/package.json @@ -52,5 +52,5 @@ "react-router-dom": "^5.1.2", "react-social-icons": "^4.1.0" }, - "proxy": "http://localhost:3001" + "proxy": "http://localhost:80" } diff --git a/client/src/components/AboutUs/AboutUs.css b/client/src/components/AboutUs/AboutUs.css index 635cf3d..e690ab0 100644 --- a/client/src/components/AboutUs/AboutUs.css +++ b/client/src/components/AboutUs/AboutUs.css @@ -65,8 +65,8 @@ .History-of-Locks-Info { color: #fff; font-family: 'Montserrat', sans-serif; - margin: 20px 30px; - text-align: center; + margin: 20px 30px 10%; + /*text-align: center;*/ } .accent { color: #32CD32; @@ -102,7 +102,7 @@ color: #fff; font-family: 'Montserrat', sans-serif; margin: 20px 30px; - text-align: center; + /*text-align: center;*/ } .Scale-Image { diff --git a/client/src/components/SignUp/SignUp.js b/client/src/components/SignUp/SignUp.js index 3c8e36e..fe030d1 100644 --- a/client/src/components/SignUp/SignUp.js +++ b/client/src/components/SignUp/SignUp.js @@ -34,6 +34,8 @@ class FormPage extends React.Component { console.log('post to db failed') }); + e.target.reset() + } From 39ae31a465e9867b461baa5d093bb3d747bfbc97 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Mon, 2 Dec 2019 00:05:15 -0500 Subject: [PATCH 03/14] going to merge w/ local master --- package-lock.json | 109 +++++++++++++++++++-------------------- server/config/express.js | 2 +- 2 files changed, 54 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index b12ebe0..381e1e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1236,7 +1236,10 @@ "@babel/plugin-syntax-top-level-await": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz", - "integrity": "sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA==" + "integrity": "sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, "@babel/plugin-syntax-typescript": { "version": "7.3.3", @@ -2105,23 +2108,20 @@ "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "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": { "@jest/console": "^24.9.0", "@jest/types": "^24.9.0", "@types/istanbul-lib-coverage": "^2.0.0" + }, + "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" + } + } } }, "@jest/test-sequencer": { @@ -2273,9 +2273,9 @@ "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==" }, "@restart/hooks": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.14.tgz", - "integrity": "sha512-k57+iyGr6o1XHeWWsGe5aMHKYcw7fukL6mCE+ZrPjtt1gXei5wCUxj71yQYfFbNjg0z5xxX8Els/UmyJiEn4nw==" + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.19.tgz", + "integrity": "sha512-8bskLEkiDvuZztnfGN+vM56q2HQV8dyXS/Eb0nhXPx6fonii3hQLxfNVA2r5NTMbvEkwDo59bAau3idUXaGvww==" }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "4.2.0", @@ -2416,9 +2416,9 @@ } }, "@types/babel__traverse": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz", - "integrity": "sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", + "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", "requires": { "@babel/types": "^7.3.0" } @@ -2475,9 +2475,9 @@ "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, "@types/react": { - "version": "16.9.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.9.tgz", - "integrity": "sha512-L+AudFJkDukk+ukInYvpoAPyJK5q1GanFOINOJnM0w6tUgITuWvJ4jyoBPFL7z4/L8hGLd+K/6xR5uUjXu0vVg==", + "version": "16.9.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.13.tgz", + "integrity": "sha512-LikzRslbiufJYHyzbHSW0GrAiff8QYLMBFeZmSxzCYGXKxi8m/1PHX+rsVOwhr7mJNq+VIu2Dhf7U6mjFERK6w==", "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" @@ -2518,45 +2518,53 @@ "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==" }, "@typescript-eslint/eslint-plugin": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.7.0.tgz", - "integrity": "sha512-H5G7yi0b0FgmqaEUpzyBlVh0d9lq4cWG2ap0RKa6BkF3rpBb6IrAoubt1NWh9R2kRs/f0k6XwRDiDz3X/FqXhQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.9.0.tgz", + "integrity": "sha512-98rfOt3NYn5Gr9wekTB8TexxN6oM8ZRvYuphPs1Atfsy419SDLYCaE30aJkRiiTCwGEY98vOhFsEVm7Zs4toQQ==", "requires": { - "@typescript-eslint/experimental-utils": "2.7.0", - "eslint-utils": "^1.4.2", + "@typescript-eslint/experimental-utils": "2.9.0", + "eslint-utils": "^1.4.3", "functional-red-black-tree": "^1.0.1", - "regexpp": "^2.0.1", + "regexpp": "^3.0.0", "tsutils": "^3.17.1" + }, + "dependencies": { + "regexpp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", + "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==" + } } }, "@typescript-eslint/experimental-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.7.0.tgz", - "integrity": "sha512-9/L/OJh2a5G2ltgBWJpHRfGnt61AgDeH6rsdg59BH0naQseSwR7abwHq3D5/op0KYD/zFT4LS5gGvWcMmegTEg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.9.0.tgz", + "integrity": "sha512-0lOLFdpdJsCMqMSZT7l7W2ta0+GX8A3iefG3FovJjrX+QR8y6htFlFdU7aOVPL6pDvt6XcsOb8fxk5sq+girTw==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.7.0", + "@typescript-eslint/typescript-estree": "2.9.0", "eslint-scope": "^5.0.0" } }, "@typescript-eslint/parser": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.7.0.tgz", - "integrity": "sha512-ctC0g0ZvYclxMh/xI+tyqP0EC2fAo6KicN9Wm2EIao+8OppLfxji7KAGJosQHSGBj3TcqUrA96AjgXuKa5ob2g==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.9.0.tgz", + "integrity": "sha512-fJ+dNs3CCvEsJK2/Vg5c2ZjuQ860ySOAsodDPwBaVlrGvRN+iCNC8kUfLFL8cT49W4GSiLPa/bHiMjYXA7EhKQ==", "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.7.0", - "@typescript-eslint/typescript-estree": "2.7.0", + "@typescript-eslint/experimental-utils": "2.9.0", + "@typescript-eslint/typescript-estree": "2.9.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.7.0.tgz", - "integrity": "sha512-vVCE/DY72N4RiJ/2f10PTyYekX2OLaltuSIBqeHYI44GQ940VCYioInIb8jKMrK9u855OEJdFC+HmWAZTnC+Ag==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.9.0.tgz", + "integrity": "sha512-v6btSPXEWCP594eZbM+JCXuFoXWXyF/z8kaSBSdCb83DF+Y7+xItW29SsKtSULgLemqJBT+LpT+0ZqdfH7QVmA==", "requires": { "debug": "^4.1.1", - "glob": "^7.1.4", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", "is-glob": "^4.0.1", "lodash.unescape": "4.0.1", "semver": "^6.3.0", @@ -2798,9 +2806,9 @@ }, "dependencies": { "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==" + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" } } }, @@ -3043,17 +3051,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "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" - } - } - } }, "arrify": { "version": "1.0.1", diff --git a/server/config/express.js b/server/config/express.js index 8fda3c0..5a4de97 100644 --- a/server/config/express.js +++ b/server/config/express.js @@ -62,7 +62,7 @@ module.exports.init = function () { }); //all other requests send to the homepage app.get('*', (req,res) =>{ - res.sendFile(path.join(__dirname + '../../../client/public/index.html')); + res.sendFile(path.join(__dirname + '../../../client/build/index.html')); }); return app; From a89b4239d6db1a6844d7efc01d8e8e28f7c390d3 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Mon, 2 Dec 2019 20:06:27 -0500 Subject: [PATCH 04/14] changed color scheme for about us page --- client/build/static/css/2.a641e29a.chunk.css | 2 +- .../build/static/css/2.a641e29a.chunk.css.map | 2 +- client/src/App.js | 2 +- client/src/components/AboutUs/AboutUs.css | 17 +- client/src/components/SignUp/SignUp.js | 2 + client/src/components/Timeline/Timeline.css | 435 +++++++++++++++++- client/src/components/Timeline/Timeline.js | 39 +- client/src/views/AdminList/AdminList.js | 54 ++- .../subscription.server.controller.js | 6 +- server/models/subscription.server.model.js | 6 +- server/routes/subscription.server.routes.js | 2 +- 11 files changed, 527 insertions(+), 40 deletions(-) diff --git a/client/build/static/css/2.a641e29a.chunk.css b/client/build/static/css/2.a641e29a.chunk.css index 7deb2a7..01dd8c7 100644 --- a/client/build/static/css/2.a641e29a.chunk.css +++ b/client/build/static/css/2.a641e29a.chunk.css @@ -1,2 +1,2 @@ -.vertical-timeline *{box-sizing:border-box}.vertical-timeline{width:95%;max-width:1170px;margin:0 auto;position:relative;padding:2em 0}.vertical-timeline:after{content:"";display:table;clear:both}.vertical-timeline:before{content:"";position:absolute;top:0;left:18px;height:100%;width:4px;background:#fff}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{position:relative;margin:2em 0}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{content:"";display:table;clear:both}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 4px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 3px 0 4px rgba(0,0,0,.05)}.vertical-timeline-element-icon svg{display:block;width:24px;height:24px;position:relative;left:50%;top:50%;margin-left:-12px;margin-top:-12px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{width:60px;height:60px;left:50%;margin-left:-30px}}.vertical-timeline-element-icon{-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{visibility:visible;-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{position:relative;margin-left:60px;background:#fff;border-radius:.25em;padding:1em;box-shadow:0 3px 0 #ddd}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;box-shadow:none}.vertical-timeline-element-content:after{content:"";display:table;clear:both}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{margin:1em 0 0;line-height:1.6}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;padding:.8em 0;opacity:.7}.vertical-timeline-element-content-arrow{content:"";position:absolute;top:16px;right:100%;height:0;width:0;border:7px solid transparent;border-right-color:#fff}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{top:24px;left:100%;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{position:absolute;width:100%;left:124%;top:6px;font-size:16px;font-size:1rem}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{top:24px;left:auto;right:100%;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}} +.vertical-timeline *{box-sizing:border-box}.vertical-timeline{width:95%;max-width:1170px;margin:0 auto;position:relative;padding:2em 0}.vertical-timeline:after{content:"";display:table;clear:both}.vertical-timeline:before{content:"";position:absolute;top:0;left:18px;height:100%;width:4px;background:#000}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{position:relative;margin:2em 0}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{content:"";display:table;clear:both}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 4px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 3px 0 4px rgba(0,0,0,.05)}.vertical-timeline-element-icon svg{display:block;width:24px;height:24px;position:relative;left:50%;top:50%;margin-left:-12px;margin-top:-12px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{width:60px;height:60px;left:50%;margin-left:-30px}}.vertical-timeline-element-icon{-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{visibility:visible;-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{position:relative;margin-left:60px;background:#fff;border-radius:.25em;padding:1em;box-shadow:0 3px 0 #ddd}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;box-shadow:none}.vertical-timeline-element-content:after{content:"";display:table;clear:both}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{margin:1em 0 0;line-height:1.6}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;padding:.8em 0;opacity:.7}.vertical-timeline-element-content-arrow{content:"";position:absolute;top:16px;right:100%;height:0;width:0;border:7px solid transparent;border-right-color:#fff}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{top:24px;left:100%;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{position:absolute;width:100%;left:124%;top:6px;font-size:16px;font-size:1rem}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{top:24px;left:auto;right:100%;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}} /*# sourceMappingURL=2.a641e29a.chunk.css.map */ \ No newline at end of file diff --git a/client/build/static/css/2.a641e29a.chunk.css.map b/client/build/static/css/2.a641e29a.chunk.css.map index ec0d2d1..5b3fb23 100644 --- a/client/build/static/css/2.a641e29a.chunk.css.map +++ b/client/build/static/css/2.a641e29a.chunk.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.min.css"],"names":[],"mappings":"AAAA,qBAAqB,qBAAqB,CAAC,mBAAmB,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,yBAA0B,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,0BAA2B,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,0CAA0C,kDAAkD,SAAS,CAAC,yDAAyD,QAAQ,CAAC,gBAAgB,CAAC,CAAC,2BAA2B,iBAAiB,CAAC,YAAY,CAAC,+BAA+B,cAAc,CAAC,iCAAiC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,uCAAuC,YAAY,CAAC,sCAAsC,eAAe,CAAC,0CAA0C,2BAA2B,YAAY,CAAC,uCAAuC,YAAY,CAAC,sCAAsC,eAAe,CAAC,CAAC,gCAAgC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,mFAAmF,CAAC,oCAAoC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,0CAA0C,gEAAgE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,gCAAgC,+BAA+B,CAAC,kCAAkC,CAAC,sEAAsE,iBAAiB,CAAC,sEAAsE,kBAAkB,CAAC,iCAAiC,CAAgC,yBAAyB,CAAC,+BAA+B,GAAG,SAAS,CAAC,2BAA2B,CAAC,IAAI,SAAS,CAAC,4BAA4B,CAAC,GAAK,0BAA0B,CAAC,CAAyI,uBAAuB,GAAG,SAAS,CAAC,2BAA2B,CAAyE,mBAAmB,CAAC,IAAI,SAAS,CAAC,4BAA4B,CAA4E,oBAAoB,CAAC,GAAK,0BAA0B,CAAsE,kBAAkB,CAAC,CAAC,mCAAmC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,CAAC,mBAAmB,CAAC,WAAW,CAAC,uBAAuB,CAAC,2EAA2E,cAAc,CAAC,eAAe,CAAC,yCAAyC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,sCAAsC,aAAa,CAAC,wGAAwG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAC,mEAAmE,oBAAoB,CAAC,qCAAqC,cAAc,CAAC,eAAe,CAA2C,qEAAoC,QAAQ,CAAC,mEAAmE,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,yCAAyC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAA8B,4BAAA,CAAA,uBAA2B,CAAC,iFAAiF,YAAY,CAAC,yCAAyC,sCAAsC,cAAc,CAAC,iBAAiB,CAAC,qCAAqC,cAAc,CAAC,cAAc,CAAC,mEAAmE,cAAc,CAAC,iBAAiB,CAAC,CAAC,0CAA0C,mEAAmE,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,yEAAyE,QAAQ,CAAC,SAAS,CAAC,gCAAuB,CAAvB,wBAAwB,CAAC,mGAAmG,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,iRAAmR,WAAW,CAAC,6RAA+R,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,2BAAkB,CAAlB,mBAAmB,CAAC,iVAAmV,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,yEAAyE,iBAAiB,CAAC,yEAAyE,kBAAkB,CAAC,iCAAiC,CAAgC,yBAAyB,CAAC,0CAA0C,2VAA6V,yCAAyC,CAAwC,iCAAiC,CAAC,CAAC,0CAA0C,yEAAyE,kBAAkB,CAAC,yCAAyC,CAAwC,iCAAiC,CAAC,CAAC,+BAA+B,GAAG,SAAS,CAAC,oCAAoC,CAAC,IAAI,SAAS,CAAC,kCAAkC,CAAC,GAAK,+BAA+B,CAAC,CAA6J,uBAAuB,GAAG,SAAS,CAAC,oCAAoC,CAAoG,4BAA4B,CAAC,IAAI,SAAS,CAAC,kCAAkC,CAA8F,0BAA0B,CAAC,GAAK,+BAA+B,CAAqF,uBAAuB,CAAC,CAAC,uCAAuC,GAAG,SAAS,CAAC,mCAAmC,CAAC,IAAI,SAAS,CAAC,mCAAmC,CAAC,GAAK,+BAA+B,CAAC,CAAqK,+BAA+B,GAAG,SAAS,CAAC,mCAAmC,CAAiG,2BAA2B,CAAC,IAAI,SAAS,CAAC,mCAAmC,CAAiG,2BAA2B,CAAC,GAAK,+BAA+B,CAAqF,uBAAuB,CAAC","file":"2.a641e29a.chunk.css","sourcesContent":[".vertical-timeline *{box-sizing:border-box}.vertical-timeline{width:95%;max-width:1170px;margin:0 auto;position:relative;padding:2em 0}.vertical-timeline::after{content:'';display:table;clear:both}.vertical-timeline::before{content:'';position:absolute;top:0;left:18px;height:100%;width:4px;background:#fff}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{position:relative;margin:2em 0}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{content:\"\";display:table;clear:both}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 4px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 3px 0 4px rgba(0,0,0,.05)}.vertical-timeline-element-icon svg{display:block;width:24px;height:24px;position:relative;left:50%;top:50%;margin-left:-12px;margin-top:-12px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{width:60px;height:60px;left:50%;margin-left:-30px}}.vertical-timeline-element-icon{-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{visibility:visible;-webkit-animation:cd-bounce-1 .6s;-moz-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cd-bounce-1{0%{opacity:0;-moz-transform:scale(.5)}60%{opacity:1;-moz-transform:scale(1.2)}100%{-moz-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}100%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{position:relative;margin-left:60px;background:#fff;border-radius:.25em;padding:1em;box-shadow:0 3px 0 #ddd}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;box-shadow:none}.vertical-timeline-element-content:after{content:\"\";display:table;clear:both}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{margin:1em 0 0;line-height:1.6}.vertical-timeline-element-title{margin:0}.vertical-timeline-element-subtitle{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;padding:.8em 0;opacity:.7}.vertical-timeline-element-content-arrow{content:'';position:absolute;top:16px;right:100%;height:0;width:0;border:7px solid transparent;border-right:7px solid #fff}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{top:24px;left:100%;transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{position:absolute;width:100%;left:124%;top:6px;font-size:16px;font-size:1rem}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{top:24px;left:auto;right:100%;transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2 .6s;-moz-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;-moz-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2-inverse .6s;-moz-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}100%{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2{0%{opacity:0;-moz-transform:translateX(-100px)}60%{opacity:1;-moz-transform:translateX(20px)}100%{-moz-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);-moz-transform:translateX(-100px);-ms-transform:translateX(-100px);-o-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);-moz-transform:translateX(20px);-ms-transform:translateX(20px);-o-transform:translateX(20px);transform:translateX(20px)}100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}100%{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2-inverse{0%{opacity:0;-moz-transform:translateX(100px)}60%{opacity:1;-moz-transform:translateX(-20px)}100%{-moz-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);-moz-transform:translateX(100px);-ms-transform:translateX(100px);-o-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);-moz-transform:translateX(-20px);-ms-transform:translateX(-20px);-o-transform:translateX(-20px);transform:translateX(-20px)}100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}}"]} \ No newline at end of file +{"version":3,"sources":["style.min.css"],"names":[],"mappings":"AAAA,qBAAqB,qBAAqB,CAAC,mBAAmB,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,yBAA0B,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,0BAA2B,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,0CAA0C,kDAAkD,SAAS,CAAC,yDAAyD,QAAQ,CAAC,gBAAgB,CAAC,CAAC,2BAA2B,iBAAiB,CAAC,YAAY,CAAC,+BAA+B,cAAc,CAAC,iCAAiC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,uCAAuC,YAAY,CAAC,sCAAsC,eAAe,CAAC,0CAA0C,2BAA2B,YAAY,CAAC,uCAAuC,YAAY,CAAC,sCAAsC,eAAe,CAAC,CAAC,gCAAgC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,mFAAmF,CAAC,oCAAoC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,0CAA0C,gEAAgE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,gCAAgC,+BAA+B,CAAC,kCAAkC,CAAC,sEAAsE,iBAAiB,CAAC,sEAAsE,kBAAkB,CAAC,iCAAiC,CAAgC,yBAAyB,CAAC,+BAA+B,GAAG,SAAS,CAAC,2BAA2B,CAAC,IAAI,SAAS,CAAC,4BAA4B,CAAC,GAAK,0BAA0B,CAAC,CAAyI,uBAAuB,GAAG,SAAS,CAAC,2BAA2B,CAAyE,mBAAmB,CAAC,IAAI,SAAS,CAAC,4BAA4B,CAA4E,oBAAoB,CAAC,GAAK,0BAA0B,CAAsE,kBAAkB,CAAC,CAAC,mCAAmC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,CAAC,mBAAmB,CAAC,WAAW,CAAC,uBAAuB,CAAC,2EAA2E,cAAc,CAAC,eAAe,CAAC,yCAAyC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,sCAAsC,aAAa,CAAC,wGAAwG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAC,mEAAmE,oBAAoB,CAAC,qCAAqC,cAAc,CAAC,eAAe,CAA2C,qEAAoC,QAAQ,CAAC,mEAAmE,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,yCAAyC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAA8B,4BAAA,CAAA,uBAA2B,CAAC,iFAAiF,YAAY,CAAC,yCAAyC,sCAAsC,cAAc,CAAC,iBAAiB,CAAC,qCAAqC,cAAc,CAAC,cAAc,CAAC,mEAAmE,cAAc,CAAC,iBAAiB,CAAC,CAAC,0CAA0C,mEAAmE,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,yEAAyE,QAAQ,CAAC,SAAS,CAAC,gCAAuB,CAAvB,wBAAwB,CAAC,mGAAmG,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,iRAAmR,WAAW,CAAC,6RAA+R,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,2BAAkB,CAAlB,mBAAmB,CAAC,iVAAmV,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,yEAAyE,iBAAiB,CAAC,yEAAyE,kBAAkB,CAAC,iCAAiC,CAAgC,yBAAyB,CAAC,0CAA0C,2VAA6V,yCAAyC,CAAwC,iCAAiC,CAAC,CAAC,0CAA0C,yEAAyE,kBAAkB,CAAC,yCAAyC,CAAwC,iCAAiC,CAAC,CAAC,+BAA+B,GAAG,SAAS,CAAC,oCAAoC,CAAC,IAAI,SAAS,CAAC,kCAAkC,CAAC,GAAK,+BAA+B,CAAC,CAA6J,uBAAuB,GAAG,SAAS,CAAC,oCAAoC,CAAoG,4BAA4B,CAAC,IAAI,SAAS,CAAC,kCAAkC,CAA8F,0BAA0B,CAAC,GAAK,+BAA+B,CAAqF,uBAAuB,CAAC,CAAC,uCAAuC,GAAG,SAAS,CAAC,mCAAmC,CAAC,IAAI,SAAS,CAAC,mCAAmC,CAAC,GAAK,+BAA+B,CAAC,CAAqK,+BAA+B,GAAG,SAAS,CAAC,mCAAmC,CAAiG,2BAA2B,CAAC,IAAI,SAAS,CAAC,mCAAmC,CAAiG,2BAA2B,CAAC,GAAK,+BAA+B,CAAqF,uBAAuB,CAAC","file":"2.a641e29a.chunk.css","sourcesContent":[".vertical-timeline *{box-sizing:border-box}.vertical-timeline{width:95%;max-width:1170px;margin:0 auto;position:relative;padding:2em 0}.vertical-timeline::after{content:'';display:table;clear:both}.vertical-timeline::before{content:'';position:absolute;top:0;left:18px;height:100%;width:4px;background:#000000}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{position:relative;margin:2em 0}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{content:\"\";display:table;clear:both}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 4px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 3px 0 4px rgba(0,0,0,.05)}.vertical-timeline-element-icon svg{display:block;width:24px;height:24px;position:relative;left:50%;top:50%;margin-left:-12px;margin-top:-12px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{width:60px;height:60px;left:50%;margin-left:-30px}}.vertical-timeline-element-icon{-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{visibility:visible;-webkit-animation:cd-bounce-1 .6s;-moz-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cd-bounce-1{0%{opacity:0;-moz-transform:scale(.5)}60%{opacity:1;-moz-transform:scale(1.2)}100%{-moz-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}100%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{position:relative;margin-left:60px;background:#fff;border-radius:.25em;padding:1em;box-shadow:0 3px 0 #ddd}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;box-shadow:none}.vertical-timeline-element-content:after{content:\"\";display:table;clear:both}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{margin:1em 0 0;line-height:1.6}.vertical-timeline-element-title{margin:0}.vertical-timeline-element-subtitle{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;padding:.8em 0;opacity:.7}.vertical-timeline-element-content-arrow{content:'';position:absolute;top:16px;right:100%;height:0;width:0;border:7px solid transparent;border-right:7px solid #fff}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{top:24px;left:100%;transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{position:absolute;width:100%;left:124%;top:6px;font-size:16px;font-size:1rem}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{top:24px;left:auto;right:100%;transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2 .6s;-moz-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;-moz-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2-inverse .6s;-moz-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}100%{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2{0%{opacity:0;-moz-transform:translateX(-100px)}60%{opacity:1;-moz-transform:translateX(20px)}100%{-moz-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);-moz-transform:translateX(-100px);-ms-transform:translateX(-100px);-o-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);-moz-transform:translateX(20px);-ms-transform:translateX(20px);-o-transform:translateX(20px);transform:translateX(20px)}100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}100%{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2-inverse{0%{opacity:0;-moz-transform:translateX(100px)}60%{opacity:1;-moz-transform:translateX(-20px)}100%{-moz-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);-moz-transform:translateX(100px);-ms-transform:translateX(100px);-o-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);-moz-transform:translateX(-20px);-ms-transform:translateX(-20px);-o-transform:translateX(-20px);transform:translateX(-20px)}100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}}"]} \ No newline at end of file diff --git a/client/src/App.js b/client/src/App.js index d03c5cd..3b66bea 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -14,7 +14,7 @@ import { ProtectedRoute } from "./components/ProtectedRoute/ProtectedRoute"; //import BackDrop from './components/BackDrop/BackDrop'; import "./bootstrap/dist/css/bootstrap.min.css"; import "./index.css"; -//import axios from 'axios'; +//import Newsletter from "./components/Newsletter/Newsletter"; class App extends Component { constructor(props) { diff --git a/client/src/components/AboutUs/AboutUs.css b/client/src/components/AboutUs/AboutUs.css index e690ab0..48ab219 100644 --- a/client/src/components/AboutUs/AboutUs.css +++ b/client/src/components/AboutUs/AboutUs.css @@ -2,7 +2,6 @@ background-color: #fff; text-align: center; font-size: 50px; - background-color: #1C1919; } .title { text-align: center; @@ -10,7 +9,6 @@ margin: 0px 200px 300px; font-size: 80px; font-family: 'Roboto', sans-serif; - color: #fff; /*color: #fff;*/ @media (max-width: 767px) { @@ -50,7 +48,7 @@ flex-direction: row; flex-wrap: wrap; /*background-color: #3CB371;*/ - color: #fff; + font-family: 'Montserrat', sans-serif; font-size: 30px; text-align: left; @@ -63,21 +61,21 @@ height: 90px; } .History-of-Locks-Info { - color: #fff; + font-family: 'Montserrat', sans-serif; margin: 20px 30px 10%; /*text-align: center;*/ } .accent { - color: #32CD32; + /*color: #32CD32;*/ + color: #FF0000; } .separator { - color: #fff; content: ""; width: 150px; height: 20px; - fill: #fff; - border-bottom: 8px solid #fff; + fill: #000; + border-bottom: 8px solid #000; margin: 0px 30px 30px; } .Facer-Comparison { @@ -85,7 +83,6 @@ flex-direction: row; flex-wrap: wrap; /*background-color: #3CB371;*/ - color: #fff; font-family: 'Montserrat', sans-serif; font-size: 30px; text-align: left; @@ -99,7 +96,6 @@ margin-top: 13%; } .Facer-Comparison-Info { - color: #fff; font-family: 'Montserrat', sans-serif; margin: 20px 30px; /*text-align: center;*/ @@ -116,4 +112,5 @@ img { height:auto; max-height:100%; margin: 0 6%; + border: solid #000; } \ No newline at end of file diff --git a/client/src/components/SignUp/SignUp.js b/client/src/components/SignUp/SignUp.js index c7c90a2..3396c52 100644 --- a/client/src/components/SignUp/SignUp.js +++ b/client/src/components/SignUp/SignUp.js @@ -20,9 +20,11 @@ class FormPage extends React.Component { let user = {}; user.name = e.target[0].value; user.email = e.target[1].value; + //user.timestamp = new Date(); console.log("username: ", user.name); console.log("useremail: ", user.email); + //console.log("date added: ", user.timestamp); axios .post("/signup", user) diff --git a/client/src/components/Timeline/Timeline.css b/client/src/components/Timeline/Timeline.css index abe01d4..2946089 100644 --- a/client/src/components/Timeline/Timeline.css +++ b/client/src/components/Timeline/Timeline.css @@ -8,4 +8,437 @@ .block-text { font-family: 'Montserrat', sans-serif; font-size: 30px; -} \ No newline at end of file +} +.vertical-color { + background: #000; +} + +.vertical-timeline * { + box-sizing: border-box; + } + + .vertical-timeline { + width: 95%; + max-width: 1170px; + margin: 0 auto; + position: relative; + padding: 2em 0; + } + .vertical-timeline::after { + /* clearfix */ + content: ''; + display: table; + clear: both; + } + + .vertical-timeline::before { + /* this is the vertical line */ + content: ''; + position: absolute; + top: 0; + left: 18px; + height: 100%; + width: 4px; + background: black; + } + + @media only screen and (min-width: 1170px) { + .vertical-timeline.vertical-timeline--two-columns { + width: 90%; + } + .vertical-timeline.vertical-timeline--two-columns:before { + left: 50%; + margin-left: -2px; + } + } + .vertical-timeline-element { + position: relative; + margin: 2em 0; + } + .vertical-timeline-element > div { + min-height: 1px; + } + .vertical-timeline-element:after { + content: ""; + display: table; + clear: both; + } + .vertical-timeline-element:first-child { + margin-top: 0; + } + .vertical-timeline-element:last-child { + margin-bottom: 0; + } + @media only screen and (min-width: 1170px) { + .vertical-timeline-element { + margin: 4em 0; + } + .vertical-timeline-element:first-child { + margin-top: 0; + } + .vertical-timeline-element:last-child { + margin-bottom: 0; + } + } + + .vertical-timeline-element-icon { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 40px; + border-radius: 50%; + box-shadow: 0 0 0 4px black, inset 0 2px 0 rgba(0, 0, 0, 0.08), 0 3px 0 4px rgba(0, 0, 0, 0.05); + } + .vertical-timeline-element-icon svg { + display: block; + width: 24px; + height: 24px; + position: relative; + left: 50%; + top: 50%; + margin-left: -12px; + margin-top: -12px; + } + + @media only screen and (min-width: 1170px) { + .vertical-timeline--two-columns .vertical-timeline-element-icon { + width: 60px; + height: 60px; + left: 50%; + margin-left: -30px; + } + } + + /* Icon animations */ + .vertical-timeline-element-icon { + /* Force Hardware Acceleration in WebKit */ + -webkit-transform: translateZ(0); + -webkit-backface-visibility: hidden; + } + .vertical-timeline--animate .vertical-timeline-element-icon.is-hidden { + visibility: hidden; + } + .vertical-timeline--animate .vertical-timeline-element-icon.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-1 0.6s; + -moz-animation: cd-bounce-1 0.6s; + animation: cd-bounce-1 0.6s; + } + + @-webkit-keyframes cd-bounce-1 { + 0% { + opacity: 0; + -webkit-transform: scale(0.5); + } + + 60% { + opacity: 1; + -webkit-transform: scale(1.2); + } + + 100% { + -webkit-transform: scale(1); + } + } + @-moz-keyframes cd-bounce-1 { + 0% { + opacity: 0; + -moz-transform: scale(0.5); + } + + 60% { + opacity: 1; + -moz-transform: scale(1.2); + } + + 100% { + -moz-transform: scale(1); + } + } + @keyframes cd-bounce-1 { + 0% { + opacity: 0; + -webkit-transform: scale(0.5); + -moz-transform: scale(0.5); + -ms-transform: scale(0.5); + -o-transform: scale(0.5); + transform: scale(0.5); + } + + 60% { + opacity: 1; + -webkit-transform: scale(1.2); + -moz-transform: scale(1.2); + -ms-transform: scale(1.2); + -o-transform: scale(1.2); + transform: scale(1.2); + } + + 100% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1); + } + } + .vertical-timeline-element-content { + position: relative; + margin-left: 60px; + background: white; + border-radius: 0.25em; + padding: 1em; + box-shadow: 0 3px 0 #ddd; + } + .vertical-timeline-element--no-children .vertical-timeline-element-content { + background: transparent; + box-shadow: none; + } + .vertical-timeline-element-content:after { + content: ""; + display: table; + clear: both; + } + .vertical-timeline-element-content h2 { + color: #303e49; + } + .vertical-timeline-element-content p, .vertical-timeline-element-content .vertical-timeline-element-date { + font-size: 13px; + font-size: 0.8125rem; + font-weight: 500; + } + .vertical-timeline-element-content .vertical-timeline-element-date { + display: inline-block; + } + .vertical-timeline-element-content p { + margin: 1em 0 0; + line-height: 1.6; + } + + .vertical-timeline-element-title { + margin: 0; + } + + .vertical-timeline-element-subtitle { + margin: 0; + } + + .vertical-timeline-element-content .vertical-timeline-element-date { + float: left; + padding: .8em 0; + opacity: .7; + } + .vertical-timeline-element-content-arrow { + content: ''; + position: absolute; + top: 16px; + right: 100%; + height: 0; + width: 0; + border: 7px solid transparent; + border-right: 7px solid white; + + } + .vertical-timeline-element--no-children .vertical-timeline-element-content-arrow { + display: none; + } + @media only screen and (min-width: 768px) { + .vertical-timeline-element-content h2 { + font-size: 20px; + font-size: 1.25rem; + } + .vertical-timeline-element-content p { + font-size: 16px; + font-size: 1rem; + } + .vertical-timeline-element-content .vertical-timeline-element-date { + font-size: 14px; + font-size: 0.875rem; + } + } + @media only screen and (min-width: 1170px) { + .vertical-timeline--two-columns .vertical-timeline-element-content { + margin-left: 0; + padding: 1.5em; + width: 44%; + } + .vertical-timeline--two-columns .vertical-timeline-element-content-arrow { + top: 24px; + left: 100%; + transform: rotate(180deg); + } + + .vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date { + position: absolute; + width: 100%; + left: 124%; + top: 6px; + font-size: 16px; + font-size: 1rem; + } + + .vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content, + .vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content { + float: right; + } + .vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow, + .vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow { + top: 24px; + left: auto; + right: 100%; + transform: rotate(0deg); + } + + .vertical-timeline--two-columns .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date, + .vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date { + left: auto; + right: 124%; + text-align: right; + } + } + + /* Box animations */ + .vertical-timeline--animate .vertical-timeline-element-content.is-hidden { + visibility: hidden; + } + .vertical-timeline--animate .vertical-timeline-element-content.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-2 0.6s; + -moz-animation: cd-bounce-2 0.6s; + animation: cd-bounce-2 0.6s; + } + + @media only screen and (min-width: 1170px) { + /* inverse bounce effect on even content blocks */ + .vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(even):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in, + .vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in { + -webkit-animation: cd-bounce-2-inverse 0.6s; + -moz-animation: cd-bounce-2-inverse 0.6s; + animation: cd-bounce-2-inverse 0.6s; + } + } + + @media only screen and (max-width: 1169px) { + .vertical-timeline--animate .vertical-timeline-element-content.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-2-inverse 0.6s; + -moz-animation: cd-bounce-2-inverse 0.6s; + animation: cd-bounce-2-inverse 0.6s; + } + } + + @-webkit-keyframes cd-bounce-2 { + 0% { + opacity: 0; + -webkit-transform: translateX(-100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(20px); + } + + 100% { + -webkit-transform: translateX(0); + } + } + @-moz-keyframes cd-bounce-2 { + 0% { + opacity: 0; + -moz-transform: translateX(-100px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(20px); + } + + 100% { + -moz-transform: translateX(0); + } + } + @keyframes cd-bounce-2 { + 0% { + opacity: 0; + -webkit-transform: translateX(-100px); + -moz-transform: translateX(-100px); + -ms-transform: translateX(-100px); + -o-transform: translateX(-100px); + transform: translateX(-100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(20px); + -moz-transform: translateX(20px); + -ms-transform: translateX(20px); + -o-transform: translateX(20px); + transform: translateX(20px); + } + + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -ms-transform: translateX(0); + -o-transform: translateX(0); + transform: translateX(0); + } + } + @-webkit-keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -webkit-transform: translateX(100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + + 100% { + -webkit-transform: translateX(0); + } + } + @-moz-keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -moz-transform: translateX(100px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(-20px); + } + + 100% { + -moz-transform: translateX(0); + } + } + @keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -webkit-transform: translateX(100px); + -moz-transform: translateX(100px); + -ms-transform: translateX(100px); + -o-transform: translateX(100px); + transform: translateX(100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-20px); + -moz-transform: translateX(-20px); + -ms-transform: translateX(-20px); + -o-transform: translateX(-20px); + transform: translateX(-20px); + } + + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -ms-transform: translateX(0); + -o-transform: translateX(0); + transform: translateX(0); + } + } \ No newline at end of file diff --git a/client/src/components/Timeline/Timeline.js b/client/src/components/Timeline/Timeline.js index 6b19823..f2df3bb 100644 --- a/client/src/components/Timeline/Timeline.js +++ b/client/src/components/Timeline/Timeline.js @@ -1,77 +1,78 @@ import React from 'react' import './Timeline.css' import { VerticalTimeline, VerticalTimelineElement } from 'react-vertical-timeline-component'; -import 'react-vertical-timeline-component/style.min.css'; +//import 'react-vertical-timeline-component/style.min.css'; class Timeline extends React.Component { render() { return ( - + }*/ + /*iconStyle={{ background: '#000', color: '#fff' }}*/ + >

Tumbler Lock

1778

- Creative Direction, User Experience, Visual Design, Project Management, Team Leading + uses pins of varying lengths to prevent the lock from opening without the correct key

}*/ + /*iconStyle={{ background: '#000', color: '#fff' }}*/ >

Flat Key

1851

- Creative Direction, User Experience, Visual Design, SEO, Online Marketing + key with serrated edges as well as pins of varying lengths within the lock itself

}*/ + /*iconStyle={{ background: '#000', color: '#fff' }}*/ + >

Electronic Locks

1970s

- User Experience, Visual Design + lock or unlock with the assistance of an electrical current

}*/ + /*iconStyle={{ background: '#000', color: '#fff' }}*/ >

Smart Lock

2014

- User Experience, Visual Design + opens wirelessly with authorized user authentication

}*/ + /*iconStyle={{ background: '#000', color: '#fff' }}*/ >

FaceR

2020

- Strategy, Social Media + uses facial recognition as a form of user authentication to unlock

diff --git a/client/src/views/AdminList/AdminList.js b/client/src/views/AdminList/AdminList.js index ef43594..6d976ca 100644 --- a/client/src/views/AdminList/AdminList.js +++ b/client/src/views/AdminList/AdminList.js @@ -1,7 +1,44 @@ import React from 'react'; import './AdminList.css'; +import ZingChart from 'zingchart-react'; +import axios from "axios"; + +class AdminList extends React.Component { + constructor() { + super(); + this.state = { + /*config: { + type: 'bar', + series: [{ + values: [4,5,3,4,5,3,5,4,11] + }] + },*/ + users: [] + }; + this.componentDidMount = this.componentDidMount.bind(this); + } + + componentDidMount() { + console.log('function entered'); + this.getUsers(); + } + + getUsers = () => { + axios.get('/') + .then(res => { + this.setState({ users: res.data }); + //console.log(res.data); + }) + .catch(function (err) { + console.log(err); + }) + console.log('getUsers entered'); + } + + render() { + const usersignup = this.state.users.filter(user => user.display) + const numUsers = usersignup.length -function AdminList() { return (

Newsletter List

@@ -11,8 +48,21 @@ function AdminList() {
  • Email2@hotmail.com
  • Email3@aol.com
  • +
    +

    Number of rows = {numUsers}

    + { + usersignup.map((user, index) => { + return

    { user.name }

    + }) + } +
    + {/*} +
    + +
    */}
    - ); + ); + } } export default AdminList; diff --git a/server/controllers/subscription.server.controller.js b/server/controllers/subscription.server.controller.js index 436e96f..5febf3f 100644 --- a/server/controllers/subscription.server.controller.js +++ b/server/controllers/subscription.server.controller.js @@ -9,7 +9,7 @@ exports.hello = function(req, res) { exports.create = function(req, res) { //creates new subscription - //console.log('inside create function'); + console.log('inside create function'); console.log(req.body); var subscrip = new Subscription(req.body); @@ -66,13 +66,13 @@ exports.delete = function(req, res) { /* Retreive all the directory listings, sorted alphabetically by listing code */ exports.list = function(req, res) { - + console.log('list router function entered'); Subscription.find({}).sort('name').exec(function(err, subscrips) { if(err) { res.send(err); } - //console.log(listings); + console.log(subscrips); res.json(subscrips) }); }; diff --git a/server/models/subscription.server.model.js b/server/models/subscription.server.model.js index d9ff0f3..9870981 100644 --- a/server/models/subscription.server.model.js +++ b/server/models/subscription.server.model.js @@ -6,11 +6,15 @@ var mongoose = require('mongoose'), var SubscriptionSchema = new Schema({ name: { type: String, required: true }, - email: { type: String, required: true } + email: { type: String, required: true }, + created_at: {type: Date, default: Date.now}, + updated_at: {type: Date} }); // Create a 'pre' function that adds the updated_at (and created_at if not already there) property SubscriptionSchema.pre('save', function(next) { + console.log('pre function entered'); + //gets current date var currentDate = new Date(); diff --git a/server/routes/subscription.server.routes.js b/server/routes/subscription.server.routes.js index 9fbd8e1..244a672 100644 --- a/server/routes/subscription.server.routes.js +++ b/server/routes/subscription.server.routes.js @@ -12,7 +12,7 @@ router.route('/') router.route('/') .get(subscriptions.list) - .post(subscriptions.create); + //.post(subscriptions.create); router.route('/:subscriptionId') .get(subscriptions.read) From 18d4d757dcaa53fdb41420b45c3e1654133f26c7 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Mon, 2 Dec 2019 21:19:33 -0500 Subject: [PATCH 05/14] switching to master --- client/package.json | 3 +- client/src/components/SignUp/SignUp.css | 13 ++--- client/src/views/AdminList/AdminList.js | 67 ++++++++++++------------- client/src/views/AdminList/DataTable.js | 21 ++++++++ 4 files changed, 59 insertions(+), 45 deletions(-) create mode 100644 client/src/views/AdminList/DataTable.js diff --git a/client/package.json b/client/package.json index f42a002..4d37213 100644 --- a/client/package.json +++ b/client/package.json @@ -51,5 +51,6 @@ "devDependencies": { "react-router-dom": "^5.1.2", "react-social-icons": "^4.1.0" - } + }, + "proxy": "http://localhost:80" } diff --git a/client/src/components/SignUp/SignUp.css b/client/src/components/SignUp/SignUp.css index e49a067..3b0f1b6 100644 --- a/client/src/components/SignUp/SignUp.css +++ b/client/src/components/SignUp/SignUp.css @@ -2,21 +2,14 @@ padding-bottom: 30px; } .subscribe-title { - color: #32CD32; font-family: 'Roboto', sans-serif; + color: #FF0000; } .subscribe-text { - color: #fff; font-family: 'Montserrat', sans-serif; -} -.btn-color { - color: #32CD32; - border-color: #32CD32; + color: #FF0000; } .text-color { - color: #fff; font-family: 'Montserrat', sans-serif; -} -Link:hover { - color: #fff; + color: #000; } \ No newline at end of file diff --git a/client/src/views/AdminList/AdminList.js b/client/src/views/AdminList/AdminList.js index 6d976ca..9f29664 100644 --- a/client/src/views/AdminList/AdminList.js +++ b/client/src/views/AdminList/AdminList.js @@ -1,44 +1,35 @@ import React from 'react'; import './AdminList.css'; +import DataTable from './DataTable'; import ZingChart from 'zingchart-react'; import axios from "axios"; class AdminList extends React.Component { - constructor() { - super(); - this.state = { - /*config: { - type: 'bar', - series: [{ - values: [4,5,3,4,5,3,5,4,11] - }] - },*/ - users: [] + constructor(props) { + super(props); + this.state = { + usersCollection: [] }; - this.componentDidMount = this.componentDidMount.bind(this); } componentDidMount() { - console.log('function entered'); - this.getUsers(); + axios.get('/') + .then(res => { + this.setState({ usersCollection: res.data }); + console.log('users added to array!'); + }) + .catch(function (err) { + console.log(err); + }) } - getUsers = () => { - axios.get('/') - .then(res => { - this.setState({ users: res.data }); - //console.log(res.data); - }) - .catch(function (err) { - console.log(err); - }) - console.log('getUsers entered'); + dataTable() { + return this.state.usersCollection.map((data, i) => { + return ; + }); } render() { - const usersignup = this.state.users.filter(user => user.display) - const numUsers = usersignup.length - return (

    Newsletter List

    @@ -48,14 +39,22 @@ class AdminList extends React.Component {
  • Email2@hotmail.com
  • Email3@aol.com
  • -
    -

    Number of rows = {numUsers}

    - { - usersignup.map((user, index) => { - return

    { user.name }

    - }) - } -
    +
    +
    + + + + + + + + + + {this.dataTable()} + +
    IDNameEmail
    +
    +
    {/*}
    diff --git a/client/src/views/AdminList/DataTable.js b/client/src/views/AdminList/DataTable.js new file mode 100644 index 0000000..7a8467f --- /dev/null +++ b/client/src/views/AdminList/DataTable.js @@ -0,0 +1,21 @@ +import React, { Component } from 'react'; + +class DataTable extends Component { + render() { + return ( + + + {this.props.obj._id} + + + {this.props.obj.name} + + + {this.props.obj.email} + + + ); + } +} + +export default DataTable; \ No newline at end of file From f0ea9130227adceba8558d43304b15321cb08585 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Mon, 2 Dec 2019 22:07:28 -0500 Subject: [PATCH 06/14] trying to find why db connection won't work --- client/src/views/AdminList/AdminList.js | 8 ++++---- client/src/views/AdminList/DataTable.js | 21 --------------------- 2 files changed, 4 insertions(+), 25 deletions(-) delete mode 100644 client/src/views/AdminList/DataTable.js diff --git a/client/src/views/AdminList/AdminList.js b/client/src/views/AdminList/AdminList.js index 9f29664..3d52540 100644 --- a/client/src/views/AdminList/AdminList.js +++ b/client/src/views/AdminList/AdminList.js @@ -1,6 +1,6 @@ import React from 'react'; import './AdminList.css'; -import DataTable from './DataTable'; +//import DataTable from './DataTable'; import ZingChart from 'zingchart-react'; import axios from "axios"; @@ -11,7 +11,7 @@ class AdminList extends React.Component { usersCollection: [] }; } - + /* componentDidMount() { axios.get('/') .then(res => { @@ -28,7 +28,7 @@ class AdminList extends React.Component { return ; }); } - + */ render() { return (
    @@ -50,7 +50,7 @@ class AdminList extends React.Component { - {this.dataTable()} + {/*this.dataTable()*/}
    diff --git a/client/src/views/AdminList/DataTable.js b/client/src/views/AdminList/DataTable.js deleted file mode 100644 index 7a8467f..0000000 --- a/client/src/views/AdminList/DataTable.js +++ /dev/null @@ -1,21 +0,0 @@ -import React, { Component } from 'react'; - -class DataTable extends Component { - render() { - return ( - - - {this.props.obj._id} - - - {this.props.obj.name} - - - {this.props.obj.email} - - - ); - } -} - -export default DataTable; \ No newline at end of file From 7acf853dbfc05a68804d97c1beac348ba34e6a5d Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 02:53:16 -0500 Subject: [PATCH 07/14] fixed post issue and created graph to show user subscription data --- client/src/views/AdminList/AdminList.js | 83 ++++++++++++------- package.json | 2 +- server/routes/subscription.server.routes.js | 9 +- .../tests/subscription.server.model.test.js | 36 ++++---- .../tests/subscription.server.routes.test.js | 2 +- 5 files changed, 75 insertions(+), 57 deletions(-) diff --git a/client/src/views/AdminList/AdminList.js b/client/src/views/AdminList/AdminList.js index 3d52540..6ba9c62 100644 --- a/client/src/views/AdminList/AdminList.js +++ b/client/src/views/AdminList/AdminList.js @@ -11,25 +11,67 @@ class AdminList extends React.Component { usersCollection: [] }; } - /* + componentDidMount() { - axios.get('/') + axios.get('/signup') .then(res => { this.setState({ usersCollection: res.data }); - console.log('users added to array!'); + //console.log(res.data[1].created_at); + //console.log(new Date(res.data[1].created_at).getMonth()); + }) .catch(function (err) { console.log(err); }) } - - dataTable() { - return this.state.usersCollection.map((data, i) => { - return ; - }); - } - */ + render() { + let usersPerMonth = [0,0,0,0,0,0,0,0,0,0,0,0]; + this.state.usersCollection.forEach((item) => { + console.log(item.name); + var index = new Date(item.created_at).getMonth(); + usersPerMonth[index]++; + }); + console.log(usersPerMonth); + + let graphConfig = { + type: 'bar', + title: { + text: 'User Subscriptions per Month', + fontSize: 24, + }, + legend: { + draggable: true, + }, + scaleX: { + // Set scale label + label: { text: 'Month' }, + // Convert text on scale indices + labels: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + }, + scaleY: { + // Scale label with unicode character + label: { text: 'Number of User Subscriptions' } + }, + plot: { + // Animation docs here: + // https://www.zingchart.com/docs/tutorials/styling/animation#effect + animation: { + effect: 'ANIMATION_EXPAND_BOTTOM', + method: 'ANIMATION_STRONG_EASE_OUT', + sequence: 'ANIMATION_BY_NODE', + speed: 275, + } + }, + series: [ + { + // plot 1 values, linear data + values: usersPerMonth, + text: 'Data' + } + ] + }; + return (

    Newsletter List

    @@ -39,26 +81,9 @@ class AdminList extends React.Component {
  • Email2@hotmail.com
  • Email3@aol.com
  • -
    -
    - - - - - - - - - - {/*this.dataTable()*/} - -
    IDNameEmail
    -
    -
    - {/*}
    - -
    */} + +
    ); } diff --git a/package.json b/package.json index 15dd18a..095267b 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "install-all": "concurrently \"npm install\" \"cd client && npm install\"", "client": "cd client && npm start", "server": "nodemon ./server.js", - "dev": "concurrently \"nodemon server/server.js\" \"cd client && npm run start\"", + "dev": "concurrently \"nodemon server.js\" \"cd client && npm run start\"", "build": "cd client && npm run build", "buildServe": "cd client && npm run build", "start": "node server.js", diff --git a/server/routes/subscription.server.routes.js b/server/routes/subscription.server.routes.js index 244a672..c5d93d1 100644 --- a/server/routes/subscription.server.routes.js +++ b/server/routes/subscription.server.routes.js @@ -2,17 +2,10 @@ var subscriptions = require('../controllers/subscription.server.controller.js'), express = require('express'), router = express.Router() - /* -router.route('/') - .get(examples.hello); - */ - - router.route('/signup') - .post(subscriptions.create); router.route('/') .get(subscriptions.list) - //.post(subscriptions.create); + .post(subscriptions.create); router.route('/:subscriptionId') .get(subscriptions.read) diff --git a/server/tests/subscription.server.model.test.js b/server/tests/subscription.server.model.test.js index 8d72df1..a2039ad 100644 --- a/server/tests/subscription.server.model.test.js +++ b/server/tests/subscription.server.model.test.js @@ -20,7 +20,7 @@ var subscription, id; subscription = { name: "Sara Gaya", -email: "sgaya16@ufl.edu" +email: "i@ufl.edu" } describe('Subscription Schema Unit Tests', function() { @@ -39,24 +39,24 @@ describe('Saving to database', function() { */ this.timeout(10000); - it('saves properly when email and name provided', function(done){ - new Subscription({ - name: subscription.name, - email: subscription.email - }).save(function(err, subscription){ - should.not.exist(err); - id = subscription._id; - done(); - }); - }); +// it('saves properly when email and name provided', function(done){ +// new Subscription({ +// name: subscription.name, +// email: subscription.email +// }).save(function(err, subscription){ +// should.not.exist(err); +// id = subscription._id; +// done(); +// }); +// }); - it('saves properly when all properties provided', function(done){ - new Subscription(subscription).save(function(err, subscription){ - should.not.exist(err); - id = subscription._id; - done(); - }); - }); +// it('saves properly when all properties provided', function(done){ +// new Subscription(subscription).save(function(err, subscription){ +// should.not.exist(err); +// id = subscription._id; +// done(); +// }); +// }); it('throws an error when email not provided', function(done){ new Subscription({ diff --git a/server/tests/subscription.server.routes.test.js b/server/tests/subscription.server.routes.test.js index ca2b685..2e8bbe9 100644 --- a/server/tests/subscription.server.routes.test.js +++ b/server/tests/subscription.server.routes.test.js @@ -52,7 +52,7 @@ describe('Subscription CRUD tests', function() { it('should be able to save a subscription', function(done) { var subscription = { name: 'Sara Gaya', - email: 'sgaya16@ufl.edu' + email: 'isaiah@ufl.edu' }; agent.post('/signup') .send(subscription) From 7499aae441fc3a60aa92a8cc9fa157f6a0272884 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 03:25:24 -0500 Subject: [PATCH 08/14] removed localhost proxy from package.json --- client/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/package.json b/client/package.json index 4d37213..f42a002 100644 --- a/client/package.json +++ b/client/package.json @@ -51,6 +51,5 @@ "devDependencies": { "react-router-dom": "^5.1.2", "react-social-icons": "^4.1.0" - }, - "proxy": "http://localhost:80" + } } From 8eaf748d304e7f5e2aa0326c5b6f58de3adc94b0 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 03:25:24 -0500 Subject: [PATCH 09/14] Revert "removed localhost proxy from package.json" This reverts commit 7499aae441fc3a60aa92a8cc9fa157f6a0272884. --- client/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/package.json b/client/package.json index f42a002..4d37213 100644 --- a/client/package.json +++ b/client/package.json @@ -51,5 +51,6 @@ "devDependencies": { "react-router-dom": "^5.1.2", "react-social-icons": "^4.1.0" - } + }, + "proxy": "http://localhost:80" } From 12b6de57389767ab82691f917f6dc378c7c2c770 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 03:56:04 -0500 Subject: [PATCH 10/14] fixed toolbar size on my local branch --- client/src/components/Toolbar/Toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/Toolbar/Toolbar.js b/client/src/components/Toolbar/Toolbar.js index 0c31087..3a1c84e 100644 --- a/client/src/components/Toolbar/Toolbar.js +++ b/client/src/components/Toolbar/Toolbar.js @@ -10,7 +10,7 @@ const toolbar = props => ( From e18c688f483bfa189f665b1672e063454876d9c8 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 03:59:57 -0500 Subject: [PATCH 11/14] no test poisoning --- .../tests/subscription.server.routes.test.js | 346 +++++++++--------- 1 file changed, 173 insertions(+), 173 deletions(-) diff --git a/server/tests/subscription.server.routes.test.js b/server/tests/subscription.server.routes.test.js index 2e8bbe9..cefb9f2 100644 --- a/server/tests/subscription.server.routes.test.js +++ b/server/tests/subscription.server.routes.test.js @@ -1,176 +1,176 @@ -var should = require('should'), - request = require('supertest'), - express = require('../config/express'), - mongoose = require('mongoose'), - Subscription = require('../models/subscription.server.model.js'); - -/* Global variables */ -var app, agent, subscription, id; -var subscription2, id2; - -/* Unit tests for testing server side routes for the listings API */ -describe('Subscription CRUD tests', function() { - - this.timeout(10000); - - before(function(done) { - app = express.init(); - agent = request.agent(app); - - done(); - }); - - it('should be able to retrieve all subscriptions', function(done) { - agent.get('/signup') - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res); - /*res.body.should.have.length(147);*/ - done(); - }); - }); - it('should be able to retrieve a single subscription', function(done) { - Subscription.findOne({name: 'Santiago Romero'}, function(err, subscription) { - if(err) { - console.log(err); - } else { - agent.get('/signup/' + subscription._id) - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res); - res.body.name.should.equal('Santiago Romero'); - res.body.email.should.equal('santiagoromero98@ufl.edu'); - res.body._id.should.equal(subscription._id.toString()); - done(); - }); - } - }); - }); - - it('should be able to save a subscription', function(done) { - var subscription = { - name: 'Sara Gaya', - email: 'isaiah@ufl.edu' - }; - agent.post('/signup') - .send(subscription) - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res.body._id); - res.body.name.should.equal('Sara Gaya'); - res.body.email.should.equal('sgaya16@ufl.edu'); - id = res.body._id; - done(); - }); - }); - - - - it('should be able to update a subscription', function(done) { - var updatedSubscription = { - name: 'Sara Gaya', - email: 'saracgaya@gmail.com' - }; - - agent.put('/signup/' + id) - .send(updatedSubscription) - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res.body._id); - res.body.name.should.equal('Sara Gaya'); - res.body.email.should.equal('saracgaya@gmail.com'); - done(); - }); - }); - - it('should be able to delete a subscription', function(done) { - agent.delete('/signup/' + id) - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res); - - agent.get('/signup/' + id) - .expect(400) - .end(function(err, res) { - id = undefined; - done(); - }); - }) - }); - -/*If this test fails because you haven't completed the coordinates.server.controlelr.js file - use the filter feature in MongoDB Atlas to find and delete the entry - {'code' : 'GMC'} - This should resolve the issue. Although the test has failed our create function still - sends the listing to the database. - - You can comment the two coordinate tests until you have completed the code the - coordinates.server.controlelr.js file -*/ - -/* - it('should be able to save a listing with coordinates', function(done) { - var listing2 = { - code: 'GMC', - name: 'Dr. Gardner-McCunes Office', - address: '432 Newell Dr, Gainesville, FL 32611' - }; - agent.post('/api/listings') - .send(listing2) - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res.body._id); - res.body.name.should.equal('Dr. Gardner-McCunes Office'); - res.body.code.should.equal('GMC'); - res.body.address.should.equal('432 Newell Dr, Gainesville, FL 32611'); - res.body.coordinates.latitude.should.equal(28.75054); - res.body.coordinates.longitude.should.equal(-82.5001); - id2 = res.body._id; - done(); - }); - }); +// var should = require('should'), +// request = require('supertest'), +// express = require('../config/express'), +// mongoose = require('mongoose'), +// Subscription = require('../models/subscription.server.model.js'); + +// /* Global variables */ +// var app, agent, subscription, id; +// var subscription2, id2; + +// /* Unit tests for testing server side routes for the listings API */ +// describe('Subscription CRUD tests', function() { + +// this.timeout(10000); + +// before(function(done) { +// app = express.init(); +// agent = request.agent(app); + +// done(); +// }); + +// it('should be able to retrieve all subscriptions', function(done) { +// agent.get('/signup') +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res); +// /*res.body.should.have.length(147);*/ +// done(); +// }); +// }); +// it('should be able to retrieve a single subscription', function(done) { +// Subscription.findOne({name: 'Santiago Romero'}, function(err, subscription) { +// if(err) { +// console.log(err); +// } else { +// agent.get('/signup/' + subscription._id) +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res); +// res.body.name.should.equal('Santiago Romero'); +// res.body.email.should.equal('santiagoromero98@ufl.edu'); +// res.body._id.should.equal(subscription._id.toString()); +// done(); +// }); +// } +// }); +// }); + +// it('should be able to save a subscription', function(done) { +// var subscription = { +// name: 'Sara Gaya', +// email: 'isaiah@ufl.edu' +// }; +// agent.post('/signup') +// .send(subscription) +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res.body._id); +// res.body.name.should.equal('Sara Gaya'); +// res.body.email.should.equal('sgaya16@ufl.edu'); +// id = res.body._id; +// done(); +// }); +// }); + + + +// it('should be able to update a subscription', function(done) { +// var updatedSubscription = { +// name: 'Sara Gaya', +// email: 'saracgaya@gmail.com' +// }; + +// agent.put('/signup/' + id) +// .send(updatedSubscription) +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res.body._id); +// res.body.name.should.equal('Sara Gaya'); +// res.body.email.should.equal('saracgaya@gmail.com'); +// done(); +// }); +// }); + +// it('should be able to delete a subscription', function(done) { +// agent.delete('/signup/' + id) +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res); + +// agent.get('/signup/' + id) +// .expect(400) +// .end(function(err, res) { +// id = undefined; +// done(); +// }); +// }) +// }); + +// /*If this test fails because you haven't completed the coordinates.server.controlelr.js file +// use the filter feature in MongoDB Atlas to find and delete the entry +// {'code' : 'GMC'} +// This should resolve the issue. Although the test has failed our create function still +// sends the listing to the database. + +// You can comment the two coordinate tests until you have completed the code the +// coordinates.server.controlelr.js file +// */ + +// /* +// it('should be able to save a listing with coordinates', function(done) { +// var listing2 = { +// code: 'GMC', +// name: 'Dr. Gardner-McCunes Office', +// address: '432 Newell Dr, Gainesville, FL 32611' +// }; +// agent.post('/api/listings') +// .send(listing2) +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res.body._id); +// res.body.name.should.equal('Dr. Gardner-McCunes Office'); +// res.body.code.should.equal('GMC'); +// res.body.address.should.equal('432 Newell Dr, Gainesville, FL 32611'); +// res.body.coordinates.latitude.should.equal(28.75054); +// res.body.coordinates.longitude.should.equal(-82.5001); +// id2 = res.body._id; +// done(); +// }); +// }); - it('should be able to delete the listing with coordinates', function(done) { - agent.delete('/api/listings/' + id2) - .expect(200) - .end(function(err, res) { - should.not.exist(err); - should.exist(res); - agent.get('/api/listings/' + id2) - .expect(400) - .end(function(err, res) { - id = undefined; - done(); - }); - }) - }); - */ +// it('should be able to delete the listing with coordinates', function(done) { +// agent.delete('/api/listings/' + id2) +// .expect(200) +// .end(function(err, res) { +// should.not.exist(err); +// should.exist(res); +// agent.get('/api/listings/' + id2) +// .expect(400) +// .end(function(err, res) { +// id = undefined; +// done(); +// }); +// }) +// }); +// */ - after(function(done) { - if(id) { - Subscription.deleteOne({_id: id}, function(err){ - if(err) throw err; - next(); - }); - }if(id2) { - Subscription.deleteOne({_id: id2}, function(err){ - if(err) throw err; - done(); - }); - }else done(); - }); - - //closes mongoDB connection - after(function(done) { - mongoose.connection.close(); - console.log(mongoose.connection); - done(); - }) +// after(function(done) { +// if(id) { +// Subscription.deleteOne({_id: id}, function(err){ +// if(err) throw err; +// next(); +// }); +// }if(id2) { +// Subscription.deleteOne({_id: id2}, function(err){ +// if(err) throw err; +// done(); +// }); +// }else done(); +// }); + +// //closes mongoDB connection +// after(function(done) { +// mongoose.connection.close(); +// console.log(mongoose.connection); +// done(); +// }) -}); +// }); From 7333b88dec8c92867056ca37c1d7b1df9ef8339b Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 10:56:44 -0500 Subject: [PATCH 12/14] display emails on admin page --- client/src/views/AdminList/AdminList.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/client/src/views/AdminList/AdminList.js b/client/src/views/AdminList/AdminList.js index 6ba9c62..eddb130 100644 --- a/client/src/views/AdminList/AdminList.js +++ b/client/src/views/AdminList/AdminList.js @@ -27,12 +27,15 @@ class AdminList extends React.Component { render() { let usersPerMonth = [0,0,0,0,0,0,0,0,0,0,0,0]; + let emails = []; this.state.usersCollection.forEach((item) => { console.log(item.name); + emails.push(item.email); var index = new Date(item.created_at).getMonth(); usersPerMonth[index]++; }); console.log(usersPerMonth); + console.log(emails); let graphConfig = { type: 'bar', @@ -76,11 +79,11 @@ class AdminList extends React.Component {

    Newsletter List

    List of Newsletter emails in an easy to view style

    -
      -
    • Email1@gmail.com
    • -
    • Email2@hotmail.com
    • -
    • Email3@aol.com
    • -
    +
    + {emails.map(function(e, id){ + return (
  • {e}
  • ) + })} +
    From 4badb80b57b65fb5ba7034aed900215dc1e747df Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Tue, 3 Dec 2019 11:50:43 -0500 Subject: [PATCH 13/14] fixed styling --- client/src/components/AboutUs/AboutUs.css | 2 +- client/src/components/NewsLetter/NewsLetter.css | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/client/src/components/AboutUs/AboutUs.css b/client/src/components/AboutUs/AboutUs.css index 48ab219..173bc58 100644 --- a/client/src/components/AboutUs/AboutUs.css +++ b/client/src/components/AboutUs/AboutUs.css @@ -31,7 +31,7 @@ .About-Blurb { /*background-color: #DC143C;*/ margin: 0px 40px; - /*color: #fff;*/ + color: #fff; font-family: 'Montserrat', sans-serif; font-size: 30px; background-color: #DCDCDC; diff --git a/client/src/components/NewsLetter/NewsLetter.css b/client/src/components/NewsLetter/NewsLetter.css index 94adfc1..a6a4c3f 100644 --- a/client/src/components/NewsLetter/NewsLetter.css +++ b/client/src/components/NewsLetter/NewsLetter.css @@ -2,7 +2,6 @@ background-color: #fff; text-align: center; font-size: 50px; - background-color: #1C1919; } .title { text-align: center; @@ -10,7 +9,7 @@ margin: 0px 200px 20px; font-size: 80px; font-family: 'Roboto', sans-serif; - color: #fff; + /*color: #fff;*/ /*color: #fff;*/ } .Newsletter-Container { @@ -46,7 +45,7 @@ flex-direction: row; flex-wrap: wrap; /*background-color: #3CB371;*/ - color: #32CD32; + color: #FF0000; font-family: 'Montserrat', sans-serif; font-size: 30px; text-align: left; @@ -59,14 +58,14 @@ height: 70px; } .Newsletter-Links { - color: #fff; + /*color: #fff;*/ font-family: 'Montserrat', sans-serif; margin: 0px 30px; height: fit-content; padding-bottom: 10px; } .accent { - color: #32CD32; + color: #FF0000; } .separator { color: #fff; From 7ede30bd9c3d3111230fe69de280f533611c0ff4 Mon Sep 17 00:00:00 2001 From: Sara Gaya Date: Mon, 9 Dec 2019 13:08:41 -0500 Subject: [PATCH 14/14] added commentary for my part --- client/src/components/AboutUs/AboutUs.js | 3 + client/src/components/SignUp/SignUp.js | 8 +- client/src/components/Timeline/Timeline.js | 140 ++++++++++----------- client/src/views/AdminList/AdminList.js | 9 +- 4 files changed, 81 insertions(+), 79 deletions(-) diff --git a/client/src/components/AboutUs/AboutUs.js b/client/src/components/AboutUs/AboutUs.js index 0f805b4..f4c417a 100644 --- a/client/src/components/AboutUs/AboutUs.js +++ b/client/src/components/AboutUs/AboutUs.js @@ -26,6 +26,9 @@ class AboutUs extends React.Component {
    + { + //inluded Timeline component from Timeline.js} + }
    diff --git a/client/src/components/SignUp/SignUp.js b/client/src/components/SignUp/SignUp.js index 924100b..86654e3 100644 --- a/client/src/components/SignUp/SignUp.js +++ b/client/src/components/SignUp/SignUp.js @@ -15,17 +15,19 @@ class FormPage extends React.Component { handleSubmit = () => alert("Thank you for Subscribing!"); onSubmit(e) { + //prevents page from refreshing and losing form data e.preventDefault(); + //object to hold form fields let user = {}; user.name = e.target[0].value; user.email = e.target[1].value; - //user.timestamp = new Date(); + console.log("username: ", user.name); console.log("useremail: ", user.email); - //console.log("date added: ", user.timestamp); - + + //axios used to post the information to the database axios .post("/signup", user) .then(res => { diff --git a/client/src/components/Timeline/Timeline.js b/client/src/components/Timeline/Timeline.js index f2df3bb..61195d9 100644 --- a/client/src/components/Timeline/Timeline.js +++ b/client/src/components/Timeline/Timeline.js @@ -1,83 +1,81 @@ import React from 'react' import './Timeline.css' import { VerticalTimeline, VerticalTimelineElement } from 'react-vertical-timeline-component'; -//import 'react-vertical-timeline-component/style.min.css'; -class Timeline extends React.Component { +class Timeline extends React.Component { +//timeline component used from react-vertical-timeline render() { return ( - -

    Tumbler Lock

    -

    1778

    -

    - uses pins of varying lengths to prevent the lock from opening without the correct key -

    -
    - -

    Flat Key

    -

    1851

    -

    - key with serrated edges as well as pins of varying lengths within the lock itself -

    -
    - -

    Electronic Locks

    -

    1970s

    -

    - lock or unlock with the assistance of an electrical current -

    -
    - -

    Smart Lock

    -

    2014

    -

    - opens wirelessly with authorized user authentication -

    -
    - -

    FaceR

    -

    2020

    -

    - uses facial recognition as a form of user authentication to unlock -

    -
    + +

    Tumbler Lock

    +

    1778

    +

    + uses pins of varying lengths to prevent the lock from opening without the correct key +

    +
    + +

    Flat Key

    +

    1851

    +

    + key with serrated edges as well as pins of varying lengths within the lock itself +

    +
    + - ) + > +

    Electronic Locks

    +

    1970s

    +

    + lock or unlock with the assistance of an electrical current +

    +
    + +

    Smart Lock

    +

    2014

    +

    + opens wirelessly with authorized user authentication +

    +
    + +

    FaceR

    +

    2020

    +

    + uses facial recognition as a form of user authentication to unlock +

    +
    +
    + ) } } diff --git a/client/src/views/AdminList/AdminList.js b/client/src/views/AdminList/AdminList.js index eddb130..1bb766f 100644 --- a/client/src/views/AdminList/AdminList.js +++ b/client/src/views/AdminList/AdminList.js @@ -12,13 +12,11 @@ class AdminList extends React.Component { }; } + //function gets database information and stores it in the usersCollection array componentDidMount() { axios.get('/signup') .then(res => { this.setState({ usersCollection: res.data }); - //console.log(res.data[1].created_at); - //console.log(new Date(res.data[1].created_at).getMonth()); - }) .catch(function (err) { console.log(err); @@ -26,17 +24,18 @@ class AdminList extends React.Component { } render() { + //array starts with zero users for each month let usersPerMonth = [0,0,0,0,0,0,0,0,0,0,0,0]; let emails = []; this.state.usersCollection.forEach((item) => { console.log(item.name); emails.push(item.email); + //gets the month from the date and iincrements the corresponding month var index = new Date(item.created_at).getMonth(); usersPerMonth[index]++; }); - console.log(usersPerMonth); - console.log(emails); + //zingchart bar graph configuration let graphConfig = { type: 'bar', title: {