Advanced Web Development (CIS-1152) Home Page
This is the home page for Peter Chapin's Advanced Web Development course notes for the Spring
2023 semester. Here you will find electronic versions of class handouts, homework assignments,
lecture slides, and links to other references of interest. If you are a student taking Advanced
Web Development, consider bookmarking this page.
- The homework submission area and grade book are on Canvas but all other course resources
are here.
- The course syllabus gives an overview of the course and
its content, lists course resources, and describes the grading policy and related issues.
- During most of this course we will be using XAMPP as a platform
for development.
- For a development environment, we will use PhpStorm, an integrated development
environment (IDE) for doing PHP and web development by JetBrains.
- I've prepared some general information on submitting
assignments.
- My home page contains other resources of potential interest.
Lecture Topics
Both the lectures and the labs for this course are face-to-face.
- 2023-01-17. Brief introduction and description of Lab #1.
- 2023-01-19.
An introduction to PHP conditional and loop statements.
- 2023-01-24. Discussed Lab #2.
- 2023-01-26.
Discussed PHP arrays. Also demonstrated the interactive PHP shell and how to use the textbook.
- 2023-01-31. Discussed Lab #3.
- 2023-02-02. Discussed string interpolation. Introduced functions.
- 2023-02-07. Discussed Lab #4.
- 2023-02-09. Discussed Lab #5.
- 2023-02-14. Went over a sample form handling script for computing some astronomical
quantities.
- 2023-02-16. Introduced databases and SQL.
- 2023-02-21. No class (Vacation).
- 2023-02-23. No class (Vacation).
- 2023-02-28.
Continued the discussion on databases and SQL.
- 2023-03-02.
Discussed how to connect to a database and issue queries using PHP.
- 2023-03-07.
Discussed Lab #6 on setting up a MySQL database.
- 2023-03-09.
Discussed Lab #7 with some additional suggestions about
how to set up the tables for the lab.
- 2023-03-14.
More about the database for Lab #7. Discussed changes made to the lab requirements.
- 2023-03-16. More discussion about Lab #7, specifically related to making and processing
database queries.
- 2023-03-21. More discussion about Lab #7, specifically related to checking for schedule
conflicts. Started discussion of PHP sessions.
- 2023-03-23. Introduced Lemuria and discussed how to set up PhpStorm for working on remote
projects.
- 2023-03-28. Discussed Lab #8 on using PHP sessions to
manage logged-in users.
- 2023-03-30. Discussed FoodTracker. Here is the sample
FoodTracker website.
- 2023-04-04. No class (Vacation).
- 2023-04-06. No class (Vacation).
- 2023-04-11. Discussed Lab #9 on how to set up your Lemuria account
for doing PHP development.
- 2023-04-13. Demonstrated the FoodTracker database on Lemuria (under PostgreSQL) and a simple
PHP script that connects to it.
- 2023-04-18. Discussed Lab #10.
Slides
Lab Assignments
The lab set is summarized in the lab summary document, along with links
to specific lab handouts and supporting code samples.
Samples
Because many of these samples contain PHP, the web server on Lemuria will normally interpret
that PHP and show you the result. The PHP is stripped before it is sent to the browser, so you
can't see it. To work around that effect, the "disabled" version of each file has been renamed,
so it is not interpreted by the PHP processor on Lemuria, allowing you to download the actual
sample.
Resources/Articles
HTML and CSS
- Mozilla has some nice (and relatively approachable) documentation about HTML and CSS.
- The HTML Living Standard as defined by
WHATWG is the most current and most authoritative definition of HTML. Note that WHATWG took
over the evolution of HTML from the World Wide Web Consortium (W3C) in May 2019. Although the
W3C is still involved in the development of HTML, it no longer defines the standard.
- The W3C still controls the CSS standard (as far as I can see).
- The W3C's Amaya browser is a technology
demonstration and web browsing/editing tool. Development on it seems to have stopped around
2012, so it is a bit out-of-date, but it is still an interesting concept-browser.
- Ryan's Tutorials have a much more digestible
presentation of HTML and related topics.
PHP
- The text is Programming
PHP, 4th Edition.
- The PHP Manual contains details on various PHP
language and library features.
- This page describes the process of setting
up debugging for PhpStorm. It is somewhat involved: you first install a third party
extension into your PHP installation (Xdebug). Next, you install an extension in whatever web
browser(s) you intend to use. Finally, you use the controls in PhpStorm to manage a debugging
session. It does work!
- Here is a nice tutorial on PHP's null
coalescing operator.
Apache
Linux
- PuTTY is a free SSH client
program for Windows. It is relatively simple, yet provides a rich collection of features. I
have a document that describes how to set up and use PuTTY to
access Lemuria (you only need to do the steps in Part 1 of that document). If you are a Mac
user, you might find these notes about SSH on the Mac useful.
- I wrote an overview of Unix that provides some conceptual
background and describes some basic commands. It is an old document, and rather too long, but
you may still find it useful. There are many other descriptions of basic Linux commands on line. There are also
cheat sheets.
- For transferring files to and from Lemuria, you might find WinSCP useful. Use the "SFTP" transfer method
(file transfer over SSH) and don't forget to specify the non-standard port 2221 (and host of
lemuria.cis.vtc.edu)
Last Revised: 2023-04-18
© Copyright 2023 by Peter Chapin <pchapin@vtc.edu>