A few days ago we completed building the basic framework of TacticSheet, uploaded a development sprint of TacticSheet and announced it live. TacticSheet is an Open Source Timesheet and ExpenseSheet System built on .NET 3.5, C# 3.0, LINQ and Oracas Beta 2. If you haven’t heard of TacticSheet or want to learn more about it, click here.
This weekend I worked on a couple of other enhancements to make this product much more usable in the long run. Some of the features completed this weekend include:
Support for Timesheet Audit Trails
Respecting the iron triangle plays a vital role in any software project. But when you are only giving time to a project only during free time, weekends and holidays this prioritizing becomes vital. Audit trails for timesheets was on my mind when I played around with the basic idea of building TacticSheet. Dropping it out of the first sprint I uploaded on source-forge, was purely a matter of respecting the iron triangle and realizing that I lacked time.
I found some time this weekend and this was one of the important features that I really wanted TacticSheet to have - So obviously it made it into TacticSheet. Today, you can see audit trails at timesheet level right on the same screen where you are filing your time using TacticSheet. We decided to draw inspiration from most commercial time-sheet entry systems out there and call our timesheet based audit trails "Timesheet History".
For audit-trail purposes we also go ahead and catch data at each timesheet line item level, but these audit trails are not shown anywhere on the TacticSheet screens because we don’t see these adding a lot of value for most organizations. Given the stage where TacticSheet stands today, we need to focus on other important features before we get carried away with making audit trails better.
We still store the trails on a line item level and keep them there because we want TacticSheet to adhere to general auditing principal - delete nothing. In future, as the application grows, this is expected to allow us to provide screens which will provide detailed audit trails and deeper insight into what happens inside each timesheet every time it changes state.
Our Database is Now Scripted and under SVN
We’ve gone ahead and brought out database under SVN by scripting it out to a proper database project. Now you can have the database created by running a command file located under the database project which is included in the code base.
Running this single command file will have TacticSheet create the database schema and all sample data needed to get the application up and running. Once the file runs successfully, change your web.config connection-string to the right database. Once done, you can launch TacticSheet and login using default credentials (username: admin password: admin).
Setting up the development environment of TacticSheet is now stupid simple! So there’s no reason why you shouldn’t try it out. Go ahead, grab the latest copy of the code from our SVN and give it a dry run. Drop me an email and let me know what you think.
Employees should not be able to Un-submit Approved Timesheets
After I announced TacticSheet live I received a few emails from folks encouraging me, congratulating me and wishing me good luck. I also got a couple of feedbacks from guys who are not into .NET, but work with a lot with timesheets. Some of these feedbacks were fairly valuable. For example, one of the observation that was made was:
“Employees should not be allowed to un-submit timesheets which have already been approved”
I looked at this one with a little bit of skepticism. So if an employee makes a mistake, how does he fix it? After a little bit of communication back and forth the person who had requested the feature explained:
- A normal user is allowed to un-submit timesheets which have been submitted by him till they are approved.
- Once approved, the user should not be allowed to un-submit the approved timesheets.
- The administrators however, can un-submit even approved timesheets on behalf of the user so that the user can go ahead and fix his mistakes.
- Once un-submitted by an administrator, the user will need to re-file that timesheet and the timesheet will have to go through approval process all over again.
- No approved timesheets can be deleted. Not even by the administrator. Administrators can un-submit the timesheet which have been approved.
- Once un-submitted the timesheet can then be deleted by the employee himself.
- All of this is audit trailed so there is no confusion.
In general the above rules made a lot of sense and are now a part of TacticSheet.
We have more features, goodness and posts coming up! Stay Tuned!
To stay informed about TacticSheet new features you can sign-up to the TacticSheet Mailing List. If you are an enthusiastic .NET developer and want to stay informed about the technical changes we’re making to TacticSheet signup for the Developer Mailing List. We have barely started, and are far from done. Stay tuned for more!