20
.gitignore
vendored
|
@ -1,21 +1 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.pyc
|
|
||||||
*.pyo
|
|
||||||
env
|
|
||||||
env*
|
|
||||||
dist
|
|
||||||
build
|
|
||||||
*.egg
|
|
||||||
*.egg-info
|
|
||||||
_mailinglist
|
|
||||||
.tox
|
|
||||||
.cache/
|
|
||||||
.idea/
|
|
||||||
__pycache__/
|
|
||||||
migrations/
|
|
||||||
config.py
|
|
||||||
settings.py
|
|
||||||
env/
|
|
||||||
db.sqlite3
|
|
||||||
*.json
|
|
||||||
admin/
|
|
||||||
|
|
2
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2017 William Zhang
|
Copyright (c) 2018 Anubis Watal
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
26
README.md
|
@ -1,25 +1 @@
|
||||||
# SGA Website #
|
# 2018 SGA Website #
|
||||||
|
|
||||||
## Setting up Production ##
|
|
||||||
* Create a blank sqlite database with `sqlite3 db.sqlite3 ".databases"`
|
|
||||||
* `source env/bin/activate`
|
|
||||||
* Initialize the database with `python3 manage.py makemigrations` and then `python3 manage.py migrate` (Do this whenever you make changes to models)
|
|
||||||
|
|
||||||
## Installing ##
|
|
||||||
* `source env/bin/activate`
|
|
||||||
* `virtualenv -p python3 env`
|
|
||||||
* `pip install -r requirements.txt`
|
|
||||||
|
|
||||||
## Running ##
|
|
||||||
* `source env/bin/activate`
|
|
||||||
* `python3 manage.py runserver $PORT` where `$PORT` is desired port.
|
|
||||||
|
|
||||||
## Editing Data ##
|
|
||||||
|
|
||||||
### Member Information ###
|
|
||||||
* Member Information is modified in the django admin interface at `/admin`.
|
|
||||||
* Sponsors have a -1 year to filter out the graduation year field in the generated website.
|
|
||||||
* Officer bios are optional.
|
|
||||||
|
|
||||||
### Forms ###
|
|
||||||
* This feature is currently being worked on.
|
|
||||||
|
|
75
css/index.css
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
@import 'https://fonts.googleapis.com/css?family=Bitter:300,400,500';
|
||||||
|
body {
|
||||||
|
margin: 0px;
|
||||||
|
font-family: "Bitter", "Helvetica", "Arial", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.background {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.background img {
|
||||||
|
flex-shrink: 0;
|
||||||
|
min-width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
|
}
|
||||||
|
.background .overlay {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
flex-direction: column;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
min-width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
|
background-color: rgba(77, 83, 137, 0.9);
|
||||||
|
}
|
||||||
|
.background .overlay .title {
|
||||||
|
text-align: center;
|
||||||
|
opacity: 1;
|
||||||
|
color: white;
|
||||||
|
font-size: 2.7em;
|
||||||
|
margin: 0px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-left: 15px;
|
||||||
|
margin-right: 15px;
|
||||||
|
word-spacing: 5px;
|
||||||
|
animation-name: fadeIn;
|
||||||
|
animation-duration: 3s;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
}
|
||||||
|
.background .overlay .underline {
|
||||||
|
height: 7px;
|
||||||
|
width: 35vw;
|
||||||
|
background-color: #ecb85b;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
animation-name: underline, fadeIn;
|
||||||
|
animation-duration: 2s;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes underline {
|
||||||
|
from {
|
||||||
|
transform: scaleX(0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: scaleX(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=css/index.css.map */
|
1
css/index.css.map
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sourceRoot":"","sources":["../scss/index.scss"],"names":[],"mappings":"AAAQ;AAER;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKH;EACC;IACC;;EAGD;IACC;;;AAIF;EACC;IACC;;EAGD;IACC","file":"index.css"}
|
22
manage.py
|
@ -1,22 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sgawebsite.settings")
|
|
||||||
try:
|
|
||||||
from django.core.management import execute_from_command_line
|
|
||||||
except ImportError:
|
|
||||||
# The above import may fail for some other reason. Ensure that the
|
|
||||||
# issue is really that Django is missing to avoid masking other
|
|
||||||
# exceptions on Python 2.
|
|
||||||
try:
|
|
||||||
import django
|
|
||||||
except ImportError:
|
|
||||||
raise ImportError(
|
|
||||||
"Couldn't import Django. Are you sure it's installed and "
|
|
||||||
"available on your PYTHONPATH environment variable? Did you "
|
|
||||||
"forget to activate a virtual environment?"
|
|
||||||
)
|
|
||||||
raise
|
|
||||||
execute_from_command_line(sys.argv)
|
|
596
package-lock.json
generated
Normal file
|
@ -0,0 +1,596 @@
|
||||||
|
{
|
||||||
|
"name": "2018 TJ SGA Website",
|
||||||
|
"requires": true,
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"dependencies": {
|
||||||
|
"accepts": {
|
||||||
|
"version": "1.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||||
|
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||||
|
"requires": {
|
||||||
|
"mime-types": "2.1.18",
|
||||||
|
"negotiator": "0.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"align-text": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
|
||||||
|
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
|
||||||
|
"requires": {
|
||||||
|
"kind-of": "3.2.2",
|
||||||
|
"longest": "1.0.1",
|
||||||
|
"repeat-string": "1.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"amdefine": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
|
||||||
|
},
|
||||||
|
"array-flatten": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||||
|
},
|
||||||
|
"async": {
|
||||||
|
"version": "1.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||||
|
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
|
||||||
|
},
|
||||||
|
"body-parser": {
|
||||||
|
"version": "1.18.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
|
||||||
|
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
|
||||||
|
"requires": {
|
||||||
|
"bytes": "3.0.0",
|
||||||
|
"content-type": "1.0.4",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "1.1.2",
|
||||||
|
"http-errors": "1.6.3",
|
||||||
|
"iconv-lite": "0.4.19",
|
||||||
|
"on-finished": "2.3.0",
|
||||||
|
"qs": "6.5.1",
|
||||||
|
"raw-body": "2.3.2",
|
||||||
|
"type-is": "1.6.16"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bytes": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
|
||||||
|
},
|
||||||
|
"camelcase": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
|
||||||
|
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"center-align": {
|
||||||
|
"version": "0.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
|
||||||
|
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"align-text": "0.1.4",
|
||||||
|
"lazy-cache": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cliui": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"center-align": "0.1.3",
|
||||||
|
"right-align": "0.1.3",
|
||||||
|
"wordwrap": "0.0.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"wordwrap": {
|
||||||
|
"version": "0.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
|
||||||
|
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content-disposition": {
|
||||||
|
"version": "0.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
|
||||||
|
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
|
||||||
|
},
|
||||||
|
"content-type": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
||||||
|
},
|
||||||
|
"cookie": {
|
||||||
|
"version": "0.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
||||||
|
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
|
||||||
|
},
|
||||||
|
"cookie-signature": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "2.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"decamelize": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||||
|
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"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="
|
||||||
|
},
|
||||||
|
"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.16.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
||||||
|
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
||||||
|
"requires": {
|
||||||
|
"accepts": "1.3.5",
|
||||||
|
"array-flatten": "1.1.1",
|
||||||
|
"body-parser": "1.18.2",
|
||||||
|
"content-disposition": "0.5.2",
|
||||||
|
"content-type": "1.0.4",
|
||||||
|
"cookie": "0.3.1",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "1.1.2",
|
||||||
|
"encodeurl": "1.0.2",
|
||||||
|
"escape-html": "1.0.3",
|
||||||
|
"etag": "1.8.1",
|
||||||
|
"finalhandler": "1.1.1",
|
||||||
|
"fresh": "0.5.2",
|
||||||
|
"merge-descriptors": "1.0.1",
|
||||||
|
"methods": "1.1.2",
|
||||||
|
"on-finished": "2.3.0",
|
||||||
|
"parseurl": "1.3.2",
|
||||||
|
"path-to-regexp": "0.1.7",
|
||||||
|
"proxy-addr": "2.0.3",
|
||||||
|
"qs": "6.5.1",
|
||||||
|
"range-parser": "1.2.0",
|
||||||
|
"safe-buffer": "5.1.1",
|
||||||
|
"send": "0.16.2",
|
||||||
|
"serve-static": "1.13.2",
|
||||||
|
"setprototypeof": "1.1.0",
|
||||||
|
"statuses": "1.4.0",
|
||||||
|
"type-is": "1.6.16",
|
||||||
|
"utils-merge": "1.0.1",
|
||||||
|
"vary": "1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"finalhandler": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||||
|
"requires": {
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"encodeurl": "1.0.2",
|
||||||
|
"escape-html": "1.0.3",
|
||||||
|
"on-finished": "2.3.0",
|
||||||
|
"parseurl": "1.3.2",
|
||||||
|
"statuses": "1.4.0",
|
||||||
|
"unpipe": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"foreachasync": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY="
|
||||||
|
},
|
||||||
|
"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="
|
||||||
|
},
|
||||||
|
"handlebars": {
|
||||||
|
"version": "4.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz",
|
||||||
|
"integrity": "sha1-ksbta7FkEQxQ1NjQ+93HCAbG+Oc=",
|
||||||
|
"requires": {
|
||||||
|
"async": "1.5.2",
|
||||||
|
"optimist": "0.6.1",
|
||||||
|
"source-map": "0.4.4",
|
||||||
|
"uglify-js": "2.8.29"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hbs": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/hbs/-/hbs-4.0.1.tgz",
|
||||||
|
"integrity": "sha1-S/2YZQ3IydrESzyprfnAmOi8M7Y=",
|
||||||
|
"requires": {
|
||||||
|
"handlebars": "4.0.5",
|
||||||
|
"walk": "2.3.9"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"http-errors": {
|
||||||
|
"version": "1.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
||||||
|
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
||||||
|
"requires": {
|
||||||
|
"depd": "1.1.2",
|
||||||
|
"inherits": "2.0.3",
|
||||||
|
"setprototypeof": "1.1.0",
|
||||||
|
"statuses": "1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"iconv-lite": {
|
||||||
|
"version": "0.4.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||||
|
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
|
||||||
|
},
|
||||||
|
"inherits": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||||
|
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||||
|
},
|
||||||
|
"ipaddr.js": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
|
||||||
|
"integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs="
|
||||||
|
},
|
||||||
|
"is-buffer": {
|
||||||
|
"version": "1.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||||
|
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
||||||
|
},
|
||||||
|
"kind-of": {
|
||||||
|
"version": "3.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||||
|
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||||
|
"requires": {
|
||||||
|
"is-buffer": "1.1.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lazy-cache": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
|
||||||
|
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"longest": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
|
||||||
|
},
|
||||||
|
"media-typer": {
|
||||||
|
"version": "0.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||||
|
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
||||||
|
},
|
||||||
|
"merge-descriptors": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
|
||||||
|
},
|
||||||
|
"methods": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
|
||||||
|
},
|
||||||
|
"mime": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||||
|
},
|
||||||
|
"mime-db": {
|
||||||
|
"version": "1.33.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
|
||||||
|
"integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
|
||||||
|
},
|
||||||
|
"mime-types": {
|
||||||
|
"version": "2.1.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
|
||||||
|
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
||||||
|
"requires": {
|
||||||
|
"mime-db": "1.33.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimist": {
|
||||||
|
"version": "0.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||||
|
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
},
|
||||||
|
"negotiator": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||||
|
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"optimist": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||||
|
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||||
|
"requires": {
|
||||||
|
"minimist": "0.0.10",
|
||||||
|
"wordwrap": "0.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parseurl": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
|
||||||
|
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
|
||||||
|
},
|
||||||
|
"path": {
|
||||||
|
"version": "0.12.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
|
||||||
|
"integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
|
||||||
|
"requires": {
|
||||||
|
"process": "0.11.10",
|
||||||
|
"util": "0.10.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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="
|
||||||
|
},
|
||||||
|
"process": {
|
||||||
|
"version": "0.11.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
||||||
|
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
|
||||||
|
},
|
||||||
|
"proxy-addr": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
|
||||||
|
"requires": {
|
||||||
|
"forwarded": "0.1.2",
|
||||||
|
"ipaddr.js": "1.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"qs": {
|
||||||
|
"version": "6.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
||||||
|
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
|
||||||
|
},
|
||||||
|
"range-parser": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
||||||
|
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||||
|
},
|
||||||
|
"raw-body": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
|
||||||
|
"integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
|
||||||
|
"requires": {
|
||||||
|
"bytes": "3.0.0",
|
||||||
|
"http-errors": "1.6.2",
|
||||||
|
"iconv-lite": "0.4.19",
|
||||||
|
"unpipe": "1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"depd": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
|
||||||
|
},
|
||||||
|
"http-errors": {
|
||||||
|
"version": "1.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
||||||
|
"integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
|
||||||
|
"requires": {
|
||||||
|
"depd": "1.1.1",
|
||||||
|
"inherits": "2.0.3",
|
||||||
|
"setprototypeof": "1.0.3",
|
||||||
|
"statuses": "1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"setprototypeof": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
|
||||||
|
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"repeat-string": {
|
||||||
|
"version": "1.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
||||||
|
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
||||||
|
},
|
||||||
|
"right-align": {
|
||||||
|
"version": "0.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
|
||||||
|
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"align-text": "0.1.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
||||||
|
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
|
||||||
|
},
|
||||||
|
"send": {
|
||||||
|
"version": "0.16.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||||
|
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
||||||
|
"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.6.3",
|
||||||
|
"mime": "1.4.1",
|
||||||
|
"ms": "2.0.0",
|
||||||
|
"on-finished": "2.3.0",
|
||||||
|
"range-parser": "1.2.0",
|
||||||
|
"statuses": "1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"serve-static": {
|
||||||
|
"version": "1.13.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
||||||
|
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
||||||
|
"requires": {
|
||||||
|
"encodeurl": "1.0.2",
|
||||||
|
"escape-html": "1.0.3",
|
||||||
|
"parseurl": "1.3.2",
|
||||||
|
"send": "0.16.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"setprototypeof": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
|
||||||
|
},
|
||||||
|
"source-map": {
|
||||||
|
"version": "0.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
|
||||||
|
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
|
||||||
|
"requires": {
|
||||||
|
"amdefine": "1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"statuses": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||||
|
},
|
||||||
|
"type-is": {
|
||||||
|
"version": "1.6.16",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
|
||||||
|
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
||||||
|
"requires": {
|
||||||
|
"media-typer": "0.3.0",
|
||||||
|
"mime-types": "2.1.18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uglify-js": {
|
||||||
|
"version": "2.8.29",
|
||||||
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
||||||
|
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"source-map": "0.5.7",
|
||||||
|
"uglify-to-browserify": "1.0.2",
|
||||||
|
"yargs": "3.10.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"source-map": {
|
||||||
|
"version": "0.5.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||||
|
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uglify-to-browserify": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"unpipe": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
||||||
|
},
|
||||||
|
"util": {
|
||||||
|
"version": "0.10.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
|
||||||
|
"integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
|
||||||
|
"requires": {
|
||||||
|
"inherits": "2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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="
|
||||||
|
},
|
||||||
|
"walk": {
|
||||||
|
"version": "2.3.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz",
|
||||||
|
"integrity": "sha1-MbTbZnjyrgHDnqn7hyWpAx5Vins=",
|
||||||
|
"requires": {
|
||||||
|
"foreachasync": "3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"window-size": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"wordwrap": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||||
|
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "3.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
|
||||||
|
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "1.2.1",
|
||||||
|
"cliui": "2.1.0",
|
||||||
|
"decamelize": "1.2.0",
|
||||||
|
"window-size": "0.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
package.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"express": "^4.16.3",
|
||||||
|
"hbs": "^4.0.1",
|
||||||
|
"path": "^0.12.7"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
certifi==2018.4.16
|
|
||||||
chardet==3.0.4
|
|
||||||
Django==2.0.5
|
|
||||||
idna==2.6
|
|
||||||
pytz==2018.4
|
|
||||||
requests==2.18.4
|
|
||||||
urllib3==1.22
|
|
BIN
resources/bkg.jpg
Normal file
After Width: | Height: | Size: 1.6 MiB |
11
run.sh
|
@ -1,11 +1,2 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#export LC_ALL=C.UTF-8
|
node ./server.js > info.log
|
||||||
#export LANG=C.UTF-8
|
|
||||||
#export FLASK_APP=ghswebsite
|
|
||||||
#export APP_SETTINGS="config.ProductionConfig"
|
|
||||||
#/web/activities/ghs/public/env/bin/python run.py $PORT
|
|
||||||
#export PATH=$PATH:/home/2018wzhang/.gem/ruby/2.3.0/bin;
|
|
||||||
#/home/2018wzhang/.gem/ruby/2.3.0/bin/bundler exec jekyll serve --port $PORT
|
|
||||||
#/web/activities/sga/sgawebsite/manage.py runserver $PORT
|
|
||||||
/web/activities/sga/public/env/bin/python3 manage.py runserver $PORT
|
|
||||||
#/web/activities/ghs/public/env/bin/python /web/activities/ghs/public/ghswebsite/app.py $PORT
|
|
||||||
|
|
77
scss/index.scss
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
@import 'https://fonts.googleapis.com/css?family=Bitter:300,400,500';
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0px;
|
||||||
|
font-family: "Bitter", "Helvetica", "Arial", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.background {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
position: relative;
|
||||||
|
img {
|
||||||
|
flex-shrink: 0;
|
||||||
|
min-width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
|
}
|
||||||
|
.overlay {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
flex-direction: column;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
min-width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
|
background-color: rgba(77, 83, 137, 0.9);
|
||||||
|
.title {
|
||||||
|
text-align: center;
|
||||||
|
opacity: 1;
|
||||||
|
color: white;
|
||||||
|
font-size: 2.7em;
|
||||||
|
margin: 0px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-left: 15px;
|
||||||
|
margin-right: 15px;
|
||||||
|
word-spacing: 5px;
|
||||||
|
animation-name: fadeIn;
|
||||||
|
animation-duration: 3s;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
}
|
||||||
|
.underline {
|
||||||
|
height: 7px;
|
||||||
|
width: 35vw;
|
||||||
|
background-color: rgb(236, 184, 91);
|
||||||
|
margin-bottom: 5px;
|
||||||
|
animation-name: underline, fadeIn;
|
||||||
|
animation-duration: 2s;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes underline {
|
||||||
|
from {
|
||||||
|
transform: scaleX(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
transform: scaleX(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
25
server.js
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// MODULES
|
||||||
|
var express = require('express')
|
||||||
|
var path = require('path')
|
||||||
|
var hbs = require('hbs')
|
||||||
|
|
||||||
|
// SERVER INIT
|
||||||
|
var app = express()
|
||||||
|
var server = require('http').createServer(app)
|
||||||
|
|
||||||
|
// SERVER CONFIG
|
||||||
|
app.set('trust proxy', 1)
|
||||||
|
app.set('view engine', 'hbs')
|
||||||
|
hbs.registerPartials(path.join(__dirname, 'views'))
|
||||||
|
|
||||||
|
// CLIENT CONFIG
|
||||||
|
app.use('/css', express.static(path.join(__dirname, 'css')))
|
||||||
|
app.use('/resources', express.static(path.join(__dirname, 'resources')))
|
||||||
|
|
||||||
|
// PAGES
|
||||||
|
app.get('*', function (req, res) {
|
||||||
|
res.render('index')
|
||||||
|
})
|
||||||
|
|
||||||
|
// LISTENER
|
||||||
|
server.listen(process.env.PORT || 8080)
|
|
@ -1,14 +0,0 @@
|
||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
from .models import Member, Resource
|
|
||||||
|
|
||||||
'''
|
|
||||||
class MemberAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ('name', 'display')
|
|
||||||
|
|
||||||
|
|
||||||
class ResourceAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ('name', 'display')
|
|
||||||
'''
|
|
||||||
admin.site.register(Member)
|
|
||||||
admin.site.register(Resource)
|
|
|
@ -1,5 +0,0 @@
|
||||||
from django.apps import AppConfig
|
|
||||||
|
|
||||||
|
|
||||||
class MainConfig(AppConfig):
|
|
||||||
name = 'main'
|
|
|
@ -1,29 +0,0 @@
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
# Create your models here.
|
|
||||||
|
|
||||||
|
|
||||||
class Member(models.Model):
|
|
||||||
first_name = models.CharField(max_length=50)
|
|
||||||
last_name = models.CharField(max_length=50)
|
|
||||||
year = models.IntegerField(blank=True, default=-1)
|
|
||||||
intro = models.CharField(max_length=140, blank=True, default='')
|
|
||||||
title = models.CharField(max_length=30, blank=True, default='')
|
|
||||||
CATEGORIES = (('officers', 'Officers'), ('excomm', 'Executive Committee'),
|
|
||||||
('senators', 'Class Senators'), ('sponsors', 'Sponsors'))
|
|
||||||
category = models.CharField(max_length=10, choices=CATEGORIES)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return self.first_name + ' ' + self.last_name
|
|
||||||
|
|
||||||
|
|
||||||
class Resource(models.Model):
|
|
||||||
name = models.CharField(max_length=50)
|
|
||||||
link = models.URLField()
|
|
||||||
text = models.CharField(max_length=140)
|
|
||||||
CATEGORIES = (('general', 'General Resources'),
|
|
||||||
('event', 'Event Resources'))
|
|
||||||
category = models.CharField(max_length=1, choices=CATEGORIES)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return self.name
|
|
|
@ -1,3 +0,0 @@
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
# Create your tests here.
|
|
|
@ -1,11 +0,0 @@
|
||||||
from django.conf.urls import url
|
|
||||||
|
|
||||||
from .views import *
|
|
||||||
|
|
||||||
urlpatterns = [
|
|
||||||
url(r'^$', index, name='index'),
|
|
||||||
url(r'about', about, name='about'),
|
|
||||||
url(r'resources', resources, name='resources'),
|
|
||||||
url(r'events', events, name='events'),
|
|
||||||
|
|
||||||
]
|
|
|
@ -1,59 +0,0 @@
|
||||||
from django.shortcuts import render
|
|
||||||
from django.template.defaulttags import register
|
|
||||||
from .models import Member, Resource
|
|
||||||
from django.contrib.staticfiles.storage import staticfiles_storage
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
|
||||||
return render(request, 'index.html')
|
|
||||||
|
|
||||||
|
|
||||||
def about(request):
|
|
||||||
categories = list(Member.CATEGORIES)
|
|
||||||
orgs = [c[0] for c in list(Member.CATEGORIES)]
|
|
||||||
data = dict()
|
|
||||||
context = dict()
|
|
||||||
for c in categories:
|
|
||||||
data[c[0]] = Member.objects.filter(category=c[0])
|
|
||||||
print(categories)
|
|
||||||
context['categories'] = categories
|
|
||||||
context['orgs'] = orgs
|
|
||||||
context['data'] = data
|
|
||||||
return render(request, 'about.html', context)
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter
|
|
||||||
def get_item(dictionary, key):
|
|
||||||
return dictionary.get(key)
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter
|
|
||||||
def username(obj):
|
|
||||||
if obj.first_name and obj.last_name:
|
|
||||||
if obj.year > 0:
|
|
||||||
return str(str(obj.year) +
|
|
||||||
obj.first_name[:1] +
|
|
||||||
obj.last_name[:7]).lower()
|
|
||||||
else:
|
|
||||||
return str(obj.first_name[:1] + obj.last_name[:7]).lower()
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter
|
|
||||||
def filename(obj):
|
|
||||||
uname = username(obj)
|
|
||||||
folder = 'img'
|
|
||||||
filepath = os.path.join(folder, 'people', uname + '.jpg')
|
|
||||||
if uname is not None and staticfiles_storage.exists(filepath):
|
|
||||||
return os.path.join('static', filepath)
|
|
||||||
else:
|
|
||||||
return os.path.join('static', folder, 'profile.jpg')
|
|
||||||
|
|
||||||
|
|
||||||
def resources(request):
|
|
||||||
return render(request, 'resources.html')
|
|
||||||
|
|
||||||
|
|
||||||
def events(request):
|
|
||||||
return render(request, 'events.html')
|
|
|
@ -1,127 +0,0 @@
|
||||||
"""
|
|
||||||
Django settings for sgawebsite project.
|
|
||||||
|
|
||||||
Generated by 'django-admin startproject' using Django 1.11.5.
|
|
||||||
|
|
||||||
For more information on this file, see
|
|
||||||
https://docs.djangoproject.com/en/1.11/topics/settings/
|
|
||||||
|
|
||||||
For the full list of settings and their values, see
|
|
||||||
https://docs.djangoproject.com/en/1.11/ref/settings/
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
||||||
|
|
||||||
|
|
||||||
# Quick-start development settings - unsuitable for production
|
|
||||||
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
|
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
|
||||||
SECRET_KEY = ''
|
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
|
||||||
DEBUG = True
|
|
||||||
|
|
||||||
ALLOWED_HOSTS = []
|
|
||||||
|
|
||||||
|
|
||||||
# Application definition
|
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
|
||||||
'django.contrib.admin',
|
|
||||||
'django.contrib.auth',
|
|
||||||
'django.contrib.contenttypes',
|
|
||||||
'django.contrib.sessions',
|
|
||||||
'django.contrib.messages',
|
|
||||||
'django.contrib.staticfiles',
|
|
||||||
'sgawebsite',
|
|
||||||
'sgawebsite.apps',
|
|
||||||
'sgawebsite.apps.main'
|
|
||||||
]
|
|
||||||
|
|
||||||
MIDDLEWARE = [
|
|
||||||
'django.middleware.security.SecurityMiddleware',
|
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
||||||
'django.middleware.common.CommonMiddleware',
|
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
||||||
]
|
|
||||||
|
|
||||||
ROOT_URLCONF = 'sgawebsite.urls'
|
|
||||||
|
|
||||||
TEMPLATES = [
|
|
||||||
{
|
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
||||||
'DIRS': [],
|
|
||||||
'APP_DIRS': True,
|
|
||||||
'OPTIONS': {
|
|
||||||
'context_processors': [
|
|
||||||
'django.template.context_processors.debug',
|
|
||||||
'django.template.context_processors.request',
|
|
||||||
'django.contrib.auth.context_processors.auth',
|
|
||||||
'django.contrib.messages.context_processors.messages',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
WSGI_APPLICATION = 'sgawebsite.wsgi.application'
|
|
||||||
|
|
||||||
|
|
||||||
# Database
|
|
||||||
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
|
|
||||||
|
|
||||||
DATABASES = {
|
|
||||||
'default': {
|
|
||||||
'ENGINE': 'django.db.backends.sqlite3',
|
|
||||||
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Password validation
|
|
||||||
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
|
|
||||||
|
|
||||||
AUTH_PASSWORD_VALIDATORS = [
|
|
||||||
{
|
|
||||||
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
# Internationalization
|
|
||||||
# https://docs.djangoproject.com/en/1.11/topics/i18n/
|
|
||||||
|
|
||||||
LANGUAGE_CODE = 'en-us'
|
|
||||||
|
|
||||||
TIME_ZONE = 'UTC'
|
|
||||||
|
|
||||||
USE_I18N = True
|
|
||||||
|
|
||||||
USE_L10N = True
|
|
||||||
|
|
||||||
USE_TZ = True
|
|
||||||
|
|
||||||
|
|
||||||
# Static files (CSS, JavaScript, Images)
|
|
||||||
# https://docs.djangoproject.com/en/1.11/howto/static-files/
|
|
||||||
|
|
||||||
STATIC_URL = '/static/'
|
|
||||||
STATICFILES_DIRS = [
|
|
||||||
os.path.join(BASE_DIR, 'static'),
|
|
||||||
]
|
|
||||||
LOGIN_REDIRECT_URL = '/'
|
|
|
@ -1,99 +0,0 @@
|
||||||
#contact {
|
|
||||||
width: 100%;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 2.5vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contact>.desc {
|
|
||||||
font-size: 1.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.quote {
|
|
||||||
color: #fff;
|
|
||||||
font-style: italic;
|
|
||||||
display: inline-block;
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.officers-image,
|
|
||||||
.excomm-image,
|
|
||||||
.senators-image,
|
|
||||||
.sponsors-image {
|
|
||||||
width: 17vw;
|
|
||||||
max-width: 200px;
|
|
||||||
height: 17vw;
|
|
||||||
max-height: 200px;
|
|
||||||
margin-bottom: 1vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.officers-image:after,
|
|
||||||
.excomm-image:after,
|
|
||||||
.senators-image:after,
|
|
||||||
.sponsors-image:after {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
background-image: url('../img/profile.jpg');
|
|
||||||
background-size: contain;
|
|
||||||
background-position: center;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.officers-image img,
|
|
||||||
.excomm-image img,
|
|
||||||
.senators-image img,
|
|
||||||
.sponsors-image img {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.officers-text,
|
|
||||||
#excomm-desc,
|
|
||||||
.excomm-text,
|
|
||||||
#senators-desc,
|
|
||||||
.senators-text,
|
|
||||||
#sponsors-desc,
|
|
||||||
.sponsors-text {
|
|
||||||
font-size: 1.1em;
|
|
||||||
color: #fff;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.officers-text>span,
|
|
||||||
.excomm-text>span,
|
|
||||||
.senators-text>span,
|
|
||||||
.sponsors-text>span {
|
|
||||||
font-size: 1.4em;
|
|
||||||
font-weight: bold;
|
|
||||||
display: inline-block;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.officers-intro,
|
|
||||||
.excomm-intro,
|
|
||||||
.senators-intro,
|
|
||||||
.sponsors-intro {
|
|
||||||
text-align: center;
|
|
||||||
margin: 1.5vw;
|
|
||||||
width: 17vw;
|
|
||||||
max-width: 200px;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
flex-basis: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#excomm-desc,
|
|
||||||
#senators-desc,
|
|
||||||
#sponsors-desc {
|
|
||||||
margin: 0 10vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contact>h2,
|
|
||||||
#officers>h2,
|
|
||||||
#excomm>h2,
|
|
||||||
#senators>h2,
|
|
||||||
#sponsors>h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
footer {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
padding: calc((2.75em + 42px) / 4) 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
text-align: center;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #393939;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.social {
|
|
||||||
cursor: pointer;
|
|
||||||
outline: none;
|
|
||||||
border-radius: 50%;
|
|
||||||
width: 36px;
|
|
||||||
height: 36px;
|
|
||||||
margin: 3px;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.social#fb {
|
|
||||||
background: url('../icons/fb.jpg');
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.social#tw {
|
|
||||||
background: url('../icons/tw.jpg');
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.social#flickr {
|
|
||||||
background: url('../icons/flickr.png');
|
|
||||||
background-size: cover;
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.social#mail {
|
|
||||||
background: url('../icons/mail.jpg');
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
|
@ -1,130 +0,0 @@
|
||||||
header {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#banner {
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
background-color: #fff;
|
|
||||||
position: relative;
|
|
||||||
z-index: 3;
|
|
||||||
vertical-align: middle;
|
|
||||||
font-size: 2.5em;
|
|
||||||
font-weight: bold;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
width: 15vh;
|
|
||||||
height: 12vh;
|
|
||||||
background-image: url('../img/logo.png');
|
|
||||||
background-size: 100%;
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu-toggle {
|
|
||||||
cursor: pointer;
|
|
||||||
background-color: #fff;
|
|
||||||
outline: none;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu-toggle:hover {
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu-toggle:active {
|
|
||||||
background-color: #e0e0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu-toggle>i {
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
display: block;
|
|
||||||
background-image: url('../icons/menu.png');
|
|
||||||
background-size: 50%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav#menu {
|
|
||||||
width: 100%;
|
|
||||||
display: inline-flex;
|
|
||||||
flex-direction: row;
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
justify-content: center;
|
|
||||||
border-bottom: 3px solid rgb(164, 38, 44);
|
|
||||||
}
|
|
||||||
|
|
||||||
a.menu-item {
|
|
||||||
width: 12vw;
|
|
||||||
color: #000;
|
|
||||||
font-size: 1em;
|
|
||||||
z-index: 10;
|
|
||||||
display: inline-block;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.menu-item {
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 1.8em;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
outline: none;
|
|
||||||
color: #000;
|
|
||||||
background-color: transparent;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.menu-item:hover {
|
|
||||||
color: #767676;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.menu-item:active {
|
|
||||||
font-size: 1.4em;
|
|
||||||
color: #9f9f9f;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dome:before {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 40vh;
|
|
||||||
min-height: 280px;
|
|
||||||
top: 0vh;
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
background-color: rgba(255, 255, 255, 0.1);
|
|
||||||
-webkit-filter: blur(10px);
|
|
||||||
filter: blur(10px);
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dome {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 40vh;
|
|
||||||
min-height: 280px;
|
|
||||||
color: #000;
|
|
||||||
background-color: rgba(255, 255, 255, 0.6);
|
|
||||||
}
|
|
||||||
|
|
||||||
#dome:after {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 40vh;
|
|
||||||
min-height: 280px;
|
|
||||||
top: 0vh;
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
background-color: #010318;
|
|
||||||
background-image: url('../img/bg.jpg');
|
|
||||||
background-size: cover;
|
|
||||||
background-position-x: center;
|
|
||||||
background-position-y: 0;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-attachment: fixed;
|
|
||||||
z-index: -2;
|
|
||||||
}
|
|
|
@ -1,254 +0,0 @@
|
||||||
/*http://meyerweb.com/eric/tools/css/reset/*/
|
|
||||||
html,body,div,span,button,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
|
|
||||||
font: inherit;
|
|
||||||
font-family: 'Lato', 'Helvetica Neue', Helvetica, sans-serif;
|
|
||||||
font-size: 100%;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
vertical-align: baseline;
|
|
||||||
border: 0
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
overflow-x: hidden;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
||||||
-webkit-touch-callout: none
|
|
||||||
}
|
|
||||||
|
|
||||||
.fluid {
|
|
||||||
-webkit-transition: all .1s ease;
|
|
||||||
-moz-transition: all .1s ease;
|
|
||||||
-ms-transition: all .1s ease;
|
|
||||||
-o-transition: all .1s ease;
|
|
||||||
transition: all .1s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fluid-slow {
|
|
||||||
-webkit-transition: all .5s ease;
|
|
||||||
-moz-transition: all .5s ease;
|
|
||||||
-ms-transition: all .5s ease;
|
|
||||||
-o-transition: all .5s ease;
|
|
||||||
transition: all .5s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
width: 100%;
|
|
||||||
height: 1px;
|
|
||||||
float: left;
|
|
||||||
border: none;
|
|
||||||
background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #3A96DD;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.flip>i {
|
|
||||||
height: 3vh;
|
|
||||||
width: 3vh;
|
|
||||||
display: block;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.expand>i {}
|
|
||||||
|
|
||||||
i.left {
|
|
||||||
background-image: url("../icons/ic_keyboard_arrow_left_black_48px.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
i.right {
|
|
||||||
background-image: url("../icons/ic_keyboard_arrow_right_black_48px.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
i.expand {
|
|
||||||
background-image: url("../icons/ic_expand_less_white_48px.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
button.flip {
|
|
||||||
cursor: pointer;
|
|
||||||
position: absolute;
|
|
||||||
height: 6vh;
|
|
||||||
width: 3vh;
|
|
||||||
outline: none;
|
|
||||||
background-color: rgba(255, 255, 255, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
button.flip.left {
|
|
||||||
top: calc(50% - 3vh);
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.flip.right {
|
|
||||||
top: calc(50% - 3vh);
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.flip:hover {
|
|
||||||
background-color: rgba(255, 255, 255, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
button.flip:active {
|
|
||||||
background-color: rgba(255, 255, 255, 0.9);
|
|
||||||
}
|
|
||||||
|
|
||||||
button.expand {
|
|
||||||
cursor: pointer;
|
|
||||||
position: absolute;
|
|
||||||
height: 6vh;
|
|
||||||
width: 4vh;
|
|
||||||
outline: none;
|
|
||||||
background-color: rgba(255, 255, 255, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
span>a:hover {
|
|
||||||
color: #767676;
|
|
||||||
}
|
|
||||||
|
|
||||||
span>a:active {
|
|
||||||
color: #393939;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrapper {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
z-index: 1;
|
|
||||||
background-color: #4C4A48;
|
|
||||||
height: auto;
|
|
||||||
min-height: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrapper:before {
|
|
||||||
position: absolute;
|
|
||||||
z-index: -1;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100vh;
|
|
||||||
top: 0vh;
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#intro,
|
|
||||||
#calendar,
|
|
||||||
#updates,
|
|
||||||
#officers,
|
|
||||||
#excomm,
|
|
||||||
#senators,
|
|
||||||
#sponsors,
|
|
||||||
#resources,
|
|
||||||
#forms {
|
|
||||||
/*max-width: 1200px;*/
|
|
||||||
display: flex;
|
|
||||||
margin: 0 12.5vw;
|
|
||||||
width: 75vw;
|
|
||||||
height: 100%;
|
|
||||||
justify-content: center;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
#intro,
|
|
||||||
#calendar,
|
|
||||||
#updates,
|
|
||||||
#resources,
|
|
||||||
#forms {
|
|
||||||
padding: 2.5vh 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#resources,
|
|
||||||
#forms {
|
|
||||||
min-height: calc(60vh - ((2.75em + 42px) / 4));
|
|
||||||
}
|
|
||||||
|
|
||||||
#sponsors {
|
|
||||||
padding-bottom: 2.5vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
section h1 {
|
|
||||||
font-size: 3.5em;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
section h2,
|
|
||||||
#intro-title {
|
|
||||||
width: 100%;
|
|
||||||
font-size: 2.1em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #fff;
|
|
||||||
margin: 2.5vh 0;
|
|
||||||
display: inline-block;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#intro-text {
|
|
||||||
text-align: center;
|
|
||||||
flex-grow: calc(50% - 8vw);
|
|
||||||
margin: 0 2vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#intro-image {
|
|
||||||
text-align: center;
|
|
||||||
flex-grow: calc(50% - 8vw);
|
|
||||||
}
|
|
||||||
|
|
||||||
#intro-image>img {
|
|
||||||
margin-top: calc(5vh + 3.1em);
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tweets, #feedback {
|
|
||||||
text-align: center;
|
|
||||||
margin: 0 2vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#letter {
|
|
||||||
width: 100%;
|
|
||||||
font-size: 1.2em;
|
|
||||||
display: inline-block;
|
|
||||||
text-align: left;
|
|
||||||
color: #fff;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#letter>p {
|
|
||||||
margin: 0.5em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.desc {
|
|
||||||
font-size: 1.1em;
|
|
||||||
color: #fff;
|
|
||||||
margin: 0.5em 5vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list>ul {
|
|
||||||
font-size: 1.1em;
|
|
||||||
margin: 0 2vw 0 8vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.desc>span {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.links>h2,
|
|
||||||
.list>h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
|
@ -1,189 +0,0 @@
|
||||||
@media screen and (max-width: 1150px) {
|
|
||||||
#dome:after {
|
|
||||||
background-position-y: 0;
|
|
||||||
}
|
|
||||||
#banner {
|
|
||||||
height: 48px;
|
|
||||||
display: block;
|
|
||||||
top: 0;
|
|
||||||
position: fixed;
|
|
||||||
box-shadow: 0 28rem 79rem 0 rgba(91, 194, 182, .08), 0 40rem 32rem 0 rgba(0, 0, 0, .04);
|
|
||||||
border-bottom: 3px solid rgb(164, 38, 44);
|
|
||||||
}
|
|
||||||
#banner #logo {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
#menu-toggle {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
#banner>h1 {
|
|
||||||
position: absolute;
|
|
||||||
left: 48px;
|
|
||||||
width: calc(100% - 48px);
|
|
||||||
height: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
#menu>a {
|
|
||||||
width: 100%;
|
|
||||||
min-height: 75px;
|
|
||||||
height: 10vh;
|
|
||||||
flex-basis: auto;
|
|
||||||
}
|
|
||||||
button.menu-item {
|
|
||||||
font-size: 1.2em;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
button.menu-item:hover {
|
|
||||||
color: #fff;
|
|
||||||
background-color: rgb(164, 38, 44);
|
|
||||||
}
|
|
||||||
button.menu-item:active {
|
|
||||||
font-size: 1.1em;
|
|
||||||
}
|
|
||||||
#logo-wrapper {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
nav#menu {
|
|
||||||
width: 30vw;
|
|
||||||
max-width: 200px;
|
|
||||||
height: 100vh;
|
|
||||||
top: 0;
|
|
||||||
left: -30vw;
|
|
||||||
padding-top: 48px;
|
|
||||||
display: block;
|
|
||||||
position: fixed;
|
|
||||||
z-index: 2;
|
|
||||||
transition: all 130ms ease;
|
|
||||||
background-color: #fff;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
#menu-toggle {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.officers-intro,
|
|
||||||
.excomm-intro,
|
|
||||||
.senators-intro,
|
|
||||||
.sponsors-intro {
|
|
||||||
width: 22vw;
|
|
||||||
max-width: 200px;
|
|
||||||
}
|
|
||||||
.officers-image,
|
|
||||||
.excomm-image,
|
|
||||||
.senators-image,
|
|
||||||
.sponsors-image {
|
|
||||||
width: 22vw;
|
|
||||||
height: 22vw;
|
|
||||||
}
|
|
||||||
#intro-image {
|
|
||||||
}
|
|
||||||
#intro-image > img {
|
|
||||||
margin-top: 1.2em;
|
|
||||||
}
|
|
||||||
#tweets, #feedback {
|
|
||||||
margin: 0 2vw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 1000px) {
|
|
||||||
#intro-text,
|
|
||||||
#intro-image,
|
|
||||||
#tweets,
|
|
||||||
#feedback,
|
|
||||||
.list,
|
|
||||||
.links {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
section {
|
|
||||||
max-width: 750px;
|
|
||||||
flex-grow: 1;
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
#banner > h1 {
|
|
||||||
font-size: 40px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 700px) {
|
|
||||||
#banner > h1 {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#dome:after {
|
|
||||||
background-position-y: 5vh;
|
|
||||||
}
|
|
||||||
.officers-intro,
|
|
||||||
.excomm-intro,
|
|
||||||
.senators-intro,
|
|
||||||
.sponsors-intro {
|
|
||||||
width: 97vw;
|
|
||||||
max-width: 200px;
|
|
||||||
}
|
|
||||||
.officers-image,
|
|
||||||
.excomm-image,
|
|
||||||
.senators-image,
|
|
||||||
.sponsors-image {
|
|
||||||
width: 97vw;
|
|
||||||
height: 97vw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 500px) {
|
|
||||||
ul {
|
|
||||||
margin: 0 10vw;
|
|
||||||
}
|
|
||||||
#dome {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#wrapper {
|
|
||||||
height: auto;
|
|
||||||
min-height: calc(100vh - 130px);
|
|
||||||
}
|
|
||||||
#wrapper,
|
|
||||||
footer {
|
|
||||||
top: 48px;
|
|
||||||
}
|
|
||||||
#intro,
|
|
||||||
#updates,
|
|
||||||
#officers,
|
|
||||||
#excomm,
|
|
||||||
#senators,
|
|
||||||
#sponsors,
|
|
||||||
#resources,
|
|
||||||
#forms {
|
|
||||||
margin: 0 10vw;
|
|
||||||
width: 80vw;
|
|
||||||
}
|
|
||||||
#intro-text {
|
|
||||||
margin: 0 5vw;
|
|
||||||
}
|
|
||||||
nav#menu {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (min-width: 1150px) {
|
|
||||||
#intro-text,
|
|
||||||
#intro-image,
|
|
||||||
.list,
|
|
||||||
.links {
|
|
||||||
width: 37.5vw;
|
|
||||||
max-width: 550px;
|
|
||||||
}
|
|
||||||
.desc,
|
|
||||||
.list>ul {
|
|
||||||
font-size: 1.3em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (min-width: 1800px) {
|
|
||||||
#letter {
|
|
||||||
font-size: 1.4em;
|
|
||||||
}
|
|
||||||
#excomm-desc,
|
|
||||||
#senators-desc,
|
|
||||||
#sponsors-desc {
|
|
||||||
margin: 0 20vw;
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 795 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 944 B |
Before Width: | Height: | Size: 91 B |
|
@ -1,4 +0,0 @@
|
||||||
<svg fill="#000000" height="48" viewBox="0 0 24 24" width="48" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M0 0h24v24H0z" fill="none"/>
|
|
||||||
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 209 B |
Before Width: | Height: | Size: 849 B |
Before Width: | Height: | Size: 4.1 MiB |
Before Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 28 MiB |
Before Width: | Height: | Size: 267 KiB |
Before Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 16 KiB |
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
FILES=.
|
|
||||||
for f in $FILES/*.jpg
|
|
||||||
do
|
|
||||||
mkdir -p $FILES/out;
|
|
||||||
convert $f -sampling-factor 4:2:0 -strip -resize 300x300 -quality 85 -interlace JPEG -colorspace sRGB ${f%.*}-new.jpg;
|
|
||||||
mv $FILES/*-new.jpg $FILES/out/$f;
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.5 KiB |
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
convert $1 -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace sRGB $2
|
|
2
sgawebsite/static/js/sidebar-min.js
vendored
|
@ -1,2 +0,0 @@
|
||||||
function toggleSidebar(e){""!=sb.style.left&&"-30vw"!=sb.style.left||!e?(sb.style.disabled=!0,sb.style.left="-30vw"):(sb.style.disabled=!1,sb.style.left="0px")}var mb=document.querySelector("#menu-toggle"),sb=document.querySelector("nav#menu"),tb=document.querySelector("#logo"),dm=document.querySelector("#dome"),wr=document.querySelector("#wrapper")
|
|
||||||
mb.addEventListener("click",function(){toggleSidebar(!0)},!1),wr.addEventListener("click",function(){toggleSidebar(!1)},!1),tb.addEventListener("click",function(){toggleSidebar(!1)},!1),dm.addEventListener("click",function(){toggleSidebar(!1)},!1),mb.addEventListener("touchleave",function(){toggleSidebar(!0)},!1),wr.addEventListener("touchleave",function(){toggleSidebar(!1)},!1),tb.addEventListener("touchleave",function(){toggleSidebar(!1)},!1),dm.addEventListener("touchleave",function(){toggleSidebar(!1)},!1),sb.style.disabled=!0
|
|
|
@ -1,42 +0,0 @@
|
||||||
var mb = document.querySelector("#menu-toggle"),
|
|
||||||
sb = document.querySelector("nav#menu"),
|
|
||||||
tb = document.querySelector("#logo"),
|
|
||||||
dm = document.querySelector("#dome"),
|
|
||||||
wr = document.querySelector("#wrapper");
|
|
||||||
|
|
||||||
mb.addEventListener("click", function () {
|
|
||||||
toggleSidebar(true)
|
|
||||||
}, false);
|
|
||||||
wr.addEventListener("click", function () {
|
|
||||||
toggleSidebar(false)
|
|
||||||
}, false);
|
|
||||||
tb.addEventListener("click", function () {
|
|
||||||
toggleSidebar(false)
|
|
||||||
}, false);
|
|
||||||
dm.addEventListener("click", function () {
|
|
||||||
toggleSidebar(false)
|
|
||||||
}, false);
|
|
||||||
mb.addEventListener("touchleave", function () {
|
|
||||||
toggleSidebar(true)
|
|
||||||
}, false);
|
|
||||||
wr.addEventListener("touchleave", function () {
|
|
||||||
toggleSidebar(false)
|
|
||||||
}, false);
|
|
||||||
tb.addEventListener("touchleave", function () {
|
|
||||||
toggleSidebar(false)
|
|
||||||
}, false);
|
|
||||||
dm.addEventListener("touchleave", function () {
|
|
||||||
toggleSidebar(false)
|
|
||||||
}, false);
|
|
||||||
sb.style.disabled = true;
|
|
||||||
|
|
||||||
|
|
||||||
function toggleSidebar(toggleOpenAllowed) {
|
|
||||||
if ((sb.style.left == "" || sb.style.left == "-30vw") && toggleOpenAllowed) {
|
|
||||||
sb.style.disabled = false;
|
|
||||||
sb.style.left = "0px";
|
|
||||||
} else {
|
|
||||||
sb.style.disabled = true;
|
|
||||||
sb.style.left = "-30vw";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
{% include head.html %}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<style type="text/css" media="screen">
|
|
||||||
.container {
|
|
||||||
margin: 10px auto;
|
|
||||||
max-width: 600px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
margin: 30px 0;
|
|
||||||
font-size: 4em;
|
|
||||||
line-height: 1;
|
|
||||||
letter-spacing: -1px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<h1>404</h1>
|
|
||||||
|
|
||||||
<p><strong>Page not found :(</strong></p>
|
|
||||||
<p>The requested page could not be found.</p>
|
|
||||||
</div>
|
|
|
@ -1,57 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
{% load static %}
|
|
||||||
<head>
|
|
||||||
<link href="{% static 'css/about.css' %}" rel="stylesheet" />
|
|
||||||
{% include 'head.html' %}
|
|
||||||
<title>About - TJSGA</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{% include 'header.html' %}
|
|
||||||
<div id="wrapper" class="fluid">
|
|
||||||
<section id="contact">
|
|
||||||
<h2>Contact Us!</h2>
|
|
||||||
<div class="desc">
|
|
||||||
<span class="quote">
|
|
||||||
"The world is moved not only by the mighty shoves of the heroes, but also by the aggregate of the tiny pushes of each honest worker." - Helen Keller
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="desc">
|
|
||||||
Contact us at
|
|
||||||
<a href="mailto:sga.tjhsst@gmail.com">sga.tjhsst@gmail.com</a>. We would love to answer questions or hear
|
|
||||||
about how you think we can improve TJ!
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<hr />
|
|
||||||
{% for org in categories %}
|
|
||||||
<section id="{{ org.0 }}">
|
|
||||||
<h2>{{ org.1 }}</h2>
|
|
||||||
{% with key=data|get_item:org.0 %}
|
|
||||||
{% for member in key %}
|
|
||||||
<div class="{{ org.0 }}-intro">
|
|
||||||
<div class="{{ org.0 }}-image">
|
|
||||||
<img src="{{ member|filename }}" />
|
|
||||||
</div>
|
|
||||||
<div class="{{ org.0 }}-text">
|
|
||||||
<span>{{ member.first_name }} {{ member.last_name }}</span>
|
|
||||||
{% if member.category != 'sponsors' and member.category != 'senators' %}
|
|
||||||
<span>{{ member.year }}</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if member.category != "officers" %}
|
|
||||||
<span>{{ member.title }}</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if member.category == "officers" and member.intro != '' %}
|
|
||||||
<p>{{ member.intro }}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% endwith %}
|
|
||||||
</section>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
{% include 'footer.html' %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,20 +0,0 @@
|
||||||
{% load static %}
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link href="{% static 'css/events.css' %}" rel="stylesheet" />
|
|
||||||
{% include 'head.html' %}
|
|
||||||
<title>Events - TJSGA</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{% include 'header.html' %}
|
|
||||||
<div id="wrapper" class="fluid">
|
|
||||||
<section id="calendar">
|
|
||||||
<iframe src="https://calendar.google.com/calendar/b/3/embed?showTitle=0&showPrint=0&height=600&wkst=1&bgcolor=%23ffffff&src=sga.tjhsst%40gmail.com&color=%23711616&ctz=America%2FNew_York" style="border-width:0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
|
|
||||||
</section>
|
|
||||||
<section id="events">
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
{% include 'footer.html' %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,20 +0,0 @@
|
||||||
{% load static %}
|
|
||||||
<footer>
|
|
||||||
<a href="https://facebook.com/tjsga" target="_blank">
|
|
||||||
<button class="social" id="fb">
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a href="https://twitter.com/tjSGA" target="_blank">
|
|
||||||
<button class="social" id="tw">
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a href="https://facebook.com/tjsga" target="_blank">
|
|
||||||
<button class="social" id="flickr">
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a href="mailto:sga.tjhsst@gmail.com" target="_blank">
|
|
||||||
<button class="social" id="mail">
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</footer>
|
|
||||||
<script src="{% static 'js/sidebar-min.js' %}"></script>
|
|
|
@ -1,30 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link href="css/about.css" rel="stylesheet" />
|
|
||||||
{% include head.html %}
|
|
||||||
<title>About - TJSGA</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{% include header.html %}
|
|
||||||
<div id="wrapper" class="fluid">
|
|
||||||
<section id="forms">
|
|
||||||
{% for form in site.data.forms %}
|
|
||||||
<div class="list">
|
|
||||||
<h2>{{ form['name'] }}</h2>
|
|
||||||
<ul>
|
|
||||||
{% for item in form['items'] %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ item['link'] }}">
|
|
||||||
{{ item['name'] }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
{% include footer.html %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,12 +0,0 @@
|
||||||
{% load static %}
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta content="" name="description">
|
|
||||||
<meta content="William Zhang" name="author">
|
|
||||||
<meta name="theme-color" content="#1976D2" />
|
|
||||||
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0" />
|
|
||||||
<link href="icons/favicon.ico" rel="icon" type="image/ico">
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet"/>
|
|
||||||
<link href="{% static 'css/header.css' %}" rel="stylesheet"/>
|
|
||||||
<link href="{% static 'css/main.css' %}" rel="stylesheet"/>
|
|
||||||
<link href="{% static 'css/footer.css' %}" rel="stylesheet"/>
|
|
||||||
<link href="{% static 'css/responsive.css' %}" rel="stylesheet"/>
|
|
|
@ -1,28 +0,0 @@
|
||||||
{% load static %}
|
|
||||||
<header>
|
|
||||||
<div id="banner">
|
|
||||||
<button id="menu-toggle">
|
|
||||||
<i></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<nav id="menu">
|
|
||||||
<a class="menu-item" href="/">
|
|
||||||
<button class="menu-item fluid">Home</button>
|
|
||||||
</a>
|
|
||||||
<a class="menu-item" href="about">
|
|
||||||
<button class="menu-item fluid">About</button>
|
|
||||||
</a>
|
|
||||||
<a id="logo-wrapper" href="/">
|
|
||||||
<div id="logo">
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="menu-item" href="resources">
|
|
||||||
<button class="menu-item fluid">Resources</button>
|
|
||||||
</a>
|
|
||||||
<a class="menu-item" href="events">
|
|
||||||
<button class="menu-item fluid">Events</button>
|
|
||||||
</a>
|
|
||||||
</nav>
|
|
||||||
<div id="dome">
|
|
||||||
</div>
|
|
||||||
</header>
|
|
|
@ -1,48 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
{% load static %}
|
|
||||||
<head>
|
|
||||||
{% include 'head.html' %}
|
|
||||||
<title>Home - TJSGA</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{% include 'header.html' %}
|
|
||||||
<div id="wrapper" class="fluid">
|
|
||||||
<section id="intro">
|
|
||||||
<div id="intro-text" class="fluid">
|
|
||||||
<h2 id="intro-title">Welcome!</h2>
|
|
||||||
<div id="letter">
|
|
||||||
<p>
|
|
||||||
Welcome to Thomas Jefferson High School for Science and Technology’s student leadership site! Here, you can find information about your class and school-wide officers, our current goals and initiatives, and important events and forms.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
We meet every 8th period block in the Student Leadership Room (Room 224), and all members of the student body are welcome to attend. If you can’t make it to an SGA meeting and have any questions, concerns, or suggestions, feel free to contact us at sga.tjhsst@gmail.com.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Best,<br />Nick Begotka<br /> SGA President 2017-18
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="intro-image" class="fluid">
|
|
||||||
<img src="{% static 'img/group.jpg' %}" alt="TJSGA Group Photo" />
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<hr />
|
|
||||||
<section id="updates">
|
|
||||||
<div id="tweets">
|
|
||||||
<h2>Twitter</h2>
|
|
||||||
<a class="twitter-timeline" data-height="640" data-theme="dark" data-link-color="#2B7BB9" href="https://twitter.com/tjSGA">Tweets by tjSGA</a>
|
|
||||||
<script async defer src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
|
||||||
</div>
|
|
||||||
<div id="feedback">
|
|
||||||
<h2>Feedback</h2>
|
|
||||||
<iframe src="https://docs.google.com/forms/d/18KRo3RritoN6RddNvI-l2zZs1h_1mmVWWgRQGOk2vvQ/viewform?embedded=true" width="100%"
|
|
||||||
height="640" frameborder="0" marginheight="0" marginwidth="0">
|
|
||||||
Loading...
|
|
||||||
</iframe>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
{% include 'footer.html' %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,90 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
{% load static %}
|
|
||||||
<head>
|
|
||||||
{% include 'head.html' %}
|
|
||||||
<title>Resources - TJSGA</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{% include 'header.html' %}
|
|
||||||
<div id="wrapper" class="fluid">
|
|
||||||
<section id="resources">
|
|
||||||
<div class="list">
|
|
||||||
<h2>General</h2>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="https://ion.tjhsst.edu/static/WiFiFAQ.pdf" target="_blank">
|
|
||||||
TJ Wi-Fi FAQs: FCPSonboard
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://integrity.tjhsst.edu" target="_blank">
|
|
||||||
Academic Integrity Guide
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="list">
|
|
||||||
<h2>Mental Health</h2>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="https://tjmindmatters.weebly.com" target="_blank">
|
|
||||||
TJ Mind Matters
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://tjmindmatters.weebly.com/dos-and-donts.html">
|
|
||||||
How to Help a Friend
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://tjmindmatters.weebly.com/from-tj-to-tj" target="_blank">
|
|
||||||
Read & Submit From TJ, to TJ Letters
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://tjmindmatters.weebly.com/youth-mental-health-first-aid.html" target="_blank">
|
|
||||||
Register for YMHFA Training
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="http://tjmindmatters.weebly.com/blog" target="_blank">
|
|
||||||
TJ Mind Matters Blog
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="links">
|
|
||||||
<h2>Course for Action</h2>
|
|
||||||
<div class="desc">
|
|
||||||
An SGA initiative, designed by the students, for the students. Learn about the courses available at TJHSST from students
|
|
||||||
who've taken them and the teachers that teach them!
|
|
||||||
<span>
|
|
||||||
Visit the YouTube channel <a href="https://youtube.com/channel/UCGvdoktHFvLHpqBaj17zKwQ" target="_blank">
|
|
||||||
here.
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="links">
|
|
||||||
<h2>Student Advocacy</h2>
|
|
||||||
<div class="desc">
|
|
||||||
At Jefferson, students have rights and responsibilities that they are guaranteed as a part of their educational experience.
|
|
||||||
<a href="https://ion.tjhsst.edu/uploads/advocacy.pdf" target="_blank">
|
|
||||||
The Student Advocacy Guidlines
|
|
||||||
</a> were created to help students be aware of how they can proactively manage their
|
|
||||||
learning, self-advocate, and succeed in school.
|
|
||||||
</div>
|
|
||||||
<div class="desc">
|
|
||||||
Use
|
|
||||||
<a href="https://docs.google.com/forms/d/1clH0ga4U2G2hu2gW3EZpwW9BCJDU76RytTTJCKaheao/viewform" target="_blank">
|
|
||||||
this form
|
|
||||||
</a> to report divergences from the Student Advocacy Guidelines. Submissions will
|
|
||||||
be kept strictly confidential, but name & grade are required for follow-up of the situation.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
{% include 'footer.html' %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,6 +0,0 @@
|
||||||
User-agent: Google
|
|
||||||
Disallow: /icons
|
|
||||||
|
|
||||||
User-agent: *
|
|
||||||
Disallow: /img
|
|
||||||
Disallow: /icons
|
|
|
@ -1,34 +0,0 @@
|
||||||
"""sgawebsite URL Configuration
|
|
||||||
|
|
||||||
The `urlpatterns` list routes URLs to views. For more information please see:
|
|
||||||
https://docs.djangoproject.com/en/1.11/topics/http/urls/
|
|
||||||
Examples:
|
|
||||||
Function views
|
|
||||||
1. Add an import: from my_app import views
|
|
||||||
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
|
|
||||||
Class-based views
|
|
||||||
1. Add an import: from other_app.views import Home
|
|
||||||
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
|
|
||||||
Including another URLconf
|
|
||||||
1. Import the include() function: from django.conf.urls import url, include
|
|
||||||
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
|
|
||||||
"""
|
|
||||||
from django.conf.urls import include, url
|
|
||||||
from django.views.generic import TemplateView
|
|
||||||
from django.contrib import admin
|
|
||||||
from .apps.main import urls as main
|
|
||||||
import requests
|
|
||||||
|
|
||||||
about = requests.get('https://sgawebsite-e30e2.firebaseio.com/about.json')
|
|
||||||
forms = requests.get('https://sgawebsite-e30e2.firebaseio.com/forms.json')
|
|
||||||
with open('about.json', 'w') as f:
|
|
||||||
f.write(str(about.json()[0]))
|
|
||||||
with open('forms.json', 'w') as f:
|
|
||||||
f.write(str(forms.json()[0]))
|
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
|
||||||
url(r'^admin/', admin.site.urls),
|
|
||||||
url(r'^', include(main)),
|
|
||||||
url(r'^robots\.txt$', TemplateView.as_view(template_name='robots.txt'), name='robots.txt')
|
|
||||||
]
|
|
|
@ -1,16 +0,0 @@
|
||||||
"""
|
|
||||||
WSGI config for sgawebsite project.
|
|
||||||
|
|
||||||
It exposes the WSGI callable as a module-level variable named ``application``.
|
|
||||||
|
|
||||||
For more information on this file, see
|
|
||||||
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from django.core.wsgi import get_wsgi_application
|
|
||||||
|
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sgawebsite.settings")
|
|
||||||
|
|
||||||
application = get_wsgi_application()
|
|
21
views/index.hbs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang='en'>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/index.css">
|
||||||
|
<title>TJHSST SGA</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class='background'>
|
||||||
|
<img src='resources/bkg.jpg'/>
|
||||||
|
<div class='overlay'>
|
||||||
|
<h1 class='title'>This site is under construction</h1>
|
||||||
|
<div class='underline'></div>
|
||||||
|
<p class='title'>TJSSHT SGA 2018-19</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|