CPET 499/ITC 250 Web Systems

Fall  2017


Lectures
Example Codes from the Text Book
Fundamentals of Web Development, by Randy Connolly and Ricardo Hoar, Publisher: Pearson

Student Resources - Companion Web Site of the Text Book: Fundamentals of Web Development, http://wps.pearsoned.com/ecs_connollyhoar_cwwebdev_1/

Week  No
Topics/Activities
1
8/22 - Overview of the Web System course
*Lecture Note # 0 - Overview of the course, Discussion of Systms, Web systems Infrastructure and Protocols, and other related topics [Echo 360 Recorded Lecture available]
** 4th IEEE Workshop on the Hot Topics in Web Systems and Technologies, HotWeb 2016 Oct. 24-25, 2016
• Content delivery architectures, Peer-to-Peer systems, Support for mobile and wireless systems, Web caching and replication, Edge services and dynamic content delivery, Multimedia content distribution, Overlay networks, Content placement and request routing, Measurement studies of deployed systems, Security and privacy, Wide-area upload and content gathering, Novel web-based applications, Web/database integration, Information retrieval and searching, Electronic commerce, Internet telephony, Social computing, Web of Things, Mobile web, Big web data.
8/24
* Lecture Note #0 - An Overview of the Web System Course (continue)
* Lecture Note #1 - Web System Infrastructures, Protocols, and Applications
* Ch 1. How the Web Works: Definitions and History, Internet Protocols, Client-Server Model, Where is the Internet, Domain Name Systems, Uniform Resource Locators, HyperText Transfer Protocol, and Web Servers.
* TCP/IP RFCs (Request for Comments - Standards) - Internet Engineering Task Force (IETF), https://www.ietf.org/
2
8/29
* Lecture Note #1 Web System Infrastructures, Protocols, and Applications (continue)
* Ch 1: How the Web Works, PPT slide
* Online Quiz 1 from 5 PM, Aug. 31 to 5 PM, Sept. 1 -- Announcement
* Hw 2 assigne (LAB) due 9/7

8/31
* Ch 1: How the Web Works, PPT slide (continue)
* Data Centers: 
*** Azure Data Ceneters, https://azure.microsoft.com/en-us/overview/datacenters/
*** Microsoft’s Underwater Data Centers, 0:56 min, 2016/11/6, https://www.youtube.com/watch?v=bCQszPncF4s
*** Google Datacenter 360⁰ – at Oregon, 8:29 min, Mar 23, 2016, https://www.youtube.com/watch?v=zDAYZU4A3w0
*** Tour Oracle’s State of Art Data Centers, 3:24 min, Jan. 11, 2017,  https://www.youtube.com/watch?v=f4RBs43G17g
3  9/5
* Lecture Note #2 - HTML, Web Browsers and Web Servers
** Chapter 2 Intro to HTML - HTML Lab Code Examples
** Building Web Applications with HTML - an E-Book, 2002, by Prof. Paul Lin
*** 1. Programming Languages for Web Applications
*** 2. Web Page Design and Web Site
*** 3. Hypertext Markup Language Basics
HTML Editors, https://en.wikipedia.org/wiki/HTML_editor
* Microsoft Expression Web 4 (free version), https://www.microsoft.com/en-us/download/details.aspx?id=36179 
* Adobe Dreamweaver, • CoffeeCup, https://www.coffeecup.com/html-editor/,  Notepad
*  NotePad++, https://notepad-plus-plus.org/ 
Web Servers
• XAMPP (Apache, MariaDB, PHP, Perl), https://www.apachefriends.org/index.html 
• AMPPS (Aaoche, MySQL, PHP, Perl, Python, MongoDB), http://www.ampps.com/download 
• WinLAMP (Apache, MySQL, PHP, Perl), http://winlamp.sourceforge.net/
9/7
** Building Web Applications with HTML - an E-Book, 2002, by Prof. Paul Lin
*** 4. Intermediate HTML
**** <meta> element for Search Engine: keywords, descrtiption, author, copyright, robots
**** Creating a Slide Show Using <meta>: Client pull
**** Image Mape Example
* Ch 2 Intro to HTML, PPT slide
* Ch 8 Introduction to Server-Side Development with PHP
* 8.2 A Web Server's Responsiblities
** 8.2.1 Apache and Linux
** 8.2.4 Installing Apache, PHP, and MySQL for Local Development, pp. 334
XAMPP Server Configuration & Trouble shooting note
4   9/12 (Prof. Lin was sick today, was not able to make recorded lecture due to Echo360 Personal Capture software was corrupted)
9/13
** Ch 3. Casecading Style Sheet, ppt slide

