The Stop… Camping Time! time registration and invoice application.
Go to file
Paul van Tilburg 7531866680 Merge branch 'release/1.16.0' 2015-06-20 22:06:45 +02:00
db Added configuration files, directories and README information for deployment. 2011-11-15 15:46:08 +01:00
locale Added dutch i18n for invoice generation (controller, template). 2011-11-09 18:31:23 +01:00
public Enable responsiveness; drop/remove the unused Bootstrap theme 2015-06-20 17:59:47 +02:00
templates Add some bottom margin for button groups 2015-06-20 21:53:19 +02:00
tmp Added configuration files, directories and README information for deployment. 2011-11-15 15:46:08 +01:00
.gitignore Ignore generated YARD documentation and cache 2014-11-01 21:37:30 +01:00
CHANGELOG.rdoc Update the changelog for the 1.16.0 release 2015-06-20 22:06:27 +02:00
COPYING Added COPYING file for GPL version 2. 2011-11-10 15:28:37 +01:00
Dockerfile Add Dockerfile for deployment on Debian Wheezy 2014-10-18 21:29:40 +02:00
README.rdoc Mention the responsiveness as a feature 2015-06-20 22:06:37 +02:00
Rakefile Add a Rakefile for the 'yard' documentation task 2014-11-01 21:50:24 +01:00
config.ru Added configuration files, directories and README information for deployment. 2011-11-15 15:46:08 +01:00
config.yaml.example Add configuration for time resolution rounding 2014-10-25 21:35:53 +02:00
stoptime.rb Bump version to 1.16.0 2015-06-20 21:53:43 +02:00

README.rdoc

= Stop… Camping Time! documentation

A (Camping) web application for task/project time registration and
invoicing.

== Features

* Running project & tasks overview
* Timeline overview of registered time
* Management customer information
* Administration of running and billed projects/task with
  * fixed cost, or
  * hourly rates
* Administration of invoices
* Invoice generation in PDF/LaTeX format
  * can include a time specification if required by the customer
* Fully responsive (can be used om smartphone, tablet and desktop)

== Requirements

Stop… Camping Time! is a Camping application, so you need:

* Ruby 1.9 (>= 1.9.3) or 2.x
* Camping (>= 2.1.532) with
  * Active Record (>= 3.2)
  * Mab (>= 0.0.3) , and optionally:
  * Thin or Mongrel (for testing and deployment without Apache/Rackup)

The following Ruby libraries are required:

* ActionPack (>= 3.2) for ActionView
* ActiveSupport (>= 3.2)
* Rack (for deployment using Apache/Rackup)
* Sass or Haml (which at the moment includes Sass)

and the following LaTeX programs:

* pdflatex, with:
  * isodoc package (>= 1.00)
* rubber

== Installation

For now, Stop… Camping Time! is in a developing state and not ready for
site-wide deployment yet.

== Usage

Stop… Camping Time! can be deployed directly using the Camping server
(which uses Mongrel, or optionally Webrick).  This is for simple
deployments or for testing purposes.
Easy deployment via Apache is possible using Phusion Passenger, aka
_mod_rails_ or _mod_rack_ (see http://modrails.com).  See below for the
basic instructions.

Note that this application is a valid Rack application (see
http://rack.rubyforge.org/) and can be deployed by anything that supports
them.

=== Camping Server/Mongrel

Simply run from the command line:

  $ camping stoptime.rb

and head over to http://localhost:3301/ to view and use the web
application.

=== Phusion Passenger (mod_rails/mod_rack)/Apache

Camping applications are Rack applications.  Deployment follows the
standard way of deploying Rack applications using mod_rack.
Stop… Camping Time! additionally needs to have the +xsendfile+
module installed.

*N.B.* Ensure that Apache can, in both types of setups, write in the +db/+
and +public/+ folder.

==== Deployment on a virtual host

Use the following basic configuration:

  <VirtualHost *:80>
     ServerName some.domain.tld
     DocumentRoot /path/to/stoptime/public
     <Directory /path/to/stoptime/public>
         Allow from all
         Options -MultiViews
     </Directory>

     XSendFile on
  </VirtualHost>

Now, restart Apache and visit http://some.domain.tld/.

==== Deployment on a sub URI

For deployment on a sub URI, let us assume there is some virtual host
serving files under +/path/to/document_root+, i.e. something like:

  <VirtualHost *:80>
     ServerName some.domain.tld
     DocumentRoot /path/to/document_root
     <Directory /path/to/document_root/
         Allow from all
     </Directory>
  </VirtualHost>

Then, add a symlink from the +public+ subdirectory of to the document
root, e.g.

  ln -s /path/to/stoptime/public /path/to/document_root/stoptime

Then, add a +RackBaseURI+ option to the virtual host configuration.
For example:

  <VirtualHost *:80>
    ServerName some.domain.tld
    ...

    RackBaseUri /stoptime
    <Directory /path/to/document_root/stoptime>
      Options -Multiviews
    </Directory>

    XSendFile on
  </VirtualHost>

Now, restart Apache and visit http://some.domain.tld/stoptime.

For more extensive information, please refer to the documentation of
Phusion Passenger:
http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_rack_based_ruby_application

== License

Stop… Camping Time! is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.