s0wlz (Matthias Puchstein) fd6beb4591 fix: superadmin access for sessions/rooms; redesign room editor
Backend:
- sessions.rs: add is_superadmin bypass to list_sessions,
  create_session, create_slot, update_slot_status, delete_slot
- rooms.rs: allow empty layout on create_room (layout is built
  in editor after creation)

Frontend room editor:
- Fix drag coordinate sync: replace window mousemove delta calc
  with SVG CTM inverse transform (getScreenCTM), eliminating
  the 3x movement ratio bug
- Switch to pointer capture (setPointerCapture) per element;
  remove svelte:window handlers
- Positions always snap to 0.5 grid on drop, preventing
  backend validation errors
- Left floating sidebar toolbar (collapsible) with Sitz/Tisch/
  Tür/Lücke buttons and inline SVG icons
- Room dimensions bar (Breite × Tiefe, 5–50 grid units)
- Zoom controls (25%–400%) via scroll wheel or +/- buttons;
  SVG scales via width/height attrs so scrollbars work correctly
- Property panel inputs snap to 0.5 on blur (prevents save errors)
- Canvas bounded to room dimensions during drag
2026-05-06 16:09:08 +02:00
2026-05-04 17:15:53 +02:00
2026-05-04 17:26:24 +02:00

TutorTool

Attendance tracker for tutoring sessions. Tutors manage courses, rooms, and slots; students check in via a public QR code link. Live at tutor.puchstein.dev.

Quickstart

make dev
# Backend: http://localhost:3000
# Frontend: http://localhost:5173

Demo credentials: admin@tutortool.com / admin

Stack

  • Backend: Rust + Axum + SQLite (via SQLx), Secure httpOnly Cookie JWT auth
  • Frontend: SvelteKit 5 (Svelte runes), TypeScript, adapter-static (SPA)
  • Build: Vite + Cargo; 3-stage Docker build for production

Documentation

Doc Contents
CLAUDE.md Agent guidance: commands, architecture, conventions
GEMINI.md Same, with Gemini-specific context
docs/testing.md E2E test pipeline (Playwright + test daemon)
docs/specs/ Feature specs
docs/plans/ Implementation plans
docs/design_handoff/ UI design mocks

Deployment

Kubernetes via deploy/ Helm chart on ITSH Cloud (tenant-5, Hetzner). CI via Gitea Actions at .gitea/workflows/ci.yml.

Description
No description provided
Readme 254 MiB
Languages
Rust 44.7%
Svelte 44.1%
TypeScript 6.1%
CSS 1.9%
Makefile 1.2%
Other 2%