diff --git a/main.py b/main.py
index 530c90f..7a3f7d0 100644
--- a/main.py
+++ b/main.py
@@ -5,11 +5,19 @@
# import events list
from models import events
+
@app.route('/')
def index():
return render_template(
'index.html',
- events = events.eventlist
+ pastevents=events.pastevents,
+ upcomingevents=events.upcomingevents
+ )
+
+@app.route('/faq')
+def faq():
+ return render_template(
+ 'faq.html'
)
@app.route('/about')
@@ -23,26 +31,36 @@ def aboutus():
def schedule():
return render_template(
'schedule.html',
- events = events.eventlist
+ pastevents=events.pastevents,
+ upcomingevents=events.upcomingevents
)
+
@app.route('/materials')
def materials():
return render_template(
'materials.html'
)
-@app.route('/materials/html5')
-def html_workshop():
+@app.route('/materials/html5_2013')
+def html_2013_workshop():
+ return render_template(
+ 'materials/html5workshop2013.html'
+ )
+
+@app.route('/materials/html5_2012')
+def materials_html_workshop():
return render_template(
'materials/html5workshop.html'
)
+
@app.route('/materials/gitjquery')
-def html_workshop():
+def materials_gitjquery():
return render_template(
'materials/gitjquery.html'
)
+
if __name__ == "__main__":
app.run()
diff --git a/models/events.py b/models/events.py
index bce34f2..9c0ade5 100644
--- a/models/events.py
+++ b/models/events.py
@@ -1,19 +1,58 @@
-eventlist = [
+upcomingevents = [
+ {
+ "title": "Web Development first steps with Sinatra",
+ "datetime": "Saturday, 16 February 2013, 10am - 1pm",
+ "location": "Global Learning Room, Education Resource Centre, University Town",
+ "audience": "Beginner",
+ "prereq": "HTML/CSS, and programming basics is assumed. Familiarity with Ruby is not required.",
+ "description": "Sinatra is a small but powerful micro-framework for creating web applications in Ruby. In this workshop, we'll take a whirlwind tour of Sinatra and in the process, learn about the common MVC web application pattern. This workshop will also cover the basic ideas necessary for building web applications (whether in Sinatra or otherwise).
Sign up here →",
+ "image": "/static/img/sinatra.png"
+ },
+ {
+ "title": "Unix and Shell Scripting Basics",
+ "datetime": "Saturday, 23 February 2013, 10am - 1pm",
+ "location": "Global Learning Room, Education Resource Centre, University Town",
+ "audience": "Beginner",
+ "description": "In the professional world, unix is ubiquitous, and shell scripting is the staple of unix. With shell scripting, you can automate tasks that'd otherwise take you hours to accomplish. We'll be explaining the basic philosophy & ideas behind the design of Unix, and introducing shell scripting by way of walking through some very common tasks.
Sign up here →",
+ "image": "/static/img/freebsd.png"
+ }
+]
+
+pastevents = [
+ {
+ "title": "Git for Beginners",
+ "datetime": "Saturday, 2 February 2013, 10am - 1pm",
+ "location": "Global Learning Room, Education Resource Centre, University Town",
+ "audience": "Beginner",
+ "description": "Ever used Dropbox to store your code because it makes backups? Made multiple copies of your assignment's folder just to try different things? Worked on group projects by coding in Google Docs? Git is the tool for you: it'll change the way you code for the better. Sign up here →",
+ "image": "/static/img/git.png",
+ "materials": "Materials to come."
+ },
+ {
+ "title": "Introduction to HTML5/CSS3",
+ "datetime": "Saturday, 26 January 2013, 10am - 1pm",
+ "location": "Seminar Room 3, COM1, School of Computing, NUS",
+ "audience": "Beginner",
+ "description": "Wanted to make a website, but found w3c's tutorials too boring? We'll teach you HTML5 and CSS3 from scratch. Come down to get a hands-on experience on designing beautiful webpages, and walk away with a personalized website. Workshop complete; materials here.",
+ "image": "/static/img/html5.png",
+ "materials": "Materials to come."
+ },
{
"title": "Git & jQuery for beginners",
- "datetime": "Monday, 24 September 2012, 10am - 1pm",
+ "datetime": "Monday, 24 September 2012, 10am - 1pm (Event concluded)",
"location": "NUS COM1-02-12 SR3 ",
"audience": "Beginner",
- "description": "jQuery is a swiss army knife for frontend web development. Also, meet Git, a version control system. It'll change the way you code. Seriously. You'll wonder what you were doing before Git. Sign Up Here!",
- "image": "/static/img/gitjs.png"
+ "description": "jQuery is a swiss army knife for frontend web development. Also, meet Git, a version control system. It'll change the way you code. Seriously. You'll wonder what you were doing before Git. materials here",
+ "image": "/static/img/gitjs.png",
+ "materials": "Materials here"
},
{
"title": "Introduction to HTML5/CSS3",
"datetime": "Saturday, 22 September 2012, 10am - 1pm (Event concluded)",
"location": "NUS COM1-02-12 SR3 ",
"audience": "Beginner",
- "description": "Wanted to make a website, but found w3c's tutorials too boring? We'll teach you HTML5 and CSS3 from scratch. Come down to get a hands-on experience on designing beautiful webpages, and walk away with a personalized website. Event over; materials here →",
- "image": "/static/img/html5.png"
+ "description": "Wanted to make a website, but found w3c's tutorials too boring? We'll teach you HTML5 and CSS3 from scratch. Come down to get a hands-on experience on designing beautiful webpages, and walk away with a personalized website. materials here",
+ "image": "/static/img/html5.png",
+ "materials": "Materials here"
},
-
]
diff --git a/static/css/main.css b/static/css/main.css
index 6c81e9e..609e61c 100644
--- a/static/css/main.css
+++ b/static/css/main.css
@@ -170,7 +170,7 @@ section {
}
section h2 {
padding: 5px 0;
- margin-bottom: 15px;
+ margin: 15px 0 0px;
border-bottom: solid 1px #ccc;
}
section h3 {
@@ -219,43 +219,489 @@ h3 {
font-weight: 300;
line-height: 35px;
}
-.events {
+.events,
+.questions {
margin-top: -20px;
margin-left: 0;
}
.events ul,
-.events li {
+.questions ul,
+.events li,
+.questions li {
list-style: none;
margin-left: 0;
}
-.events .event {
+.events .event,
+.questions .event,
+.events .question,
+.questions .question {
position: relative;
min-height: 180px;
border-bottom: solid 1px #eee;
}
-.events .event img {
+.events .event img,
+.questions .event img,
+.events .question img,
+.questions .question img {
position: absolute;
right: 0;
top: 15px;
width: 140px;
padding: 20px;
}
-.events .event .info {
+.events .event .info,
+.questions .event .info,
+.events .question .info,
+.questions .question .info {
padding: 20px 0;
margin: 10px 0;
width: 500px;
}
-.events .event .info .row {
+.events .event .info .row,
+.questions .event .info .row,
+.events .question .info .row,
+.questions .question .info .row {
margin: 3px 0;
}
-.events .event .info .row .label {
+.events .event .info .row .label,
+.questions .event .info .row .label,
+.events .question .info .row .label,
+.questions .question .info .row .label {
font-weight: 600;
}
-.events .event .info .row .calltoaction {
+.events .event .info .row .calltoaction,
+.questions .event .info .row .calltoaction,
+.events .question .info .row .calltoaction,
+.questions .question .info .row .calltoaction {
display: inline-block;
color: #d70000;
font-weight: bold;
}
+.past {
+ margin-top: 50px;
+}
+.past .event img {
+ left: 0;
+}
+.past .event .info {
+ margin-left: 200px;
+}
+footer {
+ padding: 50px 5px 10px 5px;
+ font-size: 14px;
+ height: 30px;
+}
+footer a {
+ color: #4f4f4f;
+}
+html,
+body {
+ height: 100%;
+}
+.push {
+ height: 90px;
+}
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+ margin: 0 auto -90px;
+}
+/*
+Sticky Footer by Ryan Fait
+http://ryanfait.com/
+*/
+@media screen and (max-width: 700px) {
+ #logo {
+ width: 200px;
+ }
+ .centered {
+ width: auto;
+ }
+ .banner {
+ min-height: 100px;
+ height: auto;
+ }
+ .events .event .info {
+ width: auto;
+ padding: 5px;
+ margin: 0;
+ }
+ .events .event img {
+ display: none;
+ }
+ footer {
+ padding-left: 10px;
+ }
+}
+#logo {
+ display: block;
+ margin: auto;
+ width: 450px;
+}
+#logo img {
+ display: block;
+ margin: auto;
+ width: 100%;
+}
+body {
+ color: #4f4f4f;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: 300;
+}
+header {
+ padding-top: 15px;
+ border-bottom: solid 1px #f4f4f4;
+}
+header .headerlinks {
+ height: 30px;
+ padding-top: 5px;
+ text-align: center;
+ font-size: 19px;
+}
+header .headerlinks a {
+ margin: 0 5px;
+ padding: 5px 0;
+ display: inline-block;
+ text-decoration: none;
+ color: inherit;
+}
+header .headerlinks a.active {
+ border-bottom: solid 3px;
+ cursor: auto;
+}
+header .headerlinks a:hover {
+ border-bottom: solid 3px;
+}
+section {
+ padding: 15px 10px;
+}
+section h2 {
+ padding: 5px 0;
+ margin: 15px 0 0px;
+ border-bottom: solid 1px #ccc;
+}
+section h3 {
+ padding: 15px 0 0 0;
+}
+section p {
+ padding: 10px 0;
+ line-height: 23px;
+}
+section ul,
+section li {
+ line-height: 23px;
+ list-style: disc;
+ margin-left: 12px;
+}
+section b,
+section strong {
+ font-weight: bold;
+}
+section i {
+ font-style: italic;
+}
+section a {
+ color: #4f4f4f;
+}
+.centered {
+ width: 700px;
+ margin: auto;
+ position: relative;
+}
+.banner {
+ height: 230px;
+ position: relative;
+ background-size: 100%;
+ background-repeat: no-repeat;
+}
+.banner#mainbanner {
+ background-image: url(/static/img/mainbanner.jpg);
+}
+h2 {
+ font-size: 30px;
+ font-weight: 100;
+}
+h3 {
+ font-size: 25px;
+ font-weight: 300;
+ line-height: 35px;
+}
+.events,
+.questions {
+ margin-top: -20px;
+ margin-left: 0;
+}
+.events ul,
+.questions ul,
+.events li,
+.questions li {
+ list-style: none;
+ margin-left: 0;
+}
+.events .event,
+.questions .event,
+.events .question,
+.questions .question {
+ position: relative;
+ min-height: 180px;
+ border-bottom: solid 1px #eee;
+}
+.events .event img,
+.questions .event img,
+.events .question img,
+.questions .question img {
+ position: absolute;
+ right: 0;
+ top: 15px;
+ width: 140px;
+ padding: 20px;
+}
+.events .event .info,
+.questions .event .info,
+.events .question .info,
+.questions .question .info {
+ padding: 20px 0;
+ margin: 10px 0;
+ width: 500px;
+}
+.events .event .info .row,
+.questions .event .info .row,
+.events .question .info .row,
+.questions .question .info .row {
+ margin: 3px 0;
+}
+.events .event .info .row .label,
+.questions .event .info .row .label,
+.events .question .info .row .label,
+.questions .question .info .row .label {
+ font-weight: 600;
+}
+.events .event .info .row .calltoaction,
+.questions .event .info .row .calltoaction,
+.events .question .info .row .calltoaction,
+.questions .question .info .row .calltoaction {
+ display: inline-block;
+ color: #d70000;
+ font-weight: bold;
+}
+.past {
+ margin-top: 50px;
+}
+.past .event img {
+ left: 0;
+}
+.past .event .info {
+ margin-left: 200px;
+}
+footer {
+ padding: 50px 5px 10px 5px;
+ font-size: 14px;
+ height: 30px;
+}
+footer a {
+ color: #4f4f4f;
+}
+html,
+body {
+ height: 100%;
+}
+.push {
+ height: 90px;
+}
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+ margin: 0 auto -90px;
+}
+/*
+Sticky Footer by Ryan Fait
+http://ryanfait.com/
+*/
+@media screen and (max-width: 700px) {
+ #logo {
+ width: 200px;
+ }
+ .centered {
+ width: auto;
+ }
+ .banner {
+ min-height: 100px;
+ height: auto;
+ }
+ .events .event .info {
+ width: auto;
+ padding: 5px;
+ margin: 0;
+ }
+ .events .event img {
+ display: none;
+ }
+ footer {
+ padding-left: 10px;
+ }
+}
+#logo {
+ display: block;
+ margin: auto;
+ width: 450px;
+}
+#logo img {
+ display: block;
+ margin: auto;
+ width: 100%;
+}
+body {
+ color: #4f4f4f;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: 300;
+}
+header {
+ padding-top: 15px;
+ border-bottom: solid 1px #f4f4f4;
+}
+header .headerlinks {
+ height: 30px;
+ padding-top: 5px;
+ text-align: center;
+ font-size: 19px;
+}
+header .headerlinks a {
+ margin: 0 5px;
+ padding: 5px 0;
+ display: inline-block;
+ text-decoration: none;
+ color: inherit;
+}
+header .headerlinks a.active {
+ border-bottom: solid 3px;
+ cursor: auto;
+}
+header .headerlinks a:hover {
+ border-bottom: solid 3px;
+}
+section {
+ padding: 15px 10px;
+}
+section h2 {
+ padding: 5px 0;
+ margin: 15px 0 0px;
+ border-bottom: solid 1px #ccc;
+}
+section h3 {
+ padding: 15px 0 0 0;
+}
+section p {
+ padding: 10px 0;
+ line-height: 23px;
+}
+section ul,
+section li {
+ line-height: 23px;
+ list-style: disc;
+ margin-left: 12px;
+}
+section b,
+section strong {
+ font-weight: bold;
+}
+section i {
+ font-style: italic;
+}
+section a {
+ color: #4f4f4f;
+}
+.centered {
+ width: 700px;
+ margin: auto;
+ position: relative;
+}
+.banner {
+ height: 230px;
+ position: relative;
+ background-size: 100%;
+ background-repeat: no-repeat;
+}
+.banner#mainbanner {
+ background-image: url(/static/img/mainbanner.jpg);
+}
+h2 {
+ font-size: 30px;
+ font-weight: 100;
+}
+h3 {
+ font-size: 25px;
+ font-weight: 300;
+ line-height: 35px;
+}
+.events,
+.questions {
+ margin-top: -20px;
+ margin-left: 0;
+}
+.events ul,
+.questions ul,
+.events li,
+.questions li {
+ list-style: none;
+ margin-left: 0;
+}
+.events .event,
+.questions .event,
+.events .question,
+.questions .question {
+ position: relative;
+ min-height: 180px;
+ border-bottom: solid 1px #eee;
+}
+.events .event img,
+.questions .event img,
+.events .question img,
+.questions .question img {
+ position: absolute;
+ right: 0;
+ top: 15px;
+ width: 140px;
+ padding: 20px;
+}
+.events .event .info,
+.questions .event .info,
+.events .question .info,
+.questions .question .info {
+ padding: 20px 0;
+ margin: 10px 0;
+ width: 500px;
+}
+.events .event .info .row,
+.questions .event .info .row,
+.events .question .info .row,
+.questions .question .info .row {
+ margin: 3px 0;
+}
+.events .event .info .row .label,
+.questions .event .info .row .label,
+.events .question .info .row .label,
+.questions .question .info .row .label {
+ font-weight: 600;
+}
+.events .event .info .row .calltoaction,
+.questions .event .info .row .calltoaction,
+.events .question .info .row .calltoaction,
+.questions .question .info .row .calltoaction {
+ display: inline-block;
+ color: #d70000;
+ font-weight: bold;
+}
+.past {
+ margin-top: 50px;
+}
+.past .event img {
+ left: 0;
+}
+.past .event .info {
+ margin-left: 200px;
+}
footer {
padding: 50px 5px 10px 5px;
font-size: 14px;
@@ -294,7 +740,7 @@ http://ryanfait.com/
}
.events .event .info {
width: auto;
- padding: 0 5px;
+ padding: 5px;
margin: 0;
}
.events .event img {
diff --git a/static/css/main.less b/static/css/main.less
index e253ce4..acef107 100644
--- a/static/css/main.less
+++ b/static/css/main.less
@@ -44,7 +44,7 @@ section {
padding: 15px 10px;
h2 {
padding: 5px 0;
- margin-bottom: 15px;
+ margin: 15px 0 0px;
border-bottom: solid 1px #ccc;
}
h3 {
@@ -93,14 +93,14 @@ h3 {
font-weight: 300;
line-height: 35px;
}
-.events {
+.events, .questions {
margin-top: -20px;
margin-left: 0;
ul, li {
list-style: none;
margin-left: 0;
}
- .event {
+ .event, .question {
position: relative;
min-height: 180px;
border-bottom: solid 1px #eee;
@@ -129,6 +129,17 @@ h3 {
}
}
}
+.past {
+ margin-top: 50px;
+ .event {
+ img {
+ left: 0;
+ }
+ .info {
+ margin-left: 200px;
+ }
+ }
+}
footer {
padding: 50px 5px 10px 5px;
font-size: 14px;
@@ -169,7 +180,7 @@ http://ryanfait.com/
.event {
.info {
width: auto;
- padding: 0 5px;
+ padding: 5px;
margin: 0;
}
img {
diff --git a/static/css/reset.less b/static/css/reset.less
index 9ce89e8..d517a11 100644
--- a/static/css/reset.less
+++ b/static/css/reset.less
@@ -2,20 +2,87 @@
v2.0 | 20110126
License: none (public domain)
*/
-
-html, body, div, span, 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 {
+html,
+body,
+div,
+span,
+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 {
margin: 0;
padding: 0;
border: 0;
@@ -24,25 +91,454 @@ time, mark, audio, video {
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
-article, aside, details, figcaption, figure,
-footer, header, hgroup, menu, nav, section {
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
display: block;
}
body {
line-height: 1;
}
-ol, ul {
+ol,
+ul {
list-style: none;
}
-blockquote, q {
+blockquote,
+q {
quotes: none;
}
-blockquote:before, blockquote:after,
-q:before, q:after {
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
-}
\ No newline at end of file
+}
+#logo {
+ display: block;
+ margin: auto;
+ width: 450px;
+}
+#logo img {
+ display: block;
+ margin: auto;
+ width: 100%;
+}
+body {
+ color: #4f4f4f;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: 300;
+}
+header {
+ padding-top: 15px;
+ border-bottom: solid 1px #f4f4f4;
+}
+header .headerlinks {
+ height: 30px;
+ padding-top: 5px;
+ text-align: center;
+ font-size: 19px;
+}
+header .headerlinks a {
+ margin: 0 5px;
+ padding: 5px 0;
+ display: inline-block;
+ text-decoration: none;
+ color: inherit;
+}
+header .headerlinks a.active {
+ border-bottom: solid 3px;
+ cursor: auto;
+}
+header .headerlinks a:hover {
+ border-bottom: solid 3px;
+}
+section {
+ padding: 15px 10px;
+}
+section h2 {
+ padding: 5px 0;
+ margin: 15px 0 0px;
+ border-bottom: solid 1px #ccc;
+}
+section h3 {
+ padding: 15px 0 0 0;
+}
+section p {
+ padding: 10px 0;
+ line-height: 23px;
+}
+section ul,
+section li {
+ line-height: 23px;
+ list-style: disc;
+ margin-left: 12px;
+}
+section b,
+section strong {
+ font-weight: bold;
+}
+section i {
+ font-style: italic;
+}
+section a {
+ color: #4f4f4f;
+}
+.centered {
+ width: 700px;
+ margin: auto;
+ position: relative;
+}
+.banner {
+ height: 230px;
+ position: relative;
+ background-size: 100%;
+ background-repeat: no-repeat;
+}
+.banner#mainbanner {
+ background-image: url(/static/img/mainbanner.jpg);
+}
+h2 {
+ font-size: 30px;
+ font-weight: 100;
+}
+h3 {
+ font-size: 25px;
+ font-weight: 300;
+ line-height: 35px;
+}
+.events,
+.questions {
+ margin-top: -20px;
+ margin-left: 0;
+}
+.events ul,
+.questions ul,
+.events li,
+.questions li {
+ list-style: none;
+ margin-left: 0;
+}
+.events .event,
+.questions .event,
+.events .question,
+.questions .question {
+ position: relative;
+ min-height: 180px;
+ border-bottom: solid 1px #eee;
+}
+.events .event img,
+.questions .event img,
+.events .question img,
+.questions .question img {
+ position: absolute;
+ right: 0;
+ top: 15px;
+ width: 140px;
+ padding: 20px;
+}
+.events .event .info,
+.questions .event .info,
+.events .question .info,
+.questions .question .info {
+ padding: 20px 0;
+ margin: 10px 0;
+ width: 500px;
+}
+.events .event .info .row,
+.questions .event .info .row,
+.events .question .info .row,
+.questions .question .info .row {
+ margin: 3px 0;
+}
+.events .event .info .row .label,
+.questions .event .info .row .label,
+.events .question .info .row .label,
+.questions .question .info .row .label {
+ font-weight: 600;
+}
+.events .event .info .row .calltoaction,
+.questions .event .info .row .calltoaction,
+.events .question .info .row .calltoaction,
+.questions .question .info .row .calltoaction {
+ display: inline-block;
+ color: #d70000;
+ font-weight: bold;
+}
+.past {
+ margin-top: 50px;
+}
+.past .event img {
+ left: 0;
+}
+.past .event .info {
+ margin-left: 200px;
+}
+footer {
+ padding: 50px 5px 10px 5px;
+ font-size: 14px;
+ height: 30px;
+}
+footer a {
+ color: #4f4f4f;
+}
+html,
+body {
+ height: 100%;
+}
+.push {
+ height: 90px;
+}
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+ margin: 0 auto -90px;
+}
+/*
+Sticky Footer by Ryan Fait
+http://ryanfait.com/
+*/
+@media screen and (max-width: 700px) {
+ #logo {
+ width: 200px;
+ }
+ .centered {
+ width: auto;
+ }
+ .banner {
+ min-height: 100px;
+ height: auto;
+ }
+ .events .event .info {
+ width: auto;
+ padding: 5px;
+ margin: 0;
+ }
+ .events .event img {
+ display: none;
+ }
+ footer {
+ padding-left: 10px;
+ }
+}
+#logo {
+ display: block;
+ margin: auto;
+ width: 450px;
+}
+#logo img {
+ display: block;
+ margin: auto;
+ width: 100%;
+}
+body {
+ color: #4f4f4f;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: 300;
+}
+header {
+ padding-top: 15px;
+ border-bottom: solid 1px #f4f4f4;
+}
+header .headerlinks {
+ height: 30px;
+ padding-top: 5px;
+ text-align: center;
+ font-size: 19px;
+}
+header .headerlinks a {
+ margin: 0 5px;
+ padding: 5px 0;
+ display: inline-block;
+ text-decoration: none;
+ color: inherit;
+}
+header .headerlinks a.active {
+ border-bottom: solid 3px;
+ cursor: auto;
+}
+header .headerlinks a:hover {
+ border-bottom: solid 3px;
+}
+section {
+ padding: 15px 10px;
+}
+section h2 {
+ padding: 5px 0;
+ margin: 15px 0 0px;
+ border-bottom: solid 1px #ccc;
+}
+section h3 {
+ padding: 15px 0 0 0;
+}
+section p {
+ padding: 10px 0;
+ line-height: 23px;
+}
+section ul,
+section li {
+ line-height: 23px;
+ list-style: disc;
+ margin-left: 12px;
+}
+section b,
+section strong {
+ font-weight: bold;
+}
+section i {
+ font-style: italic;
+}
+section a {
+ color: #4f4f4f;
+}
+.centered {
+ width: 700px;
+ margin: auto;
+ position: relative;
+}
+.banner {
+ height: 230px;
+ position: relative;
+ background-size: 100%;
+ background-repeat: no-repeat;
+}
+.banner#mainbanner {
+ background-image: url(/static/img/mainbanner.jpg);
+}
+h2 {
+ font-size: 30px;
+ font-weight: 100;
+}
+h3 {
+ font-size: 25px;
+ font-weight: 300;
+ line-height: 35px;
+}
+.events,
+.questions {
+ margin-top: -20px;
+ margin-left: 0;
+}
+.events ul,
+.questions ul,
+.events li,
+.questions li {
+ list-style: none;
+ margin-left: 0;
+}
+.events .event,
+.questions .event,
+.events .question,
+.questions .question {
+ position: relative;
+ min-height: 180px;
+ border-bottom: solid 1px #eee;
+}
+.events .event img,
+.questions .event img,
+.events .question img,
+.questions .question img {
+ position: absolute;
+ right: 0;
+ top: 15px;
+ width: 140px;
+ padding: 20px;
+}
+.events .event .info,
+.questions .event .info,
+.events .question .info,
+.questions .question .info {
+ padding: 20px 0;
+ margin: 10px 0;
+ width: 500px;
+}
+.events .event .info .row,
+.questions .event .info .row,
+.events .question .info .row,
+.questions .question .info .row {
+ margin: 3px 0;
+}
+.events .event .info .row .label,
+.questions .event .info .row .label,
+.events .question .info .row .label,
+.questions .question .info .row .label {
+ font-weight: 600;
+}
+.events .event .info .row .calltoaction,
+.questions .event .info .row .calltoaction,
+.events .question .info .row .calltoaction,
+.questions .question .info .row .calltoaction {
+ display: inline-block;
+ color: #d70000;
+ font-weight: bold;
+}
+.past {
+ margin-top: 50px;
+}
+.past .event img {
+ left: 0;
+}
+.past .event .info {
+ margin-left: 200px;
+}
+footer {
+ padding: 50px 5px 10px 5px;
+ font-size: 14px;
+ height: 30px;
+}
+footer a {
+ color: #4f4f4f;
+}
+html,
+body {
+ height: 100%;
+}
+.push {
+ height: 90px;
+}
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+ margin: 0 auto -90px;
+}
+/*
+Sticky Footer by Ryan Fait
+http://ryanfait.com/
+*/
+@media screen and (max-width: 700px) {
+ #logo {
+ width: 200px;
+ }
+ .centered {
+ width: auto;
+ }
+ .banner {
+ min-height: 100px;
+ height: auto;
+ }
+ .events .event .info {
+ width: auto;
+ padding: 5px;
+ margin: 0;
+ }
+ .events .event img {
+ display: none;
+ }
+ footer {
+ padding-left: 10px;
+ }
+}
diff --git a/static/img/git.png b/static/img/git.png
new file mode 100644
index 0000000..fae7fb9
Binary files /dev/null and b/static/img/git.png differ
diff --git a/static/img/sinatra.png b/static/img/sinatra.png
new file mode 100644
index 0000000..2b00a57
Binary files /dev/null and b/static/img/sinatra.png differ
diff --git a/static/img/unix.png b/static/img/unix.png
new file mode 100644
index 0000000..4f0f864
Binary files /dev/null and b/static/img/unix.png differ
diff --git a/static/personal/personal.html b/static/personal/personal.html
index 2f44845..f899adf 100644
--- a/static/personal/personal.html
+++ b/static/personal/personal.html
@@ -43,7 +43,7 @@
+ Yes, you can!. +
++ However, in such a case, we won't be able to reserve + a place for you. Available seats are handed out on a + first-come-first-served basis, so there might not be + any left by the time we start. +
++ TL;DR: a qualified yes. +
++ No, we only conduct one workshop per topic in a semester. +
++ However, we'll usually post screencasts and/or + materials from the workshops online at {{ + link_to('materials', "materials") }}. +
++ Yes! Just use the "contact us" link at the top of + the page to drop us an email. +
+Coming next semester: UNIX & Web Development workshops
+ {% endif %} + +
- {% block headerlinks %}{% endblock %}
+ All workshop materials and links for past hackerschool workshops are posted here.
-- Will be added after the workshop -
+Part 1
+ + +Part 2
+ + +Part 3
+ + +Part 4
+Pre-Workshop
@@ -48,10 +42,14 @@References
This workshop is a basic introduction to HTML and CSS. Participants learnt:
+Participants are required to download and use the following pieces of software:
+This part coming soon!
+ +Pre-Workshop
+Post-Workshop
+References
+Coming next semester: UNIX & Web Development workshops
+ {% endif %} + +