Version

v0.1.39
Apps
Client · Kiosk
Decides
One Rust server
Runs on
Windows PCs · NComputing
New!CARSU MYPC · End of Day Wrapped

Your day at the lab, wrapped.

Only you see it. It opens from the QR code on your own PC. Feel free to export and share wherever!

  1. 01

    Open My lab time

    At a lab PC, choose See it on my phone and scan its QR code. Your phone stays signed in for 30 days.

  2. 02

    Play my day

    Each day you use the lab becomes a story, one card at a time, with its own music.

  3. 03

    See your day hour by hour

    When you came in, the PCs you used, your longest sitting and the time left this week.

  4. 04

    Share it

    Export the wrap for your story!

Open My lab time
New!

Lock your student ID.

Your ID number is on your ID. Without a lock, anyone who has it can sign in and use your hours.

  1. 01

    Pick a PIN when you log out

    The exit sheet asks you to lock your ID. Choose six digits only you know, or a password.

  2. 02

    Save your recovery code

    It's shown once. Write it down or take a photo.

  3. 03

    Next time, type your PIN

    Scan your ID at the kiosk as always, type the code at the PC, then your PIN.

  4. 04

    Forgot it?

    Type your recovery code instead. Lost that too? Ask the lab staff.

Your PC · sign-in
Added

Out of hours? Borrow a friend's.

Only with your friend's permission. It's their ID and their hours, so always ask first. They can say no.

  1. 01

    You run out of hours

    Your PC locks once your 5 hours for the week are used up.

  2. 02

    Ask a friend first

    Ask a classmate who still has hours left if you can use their ID.

  3. 03

    Scan their ID at the kiosk

    Once they say yes, scan their ID and pick a PC, the same way you do with yours.

  4. 04

    Locked ID? They type the PIN

    If their ID is locked, the PC asks for their PIN. Your friend types it in for you.

  5. 05

    Keep studying

    The time comes out of your friend's hours, not yours, so borrow only what you need.

Click the ID to flip · drag to swing

Watch how it works

Walk in, sit down, start studying

  1. Kiosk · lab entrance
    Kiosk workstation board showing ready, in-use, and ending-soon PCs
    01

    Pick a free PC

    The kiosk by the door shows every PC in the room. Green ones are free, yellow ones are about to be free, and red ones are taken. Tap the one you want.

  2. Kiosk · check-in
    Kiosk Access Granted screen assigning PC-04 with a one-time session token
    02

    Scan your ID, get a code

    Scan your student ID or type your number, and you'll get a six-digit code. It only works on the PC you picked, and only for the next five minutes.

  3. Client · the workstation
    Client lock screen over the living grove, with four digits of the code entered
    03

    Type the code to unlock

    Your PC stays locked until you enter the code. Once it's accepted, your desktop opens.

  4. Client · signed in
    Client welcome screen reading Welcome, Juan, with time left, station, and status
    04

    Say hello

    The PC greets you by name and shows how much time you have left. Then it moves out of the way so you can start studying.

What changed this release

v0.1.39
Website

Your day, wrapped

My lab time opens on a story of your day at the lab, one card at a time with its own music: your time today, hour by hour, your PCs and your longest sitting.

Website

A share card

Turn your lab time into a picture for your story, today or all-time, in six colours and five patterns, with or without your name, PCs and rank.

Website

A calmer availability page

The lab's hours, a count of the PCs ready now, and every PC as its own character, the same one on the board, the student page and every wrap.

Website

Top users stay up

This month's top PC users stay on the availability page while the lab is off, overnight and on closed days.

Server

No more ghost sessions

A locked PC no longer shows as in use, and a session left open by a lost network ends at the last moment the PC was heard from.

Client

See it on my phone, any time

The button appears as soon as staff turn the student page on, even mid-session, and a failed code no longer makes you wait.

Client

Steadier backgrounds

Switching between the grove and the library no longer crashes a PC, and every PC keeps the background the Manager chose.

Notice desk

Wraps

Staff see how many students open their wrap: today, the last 7 and 30 days, and phones signed in now.

Seven looks to choose from

