0% found this document useful (0 votes)
143 views

Issue Tracker

The document describes an issue tracking system called Issue Tracker. It is a PHP web application that allows teams to manage software issues, bugs, features and development history through an online database. It has interfaces for internal developers and external customers/users. Administrators can configure settings like permissions, email notifications, projects and statuses. The system provides search, filtering and storage of issues, feedback, documents and FAQs to help software teams manage development.

Uploaded by

sumanth324
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
143 views

Issue Tracker

The document describes an issue tracking system called Issue Tracker. It is a PHP web application that allows teams to manage software issues, bugs, features and development history through an online database. It has interfaces for internal developers and external customers/users. Administrators can configure settings like permissions, email notifications, projects and statuses. The system provides search, filtering and storage of issues, feedback, documents and FAQs to help software teams manage development.

Uploaded by

sumanth324
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 13

Issue Tracker

Issue Tracker is a PHP web based Issue tracking system. It helps you manage software
development. It uses a database to store issues to be done, bugs to be fixed, and features to be
added. With a issue tracking system, issues can be managed easier. All software development
history can be stored in the database for future reference.

Issue Tracker has two user interfaces. One is for internal developing team. The other is for
customers or end users to report their feedback. It has flexible user/group permission
management, database search/filter functions, FAQ and document management, and more.

Features:

 Easy to use
 Comprehensive permission system
 Email notice when report updated
 Customer feedback interface
 Anonymous feedback interface
 Search/filter on each field
 FAQ/Document management system
 System log, usage statistic
 UTF-8 support
 Multi-language user interface
 Upload attachment
 HTML editor in text area
 sending email through SMTP server that requires authentication

The Issue Tracker is a high performance application. It has been well tested. After tested its
capacity on AMD 1G Hz CPU and 256 MB RAM machine running FreeBSD 5.3, we found that
when there are 1000 users, 10000 anonymous users, 10000 reports, 10000 documents, and 10000
FAQ, the system is still very smooth.
System requirements:

Server

 Web server Apache


 PHP after 4.3.0
 PostgreSQL after 7.4 or MySQL after 4.1

Client

 Web browser with JAVA script support (Some functions might be disabled with JAVA
script support)

Administrating Issue Tracker:

Basic Settings:
You can finish all system configurations here. Let's see the "Configuration" first:

 Program Name: The program name will be used when sending email and shown on the
top header.
 Date Format: Set the date format.
 Automatic Redirection: After you submit a form or perform any setting, if the action is
successfully accomplished, we will show a confirmation page. If the Automatic
Redirection is set to YES, no confirmation will be shown. We will just redirect the page.
 Authentication method for normal users: There are two authentication methods in
Issue Tracker - "Storing user's password in Issue Tracker database" and "Using IMAP
server". Notice that you will still have to add the users even if you use the IMAP
authentication. The user's information besides the password is still saved in the database.
 Sender's name when sending system email: This is the sender's name when sending
email.
 Sender's email: When sending email, we will use this email to be the sender's email
address.
 Send mail function: Issue Tracker can send email in 2 ways: "Using PHP's mail()
function" or "Using Issue Tracker's SMTP function". If you are running Issue Tracker on
FreeBSD or Linux box which is able to send email by the "mail" command, we could use
it to send email (this is default). However, if you are running Issue Tracker on a Windows
machine, or the mail server requires authentication to send email, you would have to use
the SMTP functions implemented by Issue Tracker.
 Allow users to subscribe projects: Set to "YES" if you allow users to subscribe projects.
Subscribed users will receive email notification when report created or updated.
However, if you have a lot of users, the email traffic could be huge.
 Max Area/Max Minor Area: You can set the area owner in the project. This the max
area allow when add new area.
 Max filter for each user: Every user can has their own filters. The filter will be used to
filter the project database. This is the maximum of filters allowed for each user.
 Max shared filters for each user: Users can share their filters to others. We can set
limitation on the number of shared filters.
 Max log item in syslog: The system will rotate the syslog when it achieves the max log
items.
Groups:

 A User has to belong to one group. The permission system in Issue Tracker is based on
