# _ScholarImpact_
A bibliometric tool to analyse, visualise, and share your research impact, output and scholarly influence using Google Scholar and OpenAlex data.
For each article under your Google Scholar Profile, **_ScholarImpact_**: (1) total number of citations, (2) number of unique authors who have cited the article, (3) number of countries from which citations originate, (4) number of institutions from which citations originate, (5) geographic distribution of citations, (6) citation trends over time, (7) research domain analysis, (8) interdisciplinary impact Metrics including Patents and Wikipedia mentions (9) Alternative metrics.



## Workflow Overview
This workflow first extracts author data from your Google Scholar profile and optionally enriches it with OpenAlex and Altmetric data. Then it sources citations for each article under your Google Scholar profile. Next workflow enriches them with information using Google Scholar profiles of citing authors and/or OpenAlex APIs. Finally, output data is used to present your impact of your research with geographic and institutional insights.
```mermaid
flowchart TD
A[Your Google Scholar Profile] --> B[Your Articles]
B --> C[OpenAlex API]
B --> D[Altmetric API]
C --> E[Enhanced Scholar Data]
D --> E[Enhanced Scholar Data]
style A fill:#0ea5e9,stroke:#0ea5e9,color:#ffffff
style C fill:#059669,stroke:#059669,color:#ffffff
style D fill:#059669,stroke:#059669,color:#ffffff
style E fill:#ecebe3,stroke:#ecebe3,color:#3d3a2a
```
```mermaid
flowchart TD
A[Enhanced Scholar Data] --> B[Your Articles]
B --> C[Citing Articles]
B --> F[OpenAlex API]
C --> D[Enhanced Citation Data]
D --> E[Streamlit Dashboard]
C --> F[OpenAlex API]
C --> G[Google Scholar Profiles of citing Authors]
F --> D
G --> D
F -.-> H[Author Affiliations]
F -.-> I[Country Codes]
F -.-> J[Research Domains]
G -.-> K[Verified Email Domain]
G -.-> L[Profile Details including Affiliations]
H --> D
I --> D
J --> D
K --> D
L --> D
style A fill:#ecebe3,stroke:#ecebe3,color:#3d3a2a
style E fill:#cb785c,stroke:#cb785c,color:#ffffff
style F fill:#059669,stroke:#059669,color:#ffffff
style G fill:#fbbf24,stroke:#fbbf24,color:#3d3a2a
style D fill:#ecebe3,stroke:#ecebe3,color:#3d3a2a
```
## Quick Start
### Prerequisites
Install
```bash
pip install scholarimpact
```
## Caution
This system is designed for academic research purposes and personal usage. Please use responsibly and in accordance with Google Scholar, OpenAlex, Altmetric terms of services with appropriate attribution.
## Step-by-Step Guide
### Option 1: For Deployment (Recommended)
This approach creates a standalone project suitable for deployment to Streamlit Cloud or local development.
#### Step 1: Generate Dashboard Project
```bash
# Generate a dashboard project
scholarimpact generate-dashboard --output-dir my-research-dashboard --name app.py
# Navigate to the generated folder
cd my-research-dashboard
```
This creates a complete project structure with `app.py`, `requirements.txt`, `.streamlit/config.toml`, and a `static` folder containing fonts used by default theme.
#### Step 2: Extract Author Publications
```bash
# Extract your publications from Google Scholar (OpenAlex and Altmetric enabled by default)
scholarimpact extract-author "YOUR_SCHOLAR_USER_ID"
# With email for higher OpenAlex rate limits (recommended)
scholarimpact extract-author "YOUR_SCHOLAR_USER_ID" --openalex-email your.email@example.com
# Or use full URL
scholarimpact extract-author "https://scholar.google.com/citations?user=YOUR_SCHOLAR_USER_ID"
```
This creates `data/author.json` with your publication list, enriched with OpenAlex and Altmetric metrics by default.
#### Step 3: Crawl Citation Data
```bash
# Crawl citations with OpenAlex enrichment
scholarimpact crawl-citations data/author.json --openalex-email your.email@example.com
```
This creates `data/cites-{ID}.json` files for each publication.
#### Step 4: Test Locally
```bash
# Run the dashboard locally
streamlit run app.py
# Or alternatively
python app.py
```
Open `http://localhost:8501`to view your dashboard.
#### Step 5: Push your changes to a Github Repository
```bash
# Initialize git repository
git init
git add .
git commit -m "Initial research dashboard"
# Create GitHub repository and push
git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO.git
git branch -M main
git push -u origin main
```
#### Step 6: Deploy on Streamlit Cloud
1. Go to [share.streamlit.io](https://share.streamlit.io)
2. Click "New app"
3. Connect your GitHub account
4. Select your repository and branch
5. Set main file path: `app.py` (or your custom name)
6. Click "Deploy"
#### Step 7: Project Structure for Deployment
Your repository should contain:
```
my-research-dashboard/
├── app.py # Main dashboard file
├── requirements.txt # Python dependencies
├── .streamlit/
│ └── config.toml # Streamlit configuration
├── static/ # Static assets (fonts from scholarimpact/assets/fonts)
│ ├── SpaceGrotesk-SemiBold.ttf
│ ├── SpaceGrotesk-VariableFont_wght.ttf
│ ├── SpaceMono-Regular.ttf
│ ├── SpaceMono-Bold.ttf
│ ├── SpaceMono-Italic.ttf
│ ├── SpaceMono-BoldItalic.ttf
│ └── OFL-*.txt # Font licenses
└── data/
├── author.json # Author profile data
└── cites-*.json # Citation data files
```
#### Step 8: Update Data
To update citation data:
1. Re-run step-2 and step-3 to update data files
2. Commit changes and push them to your GitHub repository
3. Streamlit Cloud will automatically detect changes and restart the app
#### Tips for Streamlit Cloud Deployment
- Keep data files under 100MB each for optimal performance
- Use `.gitignore` to exclude unnecessary files
- Set secrets in Streamlit Cloud settings if needed
- Monitor app logs in Streamlit Cloud dashboard for debugging
### Option 2: For Quick Local Testing
This approach is fastest for local analysis without deployment needs.
#### Step 1: Extract Author Publications
```bash
# Extract publications directly
scholarimpact extract-author "YOUR_SCHOLAR_USER_ID"
```
#### Step 2: Crawl Citation Data
```bash
# Crawl citations
scholarimpact crawl-citations data/author.json --openalex-email your.email@example.com
```
#### Step 3: Launch Dashboard
```bash
# Run dashboard directly
ScholarImpact
```
The dashboard opens at `http://localhost:8501`.
## CLI Options Reference
### `scholarimpact extract-author` Command
Extract author publications from Google Scholar with OpenAlex and Altmetric enrichment:
```bash
scholarimpact extract-author [OPTIONS] SCHOLAR_ID
```
Arguments:
- `SCHOLAR_ID`: Google Scholar author ID or full profile URL
Options:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `--max-papers N` | int | None | Maximum number of papers to analyze (default: all) |
| `--delay X` | float | 2.0 | Delay between requests in seconds |
| `--output-dir DIR` | str | ./data | Output directory for author.json |
| `--output-file FILE` | str | None | Custom output file path (overrides output-dir) |
| `--use-openalex/--no-openalex` | flag | True | Enable OpenAlex enrichment (default: enabled) |
| `--openalex-email EMAIL` | str | None | Email for OpenAlex API (optional, for higher rate limits) |
| `--use-altmetric/--no-altmetric` | flag | True | Enable Altmetric enrichment (requires OpenAlex, default: enabled) |
OpenAlex enrichment adds (all fields prefixed with `openalex_`):
- `openalex_ids`: Object containing all identifiers:
- `openalex`: OpenAlex work URL
- `doi`: Digital Object Identifier URL
- `mag`: Microsoft Academic Graph ID
- `pmid`: PubMed ID URL
- `openalex_type`: Publication type (article, book, etc.)
- `openalex_citation_normalized_percentile`: Percentile ranking of citations
- `openalex_cited_by_percentile_year`: Citation percentile by year
- `openalex_fwci`: Field-Weighted Citation Impact
- `openalex_cited_by_count`: OpenAlex citation count
- `openalex_primary_topic`: Main research topic
- `openalex_domain`, `openalex_field`, `openalex_subfield`: Hierarchical classification
Altmetric enrichment adds (all fields prefixed with `altmetric_`):
- `altmetric_score`: Overall Altmetric attention score
- `altmetric_cited_by_wikipedia_count`: Citations in Wikipedia
- `altmetric_cited_by_patents_count`: Citations in patents
- `altmetric_cited_by_accounts_count`: Social media accounts mentioning
- `altmetric_cited_by_posts_count`: Social media posts mentioning
- `altmetric_scopus_subjects`: Scopus subject classifications
- `altmetric_readers`: Reader counts by platform (Mendeley, CiteULike, etc.)
- `altmetric_readers_count`: Total reader count
- `altmetric_images`: Altmetric badge images (small, medium, large)
- `altmetric_details_url`: Link to detailed Altmetric page
Examples:
```bash
# Basic usage (OpenAlex and Altmetric enabled by default)
scholarimpact extract-author "ABC123DEF"
# With email for higher OpenAlex rate limits
scholarimpact extract-author "ABC123DEF" --openalex-email your.email@example.com
# Disable Altmetric enrichment (keep OpenAlex)
scholarimpact extract-author "ABC123DEF" --no-altmetric
# Disable all enrichment (Google Scholar only)
scholarimpact extract-author "ABC123DEF" --no-openalex --no-altmetric
# Limit to first 20 papers with 3-second delays
scholarimpact extract-author "ABC123DEF" --max-papers 20 --delay 3
# Custom output file with email for higher limits
scholarimpact extract-author "ABC123DEF" --output-file data/my_author.json --openalex-email your.email@example.com
# Full URL format
scholarimpact extract-author "https://scholar.google.com/citations?user=ABC123DEF"
```
### `scholarimpact crawl-citations` Command
Crawl citations with OpenAlex integration:
```bash
scholarimpact crawl-citations [OPTIONS] AUTHOR_JSON
```
Arguments:
- `AUTHOR_JSON`: Path to author.json file containing publications
Options:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `--openalex-email EMAIL` | str | None | Email for OpenAlex API (higher rate limits) |
| `--max-citations N` | int | None | Maximum citations per paper |
| `--delay-min X` | float | 5.0 | Minimum delay between requests (seconds) |
| `--delay-max Y` | float | 10.0 | Maximum delay between requests (seconds) |
| `--output-dir DIR` | str | None | Output directory (defaults to author.json directory) |
Examples:
```bash
# Basic usage with OpenAlex
scholarimpact crawl-citations data/author.json --openalex-email me@university.edu
# Custom delays
scholarimpact crawl-citations data/author.json --delay-min 3 --delay-max 8
# Custom output directory
scholarimpact crawl-citations data/author.json --output-dir custom_data
# Limit citations per paper
scholarimpact crawl-citations data/author.json --max-citations 100
```
### `ScholarImpact` Command
Launch the interactive dashboard:
```bash
ScholarImpact [OPTIONS]
```
Options:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `--port N` | int | 8501 | Port to run the dashboard on |
| `--address ADDR` | str | localhost | Address to bind the server to |
| `--data-dir DIR` | str | ./data | Directory containing citation data files |
Examples:
```bash
# Basic usage
ScholarImpact
# Custom port
ScholarImpact --port 8502
# External access
ScholarImpact --address 0.0.0.0
# Different data directory
ScholarImpact --data-dir custom_data
```
### `scholarimpact quick-start` Command
Complete analysis pipeline from Scholar ID to dashboard:
```bash
scholarimpact quick-start [OPTIONS] SCHOLAR_ID
```
Arguments:
- `SCHOLAR_ID`: Google Scholar author ID or full profile URL
Options:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `--openalex-email EMAIL` | str | None | OpenAlex email for enhanced data |
| `--output-dir DIR` | str | ./data | Output directory for all data |
| `--launch-dashboard/--no-dashboard` | flag | True | Launch dashboard after analysis |
Examples:
```bash
# Complete pipeline with dashboard
scholarimpact quick-start "ABC123DEF" --openalex-email me@university.edu
# Skip dashboard launch
scholarimpact quick-start "ABC123DEF" --no-dashboard
# Custom output directory
scholarimpact quick-start "ABC123DEF" --output-dir results
```
### `scholarimpact generate-dashboard` Command
Generate a standalone dashboard project for deployment to Streamlit Cloud:
```bash
scholarimpact generate-dashboard [OPTIONS]
```
Options:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `--output-dir DIR` | str | . | Output directory for generated files |
| `--name FILE` | str | my_dashboard.py | Name of the dashboard file |
| `--data-dir DIR` | str | ./data | Data directory path for dashboard |
| `--title TEXT` | str | My Citation Dashboard | Dashboard title |
Examples:
```bash
# Generate dashboard in current directory
scholarimpact generate-dashboard
# Custom output directory and title
scholarimpact generate-dashboard --output-dir my-project --title "Research Impact Analysis"
# Custom data directory location
scholarimpact generate-dashboard --data-dir ../citation_data --name app.py
```
This command generates:
- A dashboard Python file (default: `my_dashboard.py`)
- `.streamlit/config.toml` with theme configuration
- `requirements.txt` for deployment
- `static` folder containing fonts used by default theme
## Citation
[](https://doi.org/10.5281/zenodo.17282708)
If you use ScholarImpact in your research, please cite it as:
```bibtex
@software{tiwari_2025_17282762,
author = {Tiwari, Abhishek},
title = {ScholarImpact: A Python tool to analyse, visualise, and share individual research impact, output and scholarly influence using bibliometric data},
month = oct,
year = 2025,
publisher = {Zenodo},
doi = {10.5281/zenodo.17282708},
url = {https://doi.org/10.5281/zenodo.17282708},
}
```
**APA Format:**
```
Tiwari, A. (2025). ScholarImpact: A Python tool to analyse, visualise, and share individual research impact, output and scholarly influence using bibliometric data. Zenodo. https://doi.org/10.5281/zenodo.17282708
```
**MLA Format:**
```
Tiwari, A. ScholarImpact: A Python tool to analyse, visualise, and share individual research impact, output and scholarly influence using bibliometric data. Zenodo, 7 Oct. 2025, https://doi.org/10.5281/zenodo.17282708.
```
Raw data
{
"_id": null,
"home_page": null,
"name": "scholarimpact",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "citations, google-scholar, research, dashboard, analysis, academic",
"author": null,
"author_email": "Abhishek Tiwari <scholarimpact@abhishek-tiwari.com>",
"download_url": "https://files.pythonhosted.org/packages/39/03/523a59ced205facc322b7da0731a82d5794e254c9dc4c037d4bf87c961e0/scholarimpact-0.0.9.tar.gz",
"platform": null,
"description": "# _ScholarImpact_\nA bibliometric tool to analyse, visualise, and share your research impact, output and scholarly influence using Google Scholar and OpenAlex data.\n\nFor each article under your Google Scholar Profile, **_ScholarImpact_**: (1) total number of citations, (2) number of unique authors who have cited the article, (3) number of countries from which citations originate, (4) number of institutions from which citations originate, (5) geographic distribution of citations, (6) citation trends over time, (7) research domain analysis, (8) interdisciplinary impact Metrics including Patents and Wikipedia mentions (9) Alternative metrics.\n\n\n\n\n\n\n\n## Workflow Overview\nThis workflow first extracts author data from your Google Scholar profile and optionally enriches it with OpenAlex and Altmetric data. Then it sources citations for each article under your Google Scholar profile. Next workflow enriches them with information using Google Scholar profiles of citing authors and/or OpenAlex APIs. Finally, output data is used to present your impact of your research with geographic and institutional insights.\n\n\n```mermaid\nflowchart TD\n A[Your Google Scholar Profile] --> B[Your Articles]\n B --> C[OpenAlex API]\n B --> D[Altmetric API]\n C --> E[Enhanced Scholar Data]\n D --> E[Enhanced Scholar Data]\n \n style A fill:#0ea5e9,stroke:#0ea5e9,color:#ffffff\n style C fill:#059669,stroke:#059669,color:#ffffff\n style D fill:#059669,stroke:#059669,color:#ffffff\n style E fill:#ecebe3,stroke:#ecebe3,color:#3d3a2a\n```\n\n```mermaid\nflowchart TD\n A[Enhanced Scholar Data] --> B[Your Articles]\n B --> C[Citing Articles]\n B --> F[OpenAlex API]\n C --> D[Enhanced Citation Data]\n D --> E[Streamlit Dashboard]\n \n C --> F[OpenAlex API]\n C --> G[Google Scholar Profiles of citing Authors]\n F --> D\n G --> D\n \n F -.-> H[Author Affiliations]\n F -.-> I[Country Codes]\n F -.-> J[Research Domains]\n G -.-> K[Verified Email Domain]\n G -.-> L[Profile Details including Affiliations]\n \n H --> D\n I --> D\n J --> D\n K --> D\n L --> D\n \n style A fill:#ecebe3,stroke:#ecebe3,color:#3d3a2a\n style E fill:#cb785c,stroke:#cb785c,color:#ffffff\n style F fill:#059669,stroke:#059669,color:#ffffff\n style G fill:#fbbf24,stroke:#fbbf24,color:#3d3a2a\n style D fill:#ecebe3,stroke:#ecebe3,color:#3d3a2a\n```\n\n## Quick Start\n\n### Prerequisites\n\nInstall \n```bash\npip install scholarimpact\n```\n\n## Caution\nThis system is designed for academic research purposes and personal usage. Please use responsibly and in accordance with Google Scholar, OpenAlex, Altmetric terms of services with appropriate attribution.\n\n## Step-by-Step Guide\n\n### Option 1: For Deployment (Recommended)\n\nThis approach creates a standalone project suitable for deployment to Streamlit Cloud or local development.\n\n#### Step 1: Generate Dashboard Project\n\n```bash\n# Generate a dashboard project\nscholarimpact generate-dashboard --output-dir my-research-dashboard --name app.py\n\n# Navigate to the generated folder\ncd my-research-dashboard\n```\n\nThis creates a complete project structure with `app.py`, `requirements.txt`, `.streamlit/config.toml`, and a `static` folder containing fonts used by default theme.\n\n#### Step 2: Extract Author Publications\n\n```bash\n# Extract your publications from Google Scholar (OpenAlex and Altmetric enabled by default)\nscholarimpact extract-author \"YOUR_SCHOLAR_USER_ID\"\n\n# With email for higher OpenAlex rate limits (recommended)\nscholarimpact extract-author \"YOUR_SCHOLAR_USER_ID\" --openalex-email your.email@example.com\n\n# Or use full URL\nscholarimpact extract-author \"https://scholar.google.com/citations?user=YOUR_SCHOLAR_USER_ID\"\n```\n\nThis creates `data/author.json` with your publication list, enriched with OpenAlex and Altmetric metrics by default.\n\n#### Step 3: Crawl Citation Data\n\n```bash\n# Crawl citations with OpenAlex enrichment\nscholarimpact crawl-citations data/author.json --openalex-email your.email@example.com\n```\n\nThis creates `data/cites-{ID}.json` files for each publication.\n\n#### Step 4: Test Locally\n\n```bash\n# Run the dashboard locally\nstreamlit run app.py\n\n# Or alternatively\npython app.py\n```\n\nOpen `http://localhost:8501`to view your dashboard.\n\n#### Step 5: Push your changes to a Github Repository\n\n```bash\n# Initialize git repository\ngit init\ngit add .\ngit commit -m \"Initial research dashboard\"\n\n# Create GitHub repository and push\ngit remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO.git\ngit branch -M main\ngit push -u origin main\n```\n\n#### Step 6: Deploy on Streamlit Cloud\n\n1. Go to [share.streamlit.io](https://share.streamlit.io)\n2. Click \"New app\"\n3. Connect your GitHub account\n4. Select your repository and branch\n5. Set main file path: `app.py` (or your custom name)\n6. Click \"Deploy\"\n\n#### Step 7: Project Structure for Deployment\n\nYour repository should contain:\n```\nmy-research-dashboard/\n\u251c\u2500\u2500 app.py # Main dashboard file\n\u251c\u2500\u2500 requirements.txt # Python dependencies\n\u251c\u2500\u2500 .streamlit/\n\u2502 \u2514\u2500\u2500 config.toml # Streamlit configuration\n\u251c\u2500\u2500 static/ # Static assets (fonts from scholarimpact/assets/fonts)\n\u2502 \u251c\u2500\u2500 SpaceGrotesk-SemiBold.ttf\n\u2502 \u251c\u2500\u2500 SpaceGrotesk-VariableFont_wght.ttf\n\u2502 \u251c\u2500\u2500 SpaceMono-Regular.ttf\n\u2502 \u251c\u2500\u2500 SpaceMono-Bold.ttf\n\u2502 \u251c\u2500\u2500 SpaceMono-Italic.ttf\n\u2502 \u251c\u2500\u2500 SpaceMono-BoldItalic.ttf\n\u2502 \u2514\u2500\u2500 OFL-*.txt # Font licenses\n\u2514\u2500\u2500 data/\n \u251c\u2500\u2500 author.json # Author profile data\n \u2514\u2500\u2500 cites-*.json # Citation data files\n```\n\n#### Step 8: Update Data\n\nTo update citation data:\n\n1. Re-run step-2 and step-3 to update data files\n2. Commit changes and push them to your GitHub repository\n3. Streamlit Cloud will automatically detect changes and restart the app\n\n#### Tips for Streamlit Cloud Deployment\n\n- Keep data files under 100MB each for optimal performance\n- Use `.gitignore` to exclude unnecessary files\n- Set secrets in Streamlit Cloud settings if needed\n- Monitor app logs in Streamlit Cloud dashboard for debugging\n\n### Option 2: For Quick Local Testing\n\nThis approach is fastest for local analysis without deployment needs.\n\n#### Step 1: Extract Author Publications\n\n```bash\n# Extract publications directly\nscholarimpact extract-author \"YOUR_SCHOLAR_USER_ID\"\n```\n\n#### Step 2: Crawl Citation Data\n\n```bash\n# Crawl citations\nscholarimpact crawl-citations data/author.json --openalex-email your.email@example.com\n```\n\n#### Step 3: Launch Dashboard\n\n```bash\n# Run dashboard directly\nScholarImpact\n```\n\nThe dashboard opens at `http://localhost:8501`.\n\n## CLI Options Reference\n\n### `scholarimpact extract-author` Command\n\nExtract author publications from Google Scholar with OpenAlex and Altmetric enrichment:\n\n```bash\nscholarimpact extract-author [OPTIONS] SCHOLAR_ID\n```\n\nArguments:\n- `SCHOLAR_ID`: Google Scholar author ID or full profile URL\n\nOptions:\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `--max-papers N` | int | None | Maximum number of papers to analyze (default: all) |\n| `--delay X` | float | 2.0 | Delay between requests in seconds |\n| `--output-dir DIR` | str | ./data | Output directory for author.json |\n| `--output-file FILE` | str | None | Custom output file path (overrides output-dir) |\n| `--use-openalex/--no-openalex` | flag | True | Enable OpenAlex enrichment (default: enabled) |\n| `--openalex-email EMAIL` | str | None | Email for OpenAlex API (optional, for higher rate limits) |\n| `--use-altmetric/--no-altmetric` | flag | True | Enable Altmetric enrichment (requires OpenAlex, default: enabled) |\n\nOpenAlex enrichment adds (all fields prefixed with `openalex_`):\n- `openalex_ids`: Object containing all identifiers:\n - `openalex`: OpenAlex work URL\n - `doi`: Digital Object Identifier URL\n - `mag`: Microsoft Academic Graph ID\n - `pmid`: PubMed ID URL\n- `openalex_type`: Publication type (article, book, etc.)\n- `openalex_citation_normalized_percentile`: Percentile ranking of citations\n- `openalex_cited_by_percentile_year`: Citation percentile by year\n- `openalex_fwci`: Field-Weighted Citation Impact\n- `openalex_cited_by_count`: OpenAlex citation count\n- `openalex_primary_topic`: Main research topic\n- `openalex_domain`, `openalex_field`, `openalex_subfield`: Hierarchical classification\n\nAltmetric enrichment adds (all fields prefixed with `altmetric_`):\n- `altmetric_score`: Overall Altmetric attention score\n- `altmetric_cited_by_wikipedia_count`: Citations in Wikipedia\n- `altmetric_cited_by_patents_count`: Citations in patents\n- `altmetric_cited_by_accounts_count`: Social media accounts mentioning\n- `altmetric_cited_by_posts_count`: Social media posts mentioning\n- `altmetric_scopus_subjects`: Scopus subject classifications\n- `altmetric_readers`: Reader counts by platform (Mendeley, CiteULike, etc.)\n- `altmetric_readers_count`: Total reader count\n- `altmetric_images`: Altmetric badge images (small, medium, large)\n- `altmetric_details_url`: Link to detailed Altmetric page\n\nExamples:\n```bash\n# Basic usage (OpenAlex and Altmetric enabled by default)\nscholarimpact extract-author \"ABC123DEF\"\n\n# With email for higher OpenAlex rate limits\nscholarimpact extract-author \"ABC123DEF\" --openalex-email your.email@example.com\n\n# Disable Altmetric enrichment (keep OpenAlex)\nscholarimpact extract-author \"ABC123DEF\" --no-altmetric\n\n# Disable all enrichment (Google Scholar only)\nscholarimpact extract-author \"ABC123DEF\" --no-openalex --no-altmetric\n\n# Limit to first 20 papers with 3-second delays\nscholarimpact extract-author \"ABC123DEF\" --max-papers 20 --delay 3\n\n# Custom output file with email for higher limits\nscholarimpact extract-author \"ABC123DEF\" --output-file data/my_author.json --openalex-email your.email@example.com\n\n# Full URL format\nscholarimpact extract-author \"https://scholar.google.com/citations?user=ABC123DEF\"\n```\n\n### `scholarimpact crawl-citations` Command\n\nCrawl citations with OpenAlex integration:\n\n```bash\nscholarimpact crawl-citations [OPTIONS] AUTHOR_JSON\n```\n\nArguments:\n- `AUTHOR_JSON`: Path to author.json file containing publications\n\nOptions:\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `--openalex-email EMAIL` | str | None | Email for OpenAlex API (higher rate limits) |\n| `--max-citations N` | int | None | Maximum citations per paper |\n| `--delay-min X` | float | 5.0 | Minimum delay between requests (seconds) |\n| `--delay-max Y` | float | 10.0 | Maximum delay between requests (seconds) |\n| `--output-dir DIR` | str | None | Output directory (defaults to author.json directory) |\n\nExamples:\n```bash\n# Basic usage with OpenAlex\nscholarimpact crawl-citations data/author.json --openalex-email me@university.edu\n\n# Custom delays\nscholarimpact crawl-citations data/author.json --delay-min 3 --delay-max 8\n\n# Custom output directory\nscholarimpact crawl-citations data/author.json --output-dir custom_data\n\n# Limit citations per paper\nscholarimpact crawl-citations data/author.json --max-citations 100\n```\n\n### `ScholarImpact` Command\n\nLaunch the interactive dashboard:\n\n```bash\nScholarImpact [OPTIONS]\n```\n\nOptions:\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `--port N` | int | 8501 | Port to run the dashboard on |\n| `--address ADDR` | str | localhost | Address to bind the server to |\n| `--data-dir DIR` | str | ./data | Directory containing citation data files |\n\nExamples:\n```bash\n# Basic usage\nScholarImpact\n\n# Custom port\nScholarImpact --port 8502\n\n# External access\nScholarImpact --address 0.0.0.0\n\n# Different data directory\nScholarImpact --data-dir custom_data\n```\n\n### `scholarimpact quick-start` Command\n\nComplete analysis pipeline from Scholar ID to dashboard:\n\n```bash\nscholarimpact quick-start [OPTIONS] SCHOLAR_ID\n```\n\nArguments:\n- `SCHOLAR_ID`: Google Scholar author ID or full profile URL\n\nOptions:\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `--openalex-email EMAIL` | str | None | OpenAlex email for enhanced data |\n| `--output-dir DIR` | str | ./data | Output directory for all data |\n| `--launch-dashboard/--no-dashboard` | flag | True | Launch dashboard after analysis |\n\nExamples:\n```bash\n# Complete pipeline with dashboard\nscholarimpact quick-start \"ABC123DEF\" --openalex-email me@university.edu\n\n# Skip dashboard launch\nscholarimpact quick-start \"ABC123DEF\" --no-dashboard\n\n# Custom output directory\nscholarimpact quick-start \"ABC123DEF\" --output-dir results\n```\n\n### `scholarimpact generate-dashboard` Command\n\nGenerate a standalone dashboard project for deployment to Streamlit Cloud:\n\n```bash\nscholarimpact generate-dashboard [OPTIONS]\n```\n\nOptions:\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `--output-dir DIR` | str | . | Output directory for generated files |\n| `--name FILE` | str | my_dashboard.py | Name of the dashboard file |\n| `--data-dir DIR` | str | ./data | Data directory path for dashboard |\n| `--title TEXT` | str | My Citation Dashboard | Dashboard title |\n\nExamples:\n```bash\n# Generate dashboard in current directory\nscholarimpact generate-dashboard\n\n# Custom output directory and title\nscholarimpact generate-dashboard --output-dir my-project --title \"Research Impact Analysis\"\n\n# Custom data directory location\nscholarimpact generate-dashboard --data-dir ../citation_data --name app.py\n```\n\nThis command generates:\n\n- A dashboard Python file (default: `my_dashboard.py`)\n- `.streamlit/config.toml` with theme configuration\n- `requirements.txt` for deployment\n- `static` folder containing fonts used by default theme\n\n## Citation\n\n[](https://doi.org/10.5281/zenodo.17282708)\n\nIf you use ScholarImpact in your research, please cite it as:\n\n```bibtex\n@software{tiwari_2025_17282762,\n author = {Tiwari, Abhishek},\n title = {ScholarImpact: A Python tool to analyse, visualise, and share individual research impact, output and scholarly influence using bibliometric data},\n month = oct,\n year = 2025,\n publisher = {Zenodo},\n doi = {10.5281/zenodo.17282708},\n url = {https://doi.org/10.5281/zenodo.17282708},\n}\n```\n\n**APA Format:**\n```\nTiwari, A. (2025). ScholarImpact: A Python tool to analyse, visualise, and share individual research impact, output and scholarly influence using bibliometric data. Zenodo. https://doi.org/10.5281/zenodo.17282708\n```\n\n**MLA Format:**\n```\nTiwari, A. ScholarImpact: A Python tool to analyse, visualise, and share individual research impact, output and scholarly influence using bibliometric data. Zenodo, 7 Oct. 2025, https://doi.org/10.5281/zenodo.17282708.\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A bibliometric tool to analyse, visualise, and share your research impact, output and scholarly influence using Google Scholar and OpenAlex data",
"version": "0.0.9",
"project_urls": {
"Homepage": "https://github.com/abhishektiwari/scholarimpact",
"Issues": "https://github.com/abhishektiwari/scholarimpact/issues",
"Repository": "https://github.com/abhishektiwari/scholarimpact.git"
},
"split_keywords": [
"citations",
" google-scholar",
" research",
" dashboard",
" analysis",
" academic"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "764ee45ab7f083350a7bd1055a8eefac465b1c28124bb792add1b1e8807ebae1",
"md5": "b3bd69d40ebc424c6f53f40dce86a9a7",
"sha256": "9b034b73511c742f80fc8195f461cd4067fba6d96ce4b8bc9a99c8b60424965d"
},
"downloads": -1,
"filename": "scholarimpact-0.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b3bd69d40ebc424c6f53f40dce86a9a7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 359268,
"upload_time": "2025-11-01T23:40:15",
"upload_time_iso_8601": "2025-11-01T23:40:15.147543Z",
"url": "https://files.pythonhosted.org/packages/76/4e/e45ab7f083350a7bd1055a8eefac465b1c28124bb792add1b1e8807ebae1/scholarimpact-0.0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3903523a59ced205facc322b7da0731a82d5794e254c9dc4c037d4bf87c961e0",
"md5": "335b1e772f958d2720942cfc6e801eef",
"sha256": "feb7815c90c988095cacb099eddb4cd0fdf0b519e1cc32bb26a7a29efb254b29"
},
"downloads": -1,
"filename": "scholarimpact-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "335b1e772f958d2720942cfc6e801eef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 364460,
"upload_time": "2025-11-01T23:40:16",
"upload_time_iso_8601": "2025-11-01T23:40:16.703611Z",
"url": "https://files.pythonhosted.org/packages/39/03/523a59ced205facc322b7da0731a82d5794e254c9dc4c037d4bf87c961e0/scholarimpact-0.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-01 23:40:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "abhishektiwari",
"github_project": "scholarimpact",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pandas",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.24.0"
]
]
},
{
"name": "plotly",
"specs": [
[
">=",
"5.14.0"
]
]
},
{
"name": "streamlit",
"specs": [
[
">=",
"1.28.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
">=",
"4.65.0"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.28.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
">=",
"4.11.0"
]
]
},
{
"name": "selenium",
"specs": [
[
">=",
"4.10.0"
]
]
},
{
"name": "geopy",
"specs": [
[
">=",
"2.4.1"
]
]
},
{
"name": "pycountry",
"specs": [
[
">=",
"22.0.0"
]
]
},
{
"name": "scholarly",
"specs": [
[
">=",
"1.7.11"
]
]
},
{
"name": "pyalex",
"specs": [
[
">=",
"0.18"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "PyYAML",
"specs": [
[
">=",
"6.0"
]
]
}
],
"lcname": "scholarimpact"
}