For auditing the personal productivity of projects and people.
Project Audit is a small web application for people to log their own work on projects. I created Project Audit to find out how productive I am - how many hours it would take me to do things (such as setting up this application). The only way to find out was to log the work I did, and tally up the time I spent.
Project Audit is not - repeat, not project management software. Its data model is just complex enough to measure my performance (and perhaps yours, if you choose to use it). However Project Audit does not provide specific fields for logging project costs - mandatory in any decent project management application. If you want project management software, there are plenty of apps on the market. Please look elsewhere.
"Project Audit" started out in late 2008 as a small C# prototype (and one that is not ready for viewing). I found it was easy to throw something together for logging and listing work. Unfortunately, the result depended too much on Microsoft's fugly DataGridView control for data entry. In addition, data validation was not handled too well; entering numbers in date fields would throw exceptions that the control didn't handle too well.
At the same time, I had been running through Django's tutorial, and observed that its built in administration site provides an attractive - nay, pretty interface for data entry, and with data validation was built in. I thought it would be quicker to implement something usable as a web application using this framework.
I plan to re-implement Project Audit in C#. I intend to continue studying that language, and coding will help me learn it. The advantage of Project Audit for Django is that it provides a stable set of features to aim for.
The data model in Project Audit is simple. There are Projects (say, like building a website), some which contain others (like Project Audit for Django). Different types of activities are represented by Actions (say, like everything in the whole software developmnet life cycle), some of which contain others (like programming, testing or documentation). Finally, there are Work Items - each of which represent a piece of work performed by myself. All work items are assigned a Project and an Action. For example, writing these words is an work item associated with the Project "Project Audit for Django" and the Action "Documentation". All Work Items can be associated with zero, one or more Tags.
The following views are available to look at the data in Project Audit:
In addition, it is possible to look at the details of Work Items; these are available from the Work Report. An example of an Work Item details page is that for stating the requirements for Project Audit.
Finally, Project Audit allows you to list all the Work Items associated with a tag, like, say "Project Audit".
Please click the links above. They show examples of the data I've entered for myself.
All data entry is done through Django's administration interface. As stated before, it comes with validation built in and handles log-ins. Why shouldn't I use it? Here's a screenshot for listing work items:
Here's a screenshot for adding or updating items.
For reasons of security, I cannot provide a demonstation of you entering data on this site. But you can download the source and install it, and then enter your project auditing information on your site.
The source for this project is located in the following files.
There is no installer for this app (as yet). However, one can follow these steps to have the software running on your website.
from projaudit.urls import *
...
urlpatterns = patterns('',
...
(r'^projaudit/', include('projaudit.urls')), ...
)
Don't forget to run python manage.py syncdb
from the command line.
If this doesn't work, please email me at peterkmurphy at gmail dot com, and I will try to assist.
Each archive contains two sample data files for Project Audit - sampledata.xml and sampledata.yaml. Both files contain the work items entries I've logged for myself; the only difference is the file format used. Everyone should be aware of XML; YAML is an alternate file format for arbitrary without the overhead of XML. If you wish to load either to play around with the app, choose your sampledata file, and then run it from the command line:
python manage.py loaddata sampledatafile
The advantage of XML is that no extra apps need to be installed. If you wish to try the YAML sample file sampledata.yaml, you need to install PyYaml.
There are plenty of things that could be done, but only if I feel like it. Examples:
Any bugs that are found will take precedence.
This software is distributed using the BSD license.