This course builds upon MPCS-52553 to enable students to gain mastery over modern web architectures, web services, and visual design.
Today's consumer-facing and business applications must consume external services and publish services of their own. Students will build interconnected chains of services, with a particular emphasis on efficiency, security, and sustainability using modern web frameworks such as Rails, React, Node, and more.
The primary topics to be covered are:
- AJAX and the asynchronous web
- Advanced HTTP semantics and implementation
- CORS and related security essentials
- Consuming web services both client-side and server-side
- Publishing RESTful web services with Rails, Node, and/or other platforms
- "Single-Page App" architecture using React, Vue.js, and/or other frameworks
- HTTP 2.0 binary protocol architecture
Some examples of the kind of services we will use and/or rebuild are:
- Traffic statistics (Google Analytics, Clicky, etc.)
- Link shortenting (bit.ly, etc.)
- Stock exchange simulation with HTTP streaming
- Credit card processing (Stripe, PayPal, BrainTree, etc.)
- Weather data (OpenWeatherMap, Forecast.io, etc)
- Messaging (Twilio, Mandrill, etc.)
- Geolocation and Geocoding (Google Maps, OpenMaps, etc.)
Coursework & Grading
1. Three programming assignments, worth 20% each. All assignments start with a prewritten
Rails application which must be modified according to certain requirements.
2. Three brief, in-class quizzes are administered at the beginning of weeks 3, 6, and 9. Quizzes are worth 5% each and consist of fixing a small program that's broken, a set of multiple choice quesitons, or a combination of both.
3. One Final Project worth 25%. The project consists of a Rails (or equivalent) application, deployed to a live internet address, that provides as useful service, provided as a REST-compliant JSON endpoint, allowing for public signups and providing an admin interface to its users.
* "RESTful Web Services Cookbook" by Subbu Allamaraju; O'Reilly/Yahoo Press, 2010. Amazon link: http://www.amazon.com/gp/product/0596801688
MPCS 52553 - Web Development
Students who have not taken Web Development but can demonstrate proficiency in a suitable web framework (Rails, Django, Node, .NET MVC, or a Java framework) can request permission from the instructor. Permission is not guaranteed, and will require submission of at least one live web application complete with source code.