Module Overview

Web Development Server-Side

The aim of this module is to reinforce and extend the students’ existing skills in web development, computer programming and databases. Students will develop skills and knowledge enabling them to design, create and evaluate dynamic database-driven web applications, using a server-side scripting language, and learning modern software architectures for server-side applications.

Module Code

COMP H2029

ECTS Credits

5

*Curricular information is subject to change

1 - The 3-tier model for database-driven web applications

HTTP requests and responses/ headers and body of HTTP messages/ GET and POST methods/ 1-tier, 2-tier and 3-tier models/ server-side programming languages such as PHP

2 - Introduction to Distributed Version Control Systems (DVCS)

Version control overview/ DVCS and Git/ GitHub/ markdown and README files/ creating and commiting to repositories/ cloning - forking/ issues - releases

3 - Introduction to PHP

Variables/ control/ strings and common string functions/ custom functions/ simple integer index arrays/ associative array maps/ including and requiring external scripts

4 - Object-Oriented PHP

Classes/ visibility - public, private, protected/ magic methods (__construct, __tostring, etc.)/ namespaces & the Composer autoloader/ adding third-party packages with Composer

5 - Introduction to Model-View-Controller (MVC) software architectures

Single Front Controller index page/ action GET/POST variables/ controllers and views/ separation of View using templating system such as Twig

6 - HTML forms and PHP form processing

Recap of HTML form elements/ URL encoding / GET and POST requests/ dealing with missing and invalid data/ hidden form fields

7 - Persistent data with sessions

Sessions and special variables-functions such as the PHP $_SESSION superglobal/ copying with missing session values/ using sessions to implement sticky forms

8 - Persistent data with databases

Recap of basic database CRUD actions / Entity classes/ PDO database functions / database connections, recordsets and queries / handling errors/ separating responsibilities with repository classes/ abstracting database functions with third-party libraries

9 - Introduction to server-side security

Login-based user authentication/ preventing access to secure pages/ ROLE-based access/ avoiding SQL 'injection' attacks/ hashing vs. encrypting stored passwords

10 - Unit Testing and TDD

Test Driven Development (TDD)/ from red to green / unit tests & assertions/ data providers/ reports, metrics and code coverage

Module Content & Assessment
Assessment Breakdown %
Other Assessment(s)100