An AI-powered document summarization app that lets you upload documents and generate concise summaries using a choice of NLP models — from lightweight extractive algorithms to large language models.
- 📁 Multi-file uploads with PDF thumbnail previews (Claude-style attachment UI)
- 🧠 Multiple summarization models: BART, T5, LexRank, TextRank, LSA, Luhn, Llama 3.2 (via Ollama), GPT-4o
- 💬 Conversation history with continuity across sessions
- 🔗 Shareable conversation links via token-based public sharing
- 🌗 Multi-theme support
- 🧩 Chrome extension with side panel for quick access
Frontend: React, TypeScript, Vite Backend: Node.js, Express, MySQL (via Sequelize), MongoDB Summarization Service: Python, FastAPI AI/ML: BART, T5, LexRank, TextRank, LSA, Luhn, Ollama (Llama 3.2), GPT-4o
websears-summary-app/
├── client/ # React + TypeScript frontend
├── server/ # Node.js/Express backend
├── summary_service/ # Python FastAPI summarization microservice
└── .gitignore- Node.js (v18+)
- Python 3.10+
- MySQL
- MongoDB
- Ollama/Qwen for local Llama 3.2 inference
- Clone the repository
git clone https://github.com/karmokar/websears-summary-app.git
cd websears-summary-app- Frontend setup
cd client
npm install
npm run dev- Backend setup
cd server
npm install
npm start- Summarization service setup
cd summary_service
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload- Configure environment variables (
.envfiles) for each service — database URLs, API keys, and model endpoints.
- Start all three services (client, server, summary_service)
- Open the app in your browser
- Upload one or more documents (PDF, etc.)
- Select your preferred summarization model
- Generate and view your summary
- Share conversations via a generated link if needed
The app is designed to run on a Linux server with PM2 for process management and Nginx as a reverse proxy.