SkimGPT is a Chrome extension built to help users efficiently digest online articles and blog posts. It uses GPT to generate a summary of the webpage the user is currently on and displays it on the side.
Screen.Recording.2023-06-05.at.5-38-46.PM_1.mp4
Disclaimer: Due to the nature of GPT, the summarizer may take from 1 to 2 minutes to generate the result.
Research papers, news articles, and even blog posts are all relatively lengthy and require quite a bit of time out of people's days to read. Society is very fast paced, so not that many people feel like they have time to sit down and read an article. So how can we get the most relevant information as quickly as possible? And if the individual reads it, will they enjoy reading the article if the writer is extremely biased or opinionated?
- There is too much information for people to digest in a short period of time, and people are more likely to feel too overwhelmed with the length of an article and lose track of the main point.
- Granted, article headlines and abstracts may be beneficial, but they are a bit too short and don't cover the topic in too much depth... so we need to find a middle ground.
- Some authors are extremely passionate about their perspective, and it may come off as aggressive, discouraging readers from finishing the article and understanding the author's main point.
Code Organization
extension
- folder that enables the code to be run as Chrome extensionextension/manifest.json
- json file that provides important info about creating the extension code when runningnpm run build
src/
- all source codesrc/index.jsx
src/app.jsx
src/style.scss
- stylingsrc/components/
- all componentssrc/components/summarizer_model.js
- enables fetching the summary from API
src/actions/
- all actionssrc/actions/reader.jsx
- reader viewsrc/actions/sidebar.jsx
- the entire sidebar, repeatedly makes GET calls to the backend and passes the info down to its child componentssrc/actions/tools.jsx
- tabs, copy to clipboard, download as pdfsrc/actions/summary.jsx
- summary tab that displays the title and overviewsrc/actions/section.jsx
- summary tab that displays the section summariessrc/actions/dropdown.jsx
- dropdown menu in retone tabsrc/actions/retone.jsx
- retone tab that displays retone - not finished but backend is working
src/reducers/
- all reducerssrc/reducers/index.js
- combines all reducerssrc/reducers/summary_reducer.js
- summarizer reducer
package.json
- all dependencies and scriptspackage-lock.json
- all dependencies and versions.eslintrc.json
- eslint configurationvite.config.js
- vite configuration filewebpack.config.js
- webpack configuration fileindex.html
- main file, which leads to src/index.jsx.gitignore
- gitignore fileREADME.md
- this file
Tools and Libraries Used
- webpack
- materialUI
- jsPDF
- html2canvas
- react-toggle
make sure you update vite to the latest version
- git clone this repository
- run
npm install
on project directory - run
npm run build
- go to Chrome Extensions page(chrome://extensions/)
- In developer mode, click "load unpacked"
- select the extension folder, within the project folder. The extension folder should have manifest.json and content.js. (content.js is created after you do
npm run build
)
- Kyle Huang
- Annie Tang
- Pedro Campos
- Gyuri Hwang
- Ashley Liang
- Di Luo
Big thanks to Tim's starter express app template and previous labs/projects, the TAs Camden Hao and Zhoucai Ni for their help! Also shoutout to chatGPT for helping us figure out how to structure some code.