Working on getting a basic Time sheet feature.

 Current status

The jQuery lib we used is dead still alive but not updated anymore:


Preliminary phase

  1. When jTrack is not suitable anymore: Research (if any) available PWAs and libs are ready to use (license compatible, dev phase requirements met)
    1. if not: Research if a "PWA framework" is necessary to develop one
      1. if yes: choose one:
        • Ionic?
        • Polymer?
        • ReactJS?
        • VueJS?
        • ...?
      2. else: develop in pure HTML5 and JS/jQuery from scratch (with Bootstrap classes)
  2. Do we need dedicated features integrated/enhanced to achieve everything we need or Profile(s) would do the same job?

Development phase

  1. If an existing PWA already available to use
    1. add to packagist and integrate with Trackers
    2. else: code one (Fabio) as a proof of concept aka version 0.1 and integrate with Trackers


The solution must consist of two main parts:

  1. a Time Tracking app (to measure the time spent on projects)
  2. Time Sheet (Time Tracker) to store the measured data

Whether a new solution is needed or not, here are the requirements:

  • Time Tracking
    • Simple, nice, easy to use interface (see Toggl for inspiration)
      • Task name
      • Project name
        • Client name
      • Start/Stop button (keep focus only on one task at a time)
      • Continue button on previously tracked items
      • All fields editable (details in pop-up? x-editable lib could be used?)
    • Must work in any modern browser and desktop (OS independent - native app or at least browser extension needed or just browser window?)
    • Must work on iOS and Android (native apps needed or just web app in native browser?)
    • Must warn user if screen is idle for specified amount of time (keep running/discard since the idle time)
    • Sync with Tracker - store data to display the TimeSheet summary/reports
  • Time Sheet (a tracker only solution or needs a dedicated feature?)


In phase one, develop a PoC PWA Timer (Time Tracker).
Phase two, work with the tracked data and re-use in Reports, Invoices, Payments and related features...




Fabio is going to develop the PWA with luci's supervision.


  • If integration can be made using Tiki Profiles and existing features - code the profile(s) in YAML on

Follow-up phase

  • Announce on dev list, article and social channels
  • Public beta testing
  • Write docs

The information below might be out-dated but is kept for review:

jTrack was added to Tiki9 (yay!), now let's progressively make it better and integrate with the rest of Tiki (task tracking, invoices, etc.)

