
Meeting Times and Location:
Monday / Wednesday
Room 013 3:00pm - 3:50pm
Room 231 4:00pm - 5:50pm
Syllabus: im4420syllabus.doc
Week 1 | Week
2 | Week 3 | Week 4 | Week
5 | Week 6
Week 7 | Week 8 | Week
9 | Week 10 | Week 11
Dynamic Web Applications - Week 1
Monday: Welcome to Dynamic Web Applications. The goal of this class is to learn about the scope of web based applications and the technology used to engineer these tools. We will start by researching and implementing Open Source applications and then move into developing our own applications using PHP, MySQL and other technologies available to us. Throughout this process we will be reviewing PHP, MySQL and Javascript while developing new techniques. Due to the upper level nature of this course, it is strongly suggested that you spend extra time reviewing the concepts taught in prerequisite course, Advanced Scripting Languages. The following reading assignments are an introduction to Open Source and the Free Software Foundation. On Wednesday we will be watching a film about the history of the OS movement.Wednesday: Today we'll be watching Revolution OS. "Revolution OS is a 2001 documentary which traces the history of GNU, Linux, Free Software and the Open Source movement. It features several interviews with prominent people, including Richard Stallman, Michael Tiemann, Linus Torvalds, Larry Augustin, Eric S. Raymond, Bruce Perens, Frank Hecker and Brian Behlendorf. It was directed by J.T.S. Moore." - Wikipedia
After watching the film we will have a brief discussion about it and then begin going over the requirements for our first assignment. Our first assignment involves researching Open Source applications that use PHP and MySQL. We will compare and contrast a minimum of two OS projects keeping in mind that we will be implementing one of the examples.
Dynamic Web Applications - Week 2
Monday: Today will we discuss your research so far and take a look at some examples of Open Source projects that are currently operational. As we browse examples and discuss the techniques and software involved think about the type of software you want to install for the next project. Here's a list of a few of the examples we will be examining.Dynamic Web Applications - Week 3
Monday: In today's class we will be discussing what you have written in your research papers, which are also due today. After that we will be attempting to implement examples of the Open Source project you selected for the implementation assignment. I will be checking everyone's progress as you work. The goal is to get to a point where the installation allows your project to be functional at a default level, exactly like the demonstration on Wednesday, week 2. Make sure you are prepared by knowing exactly which software you plan on working with and having all of the necessary login and password information for your web hosting servers and database available. It is also a good idea to complete steps 1, 2 and 3 in the outline for the implementation project (Wednesday, week 2).Wednesday: Now that we all have a good start on the Open Source Implementation project it is time to start discussing our next and final project which involves developing a dynamic web application of our own. There are many types of applications that are acceptable for this project. Here's a list of a few examples to get you started.
1. E-Commerce - Developing a custom e-commerce system is an excellent asset for clients and employers.
2. Dynamic Content Management - The point is to allow the customer to edit their content without help from a developer.
3. Forums / Message Boards - These tools are important to community sites and organizations.
4. News / Blogging - News sites and blogs are a large part of the content on the internet and can be quite useful tools.
5. Calendar / Event Manager - Another example of useful tools for community sites, and others.
Other examples may also be acceptable. Consult with me about your ideas regularly. Once you have decided what sort of application you'll be developing you need to start the planning stage. Start by writing a summary of what the application will do followed by a list of features. Try to think of all the details and requirements for each of the features. Make notes of web sites that have similar tools and resources that apply to what you are building. Later we will discuss the formal requirements for the planning stage, but I want you to start thinking about your projects right away.
Dynamic Web Applications - Week 4
Monday: Planning a small scale dynamic web application can be tricky, but there are some ways to think ahead and make the process a little less daunting. Let's use the example of a service list manager. A service list is a list of contacts for a business that require promotional material on a regular basis. Artists and record labels use service lists to inform the media about events, new releases, showings and other news. In order to create a dynamic web application to maintain a service list and record transactions a number of questions need to be answered.Wednesday: In class today we will be reviewing some SQL syntax, focusing on the DDL. I'll be going over a few examples of CREATE TABLE statements and discussing the datatypes involved. In lab I'll be looking at everyone's progress so far. The Implementation Projects are due a week from today. At this stage you should be finished with steps 1 through 8 and working on steps 9 and 10. Manipulating the look/feel/design and adding/customizing features is the most time consuming aspect of this kind of development so make sure that you're spending most of your time on these steps.
CREATE TABLE statement examples
Reading Assignments:
Explanation of Database Indexes
MySQL Documentation for the ENUM datatype
MySQL Documentation for Foreign Key Constraints
Dynamic Web Applications - Week 5
Monday: We'll continue our SQL review today by taking a look at the INSERT statement as well as some other aspects of the DML. We'll also review how to interface PHP with a MySQL database server and discuss how to collect and process information from a form for insertion into a database. Later I'll be posting the examples shown in class here.Wednesday: Today we will be presenting our Open Source Implementation Projects. Presenting your project is required and worth a minimum of one half of one grade point. As you present, discuss why you selected the software you used, how you customized the features and what you did to change the visual nature of the front end.
Dynamic Web Applications - Week 6
Monday: PHP has become one of the most popular ways to do server side scripting for web applications. The reasons include that it's Open Source, easy to learn, flexible, operates on most OSes, interfaces with most popular database platforms, very stable, portable, and get's updated and improved regularly. Let's look at some short examples of PHP and review how to insert data from a form into a database. Here's are some examples:| includes/config.php <? // includes/config.php import_request_variables('gpc'); $db_host = "localhost"; $db_name = "my_db"; $db_user = "jkeston"; $db_pass = "abc123"; // connect to and select database $dbh = mysql_connect($db_host, $db_user, $db_pass); mysql_select_db( $db_name ); ?> |
add_contact_type.php <? // add_contact_type.php include('includes/config.php'); $query = "INSERT INTO contact_types (contact_type) VALUES ( '$contact_type' )"; mysql_query( $query ); header( "Location: contact_types.php" ); ?> |
| contact_types.php
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Contact Types</title> </head><body> <table align="center"> <tr><th>Contact Type</th><th>Delete</th></tr> <form method="post" action="delete_contact_types.php"> <? // contact_types.php include('includes/config.php'); $query = "SELECT * FROM contact_types ORDER BY contact_type"; $results = mysql_query($query); while ( $row = mysql_fetch_array($results) ) { |
delete_contact_types.php <? include('includes/config.php'); foreach ( $id as $del_id ) { $query = "DELETE FROM contact_types WHERE id = $del_id"; mysql_query( $query ); } header( "Location: contact_types.php" ); ?> |
Wednesday: Here's some examples that are further developed. We will look at a working version of these examples and then take a quick look at some of the source code, paying particular attention to new functions and techniques.
Service List Member Examples:
add_contact_type.php
add_sl_member.php
add_sl_member_form.php
contact_types.php
delete_contact_types.php
delete_sl_members.php
includes/config.php
includes/get_message.php
index.php
service_list_members.php
Dynamic Web Applications - Week 7
Monday: I have another example to show from the Service List Manager project. This tool is nearly complete, so I'll also be discussing what sort of finishing touches that might be applied to this kind of application. Also, let's continue looking at your source code examples. I would like everyone to show at least one example before week 10.Wednesday: Template engines are another tool to help build complex web based applications. Usually the purpose of a template engine is to help separate the presentation layer from the logic, or back-end. One example of an Open Source templates engine project is Smarty. Here's a brief description from their website:
Dynamic Web Applications - Week 8
Monday: AJAX (Asynchronous Javascript and XML) is an excellent technique to extend the function of web based applications beyond the traditional methods. Without AJAX dynamic content is delivered to the browser by either displaying a new page or re-rendering the whole existing page. This approach has several limitations that are solved by using AJAX. For example, as new content becomes available for the page, portions of the screen can be changed without completely refreshing the browser. Advanced AJAX techniques are currently in use to create online applications that behave almost exactly like locally installed software. Google Spreadsheets are a good example of this. Google Spreadsheets work in a very similar fashion to Excel and allow importing and exporting in XLS or CSV format. Thus an online application can have the advantage of access on any computer with internet access and still behave like traditional, locally installed software.
There are hundreds of AJAX resources and tutorials available online as well as books. Here's a list of some of the more popular online resources available:
JQuery
ajaxwith.com
The AJAX Revolution
Round-up of 30 AJAX Tutorials
AJAX, Get Started, Resources & Tutorials
Wednesday:
Steal This Film is a documentation of events during the Spring of 2006 regarding actions taken by the MPAA against the Swedish Bittorrent tracker site The Pirate Bay. The film highlights the futility of action by the MPAA and RIAA against file sharing, and also provides an insight into how the application Bittorrent works as well as torrent tracking database and search site tools. The film can be downloaded (without violation of any copyright laws) from stealthisfilm.com.
Dynamic Web Applications - Week 9
Monday: As we near the end of the quarter, let's continue to look at examples of source code from your projects. One other issue surrounding web applications and the web in general is how to find image, audio and other types of media to include in our works. We are all familiar with Corbis and the like for photography, but where can we go for free audio content, free images, film and so on? Here's a list of resources for finding free media files to use in your own work:Wednesday: Fine tuning the source code in your applications typically happens in the development stage, however sometimes (either due to a lack of planning, or unrealistic deadlines) the priority is to make it work and fix it later if there's time and a budget. Today I'll show you a couple examples of how I have fine tuned my project. Most of these examples do not change the functionality, but shorten the code or make it more efficient.
Dynamic Web Applications - Week 10
Monday: Today we will be discussing and distributing the take home final essay questions. Although the curriculum in our program focuses heavily on the technical aspects of interactive media design and development, it is important to examine the purpose and direction of this technology. These final essay questions focus on the impact of web applications on you and your community as well as society at large. Draw on your experiences implementing Open Source applications, developing your own tools, and from the films and reading assignments in class to form your answers. Please write a minimum of one double spaced page per question. Due on Wednesday week 11.1. Web applications have a significant impact on the way we lead our lives today. Social networks like MySpace and e-commerce sites like eBay, Amazon and iTunes have changed the way our society operates. Beyond email and IM, how have web applications effected your day to day activities? Are these effects on our lives positive or negative and in what way?
2. If you could create any web application that doesn't currently exist what would it do? How would it improve your personal life, workflow, art, or community?
3. Out of all the web applications we have looked at in this class, what do you find the most functional and well developed? What makes this application stand out? What purpose does it serve and how do organisations or individuals use this software?
4. What role do you think Open Source software and Open Content will play in the future? Will sites like Wikipedia play a role or are they too unreliable to be taken seriously? Will Open Source software be viable or are we better off using propriety software?
Wednesday: Work day.
Dynamic Web Applications - Week 11
Monday: Final work day. Early presentations will be accepted today as well.Wednesday: Final presentations. Take home final essay questions due.