CIS-355: Server Side Web Application Development
Build, document and deploy database-driven web applications in PHP/MySQL.
Communication and Contact Information
|Instructor||George Corser, PhD |
|Email/Phone||Use Canvas mail, not email, for all course-related communication.|
For non-course-related communication, email:firstname.lastname@example.org, voicemail:989.964.2756
|Office Hours||By appointment only, as early as 6:00am weekdays. Use Canvas mail to set up a meeting. |
|Class Hours||None. 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. |
None. There is no required textbook for this course. All required reading materials will be posted in Canvas.
"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 and/or api.svsu.edu.
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.
- 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.
- PHP. Take a "crash course" in the PHP programming language.
- 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).
- PHP/MySQL. Implement simple PHP code which interacts with MySQL tables. Understand database connections. Consider the pros and cons of MySQLi and PDO.
- CRUD. Implement simple PHP code to create, read, update and delete records of MySQL tables.
- 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.
- 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.
- Modular/DRY Coding and Commenting
- 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.
- 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.
Tools / Technology Components
- Multiple email accounts. Many providers of Web tools require users to create accounts. Authentication of accounts most often requires email address and password. You may prefer to create such accounts using different email addresses, or an email address other than your university email address. For privacy, if you prefer to remain anonymous to Web tool providers, then you may prefer to create an anonymous email address. To create an anonymous email address, open a new "incognito window" in your browser. Create a new email account with an email provider, such as Gmail. By opening incognito windows, it is possible to be concurrently logged in to multiple Web accounts for the same tool.
- GitHub. Sign up for a free account.
- GitHub Pages. Set up a web page where you will post links to all of your work for this course. See: video instructions and written instructions. The GitHub Pages site for this course is https://cis255.github.io/pages/.
- YouTube. You might want to use YouTube to post videos of your work, or to post videos of bugs you discover.
- Cisco Packet Tracer. Join the course, Introduction to Packet Tracer, and download the free software. To be consistent with course lectures, use version 7.2.
- CodePen. Sign up for a free account.
- 000webhost. Sign up for a free account.
- Putty (SSH)
- WinSCP (FTP)
- PhoneGap (a distribution of Apache Cordova)
Assignments and Exams
There are 100 points total in the course.