/ capstone

Capstone Week 3

This week has been more about adminstration as I filled out Form B.

note: capstone project, framework, system all refer to the same thing unless otherwise specified.


This is the proposed timeline for the Security Awareness Framework, received approval from both supervisors but my school supervisor has his reservations about the length of the project. In the process of discussing how to move ahead at the moment.


This project is meant to turn into a product for the company where they would sell to other companies as a form of training package for their employees. This means that extra modules will most likely be required to be developed along the way when there is demand for new content.

This means that the framework needs to be designed to be highly modular, flexible, and extensible.


As of writing, it is still unsure if this is meant to be deployed on a server or locally on the client's computer. It may possibly be required to run only within Intranet without access to the World Wide Web. As such, much of the research focus has been on finding a solution for a system that is portable/cross-platform, and able to run on a server if required.

Initially, I wanted to try new web technologies like NodeJS and build the entire framework around Javascript, as well as building a REST API so that it would be easy to extend upon it in the future. However, it is extremely difficult to package such a system that is easily portable.

Hence, I have chosen to stick with proven technologies like the LAMP stack which is compatible with all platforms with very easy installations. There is even a portable version of it so deployment would not be an issue in an intranet environment.

Writing the entire framework from scratch while feasible, would not be the most efficient. After researching on slim frameworks, I have concluded that Code Igniter is best suited for this system.


Reasons for choosing Code Igniter

  1. Deploying it does not require extra dependencies. It is a self-contained framework where all the libraries are included as PHP classes. (aka. copy paste deployment)
  2. I have experience working with it for my personal projects
  3. It has good documentation and a large community behind it
  4. Small footprint (2MB)
  5. Uses MVC design pattern
  6. Has many inbuilt libraries for validation and form handling