nicolabelluti 25127bee96
Check, format and test / build (push) Successful in 10m27s
feat(oxibadge): cache employee names locally and let readers be a list
Employee names are now cached locally (employees.toml, keyed by reader
index then employee id) instead of being re-fetched from the time
clock on every month: load_employees only asks the device for ids not
already in the cache. When a month has employees the cache doesn't
know yet, a new screen (NewEmployees.svelte) lets the user name them
before continuing to the review screen; the chosen names are local to
Oxibadge only, never written back to the device. The same cache can be
managed afterwards from a drawer reachable from the time clock card in
Settings ("Gestisci dipendenti"), reusing the rename-in-row pattern
from the original mockup.

Settings.readers is a list again (was flattened to a single `reader`
object) so multiple time clocks can be supported later; only the first
one is used today.

Also:
- buildEmployees() now derives the employee list from the month's
  records instead of from every cached name ever seen, so the review
  screen no longer shows employees unrelated to the selected month.
- Renaming an employee from the review screen's pencil button now
  actually persists to the cache (the callback existed but was never
  wired up).
- Translated to English a number of Rust/TS/Svelte comments that had
  been written in Italian; only the i18n locale files should contain
  Italian.
- Minor dedup: extracted PillButton.svelte (was duplicated inline in
  ReaderCard), promoted the repeated .mono CSS rule to app.css, moved
  initials() out of the review feature into $lib/text.ts.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 20:04:37 +02:00
2024-05-05 16:45:55 +02:00
2024-05-05 16:36:41 +02:00
2026-10-06 20:31:24 +02:00

R701 | Oxibadge

Rust Claude Code GNU AGPLv3.0 License Buymeacoffee
CI Badge


A reverse-engineered client for the R701 attendance reader by I.P.S. Informatica

This repository is a Cargo workspace with two members:

  • r701/ — the async Rust library that speaks the device's TCP protocol.
  • oxibadge/ — Oxibadge, a minimal Tauri + Svelte desktop client built on top of the library.

If you want to read about the reverse engineering attempt behind the library, check out https://nicolabelluti.me/series/attendance-reader/.

S
Description
No description provided
Readme AGPL-3.0
564 KiB
Languages
Rust 100%