Aller au contenu principal

Architecture

Ce document présente l'architecture de Djehooty et certains concepts techniques qui ne sont pas exposés dans le guide d'utilisation. Comprendre ces concepts est essentiel pour contribuer efficacement au projet et naviguer dans le code source.

Architecture

TODO

Concepts

Entité

Une entité (Entity) est un concept générique qui englobe les individus, les événements, les lieux et les organisations. Elle permet de représenter toute donnée à caractère généalogique ou contextuel, à laquelle un identifiant unique est attribué.

Couche

La couche (Layer) est un concept générique regroupant les fichiers, les instances de fichiers, les documents et les sélections. Elle permet de représenter toute donnée documentaire, à laquelle un identifiant unique est également attribué.

Pointeur

Le pointeur (Pointer) est un concept interne qui généralise la notion d'entité et de couche. Il permet de référencer de manière abstraite aussi bien des entités que des couches, facilitant ainsi la gestion des liens et des associations dans l'application.

Identification

L'identification désigne l'association entre une entité et une couche. Par exemple, il est possible d'identifier un individu sur un document, un individu sur une instance de fichier, ou encore un lieu sur un document. Ce mécanisme permet de lier précisément des informations contextuelles ou généalogiques à des éléments documentaires, enrichissant ainsi la structure des données et la recherche d'informations.

Sélection

Une sélection désigne une zone rectangulaire définie au sein d'une image donnée.

Elle est caractérisée par les coordonnées de deux points (coin supérieur gauche et coin inférieur droit) délimitant le rectangle de sélection. Un index permet de préciser, par exemple, la page dans un PDF ou la seconde dans une vidéo.

Les coordonnées sont toujours exprimées par rapport à l'image originale du fichier sélectionné. En cas de rotation de l'image, les coordonnées de la sélection restent inchangées.

Une sélection peut être modifiée (ajustement des coordonnées), mais pour changer le fichier ou l'index associé, il est nécessaire de créer une nouvelle sélection.

Modèle de base de données

Djehooty créé une base de données relationnelle de type SQLite djehooty.db, locale, située dans le dossier User Directory.

La structure détaillée de la base et les données de base qui sont injectées à lors de l'installation peuvent être consultées sur le dépôt Git de djehooty-backend.

TableDescription
files_documents
document_types
usersUtilisateurs de Djehooty. Par défaut il n'en existe qu'un seul pour le moment.
entities
entities_types
identifications
individuals
layers
layers_types
selections
thumbnailsVignettes (images) générés issues d'un fichier
filesTous les fichiers (uuid, type de média, sha256, taille)
files_instancesInstances de fichier avec des informations relatives aux données du file système d'origine (nom de fichier, date d'import, modification, etc.)
files_thumbnailsTable d'association entre un fichier et une vignette
documentsTous les documents