photo credit Jenny Chowdhury
If you ever had a need to collect information from users on the web or use external data in your project, understanding web development will make your life much easier.
The class will cover server-side and client-side web development topics using JavaScript. On the client-side, we will cover traditional JavaScript and the jQuery library to manipulate browser content, create and trigger page events and make AJAX data requests. Developing with NodeJS on the server-side, we will explore receiving input from a user then querying and saving that data to a database, and finally, returning the appropriate content to the client, i.e. HTML or JSON. The websites we use today are rarely on a single database, we will focus on consuming data APIs from websites like Foursquare (for location information), Facebook (for social graph) and Twilio (for SMS and telephony). Going further, we will create custom data APIs for use at ITP and open to the public.
Students must have prior HTML & CSS experience or be willing to learn it outside of class. Introduction to Computational Media or prior object oriented programming knowledge is required.
Fridays from 10:30AM - 12:30PM
Introduction to web development, server-side & client-side. Discussion of basic web requests. The tools you should have to get started. Getting started with JavaScript.
More on JavaScript - variables, loops, conditions, functions, events and callbacks - the things that maker JS special.
Introduction to webservers & NodeJS. Getting set up locally and on Heroku & a simple NodeJS server. Discuss the command line tools, Git & NPM (node package manager).
More Heroku and webservers with ExpressJS web framework. Organizing web applications, separating code and design with routes and templates.
Database - long term memory. Discuss data modelling, saving and retrieving data. Getting started with MongoDB on Heroku with AddOns.
Review of MongoDB - connecting, schema and model design, inserting and querying data.
Review schemas, models and MongoDB documents. Discuss queries and updating documents.
New today, form validation both server and client side.
Creating a server-side JSON feed for sharing data with other web apps. Example of consuming remote APIs.
How to use local and remote JSON feeds to populate data on your web app.
Tools and modules to track user sessions. Basic authentication discussed.
How to accept file uploads and store them on Amazon's S3 storage service.
The web as glue! Spacebrew to connect Processing to Browsers to Arduinos, etc.