diff --git a/README.md b/README.md index 6d391ed..2d71edd 100644 --- a/README.md +++ b/README.md @@ -104,4 +104,23 @@ After successful upgrade: - The token becomes invalid - Your account gains full admin privileges - No new token is generated (admin now exists) -- Trying to upgrade another account will fail (token is spent) \ No newline at end of file +- Trying to upgrade another account will fail (token is spent) + +## Data Model + +The application schema is defined with Drizzle ORM under `src/lib/model/`. Below are short descriptions of the available schema files and what they represent; see the files themselves for full structure. + +- `auth-schema.ts` — user and authentication-related tables: `user` (accounts and admin flag), `session` (auth sessions), `account` (external OAuth/accounts), and `verification` (verification tokens). +- `dataset.ts` — `dataset` table: logical collections of audio items and dataset-level metadata. +- `dataset_entry.ts` — `dataset_entry` table: individual audio metadata rows belonging to a dataset (file path, speaker id, dialect labels, metrics, etc.). +- `experiment.ts` — `experiment` table: admin-configured annotation experiments referencing a dataset and experiment settings. +- `experiment_calibration.ts` — `experiment_calibration` table: ordered calibration items (audio + labels) used when `calibrationEnabled` is set on an experiment. +- `annotation.ts` — `annotation` table: annotator responses for dataset entries within experiments (rating, confidence, chosen dialect label); includes a uniqueness constraint to avoid duplicate annotations per user/item/experiment. +- `participant.ts` — `participant` table: links users to experiments and stores onboarding/calibration answers per participant. + +When you change the model files in `src/lib/model/`, run the migration steps in "Modifying the Data Model" to generate and push migrations. + +## Logical Steps: Creating and publishing an experiment +1. Create a new dataset containing all Samples. Can also be created by duplicating an already present dataset. +2. Create a new experiment using a dataset. +3. Publish the experiment. \ No newline at end of file