Skip to content

Latest commit

 

History

History
51 lines (29 loc) · 1.73 KB

ARCHITECTURE.md

File metadata and controls

51 lines (29 loc) · 1.73 KB

Architecture

This document describes the software architecture of the application. The application is split into 'backend' and 'frontend' because it is built with Tauri.

Backend

The source code for the backend lives in src-tauri and is written in Rust.

Recipe Storage

Recipes need to be stored locally. The solution chosen for this project is an embedded relational database. This is supported by simple file storage for binary files like images.

The database needs to implement the data schema outlined in the PlantUML file schema.puml.

Database

Database connection logic is implemented in the database module.

SQLite

SQLite is used for storing recipe data.

SeaORM

The connection to the database is handled via the object-relational manager SeaORM.

Migrations

SeaORM provides database migration functionality. This is implemented in the migrator module.

File Storage

Binary files are not stored in the database but separately. Recipe step file storage is implemented in the recipe_step_file_storage module.

OCR

Optical character recognition is integrated with Tesseract via the tesseract-rs crate.

Frontend

The source code for the frontend lives in src and is transpiled into web languages.

Svelte

This application uses Svelte as its frontend framework. There is no SSR.