Skip to content

validate

Check a journal before you submit to it. validate tells a graduate student whether a journal is on Russia's VAK list or the “White List”, and for which specialities, then builds the reference list: give it DOIs, get entries formatted to GOST R 7.0.100-2018 and a .bib file for LaTeX.

Status: moving in. The service runs today from a private prototype. Its code is being moved here into a uv workspace, one domain at a time; the pieces below are already here.

  • Backend: Python, FastAPI, PostgreSQL, Redis, TaskIQ. Frontend: React and TypeScript. The interface is in Russian.
  • Security reports: see SECURITY.md. Contributing: CONTRIBUTING.md.

What is here

Part What it does
backend/packages/core settings, database, Redis, rate limits, logs, the audit log
backend/packages/web shared HTTP layer: errors, access markers, session cookies
backend/packages/auth accounts, email and password login, sessions, roles, administration
backend/packages/crossref vld-crossref: an async typed client of the Crossref REST API and its command line
backend/packages/vak vld-vak: the VAK list PDF as typed data, every doubt reported, and a downloader of the current edition
backend/packages/gost vld-gost: bibliographic entries by GOST R 7.0.100-2018, proven line by line against biblatex-gost
backend/packages/journals journals and the registries that list them: the VAK list by edition
backend/packages/articles the article check: an article by DOI or by hand against the registries on its date; batches of references
backend/packages/citations reference lists: collections of entries by DOI or by hand, printed by GOST, exported as text or BibTeX
backend/packages/notifications the bell: a person's notices of a reference list looked up, a batch checked
backend/apps/api the HTTP API
backend/apps/worker relays the outboxes to RabbitMQ, sends the letters, runs the article batches
backend/apps/scheduler runs tasks on a cron, one replica: first, the purge of the Crossref cache
backend/apps/migrator vld-migrate: database migrations with a lock, checks and a backup
backend/apps/importer vld-import: the VAK list from the command line — import, publish, roll back, compare
web the site: a React app in Russian over the API, TailAdmin's look in MEPhI blue
infrastructure the local stand in Docker (make dev), with optional Prometheus, Loki, Grafana and GlitchTip

Set up once, then run the whole stand in Docker (details in CONTRIBUTING.md and infrastructure/README.md):

cd backend && uv sync --all-packages && cd ..
cp backend/.env.example backend/.env
make dev                                # the site on http://localhost:5173

Licensed under AGPL-3.0. If you run a modified copy as a public service, the licence requires you to offer its source to your users.

About

NRNU MePhi sponsored project. Checks whether a scientific journal is on Russia's VAK list or the “White List” and for which specialities, and builds GOST R 7.0.100-2018 reference lists from DOIs with BibTeX export.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages