Project Audit

For auditing the personal productivity of projects and people.

Platform: Django 1.* + Python 2.*.

Version: 0.2

Copyright: Peter Murphy - 2009, 2010.

Introduction

Note: at this time, I am not interested in maintaining this software. However, I have gone to the trouble of removing bugs I found egregious. Please see the list of issues at the end of this document. For more information, please read Project Audit Considered Moribund.

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.

History

"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. 

Data

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. 

Views

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.

Data Entry

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:

A list of work items

Here's a screenshot for adding or updating items.

Adding or updating work 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.

Download

The source for this project is located in the following files.

Installation

There is no installer for this app (as yet). However, one can follow these steps to have the software running on your website.

  1. Extract the data to whereever you want it to go.
  2. Copy the files in the templates directory to your Django's template directory.
  3. Copy the projaudit directory to your Django 'myproject' directory (or similar).
  4. Add 'projaudit' to your INSTALLED_APPS list in settings.py.
  5. Add the following code to your urls.py file in your 'myproject' directory.

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 , and I will try to assist.

Sample Data

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.

Things to do

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.

Release History

Issues

These are issues with Project Audit that I have resolved for 0.2.

Licence

This software is distributed using the BSD license.

Click here to return to the index.