Client
At each workstation
01Installed on every lab PC. It keeps Windows locked between sessions and opens the desktop only after the server accepts the student's token.
- Locks the keyboard, shell, and window focus
- Keeps the session timer and reports status
- Accepts remote lock, unlock, and logout commands
- Reports software use and screen captures
- Guides workstation setup and recovery
Tauri · Rust · Windows
Students check in here. The kiosk verifies their record, assigns an eligible workstation, and issues a token that works once.
- Reads a QR code or accepts a student ID
- Handles reservations and walk-in assignment
- Issues one-time access tokens
- Shows current occupancy and available PCs
Tauri · Rust · Windows
ICT staff use the Manager to see the room, control sessions, manage student access, and run the bundled server when the lab operates locally.
- Shows a live floor plan and workstation status
- Sends unlock, logout, and room-wide notices
- Validates students and manages quotas or bans
- Exports analytics and detailed session history
- Connects to a local sidecar or remote server
React · Vite · Zustand · Tauri
Server
The room's authority
04The Rust server decides who may use a workstation and for how long. Every app reports to it, so active sessions have one authoritative record.
- Routes live state and commands over WebSocket
- Checks sessions every 60 seconds and statistics every 10
- Answers UDP discovery on the lab network
- Repairs orphaned sessions after a power loss
- Keeps lab records in encrypted local SQLite storage
Rust · Axum · Tokio · SQLite
Reservation portal
Advance booking · planned
A future self-service page where students can check availability and request a workstation before they arrive at the lab.
Planned