Lush grove · lock screen
Lush grove · lock screen
CSU Library · lock screen
CSU Library · lock screen
Kiosk · Christmas decor
Kiosk · Christmas decor

Two apps and a server

3 shipped

Client

On every lab PC

01
  • Turns off the Windows key, Alt+Tab, Alt+F4, and Task Manager while locked
  • Shows the time left and warns the student before it ends
  • Greets the student by name, out loud if the lab turns it on
  • Runs the living grove or the 3D CSU Library behind the lock screen
  • Pauses the clock if the network drops, so no one loses minutes
  • Answers remote lock, unlock, logout, and scheduled blasts
Tauri · Rust · React · Windows

Kiosk

At the lab door

02
  • Live seat board with ready, ending soon, and in-use states
  • Reads a student ID by QR code or by typed number
  • Handles walk-ins and reserved seats
  • Seasonal decorations that follow the calendar
  • Stays on screen; only staff can close it, with a PIN
Tauri · Rust · React · Windows

Server

The one that decides

03
  • Sends live status and commands over WebSocket
  • Checks for finished sessions every 10 seconds and locks those PCs
  • Helps PCs and kiosks find it on the lab network
  • Runs scheduled blasts on time, and skips any it missed
  • Closes leftover sessions after a power cut and charges only the time used
  • Stores lab records in SQLite with crash-safe writes
Rust · Axum · Tokio · SQLite

Everything goes through the server

Inside the lab

workstations

Client PCs

one Client per PC or NComputing seat

at the door

Kiosk

check-in and the live seat board

UDP discovery · WebSocket

The server

the only record

CARSU Server

Rust · Axum · Tokio

Lab database

students and sessions

Settings database

how the lab is set up

The life of one session

6 steps

  1. 01Kiosk → Server

    Ask for a seat

    The kiosk sends the student's ID and the PC they picked. The server checks that the student exists, isn't banned, and has time left, and that the PC is free.

  2. 02Server → Kiosk

    Issue a one-time code

    The server creates a six-digit code tied to that student and that PC. It works once and expires in five minutes.

  3. 03Client → Server

    Unlock the PC

    The student types the code on the PC. The server checks it against that machine, marks it used, and starts a session that ends when the student's time does.

  4. 04Server → everyone

    Tell the room

    The new state goes out over WebSocket. The kiosk's seat board and the public availability page both update without a refresh.

  5. 05Client ↔ Server

    Stay in touch

    The PC reports that it's alive and which app is in front. If the connection drops, its clock pauses, and the server adds that time back when it reconnects.

  6. 06Server → Client

    Lock when time is up

    Every 10 seconds the server looks for finished sessions. When it finds one, it locks that PC, records the minutes used, and frees the seat.

Work the server does on its own

Session expiry

every 10 s · locks PCs whose time is up

Room statistics

every 10 s · occupancy for the seat board

Scheduled blasts

every 5 s · runs due schedules, skips late ones

LAN discovery

UDP 41234 · helps paired devices find the server

Outage repair

at startup · closes sessions cut off by a power loss

Background and notices

on change · pushed to connected PCs at once

What it keeps in SQLite

01

Students

Directory, weekly quota, validation, bans

02

Sessions

Start, end, paused time, and why it ended

03

Clients

Each PC's state, heartbeat, and hardware

04

Endorsed machines

Approved devices and their signing keys

05

Access tokens

One-time codes for an assigned student

06

Reservations

Booked seats and attendance

07

Tamper events

Unexpected disconnects for staff review

08

Scheduled blasts

Schedules and their last 100 runs

09

Greeting clips

Pre-made welcome audio, per first name

10

Browser approvals

Approved browsers, sessions, and audit log

Every command is checked

01

Only known PCs

Each PC is approved once and gets its own signing key. The server ignores status and refuses commands from any machine it hasn't approved.

Device keys
02

The server double-checks staff

Sensitive actions need an admin credential that the server checks itself. A button on a screen isn't enough on its own.

Checked on the server
03

Sealed recovery data

Each PC encrypts its recovery data with the server's public key. Only the server's private key can open it.

Public-key sealed