After I had gotten my head halfway wrapped around PHP, that was roughly in 2007, I got the job to write a trouble ticket system for work. It was supposed to be used just with a team of six to ten people and should cover the basic features.
Please be aware of securityleaks and some unelegant code I used, as this system was available on a closed network.
Features
- It has its own user and group controller, a rudimentary contacts manager and an own session controller
- The interface is simple, yet effective
- It allows for a reply to be posted for each ticket, and each reply in itself, allowing a complete tree structure
- Tickets can be set to either active, open or closed, additionally they can be set open with a timer, after which it will pop back active
- Contacts can be associated easily by click on the list with each ticket
- A basic search lists tickets with the most word hits, since presumably a keyword will be used in most replies, making it easier to find old tickets
- Passwords are safely encrypted and session ids prevent unwanted access
Testing
When the system was replaced there were about 2000 tickets available, each with a fair amount of replies. It ran smoothly and had no wait times. A few bugs were fixed quite early back then, but then ran for more than a year without a glitch.
It should work for any small business or company.
Installation
Download the tar.gz file and extract it to your folder on your webserver. Edit the globals.php for database access and quick customization of the tts.
Now comes the tricky part. sqldump.sql is a small dump made with phpmyadmin and should create the necessary tables for you. Edit the first block with the schema if you decide to put it somewhere else than ‘local’.
After you imported the sqldump, accessing the index.php and logging in with root:root should do the trick.
On a sidenote, using the crypt() function from php can generate a new password for you, that you can manually load into the database through phpmyadmin.