group. You can grant permission to use features and status. For example, you might want
to add the group "Marketing" and allow them to manage the customer feedback system.
Or add group "R&D Manager" to have full permission, and group "R&D Staff" can't
delete reports, nor delete projects.

 The "Status Allowance" allow you to set the statuses that a group can use. You might
want to disable some status for particular group. For example, only a project manager can
set the status of a report to "By design", only member of the quality control team can set
the status to "Could not reproduce".

Users:

 On the users setting page, you can add/edit/delete users. A user's information should at
least contain username, email, and password. The username can not be changed after
added. The username can not contain special characters, such as \$,"*<>()\.
 I highly recommend you not removing any user account after added. The report data has
to refer the username. If you remove a user, the user information in report table will be
set to null. If you would like to disable an user account, just edit the user and set the
"Account Status" to "Disabled".
 You can grant an user the right to access projects. Users can only see projects for which
"Project Visible" is checked. You can set the project visible on the project management
page, too. Users who have the permission to edit projects can edit users' "Project Visible"
in project management page, too.

Feedback System:

 The Issue Tracker has a customer feedback interface. You can edit the attribute of the
Feedback System.
 System Name: The system name will be shown on the top of feedback system and the
email notification. You might want to add your company name to the system name.
 Sender's name when sending system email: When a customer reports feedback or an
internal user updates the feedback, the system will send a notification to the customer and
specified internal users. The Sender's name will be used when sending email.
 Sender's email: This is the email address to be used when sending the above email.
 Feedback System Login Mode: There are three login modes in the feedback system -
Customer Mode, Anonymous Mode, and Mixed Mode. We only allow existing customer
users to login under Customer Mode. Users can register their own account under
Anonymous Mode and the newly registered user will be assigned to Anonymous group.
Under Mixed Mode, both customer user and anonymous users can login to the system. If
the Login Mode has been set to "Disabled", none can access the customer feedback
system.
 Default reply when import report: After a customer reported a bug, internal users, who
have the permission to manage the feedback system, can update the report. If the report is
verified and imported into the internal database, we will change the status to "In Process"
and send a notification to customer. This is the content of the notification message.
 Message to append to report when imported internal report closed: After customer
feedback has been imported into the internal database, if the related internal report has
been closed, we will update the external feedback system and write this message to the
feedback system. We will replace the key word "__STATUS__" with the status name of
the related internal report.

Customer management:

 If the feedback system login mode is "Customer Mode", only customer users that are
added in Customer management can login. You have to add a Customer Group before
adding Customer Users. After adding a customer group, you can start to add "customer
users" that belongs to the customer group. The "Anonymous" customer group is a default
system group and can not be removed. It is the default group of anonymous customer
users.
 You can set the "Project Visible" to grant customer group permission on projects that they
can access. In the "add/edit" customer user page, you can edit the attributes of customer
users. Just like a system user, removing a customer group or a customer user is not
recommended. Set the "Account Status" to "Disabled" if you would like to disable an
account.
 If a customer user's "Receive notification when associate reports" is set to "YES", the
user will receive a notification when users of the same customer report/update feedback.

Status Management:

 I don't recommend you to change a status name after using Issue Tracker for a while.
However, if you would like to change status name or add more statuses, you can use
"status management" to edit a status.
 We save the status id in report items. If you edit a status name, the reports that have the
same status id will be changed, too. So if you would like to change the status
"Duplicated" into "Repeated". That's fine. You can just edit it since they have the same
meaning. However, if you want to delete "Duplicated" and add a new status "Pending for
decision", DO NOT use edit. Please delete the "Duplicated" and add a new status
"Pending for decision".

Project Management:

Once you have done the system configuration and added uses and groups, you can start to add
projects. Only the admin or groups that have the permission to add/edit project can do the project
management.

Here are the instructions for each field on adding/editing project:

 Project Name: As implied by the name, it's the name of the project.
 Area/Minor Area: You can assign area and area owner here. When a user reports a bug,
they could select area and minor area. The system will automatically change the "assign
to" to the area owner. For example, if the project is a mail server product, you might have
the areas: Kernel, Web mail, Management UI, Network protocol. Under the "Network
protocol", you could specify minor area. Such as: SMTP, POP3, IMAP, etc.
 Auto Mailto: When users report bugs, the system will send notification email to the users
