https://github.com/cornish/scholar-watch-desktop
Desktop app to track Google Scholar citation metrics, h-index, and publication trends. Runs locally to avoid IP blocking.
https://github.com/cornish/scholar-watch-desktop
academic-research bibliometrics citation-tracking desktop-app google-scholar h-index plotly python
Last synced: about 1 month ago
JSON representation
Desktop app to track Google Scholar citation metrics, h-index, and publication trends. Runs locally to avoid IP blocking.
- Host: GitHub
- URL: https://github.com/cornish/scholar-watch-desktop
- Owner: cornish
- License: gpl-3.0
- Created: 2026-03-28T23:54:04.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-03T00:57:48.000Z (2 months ago)
- Last Synced: 2026-04-03T10:40:14.409Z (2 months ago)
- Topics: academic-research, bibliometrics, citation-tracking, desktop-app, google-scholar, h-index, plotly, python
- Language: Python
- Size: 87.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Scholar Watch Desktop
A desktop app that tracks Google Scholar citation metrics over time. Monitor h-index, citation counts, publication trends, and more for any researcher — all from your local machine.
**Why desktop?** Google Scholar blocks requests from cloud server IPs. Running locally means scraping works reliably from your own network.
## Features
- **Track any researcher** by Google Scholar ID or profile URL
- **Citation metrics** — total citations, h-index, i10-index, citation velocity, acceleration, half-life
- **Interactive charts** — citation timelines, h-index trends, velocity, citations per year, top papers (Plotly)
- **h-index analysis** — boundary visualization, candidate papers with estimated days to next h
- **Trending & declining papers** — ranked by citation velocity
- **Researcher comparison** — side-by-side metrics and overlay charts
- **Notifications** — alerts for h-index changes, citation milestones, new publications
- **Scrape from the UI** — one-click data refresh with background processing
- **Full CLI** — `scholar-watch scrape`, `metrics`, `add-researcher`, etc.
## Quick Start
### Option 1: Download the exe (Windows)
Grab `ScholarWatch.exe` from the [latest release](../../releases/latest). Double-click to run — no Python needed.
Data is stored in `%LOCALAPPDATA%\ScholarWatch\`.
### Option 2: Run from source
```bash
git clone https://github.com/cornish/scholar-watch-desktop.git
cd scholar-watch-desktop
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac
pip install -e .
scholar-watch init-db
scholar-watch desktop
```
## Usage
1. **Add researchers** — paste a Scholar ID (e.g. `g9uuZu6YAAAAJ`) or full profile URL
2. **Scrape** — click "Scrape All" to fetch data from Google Scholar
3. **Explore** — click a researcher to see charts, metrics, trending papers, and h-index analysis
4. **Compare** — select multiple researchers for side-by-side comparison
5. **Notifications** — bell icon shows unread alerts for milestones and changes
## CLI Commands
```
scholar-watch desktop # Launch the desktop app
scholar-watch scrape # Scrape all tracked researchers
scholar-watch scrape -r ID # Scrape a single researcher
scholar-watch metrics ID # Print metrics for a researcher
scholar-watch add-researcher ID # Add a researcher by Scholar ID
scholar-watch list-researchers # List all tracked researchers
scholar-watch init-db # Initialize the database
scholar-watch report # Send an email report
```
## Configuration
Copy `config/config.example.yaml` to `config/config.yaml` and edit as needed:
```yaml
database:
path: data/scholar_watch.db
scraping:
min_delay: 5
max_delay: 15
max_publications: 500
```
Environment variables can be interpolated with `${VAR_NAME}` syntax.
## Architecture
```
Chrome/Edge Window (Eel)
├── Static HTML + CSS + JS
├── Plotly.js charts (rendered client-side from JSON)
└── eel.function() calls ──WebSocket──► Python backend
├── @eel.expose API functions
├── scholarly (Google Scholar scraper)
├── SQLAlchemy + SQLite
├── Plotly figure generation
└── Metrics computation
```
Built with [Eel](https://github.com/python-eel/Eel), [scholarly](https://github.com/scholarly-python-package/scholarly), [Plotly](https://plotly.com/python/), and [SQLAlchemy](https://www.sqlalchemy.org/).
## License
[GPL-3.0](LICENSE)