A complete commercial online PTE Academic learning platform that improves real student performance through:
Diagnose → Teach → Practise → Explain → Review → Repeat → Test → Calibrate
This is an independent PTE Academic preparation platform. It is not affiliated with, endorsed by or operated by Pearson.
Phase A — Product Contract (accepted at 98/100). Phase B — Monorepo, tooling and local environment foundation.
- PTE Academic
- English interface
- All current PTE Academic task types (Speaking, Writing, Reading, Listening)
- Guest
- Free student
- Paid student
- Teacher
- Content writer
- Content reviewer
- Administrator
- Super administrator
- Public website
- Student portal
- Teacher portal
- Content portal
- Administration portal
- API service
- Worker service
- Scoring service
- Shared UI component library
- Shared contracts and types
| Phase | Description |
|---|---|
| A | Product contract |
| B | Monorepo, tooling and local environment |
| C | Shared contracts and configuration |
| D | Database and domain model |
| E | Authentication, profiles and permissions |
| F | Design system and application shell |
| G | Content provenance and licence register |
| H | Course and lesson engine |
| I | Universal question engine |
| J | Reading task types |
| K | Listening task types |
| L | Speaking recorder and speaking tasks |
| M | Writing task types |
| N | Objective scoring engine |
| O | Speech and writing evaluation |
| P | Diagnostic test and personalised study plan |
| Q | Mock-exam engine |
| R | Dashboard, reports and skill mastery |
| S | Teacher and administration portals |
| T | Payments, subscriptions and entitlements |
| U | Content-production factory |
| V | Calibration and educational validation |
| W | Notifications, support and operations |
| X | Complete QA and performance gate |
| Y | Production deployment |
| Z | Pilot, launch and continuous improvement |
pte-app/
├── apps/ Application projects
├── content/ Question banks and media
├── docs/ All documentation
│ ├── architecture-decisions/
│ ├── content/
│ ├── operations/
│ ├── product/
│ ├── scoring/
│ └── testing/
├── infrastructure/ Deployment and infrastructure
├── packages/ Shared libraries
├── scripts/ Utility scripts
├── services/ Backend services
├── tests/ Test suites
├── .editorconfig
├── .gitattributes
├── .gitignore
├── LICENSE
└── README.md
- No application service, model, URL, domain, port, price, score weight or question count may be hardcoded.
- External services must be accessed through internal provider interfaces.
- Provider names, endpoints and models must not appear in feature code.
- Published content and scoring profiles are immutable versions.
- Practice and mock-test sessions use persisted server-side state with local recovery support.
- Unit tests for scoring rules, timer behaviour, text normalisation, study-plan calculations, entitlements and content validation.
- Integration tests for API and database, API and Redis, worker and Redis, API and scoring service, object storage, payment webhook processing and content import.
- End-to-end tests for all major user journeys.
- Stability tests for API restart, worker restart, Redis restart, temporary database loss, object-storage interruption, provider timeout, internet interruption, duplicate submission and duplicate webhook.
- Browser matrix: Chrome, Edge, Safari, Firefox, iPhone Safari, Android Chrome.
- All content must have documented provenance, source and licence.
- Published questions must be original or properly licenced.
- No copied competitor question banks, recalled live examination questions or unlicensed materials.
- Content below 9/10 review score may not be published.
- Every content item requires: author, source, licence, commercial-use status, reviewer, review score, version, correct answer, explanation, difficulty, skills and publication status.
- Platform scores are estimated training scores. They are not official PTE scores.
- Pearson's private scoring engine will not be represented as reproduced.
- Objective questions use deterministic scoring.
- AI must not provide unsupported final scores.
- Speaking scoring distinguishes constrained-response tasks (word alignment, sequence comparison, accepted-answer matching) from open-response tasks (content concepts, relevance, main-point coverage, organisation).
- Writing scoring uses: content, form, structure, coherence, grammar, vocabulary, linguistic range and spelling.
- Every result stores scoring-profile version, question version, provider version, component evidence and confidence range.
- Historical results cannot silently change after a scoring update.
- New scoring profiles require regression testing and calibration.
npm ci # Install dependencies
npm run setup:local # Prepare local environment
npm run doctor # Verify environment
npm run local:up # Start all services- Web: http://localhost:${WEB_PORT:-3000}
- API: http://localhost:${API_PORT:-4000}
- Scoring: http://localhost:${SCORING_PORT:-5000}
See docs/operations/local-development.md for detailed setup and troubleshooting.
The current UI is a Phase B environment page, not the finished product.
- Feature implemented according to specification.
- All required tests pass.
- Documentation updated.
- No unresolved placeholders.
- Self-audit score at least 98/100.
- Phase audit passes at 98/100 threshold.
Phase B — Monorepo, tooling and local environment. Building the local development foundation.
- Receive one phase specification.
- Pull latest main.
- Create phase branch:
feat/phase-<letter>-<description>orfix/phase-<letter>-<description>. - Implement phase.
- Run checks.
- Commit using conventional commit format.
- Push.
- Submit report.
- Stop.
- Audit.
- Fix audit findings.
- Receive next phase.
Every released phase must score at least 98/100 in audit. Developers must stop after every phase and wait for approval. No phase may begin without approval of the previous phase.
Student work must be recoverable. Long-running operations must expose progress.
No direct development on main.