listed in "Auto Mailto". Normally, we will add the project manager to the list. So they
will be well aware of the status of every report.
 Feedback Receiver: When customers report bugs on the feedback system, the system will
send email to users listed in the "Feedback Receiver" and send a blind carbon copy to
"Auto Mailto". So the "Feedback Receiver" should be the customer support staffs.
 Pattern of Version: This is the pattern of your software version. The system will generate
combo boxes according to the pattern. If you would like to use a numeric in combo box,
please use % to represent the numeral. If you would like to use a alphabet character in
combo box, please use "@" to represent the character. For example, if the version is SDS-
1-1.12 and you would like 1.12 to be combo box, the pattern should be SDS-1-%.%%. If
the "Pattern of Version" is empty, the system will just show an input box.
 Accessible By: Configure users that are allowed to access the project. Please select user
and click "Add >>" to add user and "<< Remove" to remove user from the list. You can
press [Ctrl] or [Shift] on the keyboard to select multiple users.

Report Management:

After entering the project list and selecting a project, you can start to add/edit/delete reports. In
the project list page, you will see all reports in the project. Users can customize columns to
display on their "preference" setting page.

A normal report life cycle will be:

 QC/user reports a bug. The status of the report is "New".


 R&D manager assigns the bug to R&D staff.
 R&D staff fixes the bug, changes the status to "Fixed - need to verify" and assigns it to
QC.
 QC verifies the bug and changes the status to "Fixed and verified".

The system will send an email notification to "Assign To", Area/Minor Area owners, and CC to
"Auto Mailto" that is set in project management.

In the project report list, you can search, filter, and sort reports. You may also change the
columns to display in the list by setting your preference in the [System] -> [Preference]. Clicking
on the title bar of the list table allows you to sort reports by each column. You may switch the
sort order by clicking on the title.

To search, just input the key word into the search input box. You may use "and", "or", "not" to
perform advanced search. For example, if you would like to search report that contains "FTP"
and "HTTP" but not including "HTTPS", you can input "FTP and HTTP not HTTPS". The key
word search is case-insensitive. It will look into summary and report logs.

To use a filter, you have to add a new filter. The filter configuration is in [System] -> [Set Filter].
You can use filter, sort, and search at the same time.

When reporting bugs, users can attach files (screen shots, system logs, and so on). The maximum
file size depends on your configuration of php.ini.

Feedback System:

You can enable/disable the feedback system in [System] -> [Feedback System]. Please see
chapter 3.4 for more information.

The customer feedback system can be completely separated from Issue Tracker. All you need to
do is just move the "feedback site" directory to anywhere you want. For example, if you are
accessing the Issue Tracker by http://your.domain.com/bug, the feedback system is now in
http://your.domain.com/bug/feedback_site. You can move the "feedback_site" directory to the
same directory level like Issue Tracker and change the name to "feedback". Then you can access
the feedback system by http://your.domain.com/feedback.

Further more, you can also move the directory to another server. For example, you can put the
Issue Tracker into an internal network and put the feedback system onto an external web server.
Make sure you have edited the feedback_site/include/config.php and set the proper database
information.

The feedback system interface is pretty much like Issue Tracker, only we try to make it even
simpler to use. Customers can create new, update, and search reports. After created a new report,
you can see the report in Issue Tracker [Project List] -> [Project Name] -> [Customer Feedback].
You can update the feedback in Issue Tracker customer feedback management interface.

A classical feedback life cycle will be:

 Customer reports a feedback


 Internal customer service staff updates the feedback and/or requires more information
 Customer updates the feedback again.
 Customer service staff decides whether it should be imported into internal database. If
not, just close it. Otherwise,
 Import into internal database.
 Internal users update the report.
 After the internal report is closed, the system will automatically update the feedback
system and close the feedback.

When a customer reports feedback, the system will send an email to the "Feedback Receiver"
that you set for the project and a blind carbon copy to the "Auto Mailto" and a CC to the other
users of the same company if the "Receive notification when associate reports" are turned on for
the customer users.

After you update a customer's feedback, the system will send an email to the reporter and BCC,
CC to the users described above. If you choose to import the feedback into the internal database,
it will show an internal report form for you to input. After the feedback is imported, the system
will create a link between them. When the internal report is closed, the system will close the
external feedback, too.

