1.8 KiB
1.8 KiB
Overview
This is the documentation for jadb. Since I'm currently the only one working on it, the documentation is more or less just notes to myself, to ensure I remember how and why I implemented certain features in a certain way a few months down the road. This is not a comprehensive and formal documentation for downstream use, neither for developers nor end-users.
Project structure
lib/_data_ingestioncontains all the code for reading data sources, transforming them and compiling them into an SQLite database. This is for the most part isolated from the rest of the codebase, and should not be depended on by any code used for querying the database.lib/clicontains code for cli tooling (e.g. argument parsing, subcommand handling, etc.)lib/const_datacontains database data that is small enough to warrant being hardcoded as dart constants.lib/modelscontains all the code for representing the database schema as Dart classes, and for converting between those classes and the actual database.lib/searchcontains all the code for searching the database.lib/util/lemmatizercontains the code for lemmatization, which will be used by the search code in the future.migrationscontains raw SQL files for creating the database schema.
SQLite naming conventions
Warning
All of these conventions are actually not enforced yet, it will be fixed at some point.
- Indices are prefixed with
IDX__ - Crossref tables are prefixed with
XREF__ - Trigger names are prefixed with
TRG__ - Views are prefixed with
VW__ - All data sources should have a
<datasource>_Versiontable, which contains a single row with the version of the data source used to generate the database.