A web application for time tracking and invoicing.
Initially created for the Koster Consulting AG and in productive use since multiple years.
- Time & absences tracking
- Time & invoice reports
- Generate invoices based on tracked time
- Send invoice by e-mail
- Manage invoice payments
- and many more...
Use docker for development, testing and production.
Install dependencies with mise:
mise install
Start postgres database:
docker compose -f docker-compose.dev.yml up postgres
Edit configuration file .env.development
if necessary.
Start rails server:
bundle exec rails s
Access web application: http://localhost:3000
To run the tests locally, ensure that postgres is running.
docker compose -f docker-compose.dev.yml up postgres
bundle exec rspec
Run tests inside docker container with:
docker compose -f docker-compose.test.yml run --rm tests
Change values in .env.production
accordingly.
Start server with:
docker compose -f docker-compose.prod.yml up kms
Access web application: http://localhost:3000
See .env.example
for example configuration.
The invoice parameters are configured with env variables:
- INVOICE_IBAN
- INVOICE_VAT_NUMBER
- INVOICE_SWIFT
- INVOICE_MAIL_FOOTER (use \n for newlines)
To use a company template for the invoices, set the path to the corresponding PDF as INVOICE_COMPANY_TEMPLATE_PATH
, e.g.
INVOICE_COMPANY_TEMPLATE_PATH='/home/kms/invoice_template.pdf'
In development no emails will be sent. One can access all emails here: http://localhost:3000/letter_opener For more details, see https://github.com/fgrehm/letter_opener_web
For any questions drop me a mail: kms-opensource@use.startmail.com