Режим кіоску з підтримкою штрихкодів, RFID, Web NFC

Відстеження часу відвідування в оточенні, де користувач не має доступу до Kimai (наприклад, на складі), з записом початку та зупинки за допомогою сканера штрихкоду або RFID.

Kevin Papst
Пропозиція від
Kevin Papst

A Kimai plugin, which allows using barcodes for punch-in and punch-out time tracking with Kimai. You can use it with a barcode scanner, with a web-camera, with a RFID reader or an NFC reader.

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 number-pad
  • an RFID scanner that acts as keyboard
  • an Android device with Web NFC support (only Chrome browser)

This bundle is the solution for you, if you want to use Kimai in a kiosk mode, where users register their attendance time through punch-in (coming) and punch-out (leaving) mode.

It could be as simple as:

  • Hand out NFC or RFID tokens to your employees
  • Mount a tablet to the wall in your entrance room
  • Let your users check-in & check-out when entering the building by scanning their tokens

You can test it in the “Plugins” demo.

Features

  • Start/Stop work with
    • Barcode scanner (via device camera, only works via HTTPS)
    • Barcode scanner (via USB or Bluetooth)
    • RFID scanner (via USB or Bluetooth)
    • Web NFC (see docs)
  • 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

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

Self-built setups

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.

Above are affiliate links for Amazon (Germany) where I bought them myself.

Meeting-Room Tablet with NFC

This proposal contains a tablet which can be wall- and VESA mounted, has WLAN and only needs a tiny AC adapter. The NFC reader is on the front, so users can easily scan their tokens.

  • Meeting room tablet: AllNet DE AllNet AT (this only works if you switch to the AT Shop through the dropdown in the header of the Shop)

You need a Kiosk application, which makes sure that users always see the login screen:

And you need a bunch of NFC tokens:

Licenses

The following libraries are used when using barcodes with the Kiosk mode:

  • Barcode scanning: https://github.com/ericblade/quagga2 (Version: 0.0.18, License: MIT)
  • Barcode generation: https://github.com/metafloor/bwip-js (Version: 2.0.6, License: MIT)

Установка

Копіювати файли

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 ...

Очистити кеш

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/

You might not need these commands in a shared-hosting environment. And you probably need to prefix them with sudo and/or the group might be called different from www-data.

Створити базу даних

Run the following command:

bin/console kimai:bundle:kiosk:install

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

Встановити компоненти

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

bin/console assets:install

Оновлення

Updating the plugin works exactly like the installation:

  • Delete the directory var/plugins/KioskBundle/
  • Execute all installation steps again:
    • Копіювати файли
    • Очистити кеш
    • Update database with bin/console kimai:bundle:kiosk:install
    • Update assets with bin/console assets:install

Журнал змін

Version 2.11.1

Compatibility: requires minimum Kimai 2.21.0

  • Use MapEntity for routes to fix deprecations

Version 2.11.0

Compatibility: requires minimum Kimai 2.21.0

  • Removed duplicate “Barcode” link in user-profile

Version 2.10.0

Compatibility: requires minimum Kimai 2.21.0

  • Refactoring: use new query and repository methods

Version 2.9.0

Compatibility: requires minimum Kimai 2.11.0

  • Compatibility with composer installation
  • Inline Nelmio API Doc configuration
  • Inline JMS Serializer configuration

Version 2.8.2

Compatibility: requires minimum Kimai 2.11.0

  • Added support for NFC with Android-Kiosk: www.android-kiosk.com

Version 2.8.1

Compatibility: requires minimum Kimai 2.11.0

Changed: link to new documentation page

Version 2.8.0

Compatibility: requires minimum Kimai 2.11.0

  • Added: system configuration kiosk.enabled to disable Kiosk via local.yaml
  • Added: allow to set NFC code in edit screen via WebNFC
  • Changed: support attribute caching in Voter
  • Changed: simplified buttons in users kiosk profile

Version 2.7.0

Compatibility: requires minimum Kimai 2.11.0

  • Added: show kiosk codes as user profile tab
  • Added: permission kiosk_enabled to allow disabling Kiosk for entire user roles
  • Added: print barcode on click to the image
  • Changed: removed barcode_own_profile and barcode_other_profile permissions, replaced by kiosk_own_profile and kiosk_other_profile

Version 2.6.0

Compatibility: requires minimum Kimai 2.11.0

  • Changed: CSS files and language handling, required for Kimai 2.11.0
  • Changed: Replaced deprecated RestRoute attribute with SF native one

Version 2.5.0

Compatibility: requires minimum Kimai 2.1.0

Use annotation type for routes

Version 2.4.0

Compatibility: requires minimum Kimai 2.0.33

Fixed: possible pagination issues

Version 2.3.1

Compatibility: requires minimum Kimai 2.0.29

  • Fixed: upgraded quagga from 0.0.18 to 1.8.2
  • Fixed: upgraded bwip from 2.0.6 to 3.0.1

Демо

Ви можете перевірити це розширення на demo.kimai.org:

Ім'я користувача: susan_super
Пароль: password

Додаткові тестові обліковки можна знайти тут.

Скріншоти

Screenshot
Відображає список усіх користувачів з налаштованими типами кодів входу
Screenshot
Налаштуйте плагін Kiosk відповідно до своїх потреб, режим входу та формат коду залежать один від одного
Screenshot
Цей новий штрихкод тепер можна надрукувати та видати користувачеві
Screenshot
У режимі входу "Штрихкод з USB-сканером" зображається екран, де попередньо вибрано поле для введення коду і сканер надішле код після його розпізнавання
Screenshot
Екран входу з можливістю активації списку користувачів
Screenshot
Режим входу "Штрихкод з вбудованою камерою" показуватиме відео з камери та постійно скануватиме штрихкоди
Screenshot
Сканування наявного коду користувача запускає новий табель обліку робочого часу
Screenshot
Або, якщо табель уже запущений, він буде зупинений

FAQ

Ці ЧаПи надані розробником пропозиції.

You can buy the plugin via the Marketplaces 'Lemon Squeezy' or 'Gumroad' and pay with Credit Card or PayPal. Both offer instant access to the purchases.

Support-questions, bug-reports and feature-requests will be answered in this Github repository

Пропозиція від

Kevin Papst

Building Kimai since 2009

Якщо у вас виникли запитання, скористайтеся наведеною нижче контактною інформацією, щоб зв’язатися безпосередньо з розробником.
Top