Professional Documents
Culture Documents
Report
Report
Report
PROJECT
ON
By:
JASPREET SINGH
Computer Science & Engineering
02576802715
The successful completion of this project makes the beginning of an ever going learning
experience of converting ideas & concepts into real life, practical system. This project was
quite a learning experience for me & at each & every step. At the same time it has given me
the confidence to work in a professional setup. I feel the experience I gained during this
project would lead me to a bright prospect in future from this prestigious organization under
the guidance of such dedicated & knowledgeable people.
I would also thanks to TEAMMEMBERS for excellent coordination, motivation and help
without which this project would not have been a success. I choose this moment to
acknowledge his contribution gratefully.
02576802715
Jassi80singh80@gmail.com
Abstract
For many years, bug-tracking mechanism is employed only in some of the large
software development houses. Most of the others never bothered with the bug
tracking at all, and instead simply relied on shared lists and email to monitor the
status of the defects. This procedure is error prone and tends to cause those bugs
judged least significant by developers to be dropped or ignored.
Bug Tracking system is an ideal solution to track the bugs of a product, solution
or an application. Bug Tracking system allows individual or groups of
developers to keep track of outstanding bugs in their product effectively. This
can also be called Defect Tracking System.
The Bug Tracking system can dramatically increase the productivity and
accountability of individual employees by providing a documented workflow
and positive feedback for good performance.
As soon as the bugs are identified. They are reported to the project manager and
developer.
To ensure that who needs to know about the bug can learn soon after it is
reported.
Existing System
In the existing system, the project manager assigns the projects to the
developers. The developers develops the projects as per customer requirements.
The project manager itself assign the developed applications to the tester for
testing. In the testing phase, when the tester encounters no. of bugs then he
reports to the project manager and developer about the bug information.
The bug information is not stored in the database for future reference.
Proposed System
The purpose of the Bug Tracking System is to test the application for the bugs
and report it to the project manager and developer. The main intention behind
the Bug Tracking System is that to track bugs and report them. Store the bug
information with a unique id in the database for future reference. So, this makes
the job of handling the bugs easy.The project entitled "Bug tracking system" is
an online bug tracking tool initiated with the objective to setup a user-friendly
Online bug tracking system. It can be used both for bug tracking and for project
management. In this system the project manager can have full details of the
work assigned to each team member. Moreover when a new work comes he can
assign the work to different persons by having a view at the programmer with
minimum work. This software assists to track the work flow of the work given
to each team member by a project leader. This software assists the project
managers , the team members and equally the top officials of a software
company to know how the work is progressing. Project usually comes to the
company in the form of bugs. Usually, when certain enhancements of a product
is being done i.e. when. certain version updates a product is being done, work is
assigned to different programmers in the form of Bugs.
This software is mainly focused on the work coming in the form of Bugs. The
project manager can fully understand what the status of each bug is ;whether it
is fixed, assigned, or won’t fix.
Components
A major component of a bug tracking system is
a database that records facts about known bugs. Facts
may include the time a bug was reported, its severity,
the erroneous program behavior, and details on how to
reproduce the bug; as well as the identity of the person
who reported it and any programmers who may be
working on fixing it.
Typical bug tracking systems support the concept of the
life cycle for a bug which is tracked through the status
assigned to the bug. A bug tracking system should
allow administrators to configure permissions based on
status, move the bug to another status, or delete the bug.
The system should also allow administrators to
configure the bug statuses and to what extent a bug in a
particular status can be moved. Some systems will e-
mail interested parties, such as the submitter and
assigned programmers, when new records are added or
the status changes.
Usage : -
The main benefit of a bug-tracking system is to provide a
clear centralized overview of development requests (including
both bugs and improvements, the boundary is often fuzzy),
and their state. The prioritized list of pending items (often
called backlog) provides valuable input when defining the
product road map, or maybe just "the next release".
In a corporate environment, a bug-tracking system may be
used to generate reports on the productivity of programmers at
fixing bugs. However, this may sometimes yield inaccurate
results because different bugs may have different levels of
severity and complexity. The severity of a bug may not be
directly related to the complexity of fixing the bug. There may
be different opinions among the managers and architects.
A local bug tracker (LBT) is usually a computer program used
by a team of application support professionals (often a help
desk) to keep track of issues communicated to software
developers. Using an LBT allows support professionals to
track bugs in their "own language" and not the "language of
the developers." In addition, an LBT allows a team of support
professionals to track specific information about users who
have called to complain — this information may not always
be needed in the actual development queue. Thus, there are
two tracking systems when an LBT is in place.
1. Java SE
Java Platform, Standard Edition or Java SE is a computing platform for development and
deployment of portable code for desktop and server environments Java SE was formerly
known as Java 2 Platform, Standard Edition or J2SE. The platform uses Java programming
language and is part of the Java software-platform family..
2. Java SE APPLICATIONS
The platform was known as Java 2 Platform, Standard Edition or J2SE from version
1.2, until the name was changed to Java Platform, Standard Edition or Java SE in
version 1.5. The "SE" is used to distinguish the base platform from the Enterprise
Edition (Java EE) and Micro Edition (Java ME) platforms. The "2" was originally
intended to emphasize the major changes introduced in version 1.2, but was removed
in version 1.6. The naming convention has been changed several times over the Java
version history. Starting with J2SE 1.4 (Merlin), Java SE has been developed under
the Java Community Process, which produces descriptions of proposed and final
specifications for the Java platform called Java Specification Requests (JSR).JSR 59
was the umbrella specification for J2SE 1.4 and JSR 176 specified J2SE 5.0 (Tiger).
Java SE 6 (Mustang) was released under JSR 270.
The Java Platform, Enterprise Edition (Java EE) is a related specification that includes
all the classes in Java SE, plus a number that are more useful to programs that run
on servers as opposed to workstations.
Java Platform, Micro Edition (Java ME) is a related specification intended to provide a
certified collection of Java APIs for the development of software for small, resource-
constrained devices such as cell phones, PDAs and set-top boxes.
The Java Runtime Environment (JRE) and Java Development Kit (JDK) are the actual
files downloaded and installed on a computer to run or develop Java programs,
respectively.
3. Java SE Features
The following list contains links to the the enhancements pages in the Java SE 7 guides
documentation.
1) SWING :-
JLayer Class
The JLayer class is a flexible and powerful decorator for Swing
components. It enables you to draw on components and respond to
component events without modifying the underlying component directly.
For more information, read How to Decorate Components with JLayer in
the Java Tutorial.
Nimbus Look & Feel
The Nimbus Look & Feel (L&F) has moved
from com.sun.java.swing to a standard API
namespace, javax.swing; see
the javax.swing.plaf.nimbus package for more information.
Although it is not the default L&F, you can easily use it. Consult
the Nimbus Look and Feel section in the Java Tutorial for more
information and examples of three simple methods for using Nimbus in
your applications.
Heavyweight and Lightweight Components
Historically, mixing heavyweight (AWT) and lightweight (Swing)
components in the same container has been problematic. However,
mixing heavyweight and lightweight components is easy to accomplish in
Java SE 7. The Mixing Heavyweight and Lightweight Component article
shows you how.
Shaped and Translucent Windows
The Java SE 7 release supports windows with transparency and non-
rectangular shapes. See How to Create Translucent and Shaped
Windows, part of the Java Tutorial.
Hue-Saturation-Luminance (HSL) Color Selection in JColorChooser
Class
An HSV tab has been added to the JColorChooser class, which allows
users to select colors using the Hue-Saturation-Luminance (HSL) color
model.
4) JDBC : - The Java Database Connectivity (JDBC) API provides universal data
access from the Java programming language. Using the JDBC API, you can
access virtually any data source, from relational databases to spreadsheets and
flat files. JDBC technology also provides a common base on which tools and
alternate interfaces can be built.
java.sql
javax.sql
You automatically get both packages when you download the Java Platform
Standard Edition (Java SE) 7.
To use the JDBC API with a particular database management system, you need a
JDBC technology-based driver to mediate between JDBC technology and the
database. Depending on various factors, a driver might be written purely in the Java
programming language or in a mixture of the Java programming language and Java
Native Interface (JNI) native methods. To obtain a JDBC driver for a particular
database management system, see JDBC Data Access API.
The Simplest and most standard process for running a java project is to run an executable file
(.exe). To make an executable file first we make a .jar file.
1. Download the latest version of jdk from Oracle website: Java SE Development Kit 7 or
8. Just select your OS from the list and click on the provided link to download.
2. Install the jdk setup (it also contains the jre so you don't need to download it
separately).
a. )in your pc open the directory where jdk(not jre) is installed. Open the folder named
"bin". Copy the whole directory name from the top. It will be like C:\Program Files\
Java\jdk1.8.0_40\bin. Your directory name can vary.
b.) Now open "This pc" and right click to get its properties, open it and and click on
"Advanced system settings".
c.) Under user variables, if there is a variable named path, modify it. Just paste the
copied directory name in the front of the value.
d.) If it doesn't exist, then create a new one and copy the directory name in the value.
Click OK from all the opened windows of settings.
e.) Now open command prompt, go to the directory where java file is located, type the
command "javac FileName.java" to compile and hit enter.
f.) To run the program just write in command prompt "java FileName". Remember the
name should be same as specified in file name.
g.)That's it...
CHAPTER 2 : SOFTWARE REQUIREMENT
SPECIFICATIONS
2.1 Introduction
2.1.1 Purpose
2.1.2 Scope
This desktop application is a great platform for those people who have no idea
about Bug Tracking System Software. The scope of this application is
extensive. This software provides full inventory management. The users can
get updated with the notifications in future stages and along with the web
integration. This desktop application has a scope of running from lower to the
latest JDK version so that it is compatible with almost all computers making it
more users friendly.
2.1.3 Overview
This desktop application gives all the details about Bug management system
from tracking bug to see their solutions. It is a viable option to replace the use
of hand written invoices. The selecting product, bug records and generate and
see their solutions or searching all are features are present.
2.3 Main Features of the Desktop Application
Modern UX
Easy to use UI
Searching product for tracking bug and their details
Adding information about different bugs
Their solutions
Bug records
Login manual for bug tracking detail
Low cost as compared to current competitors
Secure
4.2.3System Requirements
On Developer Side:
Processor: Intel Core™ i3 or above.
RAM : 4GB.
Hard disk: 40GB or above.
Monitor : 15’’ LCD or CRT Monitor or above.
Keyboard: Standard windows keyboard
GPU: NVidia GeForce 500 series and above (or any equivalent GPU)
On Client Side:
RAM : 4GB.
Hard disk: 40GB or above.
Monitor : 15’’ LCD or CRT Monitor or above.
Keyboard: Standard windows keyboard
GPU : NVidia GeForce 500 series and above (or any equivalent GPU)
4. 2.3.2Software Requirements
Build id : M20160212-1500
code up to date
secure system
service working as intended
No internet connections required for this version of desktop application.
Performance Requirements:
Reliability:
Availability:
This proposed system finds extended application to users who have installed
this application as the tracking bug management can be done using this
software. The users can get updated with the notifications in future stages and
along with the web integration.
Maintainability:
E-R DIAGRAM
CHAPTER 4 : CONCLUSION
In review my training was excellent and rewarding experience. I have been able
to meet and network with so many people that I am sure will be able to help me
with opportunities in the future.
One main thing that I have learnt through my training is time management skills
as well as self-motivation.
In startup, you can see every kind of people on various roles and you can
interact most of them. In larger organizations, this is not easy.
Bigger organizations provide your more respect by outsiders.
Training can give you opportunity to write raw code whereas many
mature organizations uses Framework.
In enjoyed this line of work, and will continue to work hard in my position and
hope to continue to learn about the industry and meet new people. This was an
excellent experience and I hope I would make more interesting projects in
future!
REFERENCES
LINKS
1. www.google.com
2. www.jdbcdocs.com
3. www.javadocs.com
4. www.stackoverflow.com
5. www.tutorialpoint.com
6. www.w3school.com
7. www.wikipedia.com
REFERENCE BOOKS
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection
cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bug","root","root");
Statement stmt = cn.createStatement();
String username = jTextField1.getText();
String password = jPasswordField1.getText();
if(jButton1.getText().equals("LOGIN"))
{
String str ="select LOGINID,PASSWORD from login_master where LOGINID='"+username+"'
AND PASSWORD='"+password+"'";
ResultSet rs = stmt.executeQuery(str);
jTextField1.setText("");
jPasswordField1.setText("");
if(rs.next()== true)
{
Administrator d = new Administrator();
d.setVisible(true);
}
else
{
jLabel5.setText("Either username or password is not correct");
}
}
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jTextField2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField2ActionPerformed(evt);
}
});
}
if((jButton1.getText().equals("Update")))
{
String str = "update products set
PRODUCT_NAME='"+PRODUCT_NAME+"',VERSION='"+VERSION+"' where
PRODUCTID='"+PRODUCTID+"'";
int row = stmt.executeUpdate(str);
if(row>0)
{
jLabel5.setText("Record has been Updated!!!");
jButton1.setText("Save");
}
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
}
}
catch(ClassNotFoundException | SQLException ex)
{
jLabel5.setText(ex.getMessage());
}
}
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection
cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bug","root","root");
Statement stmt = cn.createStatement();
String str = "select * from SOLUTIONS where BUGId= "+jTextField1.getText();
ResultSet rs = stmt.executeQuery(str);
jTextArea1.setText(" BUGId\t EXPERTID \t EXPERT \t SOLUTION \t SOLN DATE \n");
if(rs.next())
{
jTextField2.setText(rs.getString(2));
jTextField3.setText(rs.getString(3));
jTextField4.setText(rs.getString(4));
jTextField5.setText(rs.getString(5));
jButton2.setText("Update");
}
cn.close();
}
catch(ClassNotFoundException | SQLException ex)
{
ex.printStackTrace();
}
}
}
if((jButton2.getText().equals("Update")))
{
String str = "update SOLUTIONS set
EXPERTID='"+EXPERTID+"',EXPERT='"+EXPERT+"',SOLUTION='"+SOLUTION+"',SOLN_Date='"+SOLN_D
ate+"' where BUGId='"+BUGId+"'";
int row = stmt.executeUpdate(str);
if(row>0)
{
jLabel7.setText("Record has been Updated!!!");
jButton2.setText("Save");
}
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
}
}
catch(ClassNotFoundException | SQLException ex)
{
ex.printStackTrace();
}
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Solution().setVisible(true);
}
});
}
if(rs.next())
{
jTextField2.setText(rs.getString(2));
jTextField3.setText(rs.getString(3));
jTextField4.setText(rs.getString(4));
jTextField5.setText(rs.getString(5));
jTextField5.setText(rs.getString(6));
jTextField6.setText(rs.getString(7));
jTextField7.setText(rs.getString(8));
jTextField8.setText(rs.getString(9));
jTextField9.setText(rs.getString(10));
// jTextField10.setText(rs.getString(10));
jButton2.setText("Update");
}
cn.close();
}
catch(ClassNotFoundException | SQLException ex)
{
ex.printStackTrace();
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection
cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bug","root","root");
Statement stmt = cn.createStatement();
String BUGId = jTextField1.getText();
String AUTHORID = jTextField2.getText();
String AUTHOR = jTextField3.getText();
String PRODUCTID = jTextField4.getText();
String PRODUCTNAME = jTextField5.getText();
String ENV = jTextField6.getText();
String TYPE = jTextField7.getText();
String DESCRIPTION = jTextField8.getText();
String REP_DATE = jTextField9.getText();
String PRIORITY = jTextField10.getText();
String STATUS = jTextField11.getText();
// String ASSIGN_TO = jTextField12.getText();
if(jButton2.getText().equals("Submit"))
{
String insert = "insert into Bug1
values('"+BUGId+"','"+AUTHORID+"','"+AUTHOR+"','"+PRODUCTID+"','"+PRODUCTNAME+"','"+ENV+"
','"+TYPE+"','"+DESCRIPTION+"','"+REP_DATE+"','"+PRIORITY+"','"+STATUS+"')";
int row = stmt.executeUpdate(insert);
if(row>0)
{
jLabel13.setText("Record has been saved!!!");
}
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jTextField7.setText("");
jTextField8.setText("");
jTextField9.setText("");
jTextField10.setText("");
jTextField11.setText("");
// jTextField12.setText("");
}
if((jButton2.getText().equals("Update")))
{
String str = "update Bug1 set
AUTHORID='"+AUTHORID+"',AUTHOR='"+AUTHOR+"',PRODUCTID='"+PRODUCTID+"',PRODUCTAME=
'"+PRODUCTNAME+"',ENV='"+ENV+"',TYPE='"+TYPE+"',DESCRIPTION='"+DESCRIPTION+"',rep_date='
"+REP_DATE+"',PRIORITY='"+PRIORITY+"',STATUS='"+STATUS+"' where BUGId='"+BUGId+"'";
int row = stmt.executeUpdate(str);
if(row>0)
{
jLabel13.setText("Record has been Updated!!!");
// jButton2.setText("Submit");
}
jButton2.setText("Submit");
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jTextField7.setText("");
jTextField8.setText("");
jTextField9.setText("");
jTextField10.setText("");
jTextField11.setText("");
}
}
catch(ClassNotFoundException | SQLException ex)
{
ex.printStackTrace();
}
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Bugtype.class.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Bugtype.class.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Bugtype.class.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Bugtype.class.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Bugtype().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField10;
private javax.swing.JTextField jTextField11;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JTextField jTextField7;
private javax.swing.JTextField jTextField8;
private javax.swing.JTextField jTextField9;
// End of variables declaration
}