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

28 lines
1.8 KiB
Markdown

# 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.
- [Word Search](./word-search.md)
- [Lemmatizer](./lemmatizer.md)
## 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.