SECURE BUG TRACKING SYSTEM

A Project

Presented to the faculty of the Department of Computer Science

California State University, Sacramento

Submitted in partial satisfaction of the requirements for the degree of

MASTER OF SCIENCE

in

Computer Science

by

Nikhita Kamble

SPRING 2018

© 2018

Nikhita Kamble

ALL RIGHTS RESERVED

ii

SECURE BUG TRACKING SYSTEM

A Project

by

Nikhita Kamble

Approved by:

______, Committee Chair Dr. Xiaoyan Sun

______, Second Reader Dr. Ahmed Salem

______Date

iii

Student: Nikhita Kamble

I certify that this student has met the requirements for format contained in the University format manual, and that this project is suitable for shelving in the Library and credit is to be awarded for the project.

______, Graduate Coordinator ______Dr. Jinsong Ouyang Date

Department of Computer Science

iv

Abstract

of

SECURE BUG TRACKING SYSTEM

by

Nikhita Kamble

Bug tracking is defined as a procedure of tracking reported software bugs of any product of an organization. While developing any product or software, there are chances of bug occurrences. Keeping track of these bugs/issues manually is not feasible. At the same time, it is also important to keep a detailed record of the bug fixing information, such as the person who fixed the bug, the time of bug fixing, etc. Such information will help developers to resolve similar issues if they occur in future. Therefore, developing a tool for bug tracking is essential.

Using a web based bug tracking system would not only satisfy the company needs of bug tracking, but would also facilitate the discussion and problem solving among teams at different locations. Tools such as , , and so on are used by many organizations for bug tracking. However, issues such as high cost, unrequired features, non-user friendly interface might create hassle for small start-up companies. The free tools available usually contain advertisements and require installation of unnecessary software.

v

This results in waste of memory space and creates potential security problems. Attackers could possibly leverage such free tools to conduct attacks towards the host machine.

The purpose of this project is to develop a tool which is user-friendly, inexpensive, advertisement free, and secure for start-up organizations. The proposed bug tracking system is user friendly, easy to install, and light-weight. It has low system requirement.

Cryptography technique has been used for encrypting some fields of issues to protect the information credentiality. In addition, customized version can be developed given specific features required by organizations.

______, Committee Chair Dr. Xiaoyan Sun

______Date

vi

ACKNOWLEDGEMENTS

I thank my guide, Dr. Xiaoyan Sun, for all the guidance and support that she provided me throughout the project. I thank her for having confidence in me and keeping me inspired throughout the duration of my project.

I thank my second reader, Dr. Ahmed Salem for reviewing my report and giving valuable feedback for improvising it.

I would also like to express gratitude to my graduate coordinator, Dr. Jinsong Ouyang for providing his valuable feedback. Moreover, I thank Computer Science Department at

California State University, Sacramento for giving me an opportunity to implement this concept of bug tracking system.

Lastly, I would like to thank my parents and siblings for having faith in me and urging me to seek a graduate degree in the U.S.

vii

TABLE OF CONTENTS Page

Acknowledgements ...... vii

List of Figures ...... ix

Chapter

1. INTRODUCTION ...... 1

1.1 Problem Statement and Proposed Solution...... 1

1.2 Related Work ...... 2

2. SYSTEM DESIGN ...... 5

2.1 Three-Tier Architecture ...... 5

2.2 Advantages of Three-Tier Architecture...... 8

3. IMPLEMENTATION...... 10

3.1 Technologies, Tools and IDEs ...... 10

3.2 Methodology...... 13

4. RESULTS AND TESTING ...... 19

4.1 Results...... 19

4.2 Testing...... 38

5. CONCLUSION AND FUTURE WORK...... 42

5.1 Conclusion ...... 42

5.2 Future Enhancements...... 43

Bibliography ...... 44

viii

LIST OF FIGURES

Figures Page

1. Related work...... 3

2. Three-tier architecture ...... 5

3. Admin creates user ...... 14

4. Activity diagram of super admin approving admin’s request...... 16

5. Activity diagram of admin creating project ...... 17

6. Activity diagram of user creating issue ...... 18

