API

The Time2Emphasize App automatically generates an API-Key, which is used for connections. This is to be replaced with <customer> below.

Changing the language

The Time2Emphasize App will open in the languages detected on the device and which is supported. The language can be changed via the following links:

Export, import and reset

The Time2Emphasize App allows field-layouts (in JSON-format) and all tracking data (in CSV-format) in the dialog "export, import and reset" to be exported (create a backup) and to be imported (restore a backup). All tracking data may also be deleted (reset).

Reset all settings

The Time2Emphasize App can be reset to default by opening:

https://time2.emphasize.de?a=reset

Attention: this deletes all field-layouts and tracking data from the device!

Creating connections

Connections can created by opening the links as described below. Alternatively this can also be configured manually in the dialog available over the menu item "connections".

connections dialog

Receiving activities for example by scanning QRCodes

https://time2.emphasize.de?m=e

By printing the page (Ctrl + P) a list of all QRCodes is printed.

In the toolbar mode qrcode a QRCode mode button appears, which will display each QRCode per field. The QRCode images are at the same time a link. By copying this link one may see the <channel> part in it, which is to be used in the following examples:

Placing the pawn

GET https://time2.emphasize.de/connect/<channel>/push/<fieldName>/<fieldColor>

where /<fieldColor> is optional.

Taking the pawn off the board

GET https://time2.emphasize.de/connect/<channel>/off

Add an info

GET https://time2.emphasize.de/connect/<channel>/info/<infoText>

Pairing with another device

https://time2.emphasize.de?m=a

After opening this the dialog reachable over the menu item "connections" can be used to copy the pairing link. This should then be opened on the other device. Consider resetting the device beforehand.

Connection for a spectator

https://time2.emphasize.de?m=v

After opening this the dialog reachable over the menu item "connections" can be used to copy the pairing link and send this link to the spectator. By opening the link the spectator can view the layout and position of the pawn without being able to change either of them.

Connection to display a status badge

https://time2.emphasize.de?m=p

After opening this the dialog reachable over the menu item "connections" can be used to copy the html-code to insert into any website to share the current status publicly.

time2emphasize-badge

It is possible to add badges of several Time2Emphasize instances on the same page by adding the <script>...</script> part only once (preferrably at the end just before the closing body tag). An example showing this layout:

<!DOCTYPE html>
<html>
  <body>
    person A state:
    <a data-channel="y89h2je1vs" href="https://www.emphasize.de" title="free time-reporting tool" class="time2-badge"> Time2Emphasize <span class="time2-event">time-reporting tool</span></a>
    and person B state:
    <a data-channel="a9110wvv67" href="https://www.emphasize.de" title="free time-reporting tool" class="time2-badge"> Time2Emphasize <span class="time2-event">time-reporting tool</span></a>

    <script>...</script>
  </body>
</html>

Connecting to a storage

https://time2.emphasize.de?m=s&c=<customer>&d=<url>

Download to install a storage service: ZIP

Requirements: Apache, PHP and PDO-SQLite available! To check this and determine the <url> open the following in your browser:

<url>/<customer>/check_pdo.php

check_pdo.php can be deleted on your server thereafter.

Placing the pawn

POST <url>/<customer>
PAYLOAD [{"s": %CURRENT_TIMESTAMP%, "n": "field name", "c": "#ffab11"}]

The field name "field name" and color "#ffab11" are to be replaced by the corresponding ones of a visible field.

Further Details: 1

Taking the pawn off the board

This is achived by limiting the previous event (in the example below the "e"-value).

POST <url>/<customer>
PAYLOAD [{"s": 1704270072000, "n": "field name", "c": "#ffab11", "e": %CURRENT_TIMESTAMP%}]

Further Details: 1

Add an info

POST <url>/<customer>
PAYLOAD [{"s": %CURRENT_TIMESTAMP%, "i": "some info"}]

Further Details: 1

Setting a layout

POST <url>/<customer>
PAYLOAD [{"v":"2","format":"time.emphasize","r":{"s":[{"s":[{"n":"one","c":"#4aff00"},{"n":"two","c":"#ffaa11"}],"l":"h"},{"n":"three","c":"#308a11"}],"l":"v"}}]

The example sets a layout with three fields "one", "two" and "three".

Example layout

Connection to invoice generator

Invoices are generated by grouping events into PDFs as attachments with times in detail. The FPDF Library is used and in index.php in the function buildInvoice the layout is defined.

To add a connection to a invoice generator open the following URL:

https://time2.emphasize.de?m=i

or alternatively add a "invoice generator" connection in the dialog available over the menu item "connections".

The connection will work with a local URL (only on the same device) - because the very security relevant data is used for this process, a different setup is not adviced.

Download to start the invoice generator locally: ZIP

Requirements: PHP availanle!

To launch execute run.sh or run.bat.

The logo.png should be edited and your own logo should be inserted/replaced. In the mapping.php in function detectInvoices the event entries are assigned to clients (grouped by what stands infront of a ':' character). In the mapping.php in function mapCustomers client die details, addresses, hourly rates, tax rates and texts can be adapted.

Now click in the menu on "create reporting", define the time range and with entries visible click on generate invoice to retrieve a ZIP with invoice-PDFs.

example generated PDF invoice


Footnotes

  1. Instead of %CURRENT_TIMESTAMP% one can also specify a certain unix timestamp (GMT with milliseconds), for example 1704270072000 for the 3.1.2024 in the morning. 2 3