Repository navigation
Home
About this wiki. Generated from the repository's documentation on every push to
develop. Edit the files there; changes made on a wiki page are overwritten.
Web app for a private English-teaching practice. Students take tests assigned by their teacher; the teacher builds tests, assigns them, monitors attempts, grades open answers, and reviews results.
v1 ships one capability end to end: test-taking.
Product language is Vietnamese. Code, comments and docs are English.
docs/quizzivy-spec-v0.3.md |
Product and engineering spec. Source of truth. |
docs/plan/ |
Implementation plan derived from it. Start at 00-overview.md. |
api/openapi.yaml |
The API contract. Spec §15 documents it. |
AGENTS.md |
Standing rules. Read before touching anything. |
CONTRIBUTING.md |
Branch model and PR expectations. |
The schema lives in docs/plan/20-data-model.md,
including a register of every deliberate deviation from the spec sketch.
Vite + React 19 + TypeScript (strict), TanStack Query, Zustand, Tailwind v4 + shadcn/ui, i18next. Go backend, PostgreSQL 18, Cloudflare R2. Fixed by spec §2 — do not swap libraries without approval.
cp .env.example .env
make doctor # what is installed, what is still blocked
make up # postgres:18 + MinIO
make migrate
make seed
make dev # web on :5173, api on :8080make help lists everything.
Use localhost for both services, never a 127.0.0.1/localhost split — that
is cross-site, and it hides the cookie behaviour the real deployment depends on
(00-overview.md §4.1).
| PostgreSQL 18 |
localhost:5432, database quizzivy
|
| MinIO (S3 API) |
localhost:9000 — stands in for R2 |
| MinIO console | localhost:9001 |
MinIO is why the app builds and tests without R2 credentials:
aws-sdk-go-v2/s3 targets both and only the endpoint differs.
Two database roles, per spec §13.5. quizzivy_migrate owns the schema and runs
goose; quizzivy_app is what the API connects as and owns nothing.
Phase 0 of six. See docs/plan/10-phase-0.md.
Outstanding blockers, owned by Thuong: a Google OAuth client (T-0.2, blocks
the Phase 1 Google path with no workaround) and R2 credentials (T-0.3, blocks
Phase 2 deployment only). make doctor reports both.
Start here
Product
Implementation plan
- 00 Architecture overview
- 10 Phase 0: Scaffold and contract
- 11 Phase 1: Auth, join, shells
- 12 Phase 2: Admin authoring
- 13 Phase 3: Assign and take
- 14 Phase 4: Grade and results
- 15 Phase 5: Hardening
- 16 Phase 4.5: The student at a desk
- 17 Word import: milestone plan
- 18 Word import: teacher workflow
- 19 Versioned content contract
- 20 Data model
- 30 Risk register
- 40 Open items
- 50 Non-functional requirements
- 60 Backend architecture
- 91 September 2026 issue remediation
- 92 Student layouts and interaction rules
Redesign (Phase R)
- 70 Redesign overview
- 71 R1: Foundations (v0.7.0)
- 72 R2: Access (v0.8.0)
- 73 R3: Student console (v0.9.0)
- 74 R4: Teacher workspace (v0.10.0)
- 74d D4: Deck update (v0.11.0)
- 74e E1: Moving a question across a group
- 75 R5: Admin console and email (v0.12.0)
- 76 R6: Question types and scoring (v0.13.0)
- 77 R7: Collaboration (v0.14.0)
- 78 R8: Schedule (v0.15.0)
- 79 R9: Insights (v0.16.0)
- 80 R10: Learn (v0.17.0)
- 81 R11: Landing, leads, v1.0 (v1.0.0)
Setup and operations
- CI
- Deploying
- DNS for quizzivy.com
- Google OAuth client
- Production operations
- Cloudflare R2 bucket
- Word import worker
- R4 rehearsal on a Neon branch
Design
Team
- Agent team
- Verification environment
- Team ledger
- R4 readiness
- R4 verification strategy
- T-R4.51 browser verification
Code READMEs
- api/
- server/
- web/
- seed/
- migrations/
- docker/minio
- docker/word-converter
- server/internal/platform/word
- server/tests
- web/tests
- web/tests/support/content-editor
- web/tests/support/deck-harness
Generated from README.md. Edit that file in the repository; changes made on this page are overwritten.
Generated from the repository's documentation on every push to develop.
Start here
Product
Implementation plan
- 00 Architecture overview
- 10 Phase 0: Scaffold and contract
- 11 Phase 1: Auth, join, shells
- 12 Phase 2: Admin authoring
- 13 Phase 3: Assign and take
- 14 Phase 4: Grade and results
- 15 Phase 5: Hardening
- 16 Phase 4.5: The student at a desk
- 17 Word import: milestone plan
- 18 Word import: teacher workflow
- 19 Versioned content contract
- 20 Data model
- 30 Risk register
- 40 Open items
- 50 Non-functional requirements
- 60 Backend architecture
- 91 September 2026 issue remediation
- 92 Student layouts and interaction rules
Redesign (Phase R)
- 70 Redesign overview
- 71 R1: Foundations (v0.7.0)
- 72 R2: Access (v0.8.0)
- 73 R3: Student console (v0.9.0)
- 74 R4: Teacher workspace (v0.10.0)
- 74d D4: Deck update (v0.11.0)
- 74e E1: Moving a question across a group
- 75 R5: Admin console and email (v0.12.0)
- 76 R6: Question types and scoring (v0.13.0)
- 77 R7: Collaboration (v0.14.0)
- 78 R8: Schedule (v0.15.0)
- 79 R9: Insights (v0.16.0)
- 80 R10: Learn (v0.17.0)
- 81 R11: Landing, leads, v1.0 (v1.0.0)
Setup and operations
- CI
- Deploying
- DNS for quizzivy.com
- Google OAuth client
- Production operations
- Cloudflare R2 bucket
- Word import worker
- R4 rehearsal on a Neon branch
Design
Team
- Agent team
- Verification environment
- Team ledger
- R4 readiness
- R4 verification strategy
- T-R4.51 browser verification
Code READMEs