Quick start:
Just like the Cadmus project itself, this documentation is work in progress. Its main purpose is highlighting some conceptual points standing behind the general architecture of the system. For a more theoric and non-technical introduction to the Cadmus system, please see:
- Cadmus presentation website: this is under construction, and hosted in a tempoarary URL, but it provides a basic conceptual overview with the addition of some interactive tools.
- my seminar presentation at VeDPH
- D. Fusi, Sailing for a Second Navigation: Paradigms in Producing Digital Content, «SemRom» n.s. 7 (2018) 213-276.
Note: all the diagrams found in this documentation are made using PlantUml. Some editors like VSCode have extensions which directly support viewing them in a Markdown preview. See the PlantUml web site for more visualization options.
The picture below shows the main software packages of the projects currently based on Cadmus. Each app or api project has a corresponding Docker image hosted in the VeDPH Docker Hub.
System core projects:
- documentation (this repository)
- backend core
- API libraries and basic API
- app libraries and basic app
- CLI tool
Projects using Cadmus:
- Cadmus MQDQ:
- Cadmus Itinera
- Cadmus TGR
- Cadmus BDM
- Cadmus PURA
- Cadmus Inquisition Graffiti
- Cadmus Re.Novella
Cadmus essentially includes this stack of layers:
- database: MongoDB for data, MySql for index.
- data layer: storage repositories and their types.
- business layer: core models and logic.
- web API layer: REST API.
- web frontend: Angular 12+ web application.
These layers are distributed across 3 projects: core (2-3), api (4), web (cadmus-shell
, which superseded the legacy cadmus-web
) (5).
Core data and business layers.
Web REST API.
Web frontend.
- creating: creating a Cadmus web app.
- architecture: general architecture.
- routes: most relevant route templates.
- editor components: editor components.
- edit state: app's local edit state.
- roles: user roles for authorizing operations.
- adding parts: how to add new parts.
- adding fragments: how to add new fragments.
- demo presets: preset JSON samples for editors demo pages.
- help home