Title: To-Do List Addon
Date: 2010
Sample Code: init.php, cron.php, add_new_todo_hook.php.

Quick Summary:
WHMCS is a Web Hosting Management system often used by hosting companies to manage their billing and invoicing of customers. It comes with a built-in To-Do List, but it is very rudimentary.

The goal of this project was to upgrade it into what my employer called an "Orders To Do" system, which allows a client's ordered item (like 1 hour of custom programming on a site) to be queued up and assigned to an admin to be completed. New items can be created automatically when a new order is placed (and the invoice is paid for, don't want to do work that hasn't been paid for) or by any employee with access to the management screen. All items are viewable, editable, deletable, and completable by management, while employees can only view, edit, and complete their own items.



Project Background:
This all started when my employer decided they wanted to a different server hosting company. This process would include upgrading hardware, and in paralell with these upgrades, I was tasked with upgrading our WHMCS installation from v3.8.1 to the latest version (right now, v4.2.1). Doing this would move our employees away from a custom built CMS interface that is now grossly out of date and incompatible with anything higher than 5.2.

I took some time to look through the old CMS interface and note down some key features, including the Orders To Do portion of the website. This feature allows managers to assign specific tasks associated with client orders to their employees. WHMCS's To-Do List was very similar, in that an item could be assigned to an admin, and a due-date (which Orders To Do didn't have) could be set.

I originally considered using the DataTables system for displaying the data, but in an effort to more closely mimic the functionality already apart of WHMCS, I decided against it. Plus, if there were too many items in the list, the page would load slowly, and I didn't want that.

There are 3 parts to the To-Do List modification: Front-Page display, Management Screen , and the Client-Summary display. The front-page display shows a list of X number of To-Do List items, and is something that comes standard with the out-of-the-box To-Do list bundled into with WHMCS. The meat and potatoes of this project is the Management screen. This is where all the items can be created, modified, deleted, or completed. The Client-Summary page shows any To-Do list items that have been entered in for a client, what it entailed, and what the status of the item is.