StatusReport Manager


This is a simple perl cgi based application to track weekly status items.

This utility is a status gathering package.  It is not a task manager. 

What started as a little script I wrote to *quickly* record some status entries for my manager,
has evolved into a priceless utility that I use quite often.

My employer has the employees set goals for the year.   At the end of the year, the manager goes through
the employees accomplishments to gauge whether the employee met the goals for the year. 

My group does not collect written status reports from the members.  Instead we have a status meeting to 
go over current tasks etc. 
 
Over the years I have come to understand if status isnt easily collected, it tends to not get
collected at all.  At review time at the end of the year, this utility makes reviewing my 
accomplishments for the year very easy. Having the details of your accomplishments can make a 
difference in the review outcome.  

Now it has evolved into a small priceless utility that I use quite often.

This package is not fancy but simple and effective. 

Screenshots
Upon creation, status items are categorized as: Normal - a normal task being serviced Goal - a task that applies to the yearly goals Note - a simple note entry for holidays, vacation etc. Requirements: 1. web server 2. Mysql or Mariadb server 3. dhtmlx suite - http://dhtmlx.com/docs/products/dhtmlxSuite/ 4. perl with the CGI, DBI and Config::Simple perl modules 5. the prototype.js library http://prototypejs.org/download/ Setup: Setup is simple for anyone remotely familiar with setting up a web based application with a db backend. The configuration can easily be modified to fit your environment. The default setting in this config is to have a local db server, 'statusreport' database, 'webuser' user with password set to 'webpass' MYSQL: 1. create database 'statusreport' 2. create the db tables (I have placed the sql files to create the required tables and also insert some starter data. 3. I use the db user account webuser for the app.. You will need to set the username and password for db access in the statusviewer.conf file. ** IMPORTANT - You will want to put this file somewhere outside your webspace and change the path in the scripts!. Something like this - my $cfg = new Config::Simple('../../conf/statusviewer.conf')); WEB: I am only exporting one routine from utils.pm - logit - which is a debug logging utility. this wont be used unless debug is enabled in statusviewer.conf The dhtmlx suite. I have it under the js subdirectory of DOCUMENT_ROOT. I also linked the product directory to a generic name 'dhtmlxsuite'. The generic path is referenced in the scripts like "/js/dhtmlxsuite/codebase/dhtmlx.js" If you have your own path, obviously these references will need to be changed in the cgi scripts. http://dhtmlx.com/docs/products/dhtmlxSuite/ prototype.js I also have this file under the js subdirectory of DOCUMENT_ROOT - "/js/prototype.js" http://prototypejs.org/download/ Files: This archive contains these directories and files - ./screenshots - samplescreenshots folder searchbox.png editinplace.png optionpopup.png daysback.png maindisplay.png ./conf - contains the config file for the utility. statusviewer.conf - db connectivity file. Should be modified to suite your needs and placed in a directory above the web accessible dirs. ./sql - sql files to create the three tables for the utility. status_types.sql - status types definition sql status_states.sql - status states definition sql status_items.sql - status items table with sample status items ./css - css files to style the utility statusviewer.css ./js - javascript directory for libraries prototype.js - javascript library used for the ajax ./statusreport - the application directory. statusviewer.cgi - the main app page status_dbupdateall.cgi - backend datbase update utility index.html - redirect html to statusviewer.cgi utils.pm - utlity routines (only logit is used) status_search.cgi - database search utility readme.txt - this file My web document root for this app looks like this - (parent to DOCUMENT_ROOT) I have configs/statusviewer.conf ./js ./js/dhtmlxsuite -> dhtmlxsuite44 ./js/dhtmlxsuite44/ ./js/prototype.js -> prototype_1.7.2.js ./js/prototype_1.7.2.js ./css ./css/statusviewer.css ./statusreport ./statusreport/status_search.cgi ./statusreport/statusviewer.cgi ./statusreport/index.html ./statusreport/utils.pm ./statusreport/status_dbupdateall.cgi Thats it. Note - This package was tested in Chrome. It may not display nicely in firefox, especially in a dark desktop scheme. I am open to the css contributions to make it behave in other browsers. Usage: The "Add Item" section at the bottom of the page is used to make entries into the StatusReport database. Upon initial display it defaults to the current week. The user makes any changes if desired to the date, item type and item status. The user Makes a short text entry for the status item, and clicks 'Add Status Item' The new item will be published to the bottom of the status list above. The new item is highlighted in bold indicating it is new. Multiple items can be added one after another.. NOTE - The status items *ARE NOT* written to the database until the "Save Changes" link is clicked above the status list. Items in the list can be modified by double-clicking on the cells. Again the items are not saved permanently until the "Save Changes" link is clicked. Status items can be exported to via the "Export to Excel" link above the status listing. Enjoy. I hope you find it as useful as I do.
Download the package here - statusreport_distrib_1.0.tar.gz