Listing3.1.html        Listing3.2.html           Listing3.3.html        Listing3.4.css
Listing3.5.html        Listing3.6.html           Listing3.7.html        Listing3.8.html
References:
***  What is CSS, http://www.w3.org/Style/CSS/Overview.en.html  
*** HTML & CSS, http://www.w3.org/standards/webdesign/htmlcss
*** CSS Validation Service, http://www.css-validator.org/  
XAMPP Server Configuration & Trouble shooting (updated 9/13)


HW 4 (CRM web site) assigend 9/15, due 9/26
5 9/19
** Ch 3. Casecading Style Sheet, ppt slide (continue)
** Apache Server Configuration, and XAMPP Trouble Shooting, Virtual Host Configuration: Note
9/21
** Lecture 4 HTML Tables and Forms,
** Ch 4 Examples
Listing4.1.html  - pag 175     Listing4.2.html - page 177
Table Examples: Lab04-ex01; Lab04-ex02; Lab04-ex03; Lab04-ex04; Lab04-ex05; Lab04-ex06
Form Examples: Lab04-ex07; Lab04-ex08; Lab04-ex-09; Lab04-ex10; Lab04-ex11; Lab04-ex12; Lab04-ex13
Lab04-Project01 - Book Rep Customer Relations Management, pp. 180-181   
Lab04-Project02 - Art Store, pp. 180-181
Lab04-Project03 - Share Your Travel Photos, pp. 182-183
** Quiz 2: ** Covering Ch 2 and Ch 3, plus covered lectures and Hw after Quiz 1; closed books, notes, and all references; Starting Thursady, 5 PM, Sept. 21; ending Friday, 5 PM, Sept. 22 ; you can take ONLY one time
6 9/26
** Lecture 4 HTML Tables and Forms (Continue)
HTML Forms Standards:
** HTML 5 - 4.10 Forms, http://www.w3.org/TR/html5/forms.html
** HTTP/1.1 RFC 7230- Message Syntax and Routing; June 2014, http://tools.ietf.org/html/
** HTTP/1.1 RFC 7237 Method Registration; June 2014, http://tools.ietf.org/html/
Lecture 5 JavaScript: Client-Side Scripting
** An Javascript Application: Color Coded Resistor Calculator Page
** Developing  Advanced Web Applications Using JavaScript, an e-Book, by Paul Lin, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/JavaScriptBookIndex.html
5-1 An Intro to Java Script

9/28
5-1 An Intro to Java Script (continue)
5-2 JavaScript Keywords, Variables and Operators:  Operators(arithmetic, equality and relational: comparison, logical, conditional); Decision Making statement: if, else; conditional operator; Multiple Decision Making Statement: switch, case, break, continue; Loops or repitition statement: while, for, do while
5-3 JavaScript Function; Functions and program modules: built-in, programmer/user defined
5-4 JavaScript Objects: Objects (constructors, Properties, methods)
7 10/3
** Developing Advanced Web Applications using JavaScript, an E-Book,  by Paul Lin, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/JavaScriptBookIndex.html
*** Ch 3. JavaScript Keywords, Variables, and Operators, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/03_KeywordsVars.html
*** Ch 4. JavaScript User Defined Functions, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/04_JsUserFunctions.html
*** Ch 5. The Document and Window Objects, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/05_JsDocsWindows.html
*** Ch 6. JavaScript Forms and Events, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/06_JsFormsEvents.html
*** Ch 7. Dynamic Pages with Date and Time, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/07_JsDateTimeObjs.html
*** Ch 9. Using JavaScript Arrays, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/09_JsArrays.html


10/5 -- No Face-to-Face Class (please view the recorded lecture through Blackboard)
* Chapter 8 Introduction to Server-Side Development with PHP, pages 322-342; PPT slide
* Ch. 8 PHP Code Listing, http://www.etcs.ipfw.edu/~lin/CPET499-ITC250/Book-FundamentalWebDev/book-exs-fundawebdep-F2015.html
* Introduction to PHP (1 of 3), Lecture Note

8 10/10 - Fall Break

10/12 - No Face-to-Face Class (please view the recorded lecture through Blackboard)
* Introduction to PHP (1 of 3), Lecture Note (continue)
* PHP Examples: mathoperators.php, mathoperators.txt; if-else.php, if-else.txt; PHPbrowser-IP-Info.php, PHPbrowser-IP-Info.txt; funct_arguments.php, funct_arguments.txt.
9 10/17
* PHP, Functions, Arrays, and Superglobals (2 of 3), Lecture note
* PHP, Functions, Arrays, and Superglobals (3 of 3), Lecture Note
* PHP Examples: mathoperators.php, mathoperators.txt; if-else.php, if-else.txt; PHPbrowser-IP-Info.php,
PHPbrowser-IP-Info.txt; funct_arguments.php, funct_arguments.txt.
* Ch. 8 PHP Code Listing, http://www.etcs.ipfw.edu/~lin/CPET499-ITC250/Book-FundamentalWebDev/book-exs-fundawebdep-F2015.html

10/19
* Ch 9. PHP Arrays and Superglobals (text book)
* Ch 9 Code Listing, http://www.etcs.ipfw.edu/~lin/CPET499-ITC250/Book-FundamentalWebDev/book-exs-fundawebdep-F2015.html
* Ch 11. Databases and Web Development, (1 of 3), Lecture note
10 10/24
* Discussion of Hw 6 - Ch 08-project-02
* Ch 11. Databases and Web Development, (1 of 3), Lecture note , <continue>
* Web Systems: Final Project Topics and Ideas, Hw 7 due Nov. 2
* Web Systems - Final Project Topics and Presentations: 2015, 2016
* Web site hosting suggestion, email from Nick Bauer, 2017/10/24
10/26 Managing MySQL database (Setting Passwords, SQL Statements, Create Tables, etc.), and phpMyAdmin console
* How to set/reset mySQL password, Lecture note

* Managing mySQL database, Lecture note
* phpMyAdmin console and mySQL database management,
Lecture note
11 10/31
* Discussion of Hw 8 - Working with MySQL and PHP under XAMPP Server, due Nov. 14
* Lecture Note on:
*** MySQL Database inport & export
*** Managing a MySQL database and command line exercises
*** Database index and Efficiency
*** Accessing MySQL in PHP

11/2
* PhP and MySQL Hands-On Practice, Lecture Note:
*** XAMPP Control Panel, Apache Web Server, MySQL Database, Shell (Command Line)
*** Create a Customer database, a CustomerInfo Table;  See Fields/Properties of Table, Insert Values
*** Check MySQL Connection: Connect to MySQL Using PhP APIs
*** PHP program: Query Customer Database
*** Hw8: Lab 11 Exercise 08
12 11/7
A) Review & Discussion: Final Project Proposals, due Nov. 2
1) Hacknet, Real-Life Hacking and You, Logan Grannis
2) College-Ty Web Site, Emmanuel Ellis and Som Amphoneohong
3) C&B Homes,Nick Bauer and Clark Collins
4) Smart Home Devices Guide, Kohl Smith
5) RDIF Area Information Network, Eamonn Barry
6) Leafy Eats Going Online, Clint Aschliman
7) The Journey, Racine Talla
8) Tic-Tac-Toe Web Application, Chance Meador and Jason Anderson
9) Euchre History Craig Romano
10) SimpleRex, Grant Harmeyer

B) Final Project Guideline, Reports, Schedule, and due dates
Items Due Dates:
** Progress Report 1 – due Thursday, Nov. 16, before 2 PM
** Progress Report 2 – due Thursday, Nov. 30, before 2 PM
** Final Project Report, PPT Slide and Software Files due Tuesday, Dec. 12, 2017
• Final Project Report (Microsoft Word file)
• PPT Slide (Microsoft PowerPoint file)
*** PPT format and recommendation - minimum 20 slides
• All Project Codes (HTMLs, CSS, Picture files, PHP, database file) in one zipped file
** Final Project Presentations and Demos (10 minutes per project): 10:30 AM-12:30 PM, Thursday, Dec. 14, 2017, in Room ET 346 {IPFW Final Exam Schedule: Dec. 14, Thursday, 10:300-12:30 PM - Final Exam, http://www.ipfw.edu/academics/finals/}

C) (Hw 8, Lab 11 Working with Databases - Discussion)
* Exercise 11.8 MySQL Through PHP
* Exercise 11.9 Integrating User Inputs (MYSQLi)
* Exercise 11.10 Integrating User Inputs (PDO)
* Exercise 11.11 Sanatize Inputs
* Exercise 11.12 Prepare Statements
* Exercise 11.13 HTML List from a Database Query Result
* Exercise 11.14 Reading and Storing Blob Data

