All Projects → LunarLogic → Rubytime

LunarLogic / Rubytime

A Merb-based time tracking and invoicing system

Programming Languages

ruby
36898 projects - #4 most used programming language

h1. RubyTime

RubyTime is a web application for time tracking and invoicing, written in Ruby using Merb framework. It's a complete rewrite of RubyTime 2.4 which was formerly a Ruby on Rails application.

RubyTime is no longer maintained.

h2. Important: Project status

RubyTime project is not maintained anymore. You can try to use it at your own risk, but don't expect any support.

If you're really determined to give it a try, the "Rails 3 branch":https://github.com/LunarLogicPolska/rubytime/tree/rails3 is probably the best point to start at. The master branch is based on Merb, which itself hasn't been updated in a few years, so we started migrating the app to Rails 3.x. We didn't finish the migration, but we were pretty close, so it should be possible to get it to run without too much work, though there might be still some bugs lurking in the code.

h2. Recent changes

See "CHANGELOG.txt":http://github.com/LunarLogicPolska/rubytime/raw/stable/CHANGELOG.txt.

h2. Setup

h3. Prerequisites

You need to have Ruby version 1.8.7 and RubyGems 1.3.6+ installed on your server. You also need the Bundler gem (0.9+).

For now you also need git to install some of the gems in the Gemfile.

h3. Get the source

Next get the source code from RubyTime git repository ('stable' branch is recommended):

bc. git clone git://github.com/LunarLogicPolska/rubytime.git -b stable

h3. Install gems

Inside the rubytime directory, install gems using Bundler:

bc. bundle install

Note: on 64 bit architectures, you may have to set ARCHFLAGS='-arch x86_64' in your shell environment, otherwise some compiled gems (do_mysql) may not work.

h3. Configure

  • copy config/database.yml.example to config/database.yml, then edit it to match your database configuration
  • copy config/local_config.rb.example to config/local_config.rb, then set application domain and mailer "From" address
  • copy config/schedule.rb.example to config/schedule.rb and update it to set your reminder schedules
  • copy config/ldap.yml.example to config/ldap.yml and set your LDAP address/port if you want LDAP authentication support

h3. Running in development mode (on local machine)

Create a development database (named @[email protected] by default). Then fill it with tables and data:

  • run @bundle exec rake db:[email protected] to create database structure (note: this destroys existing structure and data)
  • run @bundle exec rake rubytime:[email protected] to populate database tables with initial data (admin account, example clients and projects)

Run the application:

bc. bundle exec merb

Point your browser to url set in config/local/config.rb and login as @admin@ with password @password@

h3. Deploying to production server

Deployment is done using the Vlad library. Make a copy of config/deploy.rb.example in config/deploy.rb, and edit the server, username and directory values according to your setup. You can add or remove environments (staging and prodution are included by default). Deploy.rb assumes you use Passenger - you'll have to customize it if you use something else.

On the server, create a production database (named @[email protected] by default). Then, back on your development machine, call Vlad to create directory structure on the server:

bc. bundle exec rake production vlad:setup

If necessary, replace 'production' with 'staging' or whatever other environment you have configured in deploy.rb. Then, inside the "shared" directory created by Vlad in the project directory on the server, create a "config" directory, prepare copies of database.yml and local_config.rb configured for your server, and put them inside the shared/config directory.

Call Vlad again (from development machine) to deploy the code:

bc. bundle exec rake production vlad:deploy_with_db_reset

Back on the server, populate the database with initial data (call from project's 'current' directory):

bc. MERB_ENV=production bundle exec rake rubytime:kickstart

Your server should be ready. If it's not, try deploying once again:

bc. bundle exec rake production vlad:deploy

For future deployments, use @bundle exec rake production vlad:[email protected] for normal deploys and @bundle exec rake production vlad:[email protected] if you need to change database schema.

h2. iPhone app

There is an iPhone app for RubyTime, called iRubyTime, "also available on GitHub":http://github.com/psionides/iRubyTime. You can also download it from "the AppStore":http://itunes.apple.com/us/app/irubytime/id355303566?mt=8. You need RubyTime 3.1.1 or later if you want to use iRubyTime.

h2. Contact & information

"www.rubytime.org":http://www.rubytime.org

"www.lunarlogicpolska.com":http://www.lunarlogicpolska.com

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].