7. Super admin registration form ...... 19

8. Super admin login form ...... 20

9. Super admin types of issue form ...... 21

10. Number of active admins form ...... 22

11. Number of non-active admins form...... 23

12. Admin registration form ...... 23

13. Admin registration confirmation message ...... 24

14. Super admin gets admins request ...... 24

15. Super admin approves admins request ...... 25

16. Admin login page ...... 26

17. Admin profile setup ...... 26

18. Information about projects ...... 27

19. Information about issue ...... 27

ix

20. Explanation of an issue ...... 28

21. Explanation about keys of a project ...... 28

22. Explanation of an assignee ...... 29

23. Explanation of status in project ...... 29

24. Explanation of issue workflow ...... 30

25. Tour completion page ...... 30

26. Project name and key creation ...... 31

27. Creating a project ...... 31

28. Inactive users in project ...... 32

29. Active users in project ...... 33

30. User login page ...... 33

31. User profile page ...... 34

32. Create issue page ...... 35

33. User becomes active, seen by admin ...... 35

34. Filtering an issue ...... 36

35. Welcome page ...... 37

36. Contact us page ...... 37

37. About us page ...... 38

38. Before a user is created in DB ...... 39

39. After a user is created in DB ...... 40

40. Validation checks on fields of a form ...... 40

x

1

1.INTRODUCTION

1.1 Problem Statement and Proposed Solution

The occurrence of a bug or defect is inevitable while developing any software. Majority of bugs arise from some errors or mistakes made while designing a program or while writing its source code. It is important to keep a track of these bugs so that they can be quickly resolved if they reoccur in future. Maintaining or tracking these bugs manually using word or text documents is almost impossible. Hence, a bug tracking system was introduced which could track all reported bugs in a system. A bug tracking system presented in this project is a web-based application which keeps a track of bugs found while developing a system and the changes made to resolve them [1]. Once an issue is created, this bug tracking system helps to track its progress until it has been resolved. It is possible for multiple users to manage and track multiple projects simultaneously with the help of this project.

When developers have completed their task, they can start working on the next assigned tasks or bugs. At the same time, the testing team can get started with their testing.

Depending on the status and priority of the issue, developers can manage their time. For instance, if the issue is of high priority, it needs to be fixed immediately. Hence, its not just about tracking the issues or bugs but also how effectively developers interact with QA team and work in coordination. This is the beauty of using a bug tracking system. This bug tracking system allows to insert images or files, suggestion and several other fields when an issue is created. This helps the developers to resolve the issue faster and take appropriate 2 action. Apart from this, this system allows other developers to give suggestion or ideas regarding a particular issue which increases the scope of the project. These issues have been described in further detail in Chapter 3 of the report.

Thus, bug tracking facilitates software developers to understand the identified issues in a product, resolve them and maintain its copy for future reference. The objective of this project is to develop a tool which is user-friendly, inexpensive, advertisement free and secure for start-up organizations [2].

The proposed solution consists of three modules: the super admin module, the admin module and the user module. A super admin will have complete access to the system and can create multiple types of issues such as Bug, Task, Error etc. as per organization needs.

He/she will approve the admin’s request for updating any details that makes it more secure.

An admin will have the access to create a project, its issues, and the users associated with it. A user is basically an employee of an organization. All the employees will have access for creating an issue, updating it, and resolving it.

1.2 Related Work

There are several paid and free tools available in market such as JIRA, Redmine, , and so on. Although they have good features such as scrum support and product backlog, they have some shortcomings too. These tools come with lot of unrequired features and are often not affordable due to their high cost. They are also not user friendly and thus create 3 hassle for small start-up companies. Moreover, the free tools available in market usually contain advertisements and require installation of unnecessary software [5]. This results in waste of memory space and creates potential security problems.

The bug tracking system presented in this project allows users to get a customized version by selecting only the required features they need. The cost of the system basically is decided based on the number of features used to develop it this making it flexible.

Additionally, this system is easy to setup, is user-friendly, and cost-effective. It has a unique ability to create multiple types of issues. Figure 1 shows a brief comparison and description of this related work.

