Origify
Origify checks if an exam paper was copied or reused. You scan the paper with your phone, it compares it against past exams from the web, and tells you how similar it is.
Why
It comes from my own experience with the state education system. Exams should be authentic and fair, and the first step is knowing when one was just taken from somewhere else.
How it works
- The paper goes in as a photo or a PDF and gets converted to plain text (OCR for photos).
- The text is cleaned up with NLTK: tokenized, stop words removed, words stemmed.
- It's turned into a TF-IDF vector and compared with every exam in the database using cosine similarity.
TF-IDF gives more weight to words that are rare across the whole database, so two papers sharing the same unusual terms end up with a high score.
The data
The database is built from exams scraped from Dzexams and Ency Education, covering CEM, BEM and BAC. Duplicates between the two get cleaned out, and new exams can be uploaded manually too.
Features
- Pick the subject first, so the paper is only compared against exams of that subject
- Shareable results: links, documents and badges
- Teacher scoring, from the exam provider info users enter
Stack
- App: React Native, with React Native Document Scanner for the camera
- Backend: Python, FastAPI, scikit-learn, NLTK
- Scraping: HTTPX, selectolax, Playwright
- Monitoring: Sentry, LogSnag, Better Stack
Design