There are two user management modes, anonymous and customer mode. You can disable or
enable all of them. Under anonymous mode, users can register their account on the feedback
system login page. Under customer mode, you would have to add customer user before they can
use the Feedback System.

When a customer forgets his/her password, the system will send a new password to him/her. The
new password will not be saved into real customer user database until login. If someone forges to
request a password, the genuine user can still use old password to login and the new password
will be dropped.
We will keep a system log of feedback system. You can check it at [Information] -> [Feedback
System Log].

FAQ Management:

Every project has its own FAQ system. You can categorize FAQ. A FAQ can belong to many
categories. A normal FAQ life cycle will be:

 Technical writer adds new FAQ categories.


 Add new FAQ and assign to the R&D staff to verify the content.
 R&D staff verifies the FAQ and changes the "Is Verified" to "YES".
 Customers can see the verified FAQ on feedback system.

In order to perform the operation above, all related people should have the permission to manage
FAQ. Un-verified FAQ will not be showed on feedback system.

Document:

The document system is designed to store internal documents, specifications, announcement, etc.
You can categorize document by groups. You can deny users to access documents that do not
belong to their group.

To see, create, update, or delete documents, users need have proper permissions. You can
configure the document management permission on group management page.

Schedule:

You can use this function to manage your project schedule. Project team members can use the
schedule to make plans, too. You can set the privilege on groups to allow users to see or edit
schedule.

Only the system administrator or the schedule creator can modify or delete a schedule.

Advanced Configuration:

Send reminder email periodically:

When there are more and more bugs in the project, project developers might forget their
assignment or bugs. If they don't visit Bug Tracker frequently and check for the bugs, they might
miss bugs assigned to them and delay the project schedule.

You can configure Bug Tracker to send out reminders periodically to avoid this situation. By
default, we will pick up all active bugs that have "very high" priority and send a reminder to the
"assigned to"
If you are running Bug Tracker on UNIX platform, you can edit the /etc/crontab and add the
following line to send reminder everyday:

5 4 * * * root /home/www/bug/crontab/mail_high_priority.php

The command above will execute /home/www/bug/crontab/mail_high_priority.php ervery night.


You will have to change the path according to the directory of Bug Tracker. This command
requires PHP CLI command (So we can run PHP on command line rather than from website). If
PHP CLI is not available on your system, you can change this command to "lynx -dump
http://127.0.0.1/bug/crontab/mail_high_priority.php", which means using lynx to connect to the
page mail_high_priority.php.

Please note that your should use PHP CLI or local browser to access the mail_high_priority.php.
Remote access is not allowed.

Localization:

Currently, the Bug Tracker only supports English, German, Italian, Chinese Traditional, Chinese
Simplified, and Polish. However, you may add your own language, too. To localize your
language, please copy the English string file and edit it. Notice that the string file is in UTF-8
format. You would have to open it with an editor that supports UTF-8. Such as EmEditor,
Microsoft Word, UltraEdit 10. Please remember to save it as UTF-8, too.

We predefine the following languages in the Bug Tracker:

Language Abbreviation String file


Arabic ar setup/strings/string.ar
Chinese
cht setup/strings/string.cht
Traditional
Chinese
chs setup/strings/string.chs
Simplified
Czech cs setup/strings/string.cs
Danish da setup/strings/string.da
German de setup/strings/string.de
English en setup/strings/string.en
Spanish es setup/strings/string.es
Finnish fi setup/strings/string.fi
French fr setup/strings/string.fr
Hebrew he setup/strings/string.he
Icelandic is setup/strings/string.is
Italian it setup/strings/string.it
Japanese ja setup/strings/string.ja
Korean ko setup/strings/string.ko
Dutch nl setup/strings/string.nl
Norwegian no setup/strings/string.no
Polish pl setup/strings/string.pl
Portuguese pt setup/strings/string.pt
Russian ru setup/strings/string.ru
Swedish sv setup/strings/string.sv
Slovak sk setup/strings/string.sk
Thai th setup/strings/string.th
Ukrainian uk setup/strings/string.uk

If your language is in the table above, you just have to copy English string to your language
string file and translate into your language.

If your language is not in the table, you would have to edit setup/string.php. Just look for the
$lang_ array and add your language:

You might also like