Modcraft - The community dedicated to quality WoW modding!

Wrath of the Lich King Modding => Resources and Tools => Topic started by: Valkryst on July 11, 2015, 10:32:07 pm

Title: [TOOL] Valkryst's Bug Report Manager
Post by: Valkryst on July 11, 2015, 10:32:07 pm
Hey,

After a few days spent working on this hopefully useful program, I've got it to the point where I'm ready to release it as a working beta. All of the features that I've planned to add to the program are currently working, as far as I've tested, and anything else that's left to be done is mostly behind the scenes other than getting translations for the program done-up.

If you have any problems during the setup, have suggestions for the program, find a bug, etc... then just comment below.

Rough Description



This tool allows for easy management and sorting of any and all bug reports for the server it's used with. Not only does this program deal with bug reports, as the name states, but it deals with any and all feedback given by your players as they play through the content on your server and submit either bug reports or feedback on their play experience.

The addon is quick to install, database easy to prepare, and program simple to use.


The following video is from an early stage of development, but it demonstrates how the reports/feedback are sent in and pulled into the tool.

[media:2juu4cm7]https://www.youtube.com/watch?v=K0sVIW1166w[/media:2juu4cm7]

How to Setup



To set up the bug reporting and tracking system, there are three requirements and three steps. These are all very simple and can be done for any server/account that meets the requirements.

Requirements




Step #1



Execute the following SQL on the characters database. This will create the stored procedures used by the program and add another field to the bugreports table that allows for the unread, read, etc... statuses to be tracked.

Code: [Select]
USE `characters`;

DELIMITER //

DROP PROCEDURE IF EXISTS getAllRawBugReports;

CREATE PROCEDURE getAllRawBugReports()
BEGIN
SELECT * FROM `bugreport`;
END//

DROP PROCEDURE IF EXISTS setButReportStatus;

CREATE PROCEDURE setButReportStatus(`varBugReportId` INT, `varBugReportStatus` INT)
BEGIN
UPDATE `bugreport` SET `status` = `varBugReportStatus` WHERE `id` = `varBugReportId`;
END//

DROP PROCEDURE IF EXISTS deleteBugReport;

CREATE PROCEDURE deleteBugReport(`varBugReportId` INT)
BEGIN
DELETE FROM `bugreport` WHERE id = `varBugReportId`;
END//

DELIMITER ;

Code: [Select]
USE `characters`;

ALTER TABLE `bugreport` ADD COLUMN `status` TINYINT NOT NULL DEFAULT 0 AFTER `id`;

Step #2



Download the bug tracker from here (http://valkryst.com/shared_files/WoW_Bug_Tracker_jar.7z) and ensure that you have the latest version of Java (https://java.com/en/download/).

Step #3



Log into World of Warcraft, submit a random report using the addon, then launch the Bug Tracker and see if the report shows up. If the report does show up, then everything should be working as intended.

If you ever see a file named ]error_log.txt[/i], I would appreciate it if you could describe what you did to bug our or crash the program and if you could paste the error log in the comments below for me to take a look at.

The Interface



Because the program is still being worked on and fixed up here-and-there, the interface may undergo some changes as development progresses. At the moment it contains all initially conceived features.

The images below may appear quite small. If you wish to view them in their full resolution, then simply right-click on the image and select Open image in new tab. This may only apply to users with the Chrome browser.

In the image below you can see the initial interface.

