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.
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 |