Tools available in Market This project

Lot of features which are not required Allows users to select required features

E.g. JIRA which makes it flexible

Difficult to set up E.g. Bugzilla Easy to set up

Not user-friendly E.g. Redmine User-friendly

Expensive Cost-effective

Predefined and cannot be modified Ability to create/update multiple types of

Issue. E.g. Super Admin

Figure 1. Related work

4

The report is organized as follows: chapter 2 focuses on the system design used for this project. The tools and technologies used along with implementation details are discussed in chapter 3 of this project report. Chapter 4 discusses about results and testing of the project. Conclusion and future work has been described in chapter 5 of this report.

5

2. SYSTEM DESIGN

In this project, the system has been designed using three-tier architecture which has been described as below.

2.1 Three-Tier Architecture

Three-tier architecture [7] is a type of client-server architecture in software engineering in which presentation, data, and logic layers are developed and maintained as independent and separate modules. This serves as an advantage to developers by giving them the flexibility to modify a particular layer rather than reworking on the entire application. This architecture is usually composed of a presentation tier, a data storage tier, and a domain logic tier [6]. The three-tier architecture for this project is shown in figure 2. The three layers are explained as below.

Figure 2. Three-tier architecture

6

2.1.1 Presentation Tier

This layer inhabits the top most level and helps in exhibiting the information associated to the available services on a particular website. The presentation layer is responsible for communicating with logic tier with the help of a business object which further communicates with the data tier. The result obtained from the data tier is taken to the presentation tier by the logic tier. In this project, this layer constitutes of webpages designed using HTML, C#, and CSS.

2.1.2 Logic Tier

This layer is often named as business access layer, application tier or the middle tier. The application layer is responsible for controlling the application functionality by performing detailed processing. It also maintains coordination between the other two layers. In this project, this layer constitutes the cryptography technique used for storing bugs in database.

2.1.3 Data Tier

The data tier or data access layer is accountable for executing CRUD (Create, Read,

Update, Delete) operations on database and checking the connection of database servers.

The actual data is stored in this layer and is always kept independent of business logic layers or application servers. In this project, the data tier consists of the stored procedures 7 and tables used for storing the details of bugs. Stored procedures have been explained in detail in the section 2.1.4 below.

2.1.4 Stored Procedures

A subroutine which is available to applications that access a relational database system is known as a stored procedure [8]. It is stored in data dictionary of the database which is MS

SQL Server for this project. Stored procedures are typically used when a particular application is required to execute complicated tasks with the help of information available in its relational database. If a complex action is required to be executed repeatedly using

SQL commands, then stored procedures are preferred.

Stored procedures offer performance benefits over developed application code, for two reasons: Initially, they do not experience additional inter-program communication amid the external application and database. Moreover, as they are compiled only once, they need not be compiled and executed for every instance. Stored procedures are stored as part of the database’s data dictionary. When a stored procedure calls other stored procedure, they are called as nested stored procedures [7].

8

2.2. Advantages of Three-Tier Architecture

Some of the advantages of three tier architecture include scalability, improved security, reusability, improved availability and data integrity. They have been explained below [7].

2.2.1 Scalability

Usually, each client is expected to establish a database connection as per their system architecture. However, by using three-tier architecture, the database no longer requires a connection from every user.

2.2.2 Improved security

Logic layer of this architecture is quite secure as it is placed on a secure server. In addition, as the clients do not have direct access to the database, this architecture is more secure.

2.2.3 Reduced Distribution

If business layer is updated, just the application servers need to be updated. They are not required to be distributed to clients.

9

2.2.4 Data Integrity

The middle tier guarantees the entry of valid data in database which indicates data integrity.

It also ensures data consistency and alerts the user in case of invalid data.

10

3. IMPLEMENTATION

The system design stated in the previous chapter are interpreted below along with the implementation details.

3.1 Technologies, Tools and IDEs

A brief introduction of all the technologies used to develop this project are explained in this section.

3.1.1 Microsoft .NET Framework 4.0

Microsoft .NET Framework 4.0 [10] is a technology which primarily runs on Microsoft

