While i was studying for A levels. I found out i was spending a lot of time searching for and downloading past papers. Since the sites that offered these files were clumsy had not so great ux. Finding a single past past paper required you to naviagte to at least three pages. The final page being an index of all past papers for that particular subject. so like any sane person I went on and created pastpaper bot aka ppbot. Which quite a few students found useful

ppbot is simple and asks you only what you need and sends the pdfs for pastpapers

source code for ppbot is available here

How it works?

I found out that the pastpaper sites are like huge indexes containing files which are named to a standard convenient format. i used this to my advantage an wrote a quick scraper. The final scraper takes works like this

scrp.py --url https://www.physicsandmathstutor.com/past-papers/a-level-physics/edexcel-unit-2/

The scraper identifies the subject and unit of the past paper and stores all entries on the url to a mongodb db . Another script then downloads these pdfs and makes them available locally

The telegram bot

Making the telegram bot was quite straight forward i just had to get enough data from the user and call the db to get the files. I used the python telegram bot package to easily interact with telegram.


I didnt expect much if any users to actually use it other than me. But by the time the exams ended the bot had served more than 2000 pastpapers to more than 50 unique students.