Week 9
Materials & lab posted.

The unit testing primer is in place. This is not what you need to do for the lab - it is an example of unit testing a model and a collection!

There is a note at the top of the primer, pointing out that you will probably need to add a magic getter (__get()) to your application/core/Entity class, in order to have access to all of your model properties.

Some groups have reported issues with this, namely that their unit tests pass but the webapp no longer works as expected. That shouldn't be the case, and I suspect some expected CI code not executing when we invoke it from the command line.

Worry about passing the unit tests - we will not be running the app! This is a good opportunity for me to say a few words about mock objects for unit testing, but after the break :)

Note: I fixed the code coverage section in the primer, which was only partially done when I was feeling under the weather.


Lesson intro00 Course Introduction |
Lesson intro01 Introduction |
Lab lab01 Development Environment |
Tutorial setup01 XAMPP Installation |
Tutorial setup02 Virtual Hosting Setup |
Lesson basic01 MVC Frameworks |
Lesson dev01 Devops Workflow Concepts |
Lab lab02 Collaborative Workflow |
Lesson week02 Survey results - MVC & workflow |
Lesson basic01-ci CodeIgniter Overview |
Lab lab03 Website Conversion |
Tutorial ci-basic01 Static to Trivial CI Website Conversion |
Tutorial ci-basic02 Trivial CI to Basic CI Website Conversion |
Tutorial ci-basic03 Basic CI to Good CI Website Conversion |
Lesson basic02 CI Controllers |
Lesson basic06 Routing |
Lab lab04 Working With Controllers & Routing |
Lesson week04 Survey results - signing |
Lesson basic03 CodeIgniter Models (Practical) |
Lesson basic03-more Model Patterns (Concepts) |
Lesson basic68 Models in a Nutshell |
Lesson basic04-basics View Basics |
Github views Examples to support "views" lessons
Lesson basic69 Views in a Nutshell |
Lab lab05 Todo List Manager |
Tutorial ci-todo01 Database and models |
Tutorial ci-todo02 Homepage Features |
Tutorial ci-todo03 Ordered List Page Features |
Tutorial ci-todo04 Maintenance List |
Tutorial ci-todo05 Help Wanted Page Features |
Lesson basic04-forms Creating Forms |
Lesson basic04-handling Handling Form Data |
Lesson view-practices View best practices? |
Lab lab06 Building Out Our TODO List Manager |
Tutorial ci-todo06 Pagination |
Tutorial ci-todo07 User Roles |
Tutorial ci-todo08 Provide for Completing Work |
Tutorial ci-todo09 Role-specific Maintenance List |
Tutorial ci-todo10 Todo Item Maintenance (finally) |
Tutorial ci-todo11 Polish the Item Maintenance |
Lesson basic05 Building on CodeIgniter |
Lesson basic05b Example Library & Helper |
Lab lab07 Unit testing for our Todo list manager |
Tutorial ci-unit Unit Testing Primer |
Lesson intro02 Golden Rules |
Tutorial setup03 PHP Comparison to Java |
Lesson dev02 Gitflow Workflow Techniques |
Lesson dev03 Gitflow Setup Example |
Lesson dev04 Gitting Good |
Lesson marking Marking Process |
Lesson basic01-other Other MVC Framework Examples |
Lesson other-routing Routing examples from other frameworks |
Lesson other-models Model examples from other frameworks |
Lesson other-controllers Controller examples from other frameworks |
Lesson other-views View examples from other frameworks |
Lesson other-forms Form examples from other frameworks |
Lesson other-rest REST examples from other frameworks |

Course Instructors

Jim Parry
Online collaboration; announced first class.
In office meeting can be requested Tue 12:30-14:20 or Wed 09:30-10:20 or 12:30-13:20 (SW2-124)

Michal Aibin
Online collaboration; announced first class.
In office meeting can be requested Thu (12:30-13:20) in Burnaby (room TBA).

Arron Ferguson
Online collaboration; announced first class.
In office meeting can be requested ....

Desire2Learn LMS



Main website

Course Related

Course outline
Slack team - for notifications & FAQ
Course repo - open-sourced, for those who want to look "under the hood"