Windows by providing infrastructure for building, managing, and running next generation applications. If we consider a layered representation, this framework is positioned between the windows operating system and the applications. .NET being a platform is also a technology as it contains several parts such as executable tools, libraries, and some files which integrate with the operating system [10]. 2017, which is used for this project also relies on this framework. C# is a type of .NET language which also relies on this framework and can build applications for the same. This framework is largely used for application development. It offers services for constructing, executing and deploying web, phone and desktop applications.

11

3.1.2 ASP.NET

ASP.NET, a part of Microsoft .NET [7] platform is one kind of web development platform, that offers a wide-ranging of software infrastructure. It also provides various services which are required to develop strong web applications for cell phones and PC. ASP.NET makes use of HTTP rules in order to set bilateral communication between a server and a browser. ASP.NET applications consists of compiled codes developed using reusable and extensible objects available in .NET framework. Such applications produce data driven and collaborative web applications across the internet.

3.1.3 Microsoft SQL Server 2014

Microsoft SQL Server [13] is a type of relational database management system used in this project. It serves the purpose of a database server whose primary function is to store data and retrieve it as per the client’s software application requirements. SQL Server is based on two primary languages namely T-SQL and ANSI. This server helps in self-organizing and self-maintenance of data. In addition, it also includes support for semi-structured and structured data that embraces audio, video, multimedia, and so on. Over the time, with each edition of SQL Server, there have been are several enhancements which led to its widespread use. SQL Server comprises of better compression features, that help to improve scalability. In 2014 edition of SQL Server, there are features such memory optimized tables and some backup and restore enhancements. 12

3.1.4 HTML5

HTML5 is a kind of markup language which is used for organizing and offering some content for the World Wide Web (WWW) [11]. It can be written using HTML or XHTML.

HTML5 is considered to be a potential for cross-platform mobile applications as it supports application programming interfaces (APIs) for complicated web applications.

3.1.5 CSS3

Cascading Style Sheets (CSS) [12], a kind of style sheet language is used for describing the document format which is developed in any markup language. While frequently used to change the style of user interfaces and web pages developed in HTML or XHTML, this language can be applied to any kind of XML document [12]. At present, CSS is used in many websites for designing their user interface and mobile applications. Essentially, CSS was designed to allow document content separation from document presentation which comprises elements like fonts, layouts and colors.

13

3.1.6 C#

The syntax of C# (C sharp) is quite expressive and simple. The coding format of this language is quite similar to C, C++ or Java. Developers who are fluent with these three languages are considered to be comfortable with C#. Its syntax simplifies many of the complexities of C++ language and offers prevailing features not found in Java such as enumerations, delegates, nullable value types, direct memory access, and lambda expressions [9]. This language supports types and methods that offer increased performance and type safety that help in enabling implementers of collection classes to define simple custom iteration behaviors.

3.2 Methodology

In this project, there are three main modules namely: super admin, admin, and user module.

A super admin is a person who has complete access to the system. He can create multiple types of issues such as Bug, Task, Error etc. as per organization needs. He will approve an admin and his request for updating any details. A super admin is responsible for maintaining security in an organization by providing restricted access. An admin in an organization is a person which has been approved by the super admin and would have access to create a project, its issues and the users associated with it. User module is the one which is used by employees. All the employees will have access for creating an issue, updating it and resolving it. Each of these modules are explained along with their desired results in chapter 4. 14

Figure 3. Admin creates user

The source code for this project has been written in the logic tier of the three-tier architecture. For each of the above described modules, separate functions as per their working have been written in their respective aspx.cs webpages in MS Visual Studio. For instance, for creating a user, there is “CreateUser.aspx.cs” webpage which has the source code. As per three-tier architecture, the web pages are a part of presentation tier. Within the create user class, a business object has been defined which sends a response to the business access layer or logic tier. This business object contains a get and set function along with all the attribute declarations required to create a user such as name, username, password, email address, and so on. This business object accepts input from the user through the presentation tier and passes it to the logic tier. As soon as “Create User” button is clicked as shown in figure 3, stored procedures for it are called from the logic tier which help in creating an entry inside the data tier or the database which is MS SQL Server. After the entry has been created in database, a message “User Created Successfully” is shown on 15 the webpage. This is sent out through a function from data tier to the logic tier and from there to the presentation tier after which the user views it. If the user hits “Cancel” button, all the fields are cleared. There is a separate function which is written to handle this as well.

