199 € (excl. VAT)

License and purchase details

Offered by

Logo - Kevin Papst

Kevin Papst

Freelancer, PHP professional and Kimai maintainer since 2007

If you have any question, visit the developers homepage or use the email for direct contact .

Try it

You can test this plugin at https://demo-plugins.kimai.org:

Username: susan_super
Password: kitten

Find more test accounts here.

Start and stop timesheets with a barcode or RFID scanner for attendance time-tracking

A Kimai plugin, which allows using barcodes for punch-in and punch-out time tracking with Kimai. You can use it with an attached barcode scanner, or you run Kimai on a device (eg. 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:

  • an electronic USB numpad (like door-locks)
  • an RFID scanner that acts as keyboard

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:

  • Print the barcodes on your employee cards
  • Mount a tablet to the wall in your entrance room
  • Let your users check-in & check-out when entering the building by scanning the barcode of their employee card

You can test it in the “Plugins” demo.

Features

  • Start/Stop work with barcode scanner (eg. via USB), RFIS scanner (via USB) or a device camera (to scan barcode)
  • Upon starting/stopping a record via this plugin, the user will see a short overview screen with the entries of the current week (including some statistics)
  • New user profile screen for the “codes”
    • Display all codes for user
    • Generate a random code (automatically done if none is existing yet for the active code-type)
    • Re-use existing code for user by entering (or scanning) it manually
  • User specific settings to configured allowed start and end working time (user can only clock in between these times)
  • Supports the following 1D barcodes:
    • Code 128
    • Code 39
    • 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)
  • Optional: show active / inactive users in login screen
  • Many CSS classes to customize the look with Custom CSS Bundle

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.

Hardware

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.

Configuration

You have to configure the bundle before you can use it - you reach the configuration via

  • the Plugin screen (Preferences in action dropdown behind the plugin)
  • the Kiosk administration (cogs icon in the upper right)
  • the System configuration (Kiosk & Barcode section)

The following configurations are available:

Configuration Description
Login mode whether to use camera or usb mode
Code format you have to decide which code format you want to use
Barcode includes readable code whether the barcode in the user profile will include the human readable code
Duration to display confirmation dialog (in seconds) how long the start/stop screens will be shown after a successful scan
Activity the non-global activity that will be used to track the times

Permissions

This bundle introduces new permissions, which limit access to certain functions:

Permission Name Description
barcode_own_profile allows to see and administrate barcode for the own user profile
barcode_other_profile allows to see and administrate barcode for all user profiles
kiosk_own_profile allows to configure user specific kiosk settings (eg. start and end time) for the own user profile
kiosk_other_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 ROLE_SUPER_ADMIN.

Purchase

You can buy this item from the developer with a regular EU-invoice or via Gumroad (platform for selling digital goods). Please create an account during your purchase to receive software updates. Read more about the license and purchase options.

Every customer gets free access to a private GitHub repository (like a forum) for support and access to the latest updates. Sent your GitHub username and your purchase receipt to kevin@kevinpapst.de and you will receive an invitation soon!

Screenshots

Installation

Compatibility

Plugins should always be compatible with higher Kimai versions, the following list contains the plugin version and the required minimum Kimai version.

Bundle version Minimum Kimai version
1.8 - 1.9 1.15
1.7 1.14
1.5 - 1.6 1.11
1.4 1.10
1.0 - 1.3 1.8

Copy files

Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:

var/plugins/KioskBundle/

The file structure needs to look like this afterwards:

var/plugins/
├── KioskBundle
│   ├── KioskBundle.php
|   └ ... more files and directories follow here ...

Clear cache

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:

How to reload Kimai cache

bin/console kimai:reload --env=prod

It is not advised, but in case the above command fails you could try:

rm -r var/cache/prod/*

You might have to set file permissions afterwards:

Adjust file permission

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):

chown -R :www-data .
chmod -R g+r .
chmod -R g+rw var/

Test Kimai before executing these commands (they are likely not required in a shared-hosting environment). You probably need to prefix them with sudo and the group might be called different than www-data.

Create database

Run the following command:

bin/console kimai:bundle:kiosk:install

This will create the required database tables and update them to the latest version.

Install assets

The following command will install the required assets (images, javascripts, styles):

bin/console assets:install

Updates

Updating the plugin works exactly like the installation:

  • Delete the directory var/plugins/KioskBundle/
  • Execute all installation steps again:
    • Copy files
    • Clear cache
    • Update database with bin/console kimai:bundle:kiosk:install
    • Update assets with bin/console assets:install