|
|
bbccef4436
|
feat(frontend): route migration - add /admin/login, /admin/students, /admin/live/[slotId], rooms/[roomId]
|
2026-04-28 17:46:50 +02:00 |
|
|
|
7e326153a8
|
feat(frontend): add TutorShell sidebar layout and NoteEditor with auto-save
|
2026-04-28 15:39:28 +02:00 |
|
|
|
7da7c1e1d0
|
feat(frontend): add SeatMap component (tutor/student/student-self variants)
|
2026-04-28 15:13:35 +02:00 |
|
|
|
04155c182a
|
feat(frontend): add primitive UI components (Icon, StatusPill, UnderlineStroke, StatCard, Tally, Field)
|
2026-04-28 15:08:50 +02:00 |
|
|
|
97a3c2196b
|
feat(frontend): add paper design tokens and Google Fonts
|
2026-04-28 15:01:22 +02:00 |
|
|
|
c0c0c220ef
|
chore: some repo cleanup
|
2026-04-28 14:29:20 +02:00 |
|
|
|
0d86cd0ed6
|
chore: setup project meta and ignore docs
|
2026-04-28 05:58:04 +02:00 |
|
|
|
01ff815efa
|
docs: fix CLAUDE.md inaccuracies and Dockerfile Rust version
|
2026-04-28 05:46:31 +02:00 |
|
|
|
7ff129189b
|
docs: move plan, spec, and design handoff from FPTutor repo
|
2026-04-28 05:35:41 +02:00 |
|
|
|
d37853e1a6
|
feat(ops): add Makefile, Dockerfile, and K8s manifests
|
2026-04-28 05:19:53 +02:00 |
|
|
|
c7ab5d8689
|
feat(frontend): implement all views using Svelte 5 runes and TS 7.0
|
2026-04-28 05:19:30 +02:00 |
|
|
|
f9c721d841
|
feat(frontend): scaffold SvelteKit with TS 7.0 (native-preview) and tsgo
|
2026-04-28 05:16:19 +02:00 |
|
|
|
943463fff4
|
feat(backend): complete attendance, notes, and export APIs
|
2026-04-28 05:11:33 +02:00 |
|
|
|
e3561b731d
|
fix(attendance): propagate cookie header errors, guard missing room in checkin
|
2026-04-28 03:55:54 +02:00 |
|
|
|
116de5aead
|
fix(attendance): reject seat_id on room-less slots
|
2026-04-28 03:49:30 +02:00 |
|
|
|
3629cc3769
|
feat(attendance): student check-in API with FCFS seat locking
|
2026-04-28 03:43:56 +02:00 |
|
|
|
e75a2bccb8
|
fix(attendance): correct course_id column in slot queries, add patch_json helper
|
2026-04-28 03:29:13 +02:00 |
|
|
|
797ccacbb2
|
feat(attendance): sessions/slots CRUD with atomic code generation
|
2026-04-28 03:24:36 +02:00 |
|
|
|
fcf2787bcc
|
fix(attendance): add empty layout/label validation and put_json test helper
|
2026-04-28 03:18:56 +02:00 |
|
|
|
84f5788363
|
test(attendance): add negative geometry validation test for rooms layout
|
2026-04-28 03:11:10 +02:00 |
|
|
|
5743808265
|
feat: rooms CRUD with layout validation
|
2026-04-28 03:07:40 +02:00 |
|
|
|
4aef2f70df
|
fix: per-course auth guard, filter courses by tutor, CSV fixes, cascade check
|
2026-04-28 03:05:49 +02:00 |
|
|
|
abf0ebcce2
|
feat: courses and students CRUD endpoints
|
2026-04-28 01:42:22 +02:00 |
|
|
|
a351c442d3
|
fix: secret() error propagation, exp as u64, bcrypt cost 4 in tests, skip empty auth header
|
2026-04-28 01:36:22 +02:00 |
|
|
|
83b25b1693
|
feat: JWT auth, login endpoint, and test helpers
|
2026-04-28 01:33:14 +02:00 |
|
|
|
0da5dc5674
|
feat: add data models and request types
|
2026-04-28 01:20:44 +02:00 |
|
|
|
24acc54ceb
|
fix: NOT NULL on tutor_courses FKs, status CHECK, time format CHECK, add indexes
|
2026-04-28 01:19:59 +02:00 |
|
|
|
d6f9d593ed
|
feat: SQLite migrations and db pool with FK pragma
|
2026-04-28 01:14:20 +02:00 |
|
|
|
83ebff3b3e
|
chore: edition 2024, rust 1.95.0, bump all deps to latest stable
|
2026-04-28 01:12:16 +02:00 |
|
|
|
fbd697759d
|
fix: bump thiserror to v2, rand to v0.9, improve error logging
|
2026-04-28 01:06:55 +02:00 |
|
|
|
dd18f385a2
|
chore: add backend .gitignore, untrack target/
|
2026-04-28 00:56:53 +02:00 |
|
|
|
42465839d0
|
feat: scaffold Rust/Axum backend
|
2026-04-28 00:55:36 +02:00 |
|
|
|
acfecf617c
|
chore: ignore .worktrees/
|
2026-04-27 23:29:43 +02:00 |
|
|
|
947d25acb0
|
chore: initial commit
|
2026-04-27 23:29:23 +02:00 |
|