Similarly, all the other forms have also been designed in this way as per three-tier architecture.

Given below are activity diagrams for super admin approving admin’s request, admin creating a project and a user creating an issue. Each of these diagrams have been explained below.

Figure 4 shows the activity diagram of a super admin approving an admins request. The super admin checks his account for a request from the admin after which he decides whether to approve it or not. If the admin is valid as per the organization, he approves the request else it is ignored. On approval, background code gets executed which creates an entry in the database. Once this is done, success message gets displayed on the webpage of super admin and the admin is informed about it. The working of this section along with the results has been discussed in section 3.3 of this chapter.

16

Figure 4. Activity diagram of super admin approving admins request

Figure 5 shows the activity diagram of an admin creating a project. When the admin logs in to his account for the first time, he is guided through a series of steps regarding the outline of the system. These steps discuss information such as definition of a project, display flowchart how it can be created, explains an issue, and so on. Once all the steps are completed, the admin is asked to enter a project name and key associated with it. He is then directed to fill up a form for creating the project. Later, the background code is executed in the system which creates the project entry in the database and displays success message.

However, if the admin is not logging in for the first time, he can directly start creating project by entering project name and key and filling up the form. The system then checks if any such project name exists and if it doesn’t, a new entry is created in the database. This 17 is how a project gets created in the system. In chapter 4, results of this module have been discussed in detail.

Figure 5. Activity diagram of admin creating project

Figure 6 shows the activity diagram of how a user creates an issue. If the user logs in for the first time, he needs to set up his profile and fill up “create issue” form. If not, he can directly start creating the issue by filling “create issue” form. Once this is done, the source code is checked by the system and data is inserted if all the conditions are met. Once data is inserted in the database and issue is created, the user is informed with the help of a 18 success message on the webpage. Special care is taken by admin to ensure that the user has access only to the projects to which he/she has been assigned. This is done when the user is created by the admin. The results of this execution have been discussed in chapter 4.

Figure 6. Activity diagram of user creating issue

19

4. RESULTS AND TESTING

The results of the implemented project have been presented in this chapter with the help of some screenshots. The later part of this chapter discusses testing done for this project.

4.1 Results

The super admin, admin and user modules that were defined in chapter 3, are explained with their results in this section.

4.1.1 Super admin module

As shown in figure 7, the super admin registration form has all the basic fields such as name, email address, contact details, username, password, and address.

Figure 7: Super admin registration form 20

Once a person registers himself, an entry is created in the backend in SQL Server which is the database for the project. The “Reset” option clears out all the fields in the form. Once a super admin registers himself, he is redirected to the login page which is shown in figure

8 below.

Figure 8. Super admin login form

After logging in with the registered credentials, the super admin can log in to his account.

For instance, in figure 8, the super admin named “nk” logs in to her account by clicking on

“Log In” option.

21

Figure 9. Super admin types of issue form

After a super admin logs in, he can see the options as seen in figure 9. He/she can make changes for setting the issue type, updating or deleting it as required. For instance, there are three issue types mentioned in the above figure such as bug, task, and error. If required, the names of these can be updated or a new issue type can be formed. This feature of adding or deleting an issue type makes the project flexible and unique as most of the tools available in the market lack this feature.

22

Figure 10. Number of active admins

A super admin can also keep a track of number of active admins for a particular project.

An active admin is the one who has logged in and set up his profile after he has been registered. We will talk about this in more detail in admin section. Figure 10 shows the number of active admins present for a project. Figure 11 shows all non-active admins of a project. A non-active admin is the one whose project validity has been completed.

23

Figure 11. Number of non-active admins

4.1.2 Admin module

The admin module is explained below with the help of following screenshots.

Figure 12. Admin registration form

