https://github.com/fam007e/examquest
High-performance dashboard for CAIE & Edexcel past papers. Features real-time filtering, automated merging, and a premium UI.
https://github.com/fam007e/examquest
a-levels alevels caie edexcel exampaper gce gcse igcse mark-schemes o-levels olevels papacambridge questionpapers xtremepapers
Last synced: 2 months ago
JSON representation
High-performance dashboard for CAIE & Edexcel past papers. Features real-time filtering, automated merging, and a premium UI.
- Host: GitHub
- URL: https://github.com/fam007e/examquest
- Owner: fam007e
- License: mit
- Created: 2024-09-25T09:14:23.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-23T20:58:31.000Z (7 months ago)
- Last Synced: 2026-01-24T08:55:27.701Z (7 months ago)
- Topics: a-levels, alevels, caie, edexcel, exampaper, gce, gcse, igcse, mark-schemes, o-levels, olevels, papacambridge, questionpapers, xtremepapers
- Language: JavaScript
- Homepage:
- Size: 173 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# ExamQuest: Interactive O & A Level Paper Downloader
[](https://github.com/fam007e/examquest)
[](LICENSE)
[](https://www.python.org/)
[](https://react.dev/)
**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.
---
## Tech Stack
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.sh` for PDF utilities.
---
## Features
### Web Dashboard
- **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.
### Command Line Interface (Legacy CLI)
- A standalone command-line downloader for advanced users.
- Clean terminal formatting and asynchronous scraping logic.
---
## Prerequisites
Ensure the following are installed before running:
| Requirement | Version | Download |
|-------------|---------|----------|
| **Python** | 3.10+ | [python.org](https://www.python.org/downloads/) |
| **Node.js** | 18+ | [nodejs.org](https://nodejs.org/) |
> [!TIP]
> On Windows, check **"Add Python to PATH"** during installation.
Verify your setup:
```bash
python3 --version # or `python --version` on Windows
node --version
```
---
## Quick Start
The fastest way to run the application is with the integrated runner script:
1. **Clone the repository**:
```bash
git clone https://github.com/fam007e/examquest.git
cd examquest
```
2. **Run the Interactive Dashboard**:
```bash
python run_app.py
```
*This script automatically creates a Virtual Environment (`.venv`), installs all frontend and backend dependencies, and launches the app.*
3. **Run the Legacy CLI**:
```bash
python o_and_a_lv_qp_sdl.py
```
---
## Project Structure
- `/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.
---
## Community Standards
We follow standard GitHub community guidelines:
- [CONTRIBUTING.md](CONTRIBUTING.md): Guidelines on how to contribute features or report bugs.
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md): Our pledge to a welcoming community.
- [SECURITY.md](SECURITY.md): How to report security vulnerabilities.
---
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## Note
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.