D) Announcement - Exam 3: from Thursday 5 pm, Nov. 16 to Friday, 5 pm Nov. 17, covering Ch. 8 Intro to Server-Side Development with PHP, Ch 9 PHP Arrays and Superglobals, Ch 11 Working with Databases, Ch 12 Error Handling and Validation.

11/9
Lecture (2 of 3) on Ch 11 Working with Databases (using text book figures and codes)
* More PHP Data Object (PDO) and mysqli Procedural Style APIS
* Integrating User Input Data Into Query
* PHP and MySQL Tasks: Making MySQL connection and closing connection, Display a List of Links, Using Transactions
13 11/14
* Hw9
Final Project Progress Report #1, due Nov. 16 (extended to Nov. 17), Guideline posted on HW assignment page
* Model Progress Report
, Mitchbot Wx: Outerwear Suggesting Daily Weather Email with Settings Web Site, by Mitch Grogg, Fall 2015 CPET 499 Web System
* Exam 3: from Thursday 5 pm, Nov. 16 to Friday, 5 pm Nov. 17, covering Ch. 8 Intro to Server-Side Development with PHP, Ch 9 PHP Arrays and Superglobals, Ch 11 Working with Databases, Ch 12 Error Handling and Validation (EXCLUDE Ch. 12!).

Lecture (3 of 3) on Ch 11 Working with Databases (using text book figures and codes)
* PHP API Fetch Functions
* More on PHP and MySQL Tasks: Search and Results Page, Editing a Record, Saving and Displaying Raw Files in the Database, Displaying BLOBs from the Database
* 11.7.3 Editing a Record: Code Examples (PHP source code in zipped file), Listing3-30 to Listing3-34

11/16
Ch 12. Error Handling and Validation, Lecture note
** Errors and Exceptions, PHP Error Reporting,  PHP Error and Exception Handling
** Regular Expressions, Validating User Input, Where to Perfom Validation
** HTML 5: http://www.w3.org/TR/html5/forms.html
14 Makeup Exam 3 (online) from 12:00 noon, Tuesday, Nov. 21 to 11:00 PM, Nov. 22 (Wednesday)
11/21
* Ch. 13 Managing States, Lecture note
* CPET 250/499 Final Project - Progress Report Review & Discussion
References: (Lecture note)
* HTML Web Storage, W3C Recommendation, 2016/4/19, http://www.w3.org/TR/webstorage/
* HTML5 5.4 Session History and Navigation, http://www.w3.org/TR/2011/WD-html5-20110113/history.html 
* Web Storage Concepts and Usage, https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API
* JavaScript APIs
*** window.sessionStorage, https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
*** LocalStorage, https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage 
PHP Cookies and Sessions
• $_COOKIES, http://php.net/manual/en/reserved.variables.cookies.php 
• $_SESSION
o Basic Usage, http://php.net/manual/en/session.examples.basic.php 
• bool session_start([array $option =[])), http://php.net/manual/en/function.session-start.php 
• References http://php.net/manual/en/reserved.variables.session.php

11/22 (Thanksgiving Break)
15 12/28
** Hw 10 Progress Report 2 – due Thursday, Nov. 30, before 2 PM (Use the same format as Progress Report 1)
**
Makeup Exam (Quiz 2) - 5 PM, Nov. 30 (Thursday) to 5 PM, Dec. 1 (Friday), covering Chapter 6 JavaScript
** Ch. 14 Web Application Design, Lecture note
*** Principle of Layering
*** Common Layering Schemes
*** Software Design patterns in the Web Context: Adapter pattern, Simple Factory pattern, Template Method pattern, Data and Domain patterns, Domain Model pattern, Active Record pattern
*** Presentation Patterns: Model-View-Controller (MVC) pattern, Front Controller pattern 

