Practical Web Applications

 

Over­view

The lines between web sites and web applic­a­tions are blurred. Out­side of the more clas­sical pub­lish­ing scen­arios (which are dis­cussed in a dif­fer­ent course), how do you take your XML data and put it on the web, tak­ing advant­age of mod­ern inform­a­tion archi­tec­ture prin­ciples and the cap­ab­il­it­ies of mod­ern browsers?

Dur­ing this two-day course you’ll learn about inform­a­tion archi­tec­ture prin­ciples such as REST-based sys­tems and iden­tity and secur­ity con­sid­er­a­tions, as well as a good set of tech­no­lo­gies to use and how to use them, includ­ing CSS, HTML5, JavaS­cript, and advanced tech­no­lo­gies such as OAuth. You’ll come away from the course with an appre­ci­ation of the prin­ciples, and hands-on exper­i­ence of some of the tech­no­lo­gies that you can use immediately.

The class pro­ject will be a web-based inform­a­tion site. We will be sup­ply­ing com­puters with soft­ware already installed. We’ll start with a simple web-based sys­tem, then add fea­tures and func­tion­al­ity to it. We’ll be using one of the works of Shakespeare (in XML) as the base.

Fac­ulty mem­bers Matt Pat­ter­son, Nor­m Walsh, and Paul Downey teach, as well as Fac­ulty Board mem­ber Dr Lauren Wood. Other Fac­ulty mem­bers will be avail­able to help with the hands-on part of the classes.

Classes for 2012

The web applic­a­tion will be built in pieces, with pro­gress­ively more func­tion­al­ity. We’ll talk a little the­ory, then try it out, then talk again about some more the­ory. This means the class out­lines are a little more fluid than in other courses, as one class will over­lap with the next.

Day One

We’ll start with the basics — some HTML+CSS, stored on disc. Then we’ll serve the file from a Sinatra web applic­a­tion. This leads into a dis­cus­sion about the basics of URL design, how to access resources, URL tem­plat­ing, and vari­ous help­ers that are avail­able to do some of the work. Next, we’ll access XML from the filesys­tem, extract bits with Noko­giri, apply a stylesheet to them and show how to view the res­ults in our web application.

Finally on Day One we’ll look at adding com­ments, which will need a data­base and some data mod­el­ling, as well as forms and actions.

Day Two

On Day Two, we’ll lead off with some of the secur­ity con­sid­er­a­tions. There are com­mon web site attacks that are reas­on­ably easy to defend against and we’ll show you how. We’ll dis­cuss authen­tic­a­tion, author­iz­a­tion, and iden­tity, and show how to add a simple sign-on to our applic­a­tion using OAuth2.

After that, we’ll fin­ish our web applic­a­tion by adding annota­tions using JavaS­cript. We have some other addi­tions planned if we have time.