24

Figure 12 shows how an admin can be registered. While registering, the admin needs to fill up several fields such as site address, email address, company name, address etc. Once the admin fills up the registration form he is redirected to a page as shown in figure 13 below.

Figure 13. Admin registration confirmation message

Figure 14. Super admin gets the admins request

25

After admin registers himself, super admin gets his approval request as shown in figure 14.

He needs to select the required admin and click on “approve” option after which the approval status is changed from “false” (default) to “true”. The approved request is shown in figure 15.

Figure 15. Super admin approves admins request

Once, super admin approves request, he manually provides the admin with the username and password for login. The admin can now login to his account with the credentials provided as shown in figure 16.

26

Figure 16. Admin login page

After an admin logs in, he is directed through a sequence of information guide as shown from figure 17 to 26 to understand the flow of project. In figure 17, there is an option to select picture for the admin’s profile after which the sequence of guided instruction start.

Figure 17. Admin profile setup

27

Figure 18. Information about projects

Figure 19. Information about issue

28

Figure 20. Explanation of an issue

Figure 21. Explanation about keys of a project

29

Figure 22. Explanation of an assignee

Figure 23. Explanation of status in project

30

Figure 24. Explanation of issue workflow

Figure 25. Tour completion page

31

Figure 26. Project name and key creation

Once the information tour is completed, the system asks admin to enter project name and project key (for identifying purpose) as shown in figure 26. In figure 27, the admin is asked to create a project by providing some information. After filling out the information, if the admin selects “create project” button, a project is created. The start and end date mentioned during this help to determine the validity of the project.

Figure 27. Creating a project 32

The admin also has the right to create a user which is explained in section 3.2 in figure 3.

As soon as the user is created by an admin, the user needs to log in to his profile for becoming “active” else he is “inactive” shown in figure 28. Once, he logs in to his account and sets up his profile, he becomes active as shown in figure 29. This can be tracked by the admin to know which users have setup their profile and which have not which again adds an extra layer of security.

Figure 28. Inactive users in project

33

Figure 29. Active users in project

4.1.3 User module

The user module of this project has been discussed in detail below.

Figure 30. User login page

34

After a user is created by admin, admin gives the user his credentials after which he can log in as shown in figure 30. After he logs in, the user needs to fill up his profile which is shown in figure 31. The user profile can be changed if required later from the settings option.

Figure 31. User profile page

Once the user profile is ready, the user can start creating an issue which is shown in figure

32. An issue which is the most crucial and important of the project can be created using several fields. Fields such as version, upload screenshot, issue suggestion help in better understanding of the problem and hence promises to accomplish soon making it different as compared to other tools in market.

35

Figure 32. Create issue page

Figure 33. User becomes active, seen by admin

After the user logs in and creates his profile, it becomes active. This can be verified by logging into admin account as shown in figure 33.

36

Figure 34. Filtering an issue

After a couple of issues are created for a project, it is possible to filter out the issues based on status, type, priority or project. Figure 34 shows the filtering done based on status. It should be noted that the default status type for any issue which has been created is

“pending” and it can be modified later.

4.1.4. Other screenshots:

Figure 35 shows the welcome page of this project. This is the first page of the project once it gets executed from MS Visual Studio.

37

Figure 35. Welcome page

Figure 36 shows the contact us page of the project. It contains address, email address and contact details for the clients to reach out to the organization.

Figure 36. Contact us page

Figure 37 shows the about us page of this project. This webpage briefly explains what this project does with the help of some features.

38

Figure 37. About us page

4.2 Testing

Testing is a significant phase in the development of any project. It includes integrating system design, developing test cases and their manual/automated execution [3].

Test activities for this web-based application include:

• While developing this project, system level testing was performed in stages:

• Unit/Component level testing was done while developing each module

• Each field in every module were given a set of inputs and checked if they respond

back by giving desired output E.g. validation checks by making some fields

mandatory

• Database stability was checked by giving different set of values

• Web pages were checked on different platforms to ensure their functionality 39

The system evaluation of this project has been explained below with the help of few examples.