Use cases

  • a company which hires freelancers on projects (and some of that time needs to be re-invoiced to the end customer)
  • manage time sheet for 15-person not-for-profit association.







  • Regis Barondeau
  • Marc Laporte
  • Kimberly Fink
  • Michael Pilling
  • Xavi (his boss at work is highly interested in finding some time tracking solution for this work team, out of Tiki if Tiki doesn't provide it)
  • Robert Plummer
  • luci


Documentation of the current implementation for Tiki9 is here, as a work in progress:

Other wiki-based wishes & infos


  1. extend trackers, like
  2. use Spreadsheet? (for calculation, etc)
  3. new standalone features?
  4. A combination? (add time in trackers, make calculations in spreadsheet, and then, send to Payment.

Feature requests

  • How to send invoiced time to Payment?
  • Have a way to have a running total (so hours are added as they are done, but a negative entry is done when an invoice is prepared)
    • For freelancers: thus, the customer knows at any time how many hours are done (and will later be billed)
    • For staff: staff typically get a fixed paycheck for a fixed number of hours. However, the actual number of hours worked will fluctuate. So each paycheck would influence the number of hours in the bank. Vacation, holiday, sick, personal days, etc will also influence. So both employee and organization know how many hours are in bank or owed. This needs to be flexible because rules can change over time and are different from organization to organization.
  • Ability to import data from csv, since in some cases, the person logs its time in local on a spreadsheet, and then, data sets can be added (imported) into the time sheet at once.
  • Somehow, alow to relate records in the time sheet to projects (from a db of projets stored in a tracker?)

Mike's thoughts

(based on observations from person and my software consulting on time tracking)

  • calendar based time tracking (like google calendar) is very popular and the closest thing to the classic "daytimer" so calendar based (calendar tracker integration?) would be a big wish for this.
  • timecards need pending and approved or finalized status. Items are not billable / payable until they have been approved.
  • adding a charge from a defined list of products/services to a timeblock would be great.
  • timeblocks could be associated with projects and or clients (like tags or categories)
  • ical integration for outlook / goocal would be awesome.
  • one set of tags/ categories should apply to "status" - a simple workflow of "pending/tentative, active (to be done), done, closed, canceled. Trackers use of pending active closed may be too hardwired or can we expand the number of statuses?

Robert Plummer's thoughts

I just integrated a working example of "Time Sheet" using jTrack, which is a plugin that is designed to track time locally in your browsers cache. I've used TrackerQueryLib to pull tracker data from the Time Sheet Profile, my next step will be to create a plugin that can be used in a page, and then to extend to be used within Invoice as a means of creating line items.

cdrwhite: Analysis/Requirements for timesheets

This has been translated from our german intranet page

Existing solutions

This is an incomplete list of current time sheet packages with web interface and or API. Kimai and mite look convincing, and JTrack looks good eanough for basic use cases, combined with trackers (like in profile Time_sheet).

Convincing?: 1=yes .. 3=has potential … 5=no, 99=unknown
No*: A php script on a local server (in tiki) could interface via API with the commercial provider.

Related: Invoice and Payment

Collections of ideas

My Requirements (cdr white)

  • a database server (MySQL/PostgreSQL/PHP accessible) as backend
  • objectoriented PHP-library provides the core functionality
  • the library can be accessed via REST-Api and a web interface
  • possible clients/interfaces:
    • API for external applications
    • Web-Interface
    • IPhone-App
    • Firefox-Plugin
    • Phone-API
    • Hardware terminals with chipcard
  • Each project should have several customers, who will receive invoices
  • Each customer can have n users (employees/contractors/freelancers) and projects, A customer is automagically the first employee for himself and has a global project
  • Each customer can add employees to projects and define internal and external "prices" for the recorded times
  • Each project can have different categories, e.g. "Development", "Meeting", "Documentation"
  • Each customer can have multiple clients and give them read access to projects (external times/prices), a client will be another customer of the service
  • Times must be recorded via one click (log in/out) and by entering start and end times


The data being processed is relvant for the german BDSG, as these informations are personal informations. Therefore the need for security is high/very high, it must be assured that data manipulation/read will be done by by the right people.
Web based communication will be encrypted via https, maybe even with client certificates.


  • In a project, there could be a freelancers, a web agency and a client. The timesheet information should be available to all three.
  • Should be easy to have a running total of time per project
    • Total done (by team member)
    • Estimated done so far (but not received time sheet or invoice)
    • Total done + estimated done
    • Estimated for the rest of the project (by team member)
    • Total estimated
  • From the time sheet, should be easy to make an invoice, and from that invoice, a Payment.

So we need Distributed data

Valerie's comments

I've been thinking about this in terms of the smartphone as the most likely input device for time tracking issues, that ultimately need to seamlessly be captured into accounting and tax preparation solutions.

Some people will simply use a calendar and most likely something like Outlook or Google rather than Tiki.

Others will prefer to use a stop watch on their phone that is captured as a time sheet. The truly technical junkies will want to use the GPS to track their mileage.

The problem with time tracking for the individual today is that inevitably different groups relevant to the professional and personal realms settle on different solutions. It is difficult to manage this through a single interface with the result that things that could be simple to handle once in real time, end up getting backlogged.

Therefore, flexibility to let users choose their own solutions for key components (calendars, task lists, time and mileage trackers). So while Tiki in many respects DOES project management, the individual participants in the collaboration should ideally be able to use their choice of PIM-type tools. Support for standards and integration are critical to achieving this goal.

My investigations into this issue have led me to conclude that Toggl is worth looking into. It has a very nice simple interface, an API, and attractive pricing, including an exceptionally generous entry level free option (5 users/unlimited projects).

At this point I am not sure that it is worth integrating Toggle with Tiki (it depends on how much the reporting could be handled by other Tiki features and how valuable integration with Basecamp would be ... I am assuming that iCal and RSS integration isn't so valuable).

PluginTimeSheet idea

Perhaps a spreadsheet or a tracker but what about a wiki plugin?


  • Less overhead that firing up a tracker
  • Still makes total
  • Easy to copy/paste to another site
  • Can be used in any Tiki project, and people watching the page can receive email notifications
  • Eventually could be used Offline

Features to be coded

  • "Time Worked" would make a total
  • "Time Worked" could be used as a variable in a page to add up values

{TIMESHEET(user=Sam, category=can come from tracker data, categories, etc.)} Date and time start | Date and time end | Time worked | Description | Category {TIMESHEET}

TikiFest 2013 Report

1. Timesheet
2. Expenses reports
3. Tasks

Employee or contractors

  • Keep track
  • Time
  • What was invoiced today
  • Their client

  • Date { time entries }
  • # Hours (*1)
  • Client
  • Project/Dept.
  • Task/Description
  • Non billed hours
  • Start & stop time (*1)
  • Hourly rate?
  • Expense report?

-> invoice numbers it relates to -> contractor -> agency
-> invoice numbers it relates to -> agency -> to customer


  • Dashboard/Report
  • # Unbilled hours & detail of timesheet
  • # Billed hours
  • Printable
  • Watch or weekly report


  • Report per project with aggregate of all contractors
  • Bank of hours vs. invoice


Show PHP error messages