A static React + TypeScript demo for turn-based multilingual collaboration without requiring one shared human language.
Participants choose supported languages, submit in deterministic turn order, and see only locked placeholder bubbles until the facilitator explicitly locks and reveals the round. Reveal shows machine-generated English translations and evidence-linked collaboration insights. Version 1.0.0 ships with deterministic mock providers so the full flow works on GitHub Pages without paid APIs or secrets.
npm install
npm run devUseful checks:
npm run lint
npm run typecheck
npm test
npm run build
npm run test:e2eThe Playwright suite runs the MVP scenario against a production preview in desktop, mobile, and reduced-motion projects.
- Create a four- or five-person session.
- Set the number of turns.
- Confirm participant names, languages, and turn order.
- Submit each turn. Locked transcript bubbles show metadata only, not original text.
- Confirm the final lock and reveal.
- Switch between English translations and collaboration insights.
- Start another round with the same participants or export the revealed round.
MVP language codes are en, zh, hi, es, ar, fr, bn, pt, ru, ur, and vi. Arabic and Urdu render right-to-left in setup and reveal views.
The app uses provider-neutral translation and insights interfaces under src/services/.
Demo mode uses deterministic mock providers and requires no credentials. A production translation or AI provider must be called through a backend, serverless function, edge function, or user-controlled proxy. Do not embed private provider API keys in VITE_* variables or committed files; any VITE_* value is bundled into the browser app.
.env.example documents the expected public configuration shape.
The Vite asset base uses relative paths, so the production bundle works from both the repository subpath and root-hosted deployment URLs:
https://nus-i3d.github.io/languagecauldron/
Deployment is handled by .github/workflows/deploy.yml. In the GitHub repository settings:
- Go to Settings → Pages.
- Set Source to GitHub Actions.
- Push to
main.
The app does not use client-side path routing, so refreshes under the repository subpath do not depend on a server fallback.
The 1.0.0 app is deployed through GitHub Pages at:
https://nus-i3d.github.io/languagecauldron/