Figure 38. Before a user is created in DB

Figure 38 shows the screenshot of the database before user “dan” is added to it. Once he is added, it is reflected in the same database as shown in figure 39. In addition, fields such as summary and description have been stored in an encrypted format which provides security to the database.

40

Figure 39. After a user is created in DB

Figure 40. Validation checks on fields of a form

41

Figure 40 shows validation for some of the fields in “create your project” form. For instance, if we just mention text in the “Project URL” text box, it gives “Invalid URL” error. Also, the date format should match with the ‘YYYY-MM-DD’ format which is mentioned while designing the project.

Such validation checks help in evaluating the system better and hence proves that testing is an essential thing for every successful project [4].

42

5. CONCLUSION AND FUTURE WORK

This chapter discusses about the conclusion and future work of this project.

5.1 Conclusion

This web-based bug tracking system helps in detecting and managing bugs in the products efficiently and effectively. This bug tracking system can help in assisting and troubleshooting errors in development and testing process. Depending on one’s development needs, this bug tracking system can be modified by including required features which makes more flexible. The issues faced by small start-up companies in using other tools in market such as high cost and lack of security have been handled successfully by this project. Thus, the implemented proposed solution is an efficient, simple, stable, user-friendly bug tracking system.

One of the drawbacks with the implemented solution is that the super admin manually needs to inform admin and admin manually informs the user about their credentials once they get approved. This feature can be automated in future by sending an auto generated email once the admin and user have been approved.

43

5.2 Future Enhancements

Currently, this project is a simple prototype, but it can be improvised in future with some enhancements. At present, there is no live chat feature for helping clients which can be added in future [4]. An online help document also can be added on the home page of the website which would give instructions for setup and installation. Currently, this project supports only English language. However, in future, multiple language support can be included. In addition, features such as scrum-ban boards and ability to build reports based on the bug history can be included. This would help software professionals in statistical analysis. Lastly, user interface can be enhanced by including the ability to configure Agile boards based on sprint cycle. As most of the software industry is adapting Agile methodology, this feature would benefit all organizations.

44

Bibliography

[1] A.S.Syed Fiaz, N.Devi and S.Aarthi, "Bug Tracking and Reporting System" in

International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-2307,

Volume-3, Issue-1, March 2013

[2] Laud Charles Ochei, Andrei Petrovski and Julian M. Bass, "Implementing the Required

Degree of Multitenancy Isolation: A Case Study of Cloud-Hosted Bug Tracking

System" in Information Society (i-Society) 2016 International Conference on, pp. 77-

83, 2016

[3] Rahul Premraj, Jonathan Sillito, Thomas Zimmermann and Silvia Breu, "Improving

Bug Tracking Systems" [Online]

[4] Zatul Amilah Shaffiei, Mudiana Mokhsin and Saidatul Rahah Hamidi, "Change and

Bug Tracking System: Anjung Penchala Sdn. Bhd." in International Journal of

Computer Applications (0975 – 8887) Volume 10– No.3, November 2010

[5] Related work comparison [Online] Available: https://www.quora.com/How-does-

Redmine-compare-to-JIRA-and-what-are-the-pros-and-cons-for-and-against-each

[6] Three-tier architecture [Online] Available: https://www.izenda.com/blog/5-benefits-3-

tier-architecture/

[7] Three-tier architecture [Online] Available: https://www.slideshare.net/sanjeevwebx/3-

tier-architecture-2410697

[8] Stored procedure [Online] Available: https://www.seguetech.com/advantages-and-

drawbacks-of-using-stored-procedures-for-processing-data/

45

[9] C# [Online] Available:

https://docs.microsoft.com/en-us/dotnet/csharp/getting-started/introduction-to-the-

csharp-language-and-the-net-framework

[10] .Net Framework [Online] Available:

https://en.wikipedia.org/wiki/.NET_Framework

[11] HTML5 [Online] Available: https://en.wikipedia.org/wiki/HTML5

[12] CSS [Online] Available:

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3

[13] MS SQL Server [Online] Available:

https://www.microsoft.com/en-us/sql-server/default.aspx