English Quiz Tutor Overlay is a local Windows desktop app for practicing English quiz questions. It lets you select a screen region, captures the quiz question, runs OCR, sends the editable text to a local Ollama model, and shows concise English answers in an always-on-top tutor window.
This app is for learning, review, and understanding mistakes. It does not include stealth behavior, proctoring bypasses, website automation, automatic clicking, or automatic answer selection.
- Windows 10/11
- Python 3.10+
- 16 GB RAM recommended
- Ollama installed locally
- Tesseract OCR installed locally
- GPU is optional. Ollama decides whether it can use your GTX 1650 or CPU.
- Install Ollama from https://ollama.com
- Pull the default model:
ollama pull qwen2.5:3b- Start Ollama if it is not already running:
ollama serveThe app calls Ollama at http://localhost:11434/api/generate.
Install Tesseract OCR for Windows, then either add it to PATH or set TESSERACT_CMD in .env.
Example:
TESSERACT_CMD=C:\Program Files\Tesseract-OCR\tesseract.exeIf Tesseract is missing, the app will show a friendly OCR error instead of crashing.
pip install -r requirements.txt
copy .env.example .env
python main.pyYou can also create config.json, but .env is the simplest option.
.env.example contains the default settings:
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=qwen2.5:3b
OCR_ENGINE=tesseract
TESSERACT_CMD=
OCR_LANGUAGE=eng
OCR_UPSCALE_FACTOR=2
TESSERACT_PSM=6
REQUEST_TIMEOUT_SECONDS=90Settings can also be changed inside the app with the Settings button. The app writes those changes to .env.
To change the Ollama model, edit OLLAMA_MODEL in .env or use Settings in the app. Pull the model first, for example:
ollama pull qwen2.5:3b- Open the quiz you want to practice.
- Run
python main.py. - Click Capture Quiz.
- Drag a rectangle around the quiz question.
- The app runs OCR and automatically gets the answer by default.
- If OCR is wrong, edit the OCR text and click Get Answer again.
The main screen is intentionally simple: capture the quiz, check/edit OCR text if needed, then get the answer. Tutor responses are generated in English by default and the app shows only the Answer / Sample responses: section.
Screenshots are saved in captures/.
Ollama offline
Run:
ollama pull qwen2.5:3b
ollama serveThen press Settings or restart the app to re-check the status.
Tesseract not found
Install Tesseract OCR and set TESSERACT_CMD in .env if it is not on PATH.
OCR text is wrong
Try selecting a tighter region, zooming the quiz page, or editing the OCR text manually before clicking Get Answer. The app preprocesses screenshots by enlarging, increasing contrast, sharpening, and binarizing the image before sending it to Tesseract. If OCR is still poor, try increasing OCR_UPSCALE_FACTOR to 3 or changing TESSERACT_PSM to 4, 6, or 11 in .env.
Capture fails
Run the app in a normal unlocked Windows desktop session. Remote, sandboxed, or protected desktop environments can block screen capture APIs.
Model replies slowly
Use a smaller Ollama model, close other GPU/CPU-heavy apps, or increase REQUEST_TIMEOUT_SECONDS in .env.
Use this app only for English learning, quiz practice, and reviewing mistakes. Do not use it to cheat on exams, bypass supervision, hide from proctoring tools, or automate answers on websites or other apps.
Main modules:
main.py: application entrypointoverlay_ui.py: PySide6 UIscreen_capture.py: region selection and screenshot captureocr.py: OCR adapterollama_client.py: Ollama HTTP clientprompts.py: tutor prompt templateconfig.py:.envandconfig.jsonloading
TODO: add an EasyOCR adapter behind the same OCR interface if Tesseract quality is not enough.