(https://i.imgur.com/cKlNcya.png)

The combobox in the top-left of the screen allows you to select a bug report by its ID number as retrieved from the database.

(https://i.imgur.com/vqn5uEy.png)

The radio buttons along the center of the menu bar allow you to sort the reports in the previously mentioned combobox by a number of different categories.

(https://i.imgur.com/LQgA8uV.png)

At the end of the menu bar you'll find a second combo box with a selection for each of the different sorting categories. When you have a report open, select a sorting category, and then submit your change, both the database and the program will be updated to reflect the change.

(https://i.imgur.com/NSGClZf.png)

In the main section of the screen you'll find the bug report.

(https://i.imgur.com/krdtmZ5.png)


The Settings File



Within the settings file you'll find the saved server address, MySQL port, characters database name, MySQL username, and the interface language. All of these values can be manually edited and it's perfectly fine to just delete the settings file and select everything again through the interface when you launch the program.

The only value in the settings which cannot be changed through the GUI after selecting it is the language. If you wish to change the GUI language, then you'll need to either delete the settings file and launch the program to select it again or change it in the settings file.

Supported Languages



If you wish to contribute a translation in your native language, then please contact me on Skype for the latest files to be translated. It will take at-least an hour of your time to translate everything required.


Examples of  Three Settings Files



Code: [Select]
serverAddress=example.com
port=3306
databaseName=characters
username=root
language=English

Code: [Select]
serverAddress=127.0.0.1
port=3306
databaseName=serverA_characters
username=root
language=French

Code: [Select]
serverAddress=123.456.78.9
port=1704
databaseName=characters
username=trinity
language=Spanish

Misc Information



The program currently only supports 3.3.5a TrinityCore, but it can easily be made to support other versions and cores. If anyone possesses the Blizzard Feedback addon from the PTR for whichever version they're playing on, then please contact me and we can hopefully get other versions supported.

The current program version is 1.2.

Credits




--------------------------------------------------------

If you want to stay up-to-date with my latest tutorials or if you just want an easier way to view all of my tutorials and releases in one place then take a look at my blog (http://valkryst.com/blog/).
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: Krang Stonehoof on July 14, 2015, 08:24:53 am
I'm glad to see people still have some neat ideas like you. It looks great.

Keep up the good work and thanks for sharing it.
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: Valkryst on July 14, 2015, 09:30:47 pm
Quote from: "Krang Stonehoof"
I'm glad to see people still have some neat ideas like you. It looks great.

Keep up the good work and thanks for sharing it.
Thanks!


Version 1.1 has been released. You can redownload it from the link in the post above.

This version includes Russian as a supported language along with a handful of minor code tweaks.
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: Kaev on July 27, 2015, 07:50:51 am
Quote from: "Valkryst"
German (Needs review/rewrite from native speaker.)

I can translate it to german if you want. Send me a PM. :)
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: hyakkimaru on July 27, 2015, 03:11:31 pm
Hello, I'm getting this error.

Code: [Select]
{2015/juil./27-15:06:31}--LogType|ERROR: Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:569)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1013)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2239)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at services.DataManager.<init>(DataManager.java:38)
at services.DataManagerBugReport.<init>(DataManagerBugReport.java:28)
at gui.ConnectionScreen.lambda$new$8(ConnectionScreen.java:122)
at gui.ConnectionScreen$$Lambda$19/110718392.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


I have already updated my my.cnf and restarted mysql but I still have this error :)
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: Valkryst on July 27, 2015, 10:52:49 pm
So you've done exactly what this post (http://stackoverflow.com/a/21236613/4879962) on StackOverflow says when changing the my.cnf?

If that doesn't work, then try this other temporary solution (http://stackoverflow.com/a/8062996/4879962) and see if it works. You'll need to log into MySQL and execute the query mentioned there.

Past that there's not much I can say. You might have better luck posting on StackOverflow, /r/mysql (https://www.reddit.com/r/mysql/), or /r/linux4noobs (https://www.reddit.com/r/linux4noobs) since someone on any of those may know more about resolving the issue then I do.
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: Valkryst on July 29, 2015, 08:36:22 pm
Version 1.2 has been released. You can redownload it from the link in the OP above.

This version includes German as a supported language along with a handful of minor code tweaks.
Title: Re: [TOOL] Valkryst's Bug Report Manager
Post by: Nupper on March 19, 2016, 11:39:55 pm
It dose not save anything in database...