Inspiration

From time to time people need to read texts information, including PDFs, pure texts data, and news, etc online and it's just too time-consuming to finish a complete run for every detail, hence we have this idea of making a webapp where people can feed in any information, no matter whether it's PDF file or a news url and we'll tell you what this doc is talking about.

What it does

Just upload any PDF, or paste the url or the complete text into our webapp: we'll run through the information, analyse with Natural Language Processing (NLP), and return you with the key information, for instance, the summary of the PDF/text, the name entities recognized, and the topics identified in the doc. Additionally, we also support audio so when the summary is generated we could also "speak it out" in case anyone has problems reading through all of them.

How I built it

Frontend, Backend, and NLP processing module. Frontend built with Vue.JS; backend used Flask; NLP built with Python Gensim, NLTK for summarization and Noun Phrase recognition, and Google Cloud API for NER, doc categorization.

Challenges I ran into

Separation of tasks, so the integration comes as a major challenge. Also people might be unfamiliar with certain tech stacks so it takes some time to get hands on the platform for the first time.

Accomplishments that I'm proud of

First of all, we feel that our idea and objective is of real use and there will be people who really need such a platform. Secondly, we successfully integrated several handy libs and APIs, such as PyPDF and Google Cloud such that we could achieve our goal wth much ease and precision.

What I learned

The integration took a lot of efforts and each one of us learnt rather substantially for web application development. Also, we heard about the Google Cloud API during the first day, and thought that some of its APIs fit perfectly with our goal, so we decided to use it, and found it actually to be really useful.

What's next for GoodReader

We have designed all of the components (frontend, backend, and NLP module) in a modularized pattern such that they can be extended and further improved easily, so for example, if you want to implement your own information retrieval technique like how the doc is summarized, you can simply write your own function and embed it into the backend.

Built With

Share this project:

Updates

Submission history