AITOC - Website Development and IT Consulting Company AITOC - Web Application Development Company - Advanced IT Offshore Consulting Services
home customer login contact site map
 
SUPPORT TICKETING SYSTEM FREE DOWNLOAD
 


Introduction

License
Support
Copyright


Installation

Requirements
Preparations
Installation
Files and their description


Administration

User Administration

Mail messages Administration

Modifying Layout

For Advanced Users

View all tickets for admin
View all tickets for user
View selected ticket messages
Reply ticket by user
Reply ticket by admin

Download


Introduction

AITOC Support Ticketing System (supportApp) is a database-driven Support ticketing system. The main idea of the system is that you can easily integrate support ticketing system into application that have interaction with users. This application has a restricted access area for users and admin interface for system administration. You can integrate supportApp into your application only by changing a few strings of code in a single configuration file. For the time being a MySQL database is used to store all data, PHP 4.1.0 (or higher) is needed in order to run application.

This document should help you with installing and administrating supportApp


License

supportApp is published unter the Mozilla Public License Version 1.1 (MPL). This license guarantees you the free usage of supportApp, access to the sourcecode and the right to modify and distribute supportApp.

The only restrictions apply to the copyright, which remains at all times at AITOC Inc. Any modified versions of supportApp will also fall under the terms of MPL. Any other program, that may only be accessing certain functions of supportApp is not affected by these restrictions and may be distributed under any type of license.

A commercial usage or commercially distribution of supportApp , e.g. on CD-ROMs, is allowed, as long as the conditions mentioned above are met.

We decided to use MPL as the licensing model for supportApp because we feel that it is a good compromise between the protection of the openness and free distribution on the one hand and the interaction with other software regardless of its licensing model. When compared to other licensing models its text is short and easily comprehensible, even for newcomers.


Support

There is no support by phone or email, please refrain from calling us because this product is totally FREE of charge.


Copyright

(c) 2003 by AITOC Inc. under the Mozilla Public License.
All rights reserved.


Installation

Requirements for supportApp

supportApp addresses a MySQL database via PHP4. In order to install it you will need a webserver that meets the following requirements:

PHP4 Version 4.1.0 or higher (NOTE: supportApp will not work under PHP 4.0.x)
MySQL Version 3.23.23 or higher
this documentation

You can determine which versions your webserver is running by creating a file called info.php with the following content:

Upload this file to your webspace and open it using your browser. You will now be prompted the PHP and MySQL version numbers.

To view the supportApp pages you will need a third-generation browser (e.g. Netscape 3.01 or higher). Stylesheet formatting will only become visible correctly if you're using a modern browser like Netscape 6+ or Internet Explorer 5+.

Preparations

Please unzip the downloaded archive on your harddisk. An overview of all contained files is listed below.

Copy all unzipped files to your webserver in a directory using FTP. A good choice would be the directory 'supportapp'.


Installation

All you have to do is edit one file called 'constant.php' in folder 'include' and import the sql file called 'instantapp.sql' into desired database using tools like PhpMyAdmin.

The config file is commented to lead you through the configuration of it and must contain correct data for the system to work.


Files and their descriptions

admin

          admin.php - list of tickets for admin
          index.php - admin login
          logout.php - admin logout
          reply.php - reply to a specified ticket by admin

design

          add_ticket.inc.php - layout for new ticket page
          admin.inc.php - layout for list of tickets for admin
          check.js - JavaScript file with system wide functions
          footer.inc.php - system wide footer layout
          header.inc.php - system wide header layout
          history.inc.php - layout for list of tickets for user
          index.inc.php - layout for both user and admin login
          reply.inc.php - layout for reply to specified ticket by admin
          style.css - system wide stylesheets
          view.inc.php - layout for reply to specified ticket by user

include

          class_auth.php - sample class with authentification functions
          class_email.php - class with e-mail sending functions
          class_support.php - main application class with all functionality
          class_user.php - sample class with user management functions
          config.php - assembly of all required files
          constant.php - configuration file
          core.php - set of common used functions
          db.php - class for work with DB (currently only MySql)

pic - folder with pictures (content may vary depends on current design)
add_ticket.php - add new ticket page
history.php - list of tickets for user
index.php - user login
logout.php - user logout
README.txt - this file
supportapp.sql - schema of DB (for import to DB which name is described in constant.php file)
view.php - reply to specified ticket by user


Administration

The administration of supportApp is completely browser-based. The admin area can be found under this URL:

http://www.yourdomain.com/supportapp/admin/index.php

By entering your username and password (default values are "admin", "admin") you can log into the system. On the startpage you can see list of tickets with total number of tickets, page navigation and switch to archived mode. You can browse through tickets and close, reopen and reply to desired ticket. Also you can logout from system by following link "Logout".


User Administration

The main idea of supportApp is using it as a part of an existing application with it's own user management. The user part of supportApp deals with abstract user that must be "bridged" to real user using class 'SB_user' (file 'class_user.php' in 'include' folder) that must be rewritten to retrieve actual data from existing user management system. The only restriction is to keep all method's names unchanged. The second class that must be rewritten is class 'SB_auth' (file 'class_auth.php' in 'include' folder). It contains a sample of a basic authentication system with sessions and can be changed to use existing system authentification mechanisms. This class affects both user and admin parts and it's methods' names also should not be changed.

In current version user may login to the restricted area by typing this URL:

http://www.yourdomain.com/supportapp/index.php

On the main screen of the user administration you'll see a form for adding a new support ticket, link to ticket history and logout link. On ticket history page you can see the list of open and closed tickets for this user and on the 'reply' page he can reply, close and reopen desired ticket.


Mail messages Administration

