Skip to content

AI-powered browser extension to auto-log browsing, summarize content, and create a searchable knowledge journal. Boost productivity and information recall with intelligent web capture. (Manifest V3, Gemini AI)

License

Notifications You must be signed in to change notification settings

chirag127/InsightCapture-AI-Journal-Browser-Extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“˜ Auto-Journal Browser Extension

AI-powered browsing activity logger and summarizer that helps you remember and organize what you learn online.

✨ Description

Auto-Journal is an AI-powered browser extension that passively logs your browsing activity, summarizes content using Gemini 2.0 Flash Lite, and organizes it into a searchable personal knowledge journal. It helps knowledge workers track what they've read, reflect on it, and extract key insights from their daily web browsing.

πŸš€ Live Demo

Visit our website: https://chirag127.github.io/Auto-Journal-Browser-Extension

πŸ§ͺ Features

  • Auto-Logging: Automatically logs page visits, titles, and timestamps
  • AI Summarization: Uses Gemini 2.0 Flash Lite to summarize visited pages
  • Highlight & Save: Save selected text as thoughts or snippets with AI-generated notes
  • Journal View: Searchable daily journal of browsing activity
  • Tags & Categorization: Auto-tags pages and supports manual categorization
  • Privacy Controls: Private by default with domain blacklisting and pause functionality

πŸ› οΈ Tech Stack / Tools Used

  • Frontend: Browser Extension (Manifest V3) with HTML, CSS, and Vanilla JS
  • Backend: Express.js server with MongoDB for storage
  • AI: Gemini 2.0 Flash Lite API for content summarization
  • Tools: Node.js, npm, Git

Project Structure

Auto-Journal-Browser-Extension/
β”œβ”€β”€ extension/                # Browser extension source
β”‚   β”œβ”€β”€ manifest.json        # Extension configuration
β”‚   β”œβ”€β”€ background.js        # Background script for tracking and API communication
β”‚   β”œβ”€β”€ content.js           # Content script for page data extraction and highlighting
β”‚   β”œβ”€β”€ popup.html           # HTML structure for the popup UI
β”‚   β”œβ”€β”€ popup.js             # JavaScript for popup functionality
β”‚   β”œβ”€β”€ styles.css           # CSS for styling the popup and highlights
β”‚   β”œβ”€β”€ icons/               # Extension icons
β”‚   β”œβ”€β”€ utils/               # Utility functions
β”‚   β”‚   β”œβ”€β”€ storage.js       # Storage utility
β”‚   β”‚   β”œβ”€β”€ api.js           # API communication utility
β”‚   β”‚   └── dom.js           # DOM manipulation utility
β”‚   └── components/          # UI components
β”œβ”€β”€ backend/                  # Node.js backend
β”‚   β”œβ”€β”€ server.js            # Main Express.js server
β”‚   β”œβ”€β”€ config/              # Configuration files
β”‚   β”‚   β”œβ”€β”€ db.js            # MongoDB connection
β”‚   β”‚   └── gemini.js        # Gemini API configuration
β”‚   β”œβ”€β”€ routes/              # API routes
β”‚   β”‚   β”œβ”€β”€ logRoutes.js     # Routes for logging browsing data
β”‚   β”‚   β”œβ”€β”€ summaryRoutes.js # Routes for AI summarization
β”‚   β”‚   β”œβ”€β”€ journalRoutes.js # Routes for journal retrieval
β”‚   β”‚   └── tagRoutes.js     # Routes for tag management
β”‚   β”œβ”€β”€ controllers/         # Route controllers
β”‚   β”‚   β”œβ”€β”€ logController.js     # Controller for logging functionality
β”‚   β”‚   β”œβ”€β”€ summaryController.js # Controller for summarization
β”‚   β”‚   β”œβ”€β”€ journalController.js # Controller for journal management
β”‚   β”‚   └── tagController.js     # Controller for tag management
β”‚   β”œβ”€β”€ models/              # MongoDB schemas
β”‚   β”‚   β”œβ”€β”€ journalEntry.js  # Schema for journal entries
β”‚   β”‚   β”œβ”€β”€ tag.js           # Schema for tags and categories
β”‚   β”‚   └── user.js          # Schema for user data (future)
β”‚   β”œβ”€β”€ utils/               # Utility functions
β”‚   β”‚   β”œβ”€β”€ tagging.js       # Tag management utilities
β”‚   β”‚   └── textProcessing.js # Text processing utilities
β”‚   └── middleware/          # Express middleware
β”‚       └── errorHandler.js  # Error handling middleware
β”œβ”€β”€ .env.example             # Example environment variables
└── README.md                # Project documentation

πŸ“¦ Installation Instructions

Extension

  1. Clone this repository
  2. Open Chrome and navigate to chrome://extensions/
  3. Enable "Developer mode"
  4. Click "Load unpacked" and select the extension folder

Backend

  1. Navigate to the backend folder
  2. Run npm install to install dependencies
  3. Create a .env file based on .env.example
  4. Run npm start to start the server

πŸ”§ Usage

  1. Browse Normally: Auto-Journal works in the background, automatically logging pages you visit and generating summaries.
  2. Highlight Text: Select any text on a webpage, right-click, and choose "Save to Auto-Journal" to save it as a highlight.
  3. View Your Journal: Click the Auto-Journal icon in your browser toolbar to open the popup and view your journal entries.
  4. Search and Filter: Use the search bar and filters to find specific entries by keyword, tag, or date.
  5. Manage Privacy: Use the settings tab to blacklist domains, toggle logging, or manage your data.

πŸ“Έ Screenshots

Coming soon

Development

Prerequisites

  • Node.js and npm
  • MongoDB (local or Atlas)
  • Gemini API key

Setup

  1. Clone the repository
  2. Install backend dependencies: cd backend && npm install
  3. Configure environment variables in .env
  4. Start the development server: npm run dev

API Endpoints

Logging

  • POST /api/log - Log a page visit
  • GET /api/log/stats - Get logging statistics

Summarization

  • POST /api/summarize - Summarize page content
  • POST /api/summarize/highlight - Summarize highlighted text

Journal

  • GET /api/journal - Get all journal entries
  • GET /api/journal/search - Search journal entries
  • GET /api/journal/:url - Get a specific journal entry by URL
  • DELETE /api/journal/:url - Delete a journal entry
  • POST /api/journal/highlight - Add a highlight to a journal entry

Tags

  • GET /api/tags - Get all tags
  • PATCH /api/tags/:url - Update tags for a journal entry
  • GET /api/tags/categories - Get all tag categories

Data Models

Journal Entry

{
  userId: String,  // For future multi-user support
  url: String,
  title: String,
  favicon: String,  // Store favicon URL for visual identification
  visitTime: Date,
  content: {
    text: String,  // First 500-1000 words of content
    summary: String,  // AI-generated summary
  },
  highlights: [{
    text: String,
    note: String,  // AI-generated note or user note
    timestamp: Date
  }],
  tags: [String],
  category: String,
  domain: String,  // Extracted from URL for filtering
  isPrivate: Boolean  // Flag for privacy control
}

Future Enhancements

  • GPT-style chatbot that can answer "What did I read last week about AI?"
  • Auto-export to GitHub
  • Mood/tone detection of content consumed
  • Graph view of reading connections (Γ  la Roam/Obsidian)
  • OAuth2 login support for syncing across devices

πŸ™Œ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please read CONTRIBUTING.md for detailed guidelines.

πŸͺͺ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

AI-powered browser extension to auto-log browsing, summarize content, and create a searchable knowledge journal. Boost productivity and information recall with intelligent web capture. (Manifest V3, Gemini AI)

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •