From 89d9280eb67c0a894ad88eda206b35f0606e8783 Mon Sep 17 00:00:00 2001 From: junikimm717 <68165832+junikimm717@users.noreply.github.com> Date: Sun, 9 May 2021 15:32:46 -0400 Subject: [PATCH] First commit --- .gitignore | 2 + content/amc.txt | 1 + content/bio.txt | 1 + content/mathcounts.txt | 1 + content/school.txt | 1 + package-lock.json | 685 +++++++++++++++++++++++++++++++++++++++++ package.json | 17 + public/pixel.png | Bin 0 -> 18486 bytes src/index.js | 32 ++ views/achievements.pug | 22 ++ views/headers.pug | 11 + views/index.pug | 32 ++ views/navbar.pug | 15 + views/school.pug | 19 ++ 14 files changed, 839 insertions(+) create mode 100644 .gitignore create mode 100644 content/amc.txt create mode 100644 content/bio.txt create mode 100644 content/mathcounts.txt create mode 100644 content/school.txt create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/pixel.png create mode 100644 src/index.js create mode 100644 views/achievements.pug create mode 100644 views/headers.pug create mode 100644 views/index.pug create mode 100644 views/navbar.pug create mode 100644 views/school.pug diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9daa824 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +node_modules diff --git a/content/amc.txt b/content/amc.txt new file mode 100644 index 0000000..c20cc13 --- /dev/null +++ b/content/amc.txt @@ -0,0 +1 @@ +(AMC Description Here) diff --git a/content/bio.txt b/content/bio.txt new file mode 100644 index 0000000..9a013ff --- /dev/null +++ b/content/bio.txt @@ -0,0 +1 @@ +(put about me description) diff --git a/content/mathcounts.txt b/content/mathcounts.txt new file mode 100644 index 0000000..89d2306 --- /dev/null +++ b/content/mathcounts.txt @@ -0,0 +1 @@ +(MathCounts Description Here) diff --git a/content/school.txt b/content/school.txt new file mode 100644 index 0000000..0621afc --- /dev/null +++ b/content/school.txt @@ -0,0 +1 @@ +(Description of where you go and what you do) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ed5a433 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,685 @@ +{ + "name": "tei_website", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "requires": { + "@babel/types": "^7.9.6" + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "requires": { + "is-regex": "^1.0.3" + } + }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-core-module": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + }, + "mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "requires": { + "mime-db": "1.47.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==" + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=" + }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2f3252c --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "tei_website", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node src/index.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.17.1", + "pug": "^3.0.2" + } +} diff --git a/public/pixel.png b/public/pixel.png new file mode 100644 index 0000000000000000000000000000000000000000..8886531cc040af1cbb2b2b269a1335710463474d GIT binary patch literal 18486 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 Gne$(Px2e+r literal 0 HcmV?d00001 diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..82bb80c --- /dev/null +++ b/src/index.js @@ -0,0 +1,32 @@ +// main variables +const express = require('express'); +const app = express(); +const port = 3000; + +// settings +app.set('views', './views'); +app.set('view engine', 'pug'); + +// callbacks +app.get('/', (req, res) => { + res.render('index'); +}); + +app.get('/school', (req, res) => { + res.render('school'); +}) + +app.use(express.static("public")) + +app.get('/achievements', (req, res) => { + res.render('achievements'); +}) + +app.get('*', (req, res, next) => { + res.status(200).send('Sorry, requested page not found.'); + next(); +}); + +app.listen(port, () => { + console.log('server running'); +}); \ No newline at end of file diff --git a/views/achievements.pug b/views/achievements.pug new file mode 100644 index 0000000..9187711 --- /dev/null +++ b/views/achievements.pug @@ -0,0 +1,22 @@ +doctype=html +html + include headers.pug + style(type='text/css'). + .tbl { + border-radius:25px; + } + body + include navbar.pug + .container + .row + h1 Achievements + .row + .col-md-5.tbl.bg-primary.text-light.m-2 + h2 2021 MathCounts + p + include ../content/mathcounts.txt + + .col-md-5.tbl.bg-primary.text-light.m-2 + h2 2021 AMC 10 + p + include ../content/amc.txt \ No newline at end of file diff --git a/views/headers.pug b/views/headers.pug new file mode 100644 index 0000000..6a65650 --- /dev/null +++ b/views/headers.pug @@ -0,0 +1,11 @@ +head + link(rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css") + script(src='https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js') + title Tei's Personal Website + style(type='text/css'). + a { + font-size:125%; + } + p { + font-size: 125%; + } \ No newline at end of file diff --git a/views/index.pug b/views/index.pug new file mode 100644 index 0000000..94385f6 --- /dev/null +++ b/views/index.pug @@ -0,0 +1,32 @@ +doctype=html +html + include headers.pug + body + include navbar.pug + .container + .row + h1 Welcome to Tei's Personal Website! + br + .row + h2 About Me + p: include ../content/bio.txt + .row + h2 Contact + a(href="mailto:teikimm307@gmail.com" target="new"): | Email + a(href="https://github.com/teikimm307" target="new"): | Github + br + br + + style(type="text/css"). + .cite { + font-size: 70%; + } + .row.text-muted + p.cite + | This website was written with + a(href="https://getbootstrap.com/" target="new"): | Bootstrap CSS + | and + a(href="https://expressjs.com/" target="new"): | Express JS. + p.cite + | See the source + a(href="https://git.junickim.me/junikimm717/Tei-Personal-Website" target="new"): | on Gitea. \ No newline at end of file diff --git a/views/navbar.pug b/views/navbar.pug new file mode 100644 index 0000000..490945b --- /dev/null +++ b/views/navbar.pug @@ -0,0 +1,15 @@ +nav.navbar.navbar-expand-sm.navbar-light.bg-light + .container-fluid + .navbar-header + a(href="/").navbar-brand: | Tei Kim + + ul.nav.navbar-nav + li + button.btn.btn-primary.m-2 + a(href="/achievements" class="text-light") + | Achievements + li + button.btn.btn-primary.m-2 + a(href="/school").text-light + | School + \ No newline at end of file diff --git a/views/school.pug b/views/school.pug new file mode 100644 index 0000000..ee44911 --- /dev/null +++ b/views/school.pug @@ -0,0 +1,19 @@ +doctype=html +html + include headers.pug + style(type='text/css'). + .tbl { + border-radius:25px; + } + body + include navbar.pug + .container + .row + h1 School + .row + .col-md-7.tbl.m-2.text-light.bg-primary + p + include ../content/school.txt + + .col-md-3.tbl.m-2 + img(src="/pixel.png" width=200 height=200) \ No newline at end of file