Inspiration

I've had the issue many times where I've found something useful in a physical document or textbook, but when I come back to it I can't find it. Rather than comb through several pages, I realized it would be much easier if I could just point my camera at it and let OCR do the work of finding what I needed. When I looked at what I was out there, I found only one app that does something similar, called CTRL-F. But the problem with this app is that it doesn't work in real time. It requires you to take an image, scan and crop each page that you want to look at. This is very inefficient if you're trying to search through several pages. So, I came up with the idea to implement this sort of real-life real-world text search myself.

What it does

With Find It, you can search through physical documents just as you might with a digital document. Just type in your search query, and hit enter to go to a camera view. Then, just point your camera at a document, and in real time the app will highlight all occurrences of your search query.

How I built it

I used Java and built the app in Android. For optical character recognition, I used an OCR library that is built into Android.

Challenges I ran into

The biggest challenge in making this was writing the algorithm to find the words I was searching for in my text. The data structure that the OCR library isn't ideal for what I was trying to do, and I had to account for this when creating my algorithm. Since the data structure was delimited by words, I also had to account for matches appearing in the middle of a word and search queries spanning multiple words. Since this algorithm was being run multiple times per second, I also had the challenge of making this algorithm efficient.

What's next for Find It - Real World Document Search

I want to add a way to monetize the app. My plan is to have a free version which allows searching one query at a time and contains ads, and a paid, ad-free version which allows searching an unlimited number of queries at a time. I've already released an app on the play store, and I found that the bulk of my revenue came from ad impressions, but I was still about to make a small amount from in-app purchases. Adding extra features to the "pro" version should boost my revenue by making it more attractive to users.

Built With

Share this project:

Updates

Submission history