MCQambridge is an automated MCQ past paper solving application for Cambridge A-levels & IGCSE. I created it to simplify the process of checking answers, calculating scores, and percentages. It was created using Python and the web development trio. You can access it here or you can host it yourself. (I would appreciate if you hosted it locally, since my pythonanywhere site has limited bandwith; it's a simple five-step process!)
To begin, you first select a paper. You can choose between every Cambridge paper released 2018 and onwards. Aside from the year, you can choose between: subject, a-level, month, level (core, or extended?), and variant. Once you've chosen a paper, press submit.
When solving the paper, you are presented with the screen shown above. You select one of four lettered options, corresponding to the choices on the MCQ paper. You will be shown immediately if you are correct or incorrect. You can zoom in or out of the PDF, and navigate between pages.
Once you are done with a paper, you will be shown your results. You will get your overall score, percentage, and also a question-by-question breakdown of the parts you got wrong.
At any time, you can access a statistics page that showcases all the papers you've attempted so far and the results you got in them. This makes it easy to track your progress; to answer questions like 'am I getting better in subject x'?
This project requires Python 3 (any version of Python 3 that supports the requirements will do).
- Clone the repository with:
git clone https://github.com/ghassbomb/mcqambridge.git
- Change into the project directory:
cd mcqambridge
- Create a virtualenv environment (optional)
- Install the required dependencies using pip:
pip install -r requirements.txt
- Start the Flask development server:
python app.py
- Enjoy!
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the 👍 reaction)
- Top Bugs (Add your votes using the 👍 reaction)
- Newest Bugs
Contributions are welcome! If you have any suggestions, improvements, or bug fixes, please create a pull request. For major changes, please open an issue to discuss the changes beforehand. You can also contact me at [email protected]
for any requests and such.
Please read our contribution guidelines, and thank you for being involved!
This project is licensed under the MIT license.
See LICENSE for more information.
Thanks to Abbas Fanhim for providing the inspiration.