Kimai maintainer since 2007
A Kimai plugin, which allows using barcodes for
punch-out time tracking with Kimai.
You can use it with an attached barcode scanner, or you run Kimai on a device (e.g. tablet) with a built-in camera.
It also supports a “freestyle” mode, which allows to enter any free configurable code (up to 120 characters), so you can also use other devices for starting/stopping:
If you want to use Kimai in a kiosk mode, where your users should only register their attendance time through
punch-in and punch-out mode when entering/leaving the building, then this bundle is the solution for you.
It could be as simple as:
You can test it in the “Plugins” demo.
UPC-A(scanner needs to transmit check digit)
Code 2 of 5
Code 2 of 5 interleaved
Codabar(scanner needs to transmit start & stop digits)
You need to configure a non-global activity for starting the record via this plugin. This will be used for every recorded timesheet that is created using the kiosk mode.
This is NOT a hardware recommendation, but more an idea for possible use-cases.
I tried the linked products and even though all scanner are rather cheap, they work without problems.
The above are affiliate links for Amazon (germany) where I bought them myself.
You have to configure the bundle before you can use it - you reach the configuration via
Preferencesin action dropdown behind the plugin)
Kiosk & Barcodesection)
The following configurations are available:
||whether to use camera or usb mode|
||you have to decide which code format you want to use|
||whether the barcode in the user profile will include the human readable code|
||how long the start/stop screens will be shown after a successful scan|
||the non-global activity that will be used to track the times|
This bundle introduces new permissions, which limit access to certain functions:
||allows to see and administrate barcode for the own user profile|
||allows to see and administrate barcode for all user profiles|
||allows to configure user specific kiosk settings (eg. start and end time) for the own user profile|
||allows to configure user specific kiosk settings (eg. start and end time) for all user profiles|
By default, these are granted to each user with the role
The following table contains a comparison between plugin and required minimum Kimai version.
|Bundle version||Minimum Kimai version|
|2.3.0 - 2.3.1||2.0.29|
|2.0 - 2.2.0||2.0|
Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:
The file structure needs to look like this afterwards:
After uploading the files, Kimai needs to know about the new plugin. It will be found once the cache was re-built. Call these commands from the Kimai directory:
It is not advised, but in case the above command fails you could try:
You might have to set file permissions afterwards:
You have to allow PHP (your webserver process) to write to
var/ and it subdirectories.
Here is an example for Debian/Ubuntu (to be executed inside the Kimai directory):
Test Kimai before executing these commands (they are likely not required in a shared-hosting environment).
You probably need to prefix them with
the group might be called different than
Run the following command:
This will create the required database tables and update them to the latest version.
There are no commands defined in the "kimai:bundle:XYZ" namespace., then either the directory has a wrong name (must be var/plugins/KioskBundle/) or you forgot to clear the cache (look above).