Skip to main content

SciReport Analyzer

A local web app (NiceGUI + SQLite) to follow and evaluate researchers: it tracks their publications across sources, ranks their venues, and keeps per-person folders with tags, notes and stored PDFs. Venues are ranked with Scimago, CORE (every edition since 2008) and a predatory list.

Features

  • People with profiles on DBLP (SPARQL endpoint), HAL, ORCID, Semantic Scholar, Google Scholar, theses.fr and OpenAlex (needs a free API key). Profiles are found automatically and must be validated by hand; each source shows its update status (never synced, updating, up to date, out of date, error). Syncing is on demand only.
  • Merging across sources (DOI, titles, years), preprints folded into the published version, PDF links, manual split / merge / hide.
  • Publications panel: distribution, publications by year, co-authors, author position, "with PhD student", cross-filtering, named periods with stars, a paper's track (short, demo…) set by hand, tags (global or within a period) and Markdown notes, with a Markdown listing of the noted / tagged papers; tag from a pasted list (e.g. a report's numbered list: matched by HAL id / DOI / title, missing papers searched on HAL and added, the list's numbers kept for reporting). Notes accept LaTeX ($…$, $$…$$), edited with a Markdown editor (toolbar, preview).
  • Notes of a folder (one Markdown text for all its documents and papers, next to any of their PDFs) citing the papers (Pandoc's [@key], @key, [@key]{.notes}, [@key]{.tags}, templates such as [@key]{.short-venue (.year)}, named and composable, general or per folder), substituted (numbers like #6, titles, notes, tags); the papers with the folder's numbered tag are numbered first, and an icon tells whether each paper to discuss is cited.
  • PDFs: downloaded from the papers' open-access links (sources, else Unpaywall), one by one or for all the papers shown, or uploaded; stored in the data directory and read in the browser with PDF.js (highlight, text, drawing, images), the annotations saved back, the paper's tags and notes alongside, bookmarks, the paper of a selected reference found (or added from HAL); clean-up of the files of deleted papers.
  • Documents of a person within a folder / period (an application, a CV…): PDFs read and annotated the same way, with bookmarks and a note; the person's papers they mention are found (titles, DOIs / HAL ids, and the citations of numbered references like [11]), marked, and show the paper's details next to the document; references can be linked by hand from a selection; author-year citations (“(Lyu et al., 2023b)”) are linked too.
  • Categories per folder (an ordered tree, drag and drop, optional years): passages selected in the PDFs are filed in them, listed per person, and inserted in notes as Markdown.
  • Folders within folders (a tree on the Reports page, to nest, move and rename them): a folder uses its parent's settings (its categories, the citations in its notes), or its own ones; settings can be moved up to a folder it is in (shared by those within it) or copied.
  • Venues (Conferences / Journals pages): variants after cleaning, two-level classification (kind → rank), default levels per kind, manual decisions per paper or per venue that are never overridden.
  • Author highlighting: the person (with aliases) and their PhD students (from theses.fr), with potential matches to confirm.
  • Settings: ranking sources, confidence threshold, cleaning and detection rules, venue kinds, tracks (names, colours, detection rules), datasets, JCR import, API keys, and import / export (replace, or merge with per-conflict choices) to share them.

Usage

uv tool run sci-report-analyzer   # http://127.0.0.1:8081

or install it with uv tool install sci-report-analyzer and run sci-report-analyzer. Options: --port, --host, --data-dir, --no-browser. Press Ctrl-C, or the power button in the header, to quit. The app is in English or French: switch with the language button in the header (SCI_REPORT_ANALYZER_LANG=fr or en overrides it).

Data lives in ~/.local/share/sci-report-analyzer (override with SCI_REPORT_ANALYZER_DATA). Your email is required before anything is fetched (it identifies you to the sources); it and the API keys can be given with SCI_REPORT_ANALYZER_EMAIL, OPENALEX_API_KEY / S2_API_KEY or in Settings → API keys.

The database (not the PDFs) is backed up in backups/ next to it: daily at startup (the last 7 kept) and before each schema migration (pre-migration-…; a .pending marker next to one means that migration failed, and it is never removed). To restore a backup, stop the app and copy it over sci-report-analyzer.sqlite (removing the -wal / -shm files, if any).

Data sources

Venue ranks come from third-party data, credited here and in the app (Settings → Data & cache):

  • SCImago Journal & Country Rank (journals), downloaded by the app from this repository (datasets/journals.json, checked every week). SCImago, (n.d.). SJR — SCImago Journal & Country Rank [Portal]. SCImago allows the use of its data as long as the source is cited; the journal metadata comes from Scopus (Elsevier).
  • ICORE conference rankings (conferences, every CORE edition since 2008), shipped with the app.
  • Predatory list: Beall's list as maintained by stop-predatory-journals (MIT licence), downloaded by the app and refreshed weekly. Being listed is an indication, not a verdict.
  • JCR impact factors are Clarivate's and are not distributed: import your own export.

See src/sci_report_analyzer/data/README.md for the files and their terms, and docs/json-formats.md for the JSON formats (settings file, ranking datasets).

Licence

The code is released under the MIT licence. The ranking datasets keep their sources' terms (see above).

Development

uv sync
uv run pre-commit install
uv run pytest              # unit + simulated-UI tests
uv run pytest -m live -o addopts=""   # smoke tests against the real APIs
uv run sci-report-analyzer --live-reload  # offers a restart when the code changes
  • src/sci_report_analyzer/ranking/ — venue normalization, fuzzy matching and resolution (checked against reference fixtures by tests/test_matcher_parity.py).
  • sources/ — one adapter per source; merge.py — clustering; sync.py — syncing and auto-matching; venues.py — venues; pubview.py — panel view model; ui/ — pages.
  • Schema changes go through Alembic migrations (db/migrations/versions), applied at startup; never edit a released migration.

Metadata

Release files for sci-report-analyzer 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sci-report-analyzer 1.1.0
File Size Uploaded
sci_report_analyzer-1.1.0.tar.gz 509.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sci-report-analyzer 1.1.0
File Interpreter ABI Platform
sci_report_analyzer-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / sci_report_analyzer-1.1.0.tar.gz

Download URL sci_report_analyzer-1.1.0.tar.gz
Size 509.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c4d929c775373f98b888116fe9e34b58ed11aaef53eac595af0844cb97291146
BLAKE2b-256 checksum
How to use checksums
0bfd992298ff2f4509983ad165750067a3bd33c793b446a6ce1f7e7caf9b3259
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / sci_report_analyzer-1.1.0-py3-none-any.whl

Download URL sci_report_analyzer-1.1.0-py3-none-any.whl
Size 562.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
115a4f9d3f5eadbff6798b43488dc5fe95388c3fc15db087be4308a1b63d574c
BLAKE2b-256 checksum
How to use checksums
cdaf32e4f2fcfe484eb773ea72fac91478745efa4c7dcc101db906db7993dafa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page