Fall 2018 

CIS-355: Server Side Web Application Development

Build, document and deploy database-driven web applications in PHP/MySQL.

Communication and Contact Information

InstructorGeorge Corser, PhD
Email/PhoneUse Canvas mail, not email, for all course-related communication.
For non-course-related communication, email:gpcorser@svsu.edu, voicemail:989.964.2756
Office HoursBy appointment only, as early as 6:00am weekdays. Use Canvas mail to set up a meeting.
Class HoursNone. This is a completely online course. In-person lectures and labs may be scheduled on a case-by-case basis. Attendance is always optional. Lectures will generally be recorded using Echo 360 and the video will be posted on Canvas. See Canvas for announcements.

Textbook (Optional)

None. There is no required textbook for this course. All required reading materials will be posted in Canvas.

Course Description

"This course focuses on the server side of web application development technologies. Topics include understanding, installing and configuring various server side technologies such as web servers, scripting engines and databases. Students will also learn PHP to address server side scripting and its interplay with the client side response. Students will produce a large scale, dynamic web application to illustrate their application of the course topics. Examinations of database connectivity, web service models and the importance of XML will be provided." Source: SVSU Course Catalog.

Course Goals/Outcomes

This course presents basic theoretical concepts and practical implementation techniques, for building database-connected, server side web applications, especially create-read-update-delete (CRUD) apps. Students demonstrate theoretical understanding by completing online quizzes and exams. Students demonstrate practical knowledge by completing coding assignments. Students are also expected to demonstrate professional preparation for careers in corporate settings by following directions, communicating proactively (not waiting until the last minute) and turning in work of satisfactory quality, on time.

In this course, each successful student will design and code a CRUD application, with a Bootstrap front-end (client interface) and PHP/MySQL back-end (server implementation). Top students will also build a CRUD app using a framework, such as CodeIgniter.

Topics

  1. Syllabus and Course Introduction. Understand course policies. Implement course tools, and verify that they work correctly. Review basic web concepts, including HTTP, REST, LAMP. Understand the meaning of server side web application development, why it is important and when it is (or is not) appropriate.
  2. PHP. Take a "crash course" in the PHP programming language.
  3. MySQL. Take a "crash course" in MySQL and phpMyAdmin. Learn to make entity-relationship (ER) diagrams. Note: this covers a small subset of topics also covered in CS-411 (Database Systems).
  4. PHP/MySQL. Implement simple PHP code which interacts with MySQL tables. Understand database connections. Consider the pros and cons of MySQLi and PDO.
  5. CRUD. Implement simple PHP code to create, read, update and delete records of MySQL tables.
  6. Cookies. Implement simple cookies. "An HTTP cookie (also called web cookie, Internet cookie, browser cookie, or simply cookie) is a small piece of data sent from a website and stored on the user's computer by the user's web browser while the user is browsing. Cookies were designed to be a reliable mechanism for websites to remember stateful information (such as items added in the shopping cart in an online store) or to record the user's browsing activity (including clicking particular buttons, logging in, or recording which pages were visited in the past). They can also be used to remember arbitrary pieces of information that the user previously entered into form fields such as names, addresses, passwords, and credit card numbers." Source: Wikipedia. See also: w3schools.
  7. Security and Session Control. A session can store variables used across multiple web pages in a web application. Unlike a cookie, the information is stored on the server, not the client computer. See: w3schools. A common reason to use session control is to secure a website with a login and password. See: w3schools.
  8. Modular/DRY Coding and Commenting
  9. OO-PHP/MySQL
  10. Web services. "In a web service, the Web technology such as HTTP—originally designed for human-to-machine communication—is utilized for machine-to-machine communication, more specifically for transferring machine-readable file formats such as XML and JSON." See: Wikipedia. See also: w3schools.
  11. File Upload/Download. Web applications may be used to store and retrieve not only user-entered data, but also images, documents and other files. Transferring files from client to server (upload), and from server to client (download) requies special processing. See: w3programmers. See also: w3schools.
  12. Frameworks

Technology Components

Texts/Sources

Assignments and Exams

There are 100 points total in the course.

Android Privacy Policy

The web application code in this course can be used to generate mobile apps. For an example, see MFSM (Google Play, Apple App Store). Sometimes Android apps require a privacy policy, which must be available on the Web. The link below redirects to the CIS-355 Android privacy policy, which was generated by Iubenda. Students may use this privacy policy when publishing their apps.

Privacy Policy