~homeworkprod/verbleiber

Organizer presence system client using RFID and push buttons
83818fd1 — Jochen Kupperschmidt a month ago
Update copyright notes for 2024
db8f30a2 — Jochen Kupperschmidt a month ago
Update transitive dependencies
3f19b0d0 — Jochen Kupperschmidt a month ago
Update ureq to v2.9.6 (from v2.8.0)

clone

read-only
https://git.sr.ht/~homeworkprod/verbleiber
read/write
git@git.sr.ht:~homeworkprod/verbleiber

You can also use your local clone with git send-email.

#Verbleiber

#The System

The Verbleiber (German; roughly "Whereabouter") is a system for presence tracking.

It consists of:

  • hardware clients at different locations to sent presence information
  • a central backend to accept, persist, and provide presence information
  • a frontend to give an overview of the presences

Users can authenticate themselves via barcode or RFID transponder to a hardware client configured for and placed at a specific location and set their new status:

  • When they are arriving, they "check in" to that location.
  • When they are leaving, they move to the "travelling" status.
  • Just before they go to sleep, they can set that as their new status.

Multiple locations would have such devices set up, so when a person arrives at another location, they can "check in" there, changing their status from "travelling" to being at the new location.

#This Application

This application is a software implementation for such a hardware client in Rust.

To save time, the first set of clients was assembled from USB devices (cheap RFID reader, cheap gamepad with arcade buttons soldered to it) which are then connected to small form factor computers.

For future device generations, tiny computers (like Raspberry Pis) or even custom-built hardware would be a nice.

For an implementation of a backend and overview frontend, which are not covered here, check out the Whereabouts extension for the BYCEPS LAN party platform.

#Usage

Create a configuration file based on the provided example and adjust as necessary.

reader_input_device should reference a barcode/RFID reader, button_input_device a push button input device (e.g. a gamepad). It might be helpful to address the devices by their ID (if your system provides such symlinks in /dev/input/by-id) so they are independent of the varying event device number they get assigned depending on the order they are connected to the host and other factors.

Start the application by specifying a configuration file (-c/--config):

$ verbleiber -c config.toml

#Sound Formats

Ogg Vorbis is supported out of the box. However, the employed audio playback library (rodio) also supports MP3, FLAC, WAV, MP4 and AAC, but those have to be enabled as features in Cargo.toml and require recompilation of the program.

#License

Verbleiber is licensed under the MIT license.

#Author

Verbleiber was created by Jochen Kupperschmidt.