Monday, October 02, 2006

New Project At OpenNTF

Last night, I deployed a new project over at OpenNTF. I've wanted to contribute to the site for a long time, but never seemed to find the time or the right application. I finally decided to clean up an app I put together a couple of years ago, one that is pretty simple in its design but provides some neat functionality. The name of the project is Application Activity Tracking (for want of a more exciting name) and is basically a lightweight per-document tracking mechanism. If you add the design elements to an existing database, you can begin tracking the usage of each document within your application. Here's a brief description of the project:

The Application Activity Tracking functionality was designed to be a modular means to add a document-specific tracking mechanism to your application. By using this system, you can track how many times users have read, edited, created or deleted a particular document. This functionality is useful for those applications in which a business need exists to either audit the activity that takes place or for a database owner to see how particular documents are being utilized. Detail can be viewed for a single document or the powerful dashboard feature can be used to get detailed information on items such as the Top 10 users, Top 10 documents and other metrics of interest.

So if you want to know how many times a particular document has been accessed, you can do that easily. If you want to view which documents John Smith has been looking at, it's a piece of cake. A lot of information can be obtained from the application dashboard, which is very simple and easy to use. Here are some screenshots that show off the functionality better than I can explain it.

1. DASHBOARD WITH SUMMARY OF ALL DATABASE ACTIVITY - Totals are summarized here. More detail can be obtained by clicking the links on the left. This will open the 'Views' section (found at the bottom of the screen) automatically and navigate the user to the applicable view.

2. DASHBOARD WITH FILTERING - Totals can be displayed for a single user, server or month and year. In this example, I can see that I read 51 documents. The view at the bottom shows me which documents I read and when I accessed them. Unlike log reporting, these will be true indicators if a person physically opened or edited a doc.

3. DASHBOARD SHOWING TOP 10 USERS - It may be interesting to know who the most prolific users of a database are. Clicking on the 'Top 10 Users' tab presents this information. For the purposes of this first version, I just captured their name, but we could include the related numbers as well.

4. DASHBOARD SHOWING TOP 10 DOCUMENTS - Another interesting statistic is which documents in the application are the most frequently accessed. The 'Top 10 Documents' tab neatly summarizes this data.

5. USER ACTIVITY DIALOG FROM A DOCUMENT - All code for doing the user tracking is self-contained within a single subform. This subform includes an action button titled 'Activity Log'. Clicking this action button brings up the following dialog box. The user can view activity for this particular document by user, server or date. Some additional summary information is included at the bottom.

6. DOCUMENT TRACKING OPTIONS - For each document that is being tracked, it is possible to define how the title is captured by the database. For example, the owner can enter a specific title. This might be different than anything actually contained on the doc that the users interact with. Another option is using the field defined on the configuration form. The application owner can use this to define a certain field that will be grabbed from the document for the title. The final option is to allow the author to choose a specific field from the underlying document. This whole section is still under development, but gives you an idea of some options we have.

Without going into a lot of detail, this works simply by creating a small document in the backend whenever a user does a read, edit, delete, etc. The code really is quite simple and I'm sure there is room for improvement. I've already got one request to add an option to make the collection data anonymous, which is great for countries like Germany (where many of my colleagues sit).

If you have the need for simple and unobtrusive document tracking, then please head over to OpenNTF and download the Application Activity Tracking tool. I hope you find it useful. Please feel free to leave me any feedback right on the project page.



Esther said...

Chris, this is fantastic! Not to diminish the programming aspect (I've done something similar) - but your interfaces are just beautiful to behold. So clean and simple, and everything is perfectly aligned.

I'm one of those people who believes in that kind of aesthetic; unfortunately I'm completely unable to create it myself. I'm going to be "borrowing" the layout from the analysis form from this one... :o)

Chris Blatnick said...

Hi Esther! And thank you...glad to know you like it!

Please feel to "borrow" all you want...that's why I do this!


Darren Oliver said...

I totally agree with Esther - not only is it a great application that's simple to deply into an existing app, it's given me a lot of ideas for providing a dashboard type approach for our other apps.

Just one thing that you might want to include is the Use "slUserActivity" that also needs to be added to the Database Resources script library if you're enabling it to track deletions. But then most people would know that anyway but just mentioning it for completeness.

richard said...

Have to agree with Esther, your applications look very clean and intuitive. At the moment I'm working on redesigning various notes databases. None of them have a proper interface. This often leads to a lot of frustration for the end users.

ed maloney said...

Ditto - the UI is great! In your abundant spare time perhaps you can write an article for Lotus Advisor on how you do it.