This page is for developersIt documents how the practice engine was built and its API. To practise, go to Practice → Practice modes.
Practice engine — build notes and API
Four ways to put a real question in front of you instead of a page about questions: a quest that will not let you tick a step without a marked result behind it, a random feed drawn from every item on this server, a ten-minute loop, and a plan for the whole day. Plus an API, so an outside app can push you one question every ten minutes and keep the score.
The quest
Every exercise on this site, in order, in five stages. A step counts as done
only when a marked result, drill row, quiz or homework record exists for it — there is no
tick you can give yourself.
progress · XP · streak · next step
Random questions
One item at a time from the whole pool, unseen first and weighted to the units
your error log says you are losing marks on. Marked in the browser by the same matcher the real
papers use; every miss is filed with its unit and trap.
choose sections, units, timer, length
The ten-minute loop
Rule card → five items in your weak units → three recall cards →
one 30-second speaking prompt with a REDS self-rating → score → again. For the gaps in
a working day.
10 minutes, repeatable
The whole day
Three 45-minute focus sessions taken from the quest's next steps, the ten-minute
loop in the gaps, class anchors, and the evening lecture review. Printable.
from your prefs and the exam date
What is in the bank
Every objective item already on this server, pooled into
one file by .work/build_practice_bank.py. Nothing here was written for the pool —
each item carries the file it came from. Rerun the builder after adding a paper, a drill, a lecture
quiz or a bank file and the new items appear.
reading the bank…
The plan this was built from
open in the readerloading the plan…
The API
four routes on/api/chatThe key is on the server, not on this page
The four feed routes accept only the 32 hex characters in
.assistant/feed-key.txt (mode 600). This site has no login of its own, so printing the
key here would hand it to anyone who got past the basic auth. Read it on the box with
cat /srv/ielts-study/.assistant/feed-key.txt.loading the API reference…