ExamQuest is an asynchronous platform that simplifies retrieving past exam papers for Cambridge (CAIE) and Edexcel boards. It features context-aware filtering, parallelized scraping, automated merging, and an interactive web dashboard.
ExamQuest is built using modern web and backend technologies:
- Frontend: React 19, Vite 7 (Rolldown compiler), Tailwind CSS v4, Framer Motion, and Lucide React.
- Backend: FastAPI (Python 3.10+), Uvicorn, BeautifulSoup4, and Brotli compression.
- Scraper & CLI: Asynchronous HTTP client, User-Agent rotation, rate-limiting, and
PyPDF2/pdfmerger.shfor PDF utilities.
- Glassmorphism: Sleek dashboard styling with smooth transitions and animations.
- Lucide Icons: Specialized visual markers for major subjects (Physics, Chemistry, Mathematics, etc.).
- Context-Aware Search: Fast searching by subject name or code, plus direct search for papers, years, and mark schemes.
- Favorites: Star frequently used subjects for quick access.
- Mass Download & Merge: Download multiple papers simultaneously and merge them into a single PDF.
- A standalone command-line downloader for advanced users.
- Clean terminal formatting and asynchronous scraping logic.
Ensure the following are installed before running:
| Requirement | Version | Download |
|---|---|---|
| Python | 3.10+ | python.org |
| Node.js | 18+ | nodejs.org |
Tip
On Windows, check "Add Python to PATH" during installation.
Verify your setup:
python3 --version # or `python --version` on Windows
node --versionThe fastest way to run the application is with the integrated runner script:
-
Clone the repository:
git clone https://github.com/fam007e/examquest.git cd examquest -
Run the Interactive Dashboard:
python run_app.py
This script automatically creates a Virtual Environment (
.venv), installs all frontend and backend dependencies, and launches the app. -
Run the Legacy CLI:
python o_and_a_lv_qp_sdl.py
/backend: FastAPI service handling the scraper logic and PDF processing./frontend: React dashboard compiled with Vite 7 and Tailwind CSS v4.o_and_a_lv_qp_sdl.py: The original standalone CLI script.run_app.py: The unified automation runner.
We follow standard GitHub community guidelines:
- CONTRIBUTING.md: Guidelines on how to contribute features or report bugs.
- CODE_OF_CONDUCT.md: Our pledge to a welcoming community.
- SECURITY.md: How to report security vulnerabilities.
This project is licensed under the MIT License - see the LICENSE file for details.
Please use this tool responsibly. The backend uses asynchronous requests with rate-limiting, jitter, and User-Agent rotation to avoid overwhelming source websites. Respect Xtremepapers and PastPapers.co; this tool is for educational use only.