MyCMS

3 minute read

A PHP based CMS application that I wrote using the CodeIgniter framework.  The application allows you to create projects that you’ll be able to keep track of.  The source code for this project can be found at here.  The motivation for writing this application was to help me to get more experience with both php and codeigniter (both really great tools for building web apps).  I also got the opportunity to include some jQuery components such as the table sorting feature.

A ticketing system is included to allow you to keep track of all issues/bugs/requests for each project.  A basic user management interface is also included that will allow administrators of the application to create users and give them access to the application.  In addition to creating users, administrators will also be able to disable existing accounts that no longer need access to the application.

A simple file-based wiki called  pmwiki has been integrated into the application to allow for documentation and any other information that is needed for each project. I decided that I didn’t want to build my own as I really wanted to get a full-featured wiki and building my own would not meet those needs (though I must admit the thought of building my own wiki … within the confines of codeigniter … was tempting).

Login Screen For user authentication/management I use the really simple and very powerful ion auth library.

User’s Home Page

Once a user logs in, they’ll be directed to their home page where they’ll be able to see the list of tickets that have been assigned to them.  The user can click on the column header and the table will be sorted by that column.  This was done with the help of the  jquery  table sorter.

User's Home

Projects

In this tab, you’ll see the list of active projects.  You’ll find a link for the kb (currently not implemented) and trac (which is the way you can keep track of issues/enhancements of each project).

Projects

Project Home Page

Below you’ll see an example of the home page of one of the projects.  You’ll find a brief description and at the top left hand side a link to the project’s knowledge base (kb) and it’s trac page plus the ability to create a ticket right here and then!

Project Home Page

Project Tickets

Project Ticket

Create Ticket

Below you’ll find the screen that allows you to create a ticket.

new ticket

Ticket Note/Change

To add a note or to make a change to a ticket (i.e. change status, priority, owner, etc), you’ll need to go to the bottom of the ticket where you can make the appropriate changes.

Change Ticket/Add Note

Knowledge Base Page

This page will hold list of articles that will help with documentation and other important information for each project. Note: this was never fully implemented as the wiki was going to serve the same purpose as the knowledge base.  I include it here just for completeness sake.

kb

Admin Page

This is where you can create new users and deactivate existing users so that they no longer can login to the application.

Admin Page

Wiki

Wiki

Example Wiki page:

Wiki Page