A premium full-stack platform for downloading CAIE and Edexcel exam papers.
Project description
ExamQuest: Interactive O & A Level Paper Downloader
ExamQuest is a high-performance, asynchronous platform designed for the modern-day student. It streamlines the retrieval of past exam papers for Cambridge (CAIE) and Edexcel boards through a stunning, interactive web dashboard. With context-aware filtering, parallelized scraping, and automated merging, it transforms the tedious process of finding papers into a seamless experience.
✨ Features
💻 Modern Web Dashboard
- Luxury UI: Multi-layered glassmorphism and smooth animations.
- Specialized Icons: Handcrafted SVGs for major subjects (Physics, Chemistry, Math, etc.).
- Context-Aware Search: Instantly find subjects by name or code, or search for specific papers, years, and mark schemes within a subject.
- Favorites: Star your most-used subjects for instant access.
- Mass Download & Merge: Download multiple years at once or merge them into a single PDF with one click.
🐚 Powerful CLI (Legacy)
- For advanced users who prefer the command line.
- Same robust scraping logic with columnar subject displays.
📋 Prerequisites
Ensure these 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 --version
⚡ Quick Start
The fastest way to get started is using the integrated runner script:
-
Clone the repo:
git clone https://github.com/fam007e/examquest.git cd examquest
-
Run the Interactive Dashboard (Web):
python run_app.pyThis script automatically creates a Virtual Environment (.venv), installs all dependencies, and launches the app. This avoids "Externally Managed Environment" errors found on Arch, Fedora, etc.
-
Run the Legacy CLI:
python o_and_a_lv_qp_sdl.pyFor advanced users who prefer a terminal-based interface.
🛠️ Project Structure
/backend: FastAPI service handling the scraper logic and PDF processing./frontend: Vite + React dashboard with Tailwind CSS and Framer Motion.o_and_a_lv_qp_sdl.py: The original standalone CLI script.run_app.py: The unified automation runner.
🤝 Community Standards
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.
⚖️ License
This project is licensed under the MIT License - see the LICENSE file for details.
🎓 Note
Please use this tool responsibly. The backend uses asynchronous requests with built-in "politeness" features (rate-limiting, jitter, and User-Agent rotation) to avoid overwhelming source websites. Respect Xtremepapers and Papacambridge; this tool is designed for educational purposes only.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exam_downloader-0.2.0.tar.gz.
File metadata
- Download URL: exam_downloader-0.2.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47cd11f929456894e127bae0011bb1e3c2040ab646b097cc1c5b94c2a3ce651d
|
|
| MD5 |
842ccee0dc4fbcb527b4617233a03fbb
|
|
| BLAKE2b-256 |
083fb25d04beb0e5acf42d3e352a7546e7d14884f9e5ac4bf7b8801edb5eb146
|
File details
Details for the file exam_downloader-0.2.0-py3-none-any.whl.
File metadata
- Download URL: exam_downloader-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b055209090cd8f5c8139c3eb18d7f04113b5c8904b566ed642b69d1f8b6a0a8a
|
|
| MD5 |
e1a0674b0d6cec3bc4917fee7d193f9c
|
|
| BLAKE2b-256 |
0201147f084565c828f41231d562bb8b143ffeace8b46b22f77ff3a0a75ca79f
|