TrackRecord
TrackRecord is a Ruby On Rails application which lets users enter and analyse timesheets. It may be of use to sole trader contractors who wish to keep track of their time, or other small businesses. It is released under a BSD license and has an associated RubyForge project.
Installation
Downloading
See the sidebar for links to source archives you can download. Versions of the application with and without a frozen copy of a "known to work" version of Rails and required gems included are available; the "-norails" version omits the frozen Rails code and gems. This lets you use Rails and gem code shared from a central gem repository if you so wish.
The RubyForge project for TrackRecord generally only carries stable releases in the repository, but does sometimes carry small changes, often for things like documentation-only alterations. If you want to use SVN to keep track of changes to the source, have a look at the relevant RubyForge page.
Upgrading
If upgrading from an earlier version of TrackRecord, please consult the online change log to find out how to proceed.
Browser requirements
This release of TrackRecord has been tested on Mozilla Firefox 3.5 and Apple Safari 4. For very best results please use these browsers or a later version of either. Opera 10 has been tested and works well, except for some minor visual degradation due to use of some non-standard CSS extensions which Opera does not support. The application should work correctly on older Firefox versions back to version 2.0, the Opera 9 series and WebKit-based browsers such as recent versions of Konqueror or Google Chrome, though these have not been used for testing.
Although TrackRecord will function under Microsoft Internet Explorer 8, some functions will not be available and performance will be degraded, with greater load on the server for some operations. Earlier versions of this browser are not supported at all. Browsers without JavaScript support such as NetSurf v2.x should work but again, some functions will not be available and greater load will be placed on the web server for some operations.
Although JavaScript is optional, robust support for Cascading Style Sheets level 2 revision 1 or better is assumed.
Dependencies
Once you have downloaded the application archive and unpacked it, consult the online change log for full information on external Rails and gem requirements. If you downloaded the full archive with Rails and gems included (rather than the "-norails" archive) then the only dependencies are:
- Ruby 1.8.5 or later but not 1.9 compatible.
- A web server environment capable of supporting Ruby On Rails applications – Apache and Phusion Passenger recommended.
- A database on top of which Ruby On Rails can run, coupled with whatever gem or gems are needed to give Rails applications access to that database. For example, if using PostgreSQL 8, the pg gem must be installed.
Most development testing for TrackRecord 1.5 was done using Mac OS X 10.6 running Ruby 1.8.7, Apache 2.2.13 with Phusion Passenger 2.2.5 and PostgreSQL 8.4.1 with pg 0.8.0. If you are running OS X 10.6 and having trouble getting Rails applications to run, this blog post should be helpful.
Configuration
To install TrackRecord v1.5 clean, rather than upgrading an existing deployment, unpack the application archive somewhere. Then edit the following files, used for configuration purposes:
- Create
config/database.ymlin the usual Rails fashion. A template based on PostgreSQL is provided in filedatabase_blank.yml. config/environment.rbto set a secret key if you are using the cookie session store.config/initializers/general_config.rbfor a few important constants you may need to modify. Extensive comments inside the file (hopefully!) explain everything.config/initializers/email_config.rbfor some important constants which you will definitely need to modify. Again, comments inside the file should explain everything.
Once this is done, you need to set up your database. This is most easily achieved using Rake tasks at the command line with the current working directory set to somewhere inside the TrackRecord application directory.
$ rake db:create:all $ RAILS_ENV=production rake db:migrate
Change production to development in the above example if you want to set up the database for development testing rather than a production installation of the application.
Setting up
Once installed, when you first visit your new TrackRecord installation you will be asked to create a user account. The new user will have administrator privileges. You will need to provide an OpenID when you do this. Once at least one user has been created, all subsequent visits to the site by logged out users will lead to the sign-in page. This includes extensive information about OpenID to help anyone who is unsure about it understand the process. If you are administrator setting up the site for the first time and you are not sure about it either, the information on the sign-in page may be of interest - see the following file:
app/views/sessions/new.html.erb
Reliability
Development tested only
TrackRecord was beta tested for several months by a small company with which I am involved and performed well. Version 1.0 ran for over a year with daily use by around ten individuals without problem. Version 1.5 was tested for a few weeks and is now being used live by the same company, again without issues so far.
However, there are no automated tests whatsoever at present. This is something of a huge no-no in Rails land but there are pragmatic reasons for it. With the likes of Webrat becoming reasonably mature it is now possible to make tests with very meaningful real-world parallels and at some point I will be adding these, though I did say something similar back when v1.0 was released and still haven't got around to it. Any kind soul who wishes to contribute one or more automated tests of any kind is most welcome to contact me (see below) – otherwise, keep watching this space!
I'm confident that the system is reliable and generates correct numbers in reports. As with most software, though, there can be no guarantees, with or without automated tests; if you intend to use TrackRecord for business critical purposes then I strongly recommend you trial it alongside a secondary recording and reporting system to verify its output, until such a time as you are satisfied that it is reliable in the context of use to which it is being put.
How to report bugs or ask for new features
Please report bugs or raise feature requests using the Pond's Place forum's TrackRecord section.
Screenshots
|
|
|
|
|
|
|
|
|
|
Licence
The following is a copy of the text of the LICENSE file held inside all of the download archives:
Copyright (c) 2008, 2009 Andrew Hodgkinson
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Hipposoft nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.