When creating presentations or outlining papers for school, I always hate copying text from an article, then switching tabs, finding where in the Google Doc I want to put it, and finally pasting it. Instead, I thought it would be useful to create something that automatically did all of that for me. This was perfect since I knew I wanted to create some kind of Chrome Extension. I also wanted to include some aspects of Machine Learning in my project and thought it would be handy to be able to summarize the notes.

What it does

If you highlight text on a page then click on the Chrome Extension, enter the category, and press submits, it automatically adds to/updates your Google Doc with the text you highlighted (linking the source) under the category you specified. Then once you have all your notes, on the Chrome Extension you can press the summarize button, and it will automatically add a summary of each section (created by a machine learning algorithm) to the bottom.

How I built it

I used HTML, JS, and CSS for the chrome extension and python (Flask) for the backend. I began with Flask and setting up the Google Docs API so I could access a document from my drive. Then I created the Chrome Extension and worked on passing information between the two. Finally, I implemented the machine learning algorithm to summarize the notes

Challenges I ran into

I ran into a lot of challenges, but I think the biggest one was getting the Google Docs API to work. First just being able to access my drive or a document was a huge challenge as I had never worked with this API before and there was a lot of authentification stuff. Then once I had that working, inserting, formatting, and modifying text within the document was challenging as I needed to make specific requests that required information I didn't necessarily have (lots of issues with the endIndex).

Accomplishments that I'm proud of

I'm very proud of getting the Google Docs API to work as I put a lot of time and effort into that. I'm also proud of the fluidity of the app as the frontend and backend work well together. Overall, I put a lot of work into making it all run smoothly and am very happy with the outcome!

What I learned

I learned a lot throughout this project, especially about APIs and Chrome Extensions. This was my first solo project working with Chrome Extensions, so I learned lots of important things about them (like the difference between popup.js and background.js). And, as discussed a lot, I had never used Google Docs API so that took some time before I got the hang of it.

What's next for Chrome Extension Notes Organizer / Summarizer (CENOS)

I would love to continue adding features to CENOS! One idea is adding a space for images to be screenshotted, inserted, and then added to the docs. I would also want an ml algorithm that auto-captions these images. Also, right now I have a document ID manually entered in the code, but I think it would be cool to add an input asking for the doc id the user wanted.

Built With

Share this project: