Files
jadb/docs/overview.md
h7x4 ede57a7a00
All checks were successful
Build and test / build (push) Successful in 11m51s
docs: init
2026-04-01 16:48:40 +09:00

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_ingestion contains 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/cli contains code for cli tooling (e.g. argument parsing, subcommand handling, etc.)
  • lib/const_data contains database data that is small enough to warrant being hardcoded as dart constants.
  • lib/models contains all the code for representing the database schema as Dart classes, and for converting between those classes and the actual database.
  • lib/search contains all the code for searching the database.
  • lib/util/lemmatizer contains the code for lemmatization, which will be used by the search code in the future.
  • migrations contains 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>_Version table, which contains a single row with the version of the data source used to generate the database.