TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Free, open-source practice tests in the 2026 format of the TOEFL iBT® test
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Free, open-source practice tests for the TOEFL iBT® test (January 2026 format).
▶ Try it: emrecpn.github.io/fluova · Start a test · Add questions to the bank
Full-length tests with real timing, adaptive modules, and every task type from the 2026 specification. Everything runs in your browser: no account and no Fluova server, and your results are saved only on your device. (For Speaking transcripts you choose: the browser's own recognition, which Chrome and Edge run on their servers, or Whisper running on your device after a one-time ~250 MB download. See docs/STT-RESULTS.md.)
TOEFL® is a registered trademark of ETS. This product is not endorsed or approved by ETS.
Many paid practice tests feel easy and give inflated scores. The founder scored Reading ~5.5 on practice tests and 4.0 on the real test.
Fluova builds every test from the official 2026 blueprint. An automatic quality gate rejects any test that drifts from the real thing in either direction, too easy or too hard. Details are in docs/FIDELITY-SPEC.md.
| Section | Tasks |
|---|---|
| Reading | Complete the Words · Read in Daily Life · Read an Academic Passage (adaptive) |
| Listening | Listen and Choose a Response · Conversations · Announcements · Academic Talks (adaptive, US/UK/AU voices) |
| Writing | Build a Sentence · Write an Email · Academic Discussion |
| Speaking | Listen and Repeat · Take an Interview (recorded, transcribed by the browser's speech recognition) |
After each test you can copy two ready-made prompts and paste them into any AI chatbot, free ones included. One gets you feedback on your Writing and Speaking. The other turns your results into a personal study plan: it shows your accuracy by task and question type, lists every missed question with its explanation, and asks for targeted drills in the real format plus a day-by-day plan until your test date.
The interface and the answer explanations are available in English, Turkish and Spanish (Spanish still needs a native-speaker review). More languages are welcome. Test content is always in English.
git clone https://github.com/emrecpn/fluova.git && cd fluova
npm run serve
Open http://localhost:8000/engine/. Use Chrome or Edge, because Listening uses the browser's speech synthesis and Speaking uses its speech recognition.
engine/ the test player (static HTML/JS/CSS): js/scoring.js (scoring and routing), js/i18n.js (UI translations)
content/ question bank (content/bank), fixed-test recipes and rendered tests (content/tests), schema
generator/ form assembler, test builder page, prompt pack, Build a Sentence builder
tools/ bank.js, validate.js (structure), lint_forms.js (fidelity gate), e2e.js (browser smoke test), check_syntax.js, build_manifest.js, ctw_generate.js, layout_audit.js, stt-lab/
test/ unit tests (node:test): content pipeline, scoring and routing
fonts/ self-hosted fonts (OFL)
site/ landing page (multilingual static build)
docs/ fidelity spec, i18n architecture
No dependencies: Node.js 22+ and Python 3 (for the local server) are enough.
npm run check # syntax of every script, unit tests, question bank, random forms, validator, fidelity linter
npm test # unit tests only (node:test)
npm run build # rebuild bank.json, fixed tests, the manifest and the landing page
npm run e2e # headless Chrome: page errors, CSP, layout in every language, resume, routing, a new test, Spanish review
npm run serve # http://localhost:8000/engine/
The same checks run on every pull request, and a test with a critical finding cannot be merged. The browser smoke test (tools/e2e.js) has no dependencies either: it drives Chrome through the DevTools Protocol with Node's built-in WebSocket. Content is rendered as HTML, so only a few formatting tags are allowed (see SECURITY.md).
All content lives in a shared question bank (content/bank/), one small file per passage, conversation or task. Fixed tests are recipes of bank units, and New test on the start page assembles a fresh test in your browser from questions you have not seen yet. It uses no AI and no server, and the result still follows the 2026 blueprint and passes the quality gate. Today the bank holds five full tests' worth of questions (320 units). Every unit you add makes every new test more varied: see CONTRIBUTING.md.
Open generator/index.html (the test builder). Copy a section prompt, paste the answer from any chatbot, and check it against the quality gate in your browser. You can also do the same from the command line:
node generator/assemble.js --id my-test-02 --title "Fluova Practice Test 2" reading.json listening.json writing.json speaking.json
Complete the Words blanks are always made by the C-test algorithm, and Build a Sentence items can be written in plain text (generator/bas_build.js). See generator/README.md.
Tests, translations, bug reports and code are all welcome. Start with CONTRIBUTING.md.
Fluova is free and non-commercial. If it helped you, you can support the project with crypto. EVM address (Ethereum and EVM-compatible networks):
0x2C97C0EC81D2FE7887aefFaDe57196F6b9476d28
content/): CC BY-SA 4.0