Skip to content

High-performance dashboard for CAIE & Edexcel past papers. Features real-time filtering, automated merging, and a premium UI.

License

Notifications You must be signed in to change notification settings

fam007e/examquest

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.

About

High-performance dashboard for CAIE & Edexcel past papers. Features real-time filtering, automated merging, and a premium UI.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •