-
Notifications
You must be signed in to change notification settings - Fork 0
Development
SaiLoR is a tool for reviewers conducting Systematic Literature Reviews (SLR) — the letters
are in the name: SaiLoR. A project.json file holds the annotation schema (a nested,
cardinality-controlled taxonomy) and the papers' metadata; a sibling annotations/ folder holds the
actual annotation data, one file per paper per reviewer (plus a consolidated file), so two reviewers
working on different papers rarely collide in git. The app renders each paper's PDF beside a form
generated from the schema, and writes annotations back into that split layout. See
Data Model for the exact shape and the automatic migration from the old single-file
format.
SaiLoR is Electron-desktop-only. The codebase used to also ship a static web SPA and a Docker
self-hosting deployment; both are discontinued — the web build now shows a "use the desktop app"
notice at runtime instead of any project-opening UI. The PlatformAdapter seam that used to absorb
the difference between the Electron and browser runtimes still exists, but the non-Electron
implementation (UnsupportedAdapter) now just refuses every action; see
Architecture's Platform Adapter section for why the seam is still there.
This wiki is the developer documentation. If you are here to use SaiLoR — installing a release, authoring a project file, annotating a paper — 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 git integration, the Electron main process, and how the build is wired. |
| 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