Commit Graph

55 Commits

Author SHA1 Message Date
412dc01ac2 feat(tests): add make test-up/down/reset/rebuild/e2e targets 2026-04-29 04:13:59 +02:00
205c871d31 feat(tests): add /__test__/reset endpoint and /health route (gated on TT_TEST_MODE) 2026-04-29 04:08:31 +02:00
4dce11dd26 feat(tests): add test-env.sh, gitignore updates, package.json scripts 2026-04-29 04:03:14 +02:00
279c60a5eb Merge branch 'feature-superadmin-crud'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2026-04-29 02:48:43 +02:00
e222085a72 fix: frontend type errors and add k8s manifests 2026-04-29 02:43:23 +02:00
8a45f6a06e feat: implement superadmin CRUD for courses and tutors 2026-04-29 02:42:33 +02:00
e1d7c20354 fix: restore original migration checksums, seed-demo now starts fresh 2026-04-29 02:10:37 +02:00
38fdf42408 feat: merge feature/demo-seed — configurable port and improved seed target 2026-04-29 02:06:23 +02:00
755c084f5e chore: ignore .playwright-mcp/ and refresh GEMINI.md 2026-04-29 02:06:01 +02:00
4aea0f4427 chore: clean up repo state and improve dev tooling
- Add IF NOT EXISTS to all migration DDL for idempotency
- Support PORT env var in backend (for compose flexibility)
- Support HOST_PORT env var in docker-compose
- Improve seed-demo to apply migrations before seeding
- Gitignore .claude/ session cache
2026-04-29 01:39:00 +02:00
b252128c37 docs: update CLAUDE.md for pnpm and corrected route paths 2026-04-29 01:32:15 +02:00
d6ccdaff1e feat(frontend): merge paper/notebook design overhaul
Complete redesign of the SvelteKit frontend with a paper/notebook
aesthetic: design tokens, Google Fonts, 10 new components, responsive
student check-in, live seat map, and redesigned admin pages.
2026-04-29 01:27:55 +02:00
d8869a441c fix(frontend): correct checkin API paths (remove duplicate /api/ prefix) 2026-04-29 01:20:26 +02:00
dd71202969 feat: support configurable ports for parallel development 2026-04-29 01:03:40 +02:00
0c5afb7e29 fix(frontend): render login page when unauthenticated 2026-04-28 23:58:57 +02:00
28c41042eb fix: docker build process and compose environment variables 2026-04-28 23:42:26 +02:00
316b7defb8 feat: add demo seed data, update Makefile, and fix .gitignore 2026-04-28 21:39:17 +02:00
19f2b5ae7f fix(frontend): fix slot deprecation and a11y label warnings 2026-04-28 19:22:30 +02:00
74255f23ac chore(frontend): delete obsolete login and notes routes 2026-04-28 19:16:06 +02:00
0298e03781 feat(frontend): redesign sessions, courses, live view, and student check-in 2026-04-28 19:15:39 +02:00
60c871dec0 feat(frontend): redesign dashboard, attendance, students, login with paper aesthetic 2026-04-28 18:55:44 +02:00
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