Inspiration

I was transcribing a long quote from a textbook into one of my essays. I had worked with OCR before doing this and while transcribing I realized there had to be a better way.

What it does

The mobile takes a picture of an ISBN number somewhere on the outside of the textbook. Using this ISBN, it indexes into a pre-made database full of citation information. Once you have the citation you take pictures of pages you want to gather quotes from and build a library of quotations indexed by the ISBN, these quotations also keep extra information like the page number. Moving to google docs, you open our add-on and select which book in your library you want to get a quote from. You then select which quote you want, and isolate just the text you want to quote in a text box. Clicking "Cite this!" copys the text, formatted as a quote with an in-text citation, to your clipboard ready to be pasted wherever you want in your document.

How I built it

All three components of our software interact with a real-time Firebase instance. The mobile app is built in Flutter, written in Dart. The "server" that processes images captured by the mobile device and puts extracted information into the library is written all in python, using open source tools to interact with the firebase API. The Google Docs Add-On is written all in javascript and html and uses jquery to ineract with our firebase instance.

Challenges I ran into

The hardest part by far was building the mobile app with many states, as we didn't have much experience working with that. Also managing our database and ensuring that all information was where it needed to be and could allow access to the other parts of the database consumed a lot of our time.

Accomplishments that I'm proud of

The sheer amount of unique components to this application is an accomplishment that none of us had done on our own before. The database, mobile app, docs add-on and server all had to share a common language and the three clients work together through the database.

What I learned

We all worked on individual components seperately, so we all learned something unique. For the server, I had to learn how to interact with a database which I had never done before. For the mobile app we had to learn state management.

What's next for EasyCite

Building a bigger data-set, making the UI of both the add-on and the app cleaner (although we're very proud of how clean it is considering the time constraints) and improving the convenience tools.

Share this project:

Updates