Skip to main content

A premium full-stack platform for downloading CAIE and Edexcel exam papers.

Project description

ExamQuest: Interactive O & A Level Paper Downloader

Build Status License: MIT Python 3.10+ React 18

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:

  1. Clone the repo:

    git clone https://github.com/fam007e/examquest.git
    cd examquest
    
  2. Run the Interactive Dashboard (Web):

    python run_app.py
    

    This 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.

  3. Run the Legacy CLI:

    python o_and_a_lv_qp_sdl.py
    

    For 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:


⚖️ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exam_downloader-0.2.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exam_downloader-0.2.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for exam_downloader-0.2.0.tar.gz
Algorithm Hash digest
SHA256 47cd11f929456894e127bae0011bb1e3c2040ab646b097cc1c5b94c2a3ce651d
MD5 842ccee0dc4fbcb527b4617233a03fbb
BLAKE2b-256 083fb25d04beb0e5acf42d3e352a7546e7d14884f9e5ac4bf7b8801edb5eb146

See more details on using hashes here.

File details

Details for the file exam_downloader-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for exam_downloader-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b055209090cd8f5c8139c3eb18d7f04113b5c8904b566ed642b69d1f8b6a0a8a
MD5 e1a0674b0d6cec3bc4917fee7d193f9c
BLAKE2b-256 0201147f084565c828f41231d562bb8b143ffeace8b46b22f77ff3a0a75ca79f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page