Skip to content

Repository files navigation

SpeakPro 45

Your Personal AI English Speaking Coach — a 45-day program that trains spoken English for professional situations: speaking, thinking in English, spontaneous response, fluency, pronunciation practice and interview readiness.

Roughly 80% speaking, listening and conversation; 20% grammar and explanation.

What makes it a coach, not a chatbot

Say "I am working here since five years." and it will identify the error, explain it in one line, give you the natural version, ask you to say it again, ask a follow-up so you keep talking, record the pattern, and steer future conversations back to it until you have used it correctly several times in a row.

It remembers what you got wrong yesterday and builds today's lesson from it.

It never invents a number

Every metric carries its provenance — measured, estimated, or unavailable — along with the method used and the sample size. Speaking rate needs a timed recording; pause analysis needs word timings; pronunciation needs signals a transcript cannot provide. Where the evidence is missing the app says "Not enough data" rather than showing a number that means nothing.

That rule is enforced structurally: a metric row cannot be stored without its confidence and method, and there are tests asserting each metric is unavailable when its inputs are absent.

Quick start

cp .env.example .env      # set SECRET_KEY
docker compose up --build # http://localhost:8080

Or without Docker, with no database and no API key:

cd backend
python -m venv .venv
.venv/Scripts/python.exe -m pip install -e ".[dev]"
.venv/Scripts/python.exe -m app.seed
.venv/Scripts/python.exe -m uvicorn app.main:app --reload

The default providers are mock (a real rule-based coaching engine, not a stub) and the browser's own speech APIs — so the whole product works offline, free, and with audio never leaving the device.

Stack

FastAPI · SQLAlchemy 2 · Alembic · PostgreSQL (SQLite for dev) · Redis · React 18 · TypeScript · Tailwind · Vite · nginx · Docker

Provider-independent throughout: AI_PROVIDER accepts mock, openai, anthropic, ollama or custom; speech accepts browser, Whisper, or cloud.

Tests

cd backend && .venv/Scripts/python.exe -m pytest -q     # 393 tests
cd frontend && npm run typecheck && npm run test:e2e

Including a 146-case English error suite that tests false positives as hard as corrections — an English coach that "corrects" correct English teaches errors.

Documentation

Document Contents
ARCHITECTURE.md System shape, data model, coaching loop
docs/SETUP.md Getting it running
docs/DEVELOPMENT.md Layout, conventions, extending it
docs/DEPLOYMENT.md Production, scaling, cost control
docs/API.md Every endpoint
docs/DATABASE.md Schema and the two tables that matter
docs/AI_ARCHITECTURE.md Providers, agents, fallback
docs/AI_PROMPTS.md Editing coaching prompts live
docs/SPEECH.md STT/TTS, and what each metric requires
docs/SECURITY.md Controls
docs/PRIVACY.md What is kept, what is not, your controls
docs/TESTING.md Suites and what they guard
docs/USER_GUIDE.md For the learner
docs/ADMIN_GUIDE.md For the operator
docs/TROUBLESHOOTING.md When something misbehaves
docs/45_DAY_CURRICULUM.md The program itself
SECURITY_REVIEW.md Findings from the last review
PROGRESS.md Build status

The certificate

After 45 completed days you get a certificate carrying your real statistics. It records completion of a practice program and says plainly that it is not an English proficiency qualification.

About

Full-stack platform with separate containerised backend and frontend, speech assessment integration and a substantial pytest suite.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages