ITP 300

Database Web Development

Course Overview

Monday 2-5pm
David Tang

Course Goals


Build dynamic, database-driven websites

Amazon (products)
Yelp (reviews)
Social networks

About Me

  • Part-time Lecturer for the past 2 years teaching several web classes. Now Full-time Faculty
  • Graduated from USC w/ Bachelors and Masters in ISE
  • Worked for 5 years in industry working on the full web stack

Past Projects


Surf spot site
USC apartment review site
Bathroom ratings site
Fraternity / Sorority / Club sites

Course Topics

  • Database theory
    • Storing data efficiently for retrieval and manipulation
  • Accessing and manipulating data using SQL
  • Web pages that "talk" to your databases using PHP


Syllabus

(See Syllabus)

Class Intro

  • Name
  • Major
  • What you hope to gain from this class?
    • Build a side project?
    • More technical knowledge?
    • A career in web development?
    • etc

Web Page Life Cycle: Static HTML


Web Page Life Cycle: Dynamic Pages

Serving Dynamic Pages

  • Certain files can be handed off to a server-side program for PREPROCESSING (.php, .cfm, .asp, etc)
  • Server-side code never gets to the client
  • Same page or template can be reused for similar types of content
    • User profile page, product page, etc

Dynamic Article Page

What types of data are in a news article?

Dynamic Article Page


Headline (VARCHAR)
Byline (VARCHAR)
Date (DATETIME)
Article body (TEXT)

Store each of these pieces of data in the database

Dynamic Pages

  • One page / PHP file to display any article stored in DB
  • Server-side instructions telling it to:
    • Load an article from the database
    • Display the different pieces of data from that database record (HEADLINE, DATE, BYLINE, ARTICLE, etc.) in the defined locations
  • What is sent to the client after server-side execution is static HTML code
  • E-Commerce example

Large Dynamic Pages

  • Paginating search results
  • Displaying more details about a particular record
  • Adding products to shopping carts which is persisted across all pages

ITP 300

By David Tang

ITP 300

  • 1,489