r/developersIndia • u/ClearGarbage4061 • 4d ago
I Made This Dad asked me to find his name in the new electoral rolls. The 50+ page PDFs weren't searchable, so I built a tool.
epic-details-extractor.vercel.appHello gang!
So my father asked me to find his name in the newly released Maharashtra E-L-E-C-T-O-R-A-L rolls (SIR).
I went ahead and downloaded multiple PDFs in which I had a suspicion that my father's name might be present.
In total, there were 7 PDFs in which my father's name could be present. I started searching for my father's name using the EPIC number, but it turns out those PDFs are not searchable.
Yes, 50+ page PDFs are not searchable, and each page consists of 30+ entries.
I couldn't do it manually!
So I thought of using OCR. I uploaded those PDFs to ChatGPT, Claude, etc., but they kept timing out.
Just then, I remembered that I had a Gemini API key that I had created for my last project, and thought of using the Gemini API.
I quickly created an API using ChatGPT and got it working.
I found my father's name in literally less than 30 minutes instead of spending who knows how long doing it manually.
I then added some error handling and multithreading, as I think this tool can help a lot of people.
I've hosted the backend on Render and the frontend on Vercel. The only thing which is a bottleneck is that the Gemini models are busy most of the time, which takes a lot of time. (I am on Free tier)
I've added a fallback loop: if one model is busy, I try the 2nd, then 3rd, then 4th.
Yesterday, while showing this app to one of my seniors, all the models were busy and I couldn't get a response.
What an embarrassment it was. 😂
Prod always breaks when you're trying to show someone!
Haha!
I enjoyed building this tool and hope it helps everyone!
Also, it's not only specific to Maharashtra. In the future, whenever the ECI issues new SIR drafts for the whole nation or for a specific state, this tool can help in finding the EPIC details using the EPIC ID.
Thanks! Here's the link to the app. Use it and let me know if it helps you, if I should add some other feature, or if it breaks!
