Thesis & dissertation format checker
A Python PDF parser built for the Graduate School at The University of Alabama as our 2023 capstone project.
- Python
- pdfminer.six
- PyMuPDF
Working with the Graduate School
For my capstone at The University of Alabama, I worked with a small team on a PDF parser for the Graduate School. Staff were reviewing theses and dissertations by hand, including printed copies, and checking them against a very detailed set of formatting requirements.
We met with staff throughout the project to ask questions, get feedback, and work from the documents and examples they shared with us. The review checklist had 68 entries (including comment fields), covering things like margins, fonts, required pages, contents lists, tables, and figures. We worked on automating parts of that review.
The parser used Python with pdfminer.six and PyMuPDF to extract text and layout information from uploaded PDFs. That let us check details like font consistency, margins, title-page spacing, and the abstract’s word limit. The wider team project included a React interface and an AWS backend for uploading documents and viewing the results.
My part
I worked with another teammate on the Python backend validation and testing. That meant working through the staff’s formatting rules, figuring out how to check them in a PDF, and testing what happened when a document didn’t follow them. Some requirements were very specific, like how many lines a title should take up or where the graduation year should appear.
The unit tests used sample PDFs with both correct and incorrect formatting. They covered cases like a missing department on the title page, incorrect line spacing, an abstract over the word limit, and images or tables appearing where they weren’t allowed. Even a small spacing difference could mean a document needed another check.
Our goal was to help staff spend less time checking those details manually.