-
Notifications
You must be signed in to change notification settings - Fork 0
Home
SaiLoR is a tool for reviewers conducting Systematic Literature Reviews (SLR) — the letters are in the name: SaiLoR. A single JSON "project" file holds both the annotation schema (a nested, cardinality-controlled taxonomy) and the papers to annotate; the app renders each paper's PDF beside a form generated from that schema, and writes the annotations back into the same file.
One codebase ships two ways: an Electron desktop app and a static web SPA. That split is the
thing to understand first — most of the architecture exists to keep the React tree identical across
both, with a PlatformAdapter seam absorbing everything that differs (file dialogs, PDF loading,
where an API key can safely live).
This wiki is the developer documentation. If you are here to use SaiLoR — installing a release, authoring a project file, annotating with AI — start with the README instead.
| Page | What it covers |
|---|---|
| Quickstart | What SaiLoR is, the tech stack, the commands you actually need, and the repository layout. Start here. |
| Architecture | The PlatformAdapter seam, the Zustand stores and undo/redo, the component tree, the Electron main process, and the src/llm layer behind AI-assisted annotation. |
| Data Model | The project file format, the in-memory types, and the load → normalize → edit → prune → serialize lifecycle that keeps a hand-edited JSON safe. |
| Operations | Developing, building, testing, CI, releasing the desktop installers, deployment (static / Docker / Electron), and how these wiki pages are kept in sync. |
Do not treat this wiki as the original. These pages live in
openwiki/ in the main repository and are
mirrored here by a GitHub Action; the folder is the source of truth, and publishing replaces the
wiki rather than merging into it.
Editing a page here is still fine: a second Action imports wiki edits back into openwiki/ and
commits them to main, so the two do not drift. See
Operations → Wiki sync for the mechanics — including
why the two Actions cannot trigger each other in a loop.
These pages are a mirror. They are maintained in
openwiki/ in the repository and published
here automatically. Editing a page here is fine — the change is committed back to that folder — but
the folder is the source of truth. See Operations → Wiki sync.
Repository · README · Issues · Releases · Annotation schema guide
SaiLoR is free software under the GNU General Public License v3.0.
- Things to know
- Getting started
- Screening
- Working with several reviewers
- Setting up a project
- Git support
Developer documentation