An intelligent research assistant platform powered by Google Gemini, Sentence Transformers, and live arXiv data.
PaperPulse is a full-stack AI research platform that accelerates academic and professional literature workflows. Upload research papers, extract structured intelligence, conduct semantic question answering across multiple documents, discover related studies via real-time vector recommendations and live arXiv queries, and generate publication-ready literature surveys and citations β all within a unified, authenticated interface.
Live Demo: paperpulse.vercel.app Β |Β Backend API: Hosted on Render
| Module | Description |
|---|---|
| π€ Research Assistant | Context-aware RAG Q&A synthesized across all uploaded documents with citation attribution |
| π‘ Recommendation Engine | 4 search modes (Topic, Abstract, PDF Upload, Domain Browse) using Sentence Transformer cosine similarity + live arXiv API |
| π Literature Survey Generator | Automated multi-paper surveys categorized by objectives, methodologies, findings and themes |
| βοΈ Paper Comparison | Side-by-side AI breakdown of models, architectures, datasets, and performance tradeoffs |
| π Research Gap Analysis | Automated discovery of unexplored problem spaces and future research directions |
| π Trend Analysis | Keyword frequency shifts, emerging topics, and research trajectory projections |
| π Citation Generator | APA 7, MLA 9, Chicago, Harvard, IEEE, and BibTeX β formatted instantly |
| π My Papers Library | Unified manager for uploaded PDFs and saved arXiv recommendations with live search |
| π€ Export | Export full sessions, notes, and surveys to Markdown, PDF, and DOCX |
| π Authentication | Firebase Google Sign-in with guest-mode fallback |
| π Themes | Animated dark / light theme toggle, persisted across sessions |
Frontend Backend AI & Data
ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββββββββ
React 18 + Vite 5 FastAPI (Python 3.11) Google Gemini 3.5 Flash
Context API (Auth, Uvicorn ASGI server Sentence Transformers
Theme, Toast) Pydantic v2 (all-MiniLM-L6-v2)
Firebase Auth python-dotenv TF-IDF hashing fallback
jsPDF / DOCX export In-memory VectorStore Live arXiv Atom/XML API
FontAwesome Icons Cosine similarity Browser DOMParser (client)
LocalStorage persistence CORS-enabled
- Node.js 18+
- Python 3.10+
- A Google Gemini API key β Get one here
- A Firebase project β Create one here
git clone https://github.com/guruprasanth02/PaperPulse.git
cd PaperPulseCopy the example file and fill in your values:
cp .env.example .env# Gemini API Key
VITE_GEMINI_API_KEY=your_gemini_api_key
GEMINI_API_KEY=your_gemini_api_key
# Firebase (Web App config)
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# Optional: Override backend URL in production
# VITE_API_URL=https://your-backend.onrender.comIn development,
VITE_API_URLdefaults tohttp://localhost:8000. In production builds, it automatically falls back to/apion the same domain.
npm install
npm run dev
# β http://localhost:3000cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000
# β http://localhost:8000/docs (interactive API docs)PaperPulse/
βββ src/
β βββ components/
β β βββ ChatContainer.jsx # Research assistant with RAG & citation tracing
β β βββ RecommendationPage.jsx # Vector-based recommendation with 4 search modes
β β βββ DocBrowser.jsx # Paper library β upload, save, and search
β β βββ LiteratureSurveyPage.jsx # Automated literature survey generation
β β βββ ComparePapersPage.jsx # Side-by-side paper comparison
β β βββ ResearchGapPage.jsx # Research gap discovery
β β βββ TrendAnalysisPage.jsx # Trend and keyword trajectory analysis
β β βββ CitationGeneratorPage.jsx # Multi-style citation formatter
β β βββ ExportPanel.jsx # PDF / Word / Markdown export
β β βββ UploadZone.jsx # Parallel multi-file PDF ingestion
β β βββ SummaryPanel.jsx # AI-driven document summarization
β β βββ SettingsPage.jsx # User preferences
β βββ context/ # AuthContext, ThemeContext, ToastContext
β βββ hooks/
β β βββ useSessionPersistence.js # localStorage session sync with debounce
β βββ services/
β β βββ gemini.js # Gemini API client β model cascade + fallbacks
β β βββ recommendation.js # Recommendation API + arXiv client-side fallback
β βββ firebase.js # Firebase initialization
β
βββ backend/
β βββ main.py # FastAPI app β /research, /suggest_questions, /feedback
β βββ recommendation/
β β βββ recommender.py # RecommendationEngine with vector indexing
β β βββ vector_store.py # In-memory cosine similarity store
β β βββ embeddings.py # SentenceTransformer + TF-IDF fallback
β β βββ arxiv_fetcher.py # Live arXiv Atom/XML query and parser
β β βββ routes.py # FastAPI router β /recommend, /save-paper
β β βββ models.py # Pydantic request/response schemas
β βββ requirements.txt
β
βββ api/
β βββ index.py # Vercel serverless function entry point
β
βββ Dockerfile # Multi-stage production container
βββ docker-compose.yml # One-command local container setup
βββ vercel.json # Vercel frontend + serverless routing config
βββ vite.config.js # Vite build config with manual chunk splitting
βββ .env.example # Environment variable template
PaperPulse supports three deployment strategies. See DEPLOYMENT.md for the full step-by-step guide.
Deploy the React frontend on Vercel's global CDN and the FastAPI backend on Render's dedicated container β eliminating serverless cold-start limitations for long AI inference tasks.
User Browser
βββ Static assets βββΊ Vercel (Edge CDN, global)
βββ /api requests βββΊ Render (FastAPI, 24/7 container)
- Deploy the backend on Render β copy the service URL.
- On Vercel, set
VITE_API_URLto your Render URL and add all Firebase + Gemini keys. - Add your Vercel domain to Firebase Console β Authentication β Authorized Domains.
Serves both the SPA and the Python FastAPI serverless function from a single Vercel project β pre-configured with vercel.json and api/requirements.txt.
docker compose up -d --build
# App available at http://localhost:8000| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Health check |
POST |
/research |
RAG research Q&A |
POST |
/suggest_questions |
AI-generated follow-up questions |
POST |
/recommend |
Vector-based paper recommendations |
POST |
/search-topic |
Live arXiv + vector topic search |
POST |
/save-paper |
Toggle save/unsave a paper |
GET |
/saved-papers |
Retrieve saved papers |
POST |
/feedback |
Log user feedback on AI answers |
Interactive API docs available at http://localhost:8000/docs when running locally.
Contributions, issues, and feature requests are welcome.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feature/your-feature-name - Open a Pull Request
Distributed under the MIT License. See LICENSE for details.