Building Responsive Websites - cs.nyu.edu · Building Responsive Websites NYU Computer Science...
Transcript of Building Responsive Websites - cs.nyu.edu · Building Responsive Websites NYU Computer Science...
Building Responsive WebsitesNYU Computer Science Website Overview
Daniel Tsadok
Wednesday, January 30, 13
Who Am I?Daniel Tsadok
Courant Web Developer, 2008-present
I write software for and managecs.nyu.edu
cims.nyu.edumath.nyu.edu
Wednesday, January 30, 13
Types of Content
• News *
• Course Schedule *
• Office Hours *
• Contact Information
• Static Content
• Events/Colloquia *
• Final Exams *
• Department Calendar *
• Program Information
• User Content (Not covered)
* Dynamic
Wednesday, January 30, 13
Dynamic Content
Wednesday, January 30, 13
Content ManagementGoals:
• Consistent Layout
• Simple interface
• Version Control
• Access Control
• Addressable/Routable
Wednesday, January 30, 13
CMS Live Demo
Wednesday, January 30, 13
CMS Feeds
CMS Page
/events/17/foo
Feed
/events/CMS Page
/events/18/bar
CMS Page
/events/19/baz
Wednesday, January 30, 13
Imported ContentRails App Server
DB
DB
Internal CS database (MSAccess...)
CoursesFinal Exams
Faculty ListingOffice Hours
csv import script (cron)
Wednesday, January 30, 13
Architecture
Wednesday, January 30, 13
Original
ApacheWeb Server
Static Files Clients
Wednesday, January 30, 13
Original
ApacheWeb Server
Static Files Clients
Pros and Cons?
Wednesday, January 30, 13
Current Architecture
ApacheWeb Server
Static Files
ClientsRails App Server
DBResponse
Dynamic Content
User pages
Home Directories
Wednesday, January 30, 13
mod_proxy
ApacheWeb Server ClientsRails App Server
Request
ProxyPass /rails/(.*) http://rails/$1
Wednesday, January 30, 13
Authentication
• Courant LDAP (CIMS account)
• NYU (ITS) LDAP (Net ID)
• before_filter in Rails
Wednesday, January 30, 13
Why Rails?
Wednesday, January 30, 13
Why Rails?Model:class Colloquium belongs_to :semester
Controller:@colloquia = @current_semester.colloquia.limit(5)
View:<% for colloquium in @colloquia %> <div><%= colloquium.title %></div><% end %>
Wednesday, January 30, 13
Other Frameworks
Sinatra (simpler than Rails)
Torquebox: jruby on Rails with JBoss
Groovy on Grails (JVM)
Scala (JVM)
BackboneJS (MVC for client-side)
Wednesday, January 30, 13
Thank You
Wednesday, January 30, 13