11/30
**
Hw 10 Progress Report 2 – due Thursday, Nov. 30
** Ch. 16 Security, Lecture note
*** ISO/IEC 27002: 2013 Information Technology -- Security Techniques -- Code of Practice for Informtion Security Controls, , https://www.iso.org/standard/54533.html
*** ISO/IEC 27002, first Edition, 2005

*** NIST Risk Management Guide for Information Technology Systems (withdrawn, superseded by SP 800-30 Rev. 1), https://csrc.nist.gov/publications/detail/sp/800-30/archive/2002-07-01
*** SP 800-30 Rev.1 Guide for Conducting Risk Assessment, https://csrc.nist.gov/publications/detail/sp/800-30/rev-1/final
*** Guide to Industrial Control Systems (ICS) Security, 2015, NIST, http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-82r2.pdf
*** The Industrial Internet Consortium, http://www.iiconsortium.org/IISF.htm
*** Securing Industrial Control Systems in the Age of IoT, Oct. 2016, Jeff Lund, www.iiconsortium.org 
*** 2016 Data Security Incident, Uber Newsroom https://www.uber.com/newsroom/2016-data-incident/
*** Uber Hid 2016 Breach, Paying Hackers to Delete Solen Data, https://www.nytimes.com/2017/11/21/technology/uber-hack.html
*** The top 10 classes of vulnerability from the Open Web Application Security Project (2013): https://www.owasp.org/index.php/Top_10_2013-Top_10
*** Web Application Security Project (2017): https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
16 12/5
** Ch. 16 Security, Lecture note (continue)
XML and Enterprise Application Integration, e-Book, Paul Lin, http://www.etcs.ipfw.edu/~lin/CECourses/XML_EAI/ce_xml_eai_fa03_outline.html
*** SOA and Distributed Computing, http://www.etcs.ipfw.edu/~lin/CPET581-CloudComputing/2015-Spring/1-
*** SOAP services, http://www.etcs.ipfw.edu/~lin/CECourses/XML_EAI/9_SOAP.html
*** REST services in Amazon S3 Interface

12/7 (no-face-to-face class meeting)
** Prof. Lin is in his office for any question
** Students will use this late class time for final project activities.

Progress Report #2 (Final Course Projects) - Nov. 30, 2017
1) C&B Homes,Nick Bauer and Clark Collins
2) SimpleRex, Grant Harmeyer
3) Tic-Tac-Toe Web Application, Chance Meador and Jason Anderson
4) Leafy Eats Going Online, Clint Aschliman
5) Hacknet, Real-Life Hacking and You, Logan Grannis
6) College-Ty Web Site, Emmanuel Ellis and Som Amphoneohong
7) Euchre History, Craig Romano
8) Smart Home Devices Guide, Kohl Smith
9) RDIF Area Information Network, Eamonn Barry
10) The Journey, Racine Talla
17 ** Final Project Report, PPT Slide and Software Files due Tuesday, Dec. 12, 2017
** Final Project Presentations and Demos (10 minutes per project): 10:30 AM-12:30 PM, Thursday, Dec. 14, 2017, in Room ET 346 {IPFW Final Exam Schedule: Dec. 14, Thursday, 10:300-12:30 PM - Final Exam, http://www.ipfw.edu/academics/finals/}

Final Projects (order of presentation)
1) C&B Homes,Nick Bauer and Clark Collins, ppt slide
2) SimpleRex, Grant Harmeyer, ppt slide
3) Tic-Tac-Toe Web Application, Chance Meador and Jason Anderson, ppt slide
4) Leafy Eats Going Online, Clint Aschliman, ppt slide
5) Hacknet, Real-Life Hacking and You, Logan Grannis, ppt slide
6) College-Ty Web Site, Emmanuel Ellis and Som Amphoneohong, ppt slide
7) Euchre History Craig Romano, ppt slide
8) Smart Home Devices Guide, Kohl Smith, ppt slide
9) RDIF Area Information Network, Eamonn Barry, ppt slide
10) Fort Wayne Web site, John Konchar,  ppt slide
11) The Journey, Racine Talla, mp4 presentation