Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A little toy application I wrote to test my abilities. Took about a week and a half and was the first time I'd ever used Rspec, Dataset, and Shoulda.
Ruby JavaScript
tree: 27ab069e43
Failed to load latest commit information.
app
config
db TimeEntries no longer require hours to be an integer. Hours must be g…
doc
lib/tasks
public
script
spec
test
vendor/plugins/dataset
.gitignore added docs to gitignore
README README file edited to give some guidance as to how to start working w…
Rakefile

README

== Timesheets

In this small Rails application, the user is presented with a simple interface for entering
time against a set of projects, each with different activity types associated to them. The
user can navigate between weeks or jump to a particular timesheet using timesheets index
page.  The user can save a partially completed sheet and resume entering time into the sheet
later.

Plugins used:
* Authlogic (http://github.com/binarylogic/authlogic) for user registration/authentication
* Spec::Rails (http://rspec.info/rails/) for testing with Autotest
* Dataset (http://github.com/aiwilliams/dataset) to generate test data using Ruby code instead of fixtures
* Shoulda (http://github.com/thoughtbot/shoulda) for simplifying model specs via "should macros" (see spec/models/*_spec.rb)

This application also borrows heavily from the ideas in the complex-form-examples repository by
`alloy` on GitHub: http://github.com/alloy/complex-form-examples


== Dependencies

Authlogic, Spec::Rails, and Shoulda are configured as gems and can be installed by using 
`rake gems:install`. Dataset is distributed with the code under `/vendor/plugins/dataset`.

== Getting Started

All datasets can be loaded into the development database by issuing the following rake command:
`rake db:dataset:load`.  This will create two users:

1. `ben/benrocks`
2. `zack/zackrocks`

Each of these users have pre-defined timesheets. There are also two pre-defined projects, "ProjectX" and "ProjectE", each with their own activity types.  These can be managed at `/projects`
by a logged in user.

Timesheets can be accessed by date, e.g. `/timesheets/2009/4/13` will render a form to edit the
logged in user's timesheet for the week starting April 13, 2009. If no timesheet exists, a new
one is created and presented for editing.
Something went wrong with that request. Please try again.