supportApp has an ability to send E-mail notifycations to both users and admin giving them notices of the following actions: new ticket submission, user or admin reply, ticket closure or reopen.

A target e-mail address for user must be retreived from an existing application through "bridge" user class. An admin e-mail address is defined in supportApp settings.

Layout of E-mail messages completely defined by e-mail templates placed in the DB in table 'mail_template'.

These templates contain 'dynamic variables' that allow the system to replace these variables with actual data when a certain template is used.

It is Hightly recommend that you do not change names of variables in templates if you want to recieve correctly parsed E-mail messages.


Modifying Layout

The code and layout in supportApp are almost completely seperated. You may change most of the layout through the 'style.css' file located in 'design' folder. Also you can modify the layout of supportApp using any HTML editor by editing files located in directory 'design'. File names are almost identical to ones located in root directory but for the extentions. In this folder corresponding files end to '.inc.php'. System wide 'header.inc.php' and 'footer.inc.php' contain design for header and footer.


For Advanced Users

View all tickets for admin

 $o_core = new SB_Core();
 $o_core->Connect();
 $oModule = new SB_support();

 $archived = 1;  // 0 - active tickets, 1 - archived tickets
 $start = 0;  // start position for navigation
 $per_page = 3;  // number tickets per page

 list($num_tickets, $data) = $oModule->getList($archived, $start,  $per_page);

 Return values: $num_tickets - total number of tickets
      $data - multidimensional array with tickets data

 Example of data:

Array
(
    [0] => Array
        (
            [id] => 3
            [data] => 09/24/2003 15:41
            [subject] => test3
            [dataend] => 01/01/1970 03:00
            [last_message] => 09/24/2003 15:42
            [is_user] => 1
            [priority_name] => Normal
            [topic_name] => Sales
        )

    [1] => Array
        (
            [id] => 2
            [data] => 09/22/2003 17:15
            [subject] => test2
            [dataend] => 09/22/2003 18:10
            [last_message] => 09/24/2003 15:39
            [is_user] => 0
            [priority_name] => High
            [topic_name] => Sales
        )

    [2] => Array
        (
            [id] => 1
            [data] => 09/19/2003 12:08
            [subject] => test
            [dataend] => 01/01/1970 03:00
            [last_message] => 09/19/2003 13:42
            [is_user] => 1
            [priority_name] => Normal
            [topic_name] => Administrative/Billing
        )
)


View all tickets for user

 $o_core = new SB_Core();
 $o_core->Connect();
 $oModule = new SB_support();

 $user_id = 1;  // current user id

 $data = $oModule->getHistory($user_id);

 Return values:    $data - multidimensional array with tickets data

 Example of data:

Array
(
    [0] => Array
        (
            [id] => 48
            [subject] => test3
            [is_archived] => 0
            [closed] => 01/01/1970 03:00
            [open] => 04:09
        )

    [1] => Array
        (
            [id] => 46
            [subject] => test2
            [is_archived] => 0
            [closed] => 01/01/1970 03:00
            [open] => 2 days 02:35
        )

    [2] => Array
        (
            [id] => 1
            [subject] => test
            [is_archived] => 1
            [closed] => 09/16/2003 17:47
            [open] => 1
        )
)



View selected ticket messages

 $o_core = new SB_Core();
 $o_core->Connect();
 $oModule = new SB_support();

 $user_id = 1;  // current user id
 $ticket_id = 1;  // current ticket id

 list($ticket,$data) = $oModule->getTicket($user_id, $ticket_id);

 Return values:

 $ticket -  hash with ticket's commom data           

 $data - multidimensional array with  tickets data

 Example of common data:

Array
(
    [subject] => test
    [is_archived] => 0
    [date] => 09/19/2003 13:45
    [priority] => Normal
    [topic] => Sales
)

 Example of data:

Array
(
    [0] => Array
        (
            [message] => Test reply
            [date] => 09/22/2003 18:35
            [is_user] => 0
        )

    [1] => Array
        (
            [message] => Test ticket message
            [date] => 09/19/2003 13:45
            [is_user] => 1
        )
)

Reply ticket by user

 $o_core = new SB_Core();
 $o_core->Connect();
 $oModule = new SB_support();

 $user_id = 1;  // current user id
 $ticket_id = 1;  // current ticket id
 $message = "Test reply";  // reply message
 $close = NULL;  // 1 - close ticket
 $reopen = NULL;  // 1 - reopen closed ticket

 $oModule->ticketReply($user_id, $ticket_id, $message, $close, $reopen);



Reply ticket by admin

 $o_core = new SB_Core();
 $o_core->Connect();
 $oModule = new SB_support();

 $ticket_id = 1;  // current ticket id
 $message = "Test reply";  // reply message
 $formsubject = "Re: test";  // subject for reply e-mail
 $address = "noreply@somehost.com";  // 'from' e-mail address for reply e-mail
 $close = NULL;  // 1 - close ticket
 $reopen = NULL;  // 1 - reopen closed ticket

 $oModule->ticketAdminReply($ticket_id, $message, $formsubject, $address, $close, $reopen);



Download

Please, fill in the e-mail verification form to download the zip archive with AITOC support ticketing system.
   
Name*:
E-Mail*:
Company:
Website:
I agree to receive information about new documents available for download from this site
I agree to receive information about special offers from AITOC
Services | Products/Mods | Portfolio | Company | Contact  | Downloads | Customer login | Site map
Services | Maintenance and Support | Advanced Web Development | Web Application Development | Bitrix CMS Integration | Web Solution Integration and Customization | Mobile Application Development for iPhone & Android | VTiger CRM Integration & Customization | SugarCRM Customization & Integration | Offshore Staffing | SEO Services by Seologist