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.
| 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:5173Licensed 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.