1 line
8.8 KiB
JSON
1 line
8.8 KiB
JSON
{"repo": "arshadkazmi42/telc-a1", "files": {"README.md": {"24c8c84ca02a5d750922444a0ac62feb46d95fb3": {"t": 1785746437.6282341, "n": 4166, "h": "840ad92a2c66a19c", "c": "# telc Deutsch A1 — Mock Exam\n\nA realistic **telc Deutsch A1 / Start Deutsch 1** practice exam that mimics the real\ntest-center flow, right in your browser. It covers all four parts:\n\n| Part | What you get |\n|------|--------------|\n| **Hören** (Listening) | 15 tasks across 3 Teile. Each item's audio is **generated and read aloud in German, slowly (A1 pace), and played twice** — like the real test (\"Sie hören den Text zweimal.\"). |\n| **Lesen** (Reading) | 15 tasks (richtig/falsch + anzeigen matching), on a timer. |\n| **Schreiben** (Writing) | Fill out a form (Teil 1) + write a short message (Teil 2), graded by AI. |\n| **Sprechen** (Speaking) | Introduce yourself, ask/answer with keyword cards, and formulate requests. Your answer is **recorded, transcribed, and graded** with specific feedback. |\n\n**New questions every time** — the exam is generated fresh on each run.\n\n## Architecture\n\nSame shape as the `ichat` extension in this workspace: a **Chrome extension** (the UI)\ntalks to a **small local Node server** (the AI bridge). The server can use either:\n\n- **Claude Code CLI** (default) — runs the `claude` binary you already have; uses your\n existing subscription, **no API key needed**.\n- **DeepSeek API** — a direct call to DeepSeek's API; needs an API key you paste into Settings.\n\n```\n Chrome extension (full-page exam UI)\n • TTS for listening (browser SpeechSynthesis, German, slow)\n • MediaRecorder + speech-to-text for speaking\n │ HTTP (http://127.0.0.1:7332)\n ▼\n Local Node server\n • POST /generate → fresh exam JSON\n • POST /grade → AI grading of writing + speaking\n │ spawns / calls\n ▼\n claude CLI ·OR· DeepSeek API\n```\n\nListening/Reading are auto-scored in the browser; Writing/Speaking are graded by the AI.\n\n## Requirements\n\n- **Node.js ≥ 18**\n- **Google Chrome** (or Chromium with Manifest V3)\n- One AI back-end:\n - the **`claude`** CLI on your PATH (default), **or**\n - a **DeepSeek API key** (set it in the extension's Settings)\n\n## Run\n\n```bash\ncd telc-a1\nnpm start # installs deps on first run, then starts http://127.0.0.1:7332\n```\n\n(`./run.sh` on macOS/Linux or `run.cmd` on Windows do the same.)\n\nThen load the extension:\n\n1. Open `chrome://extensions`\n2. Turn on **Developer mode**\n3. **Load unpacked** → select the `extension/` folder\n4. Click the toolbar icon → the exam opens in a new tab\n\n**No-extension fallback:** with the server running, just open\n`http://127.0.0.1:7332/exam/index.html` in Chrome — the same exam, served by the server.\n\n## Settings (gear icon, top-right)\n\n- **AI provider** — Claude CLI (default) or DeepSeek (+ API key + model).\n- **Sprechtempo** — listening speech rate (slower = easier).\n- **Server-URL** — change if you run the server on a different port (`TELC_PORT`).\n\n## Notes & limitations\n\n- **Listening voice** depends on the German voices installed in your OS/Chrome. If none is\n found, a fallback voice is used (still German-tagged).\n- **Speaking** uses the browser's German speech recognition (Chrome). It can mis-hear; the\n transcript is shown and **editable** before grading. Fine-grained *pronunciation* scoring\n from a browser is approximate — grading focuses on task fulfilment, grammar, vocabulary,\n and intelligibility.\n- The **60% pass mark** shown is an approximation of telc weighting, for practice only — not\n an official result.\n- Runs **locally** on `127.0.0.1`. Your answers go to your chosen AI back-end (the `claude`\n CLI you already use, or DeepSeek if you pick it) and nowhere else.\n\n## Config file\n\nServer-side settings live in `~/.telc-a1/config.json` (written by the Settings page):\n\n```json\n{ \"provider\": \"claude\", \"deepseekApiKey\": \"sk-…\", \"deepseekModel\": \"deepseek-chat\" }\n```\n\nEnv overrides: `TELC_PORT` (default 7332), `TELC_PROVIDER`, `DEEPSEEK_API_KEY`, `TELC_DEBUG=1`.\n\n## Layout\n\n```\nextension/ Chrome MV3 extension\n background/ opens the exam tab\n exam/ the exam UI (index.html, app.js, audio.js, recorder.js, api.js, styles.css)\nserver/ local Node server: /generate, /grade, claude-CLI + DeepSeek back-ends\nscripts/start.js install-deps-then-run launcher\n```\n"}, "5921e081340c82c018fbf9290b6cf6b2406af1ae": {"t": 1785764227.0920775, "n": 4166, "h": "840ad92a2c66a19c", "c": "# telc Deutsch A1 — Mock Exam\n\nA realistic **telc Deutsch A1 / Start Deutsch 1** practice exam that mimics the real\ntest-center flow, right in your browser. It covers all four parts:\n\n| Part | What you get |\n|------|--------------|\n| **Hören** (Listening) | 15 tasks across 3 Teile. Each item's audio is **generated and read aloud in German, slowly (A1 pace), and played twice** — like the real test (\"Sie hören den Text zweimal.\"). |\n| **Lesen** (Reading) | 15 tasks (richtig/falsch + anzeigen matching), on a timer. |\n| **Schreiben** (Writing) | Fill out a form (Teil 1) + write a short message (Teil 2), graded by AI. |\n| **Sprechen** (Speaking) | Introduce yourself, ask/answer with keyword cards, and formulate requests. Your answer is **recorded, transcribed, and graded** with specific feedback. |\n\n**New questions every time** — the exam is generated fresh on each run.\n\n## Architecture\n\nSame shape as the `ichat` extension in this workspace: a **Chrome extension** (the UI)\ntalks to a **small local Node server** (the AI bridge). The server can use either:\n\n- **Claude Code CLI** (default) — runs the `claude` binary you already have; uses your\n existing subscription, **no API key needed**.\n- **DeepSeek API** — a direct call to DeepSeek's API; needs an API key you paste into Settings.\n\n```\n Chrome extension (full-page exam UI)\n • TTS for listening (browser SpeechSynthesis, German, slow)\n • MediaRecorder + speech-to-text for speaking\n │ HTTP (http://127.0.0.1:7332)\n ▼\n Local Node server\n • POST /generate → fresh exam JSON\n • POST /grade → AI grading of writing + speaking\n │ spawns / calls\n ▼\n claude CLI ·OR· DeepSeek API\n```\n\nListening/Reading are auto-scored in the browser; Writing/Speaking are graded by the AI.\n\n## Requirements\n\n- **Node.js ≥ 18**\n- **Google Chrome** (or Chromium with Manifest V3)\n- One AI back-end:\n - the **`claude`** CLI on your PATH (default), **or**\n - a **DeepSeek API key** (set it in the extension's Settings)\n\n## Run\n\n```bash\ncd telc-a1\nnpm start # installs deps on first run, then starts http://127.0.0.1:7332\n```\n\n(`./run.sh` on macOS/Linux or `run.cmd` on Windows do the same.)\n\nThen load the extension:\n\n1. Open `chrome://extensions`\n2. Turn on **Developer mode**\n3. **Load unpacked** → select the `extension/` folder\n4. Click the toolbar icon → the exam opens in a new tab\n\n**No-extension fallback:** with the server running, just open\n`http://127.0.0.1:7332/exam/index.html` in Chrome — the same exam, served by the server.\n\n## Settings (gear icon, top-right)\n\n- **AI provider** — Claude CLI (default) or DeepSeek (+ API key + model).\n- **Sprechtempo** — listening speech rate (slower = easier).\n- **Server-URL** — change if you run the server on a different port (`TELC_PORT`).\n\n## Notes & limitations\n\n- **Listening voice** depends on the German voices installed in your OS/Chrome. If none is\n found, a fallback voice is used (still German-tagged).\n- **Speaking** uses the browser's German speech recognition (Chrome). It can mis-hear; the\n transcript is shown and **editable** before grading. Fine-grained *pronunciation* scoring\n from a browser is approximate — grading focuses on task fulfilment, grammar, vocabulary,\n and intelligibility.\n- The **60% pass mark** shown is an approximation of telc weighting, for practice only — not\n an official result.\n- Runs **locally** on `127.0.0.1`. Your answers go to your chosen AI back-end (the `claude`\n CLI you already use, or DeepSeek if you pick it) and nowhere else.\n\n## Config file\n\nServer-side settings live in `~/.telc-a1/config.json` (written by the Settings page):\n\n```json\n{ \"provider\": \"claude\", \"deepseekApiKey\": \"sk-…\", \"deepseekModel\": \"deepseek-chat\" }\n```\n\nEnv overrides: `TELC_PORT` (default 7332), `TELC_PROVIDER`, `DEEPSEEK_API_KEY`, `TELC_DEBUG=1`.\n\n## Layout\n\n```\nextension/ Chrome MV3 extension\n background/ opens the exam tab\n exam/ the exam UI (index.html, app.js, audio.js, recorder.js, api.js, styles.css)\nserver/ local Node server: /generate, /grade, claude-CLI + DeepSeek back-ends\nscripts/start.js install-deps-then-run launcher\n```\n"}}}} |