TechStream (aka ToBeDone 2.0)

Workflow Management

To Be Done is a Web-based workflow tool that manages the collection, tracking, and processing of work requests. It is written in PHP and uses a MySQL database. It facilitates the collaboration between teams by enabling team members to create requests for other teams’ members to complete. Time-to-completion data is stored when a user completes a request and can be used to display totals, percentages, and averages of requests and hours in a report that can be generated automatically. The report that is generated can also display specific information per user and per course.

Tech Support Ticketing

Additional functionality was added so that two teams (initially) could store information about their tech support incidents. Mechanisms to store client information (name and contact info) was added as well as a way to tie incidents to those clients. The incidents could be tagged with system information (supporting WebCT or eCommunity, etc.) as well as issue tags (login trouble or pop up trouble, etc.).

Data Access

It was my responsibility to create the data access classes to provide easy use of the information in the database. This gave me an opportunity to fine tune the classes that I created for the Valhalla and Talent Roundup projects. The knowledge gained through this project led me to create the abstract data access class that is used in CyTE today.

Report Generation

With all of the accumulated data, managers and directors started asking for reports based on all of the information we had gathered. I was able to put together a script that would allow for a report on any time frame. It would display total and average times for requests and tech support incidents. It was also able to break down the time spent on each QA phase of a request.

With the creation of the reporting script I learned a lot about optimizing queries and databases. At first the page would take minutes to load. After some tuning to the database and the queries I was able to bring it down significantly. This was the first time I was able to experience views in a database. I was able to save a bit of a query headache from joining more than two tables by making a view that combined two of the common ones. It also helped me to ensure that the queries were all gathering accurate information. At one point I realized that the data wasn’t adding up correctly and when I realized that I was doing a LEFT JOIN improperly, I fixed that and then wrote a post about it on Code Spatter.

Additional Information

There are images on the techranger website to show a few of the features.