Code Monkey home page Code Monkey logo

kamatro1 / lazy-reader Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.76 MB

๐Ÿ“š LazyReader: A Chrome extension that uses the OpenAI API to summarize webpage content, extract key terms, and generate reflection questions. Built with TypeScript, CSS, and JavaScript, it offers customizable settings for enhanced reading efficiency. ๐Ÿ”ง๐Ÿ“

Home Page: https://anniewangre.github.io/LazyReader-Landing-Page/

CSS 12.00% TypeScript 85.02% JavaScript 2.98%

lazy-reader's Introduction

Lazy-Reader

This repo contains the final project for the University of Pennsylvania CIS 3500 Spring 2024 course for Team 6. The team consists of Annie Wang, Emma Lee, Kevin Lee, & Rohan Kamat.

In this project, we built a Chrome extension using React with TypeScript and Webpack. It showcases key features such as interacting with Chrome APIs (storage, contextMenus, sidePanel) and the OpenAI API.

A "landing page" showcasing the extension can be found here.

Features

  • ๐Ÿ“ Text Summarization
  • ๐Ÿ” Key Term Extraction & Definitions
  • โ“ Reflection Question Generation
  • ๐Ÿ’ป Customizable UI (both style and color)
  • ๐Ÿ–Š๏ธ Flexible Responses (length, format, complexity)

A "promo video" demonstrating the extension's features can be found here.

Screenshots

The first screenshot showcases the Settings Page where the user enters their API key, chooses the response type(s), and customizes their UI: The second screenshot showcases the Context Menu that appears when the user right-clicks on the highlighted text they wish to use for the response: : The third screenshot showcases the Side Panel where the user customizes the response (bullet point or paragraph format, length, complexity), and where the response is presented:

Installation from Source

  1. In the terminal, naviagte to the folder where you'd like to install the extension (e.g., cd Desktop).

  2. Clone the repository:

    git clone https://github.com/kamatro1/Lazy-Reader.git
  3. Install dependencies:

    cd chrome-extension-text-collector
    npm install
  4. Build the extension:

    npm run build
  5. Load the extension in Chrome:

    • Open Chrome and navigate to chrome://extensions
    • Enable "Developer mode"
    • Click "Load unpacked" and select the dist directory from the project

Usage Instructions

Once you load the extension in Chrome (see Step 4 of Installation from Source above), you'll be automatically directed to the Settings Page.

Settings Page

Setup

  • Enter your OpenAI API key.
  • Choose the OpenAI model used to generate the responses, between GPT 3.5 Turbo and GPT 4 Turbo. Note that your access to the GPT 4 Turbo depends on your OpenAI usage tier.

Features

  • Choose which features you'd like included in your response out of Generate Summary, Generate Key Terms, & Generate Reflection Questions.

Display Options

  • Choose the theme for the Side Panel between Playful or Plain.
  • Choose the theme color for the Side Panel between Grey, Red, Blue, Yellow, or Green.

Once you have made your selections, be sure to exit the Settings Page by clicking the cross in the top right of the page to save your settings!

Context Menu

Once you have saved your settings on the Settings Page, you may select the text to be used for your response.

  • Highlight the text you wish to be used for your response.
  • Right-click on the selected text resulting in a Context Menu appearing.
  • Select Capture Snippet from the Context Menu (the one with the sloth face next to it, our logo!)

Side Panel

Once you have saved your settings on the Settings Page, and selected the web page text using the Context Menu, you can generate your response using the Side Panel.

  • Open the Side Panel using the extension button in the top right of the Chrome window.
  • Choose between Bullet Point or Paragraph format using the two icons.
  • Choose the complexity of the response using the Lvl drop down menu between Beginner, Intermediate, or Advanced.
  • Choose the length of the response using the Len drop down menu between S(mall), M(edium), or L(arge).
  • Click the tick icon on the right to save your selections and generate a response.
  • Copy the response using the overlayed rectangles on the right.
  • If you change any settings, or select new text, hit the "Regenerate" button where the tick icon was to generate a new response.

Reporting Issues

Please feel free to make any comments regarding suggestions, bugs, improvements, or new features in the issues section of the repository!

Credits

The initial setup of this project was based on Professor Lumbroso's Chrome Extension Starter repo. Furthermore, parts of this ReadMe.md file have been taken from the same repo's ReadMe.

License

This project is licensed under the terms of the MIT license.

lazy-reader's People

Contributors

kleekev avatar emmrlee avatar kamatro1 avatar anniewangre avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.