New Project At OpenNTFLast 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.