CARSU MYPCCARSU MYPC

/ built for Caraga State University ICT labs

A fair turn at every lab PC.

CARSU MYPC coordinates access to shared lab computers. Students check in at the kiosk, staff manage the room from one console, and each workstation stays locked until the server approves a time-limited session.

System status

Online
System shape
3 apps + server
Current release
v0.1.23

/ the working parts

Four working parts, with one server making the final call

4 running · 1 planned

Client

At each workstation

01

Installed 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

Kiosk

At the lab entrance

02

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

Manager

For ICT staff

03

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

04

The 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

/ how the room stays in sync

One server keeps the room in agreement

The Client, Kiosk, and Manager all report to the Rust server. UDP helps them find it on the lab network, HTTP carries direct requests, and WebSocket keeps status and commands moving without a page refresh.

Inside the lab

workstation

Client PCs

one Tauri client on every PC

check-in

Student kiosk

identity and workstation assignment

UDP discovery · WebSocket state

Server and storage

source of truth

CARSU Server

Rust · Axum · Tokio

Lab database

students and sessions

Settings database

operator configuration

HTTP requests · WebSocket state

ICT staff

local control

Primary Manager

admin PC · bundled server sidecar

remote control

Remote Manager

staff laptop · LAN or tunnel

Work the server runs on its own

Session expiry

every 60 sec · return PC to LOCKED

Room statistics

every 10 sec · refresh occupancy

LAN discovery

help approved devices find the server

Outage repair

close orphaned sessions · restore time

Records kept in SQLite

01

Endorsed machines

Approved hardware · signed identity

02

Clients

Current state · heartbeat · machine details

03

Students

Directory · remaining time · validation

04

Sessions

Start, end, and workstation history

05

Access tokens

One-time entry for an assigned student

06

Tamper events

Security record · staff resolution

/ trust and recovery

The server checks who sent every command

01

Known workstations

A client proves which lab PC it belongs to before the server accepts its status or sends it a command.

Device identity
02

Checked admin actions

The server checks a separate administrative credential for sensitive work. The Manager interface is never trusted on its own.

Server checked
03

Sealed recovery data

The workstation encrypts recovery data with a public key. Only the private key held by the server can open it.

Public key sealed