Inventory Manager technical notes
Inventory Manager is in development and coming soon. These notes describe the stack and architecture of the current development build.
Desktop interface
The app is written in C# on .NET 10. It uses Avalonia and XAML for a shared desktop interface across Windows, macOS and Linux. CommunityToolkit.Mvvm supplies the commands and observable state that connect the views to their view models.
Local data and inventory rules
Entity Framework Core maps inventory data to local SQLite files and manages schema migrations. Each database holds its own inventory tree, configurable types, fields and attachments. The core project defines rules for items and containers independently of the interface and database, so both the desktop app and the optional local server use the same inventory services.
Data transfer and reporting
JSON Lines exports store one record per line. The app validates an import before merging it into the target database, and creates a backup before writing.
The desktop app queries SQLite for three read-only reports. Items by container produces a stock list with quantities and full storage paths. Upcoming maintenance and Upcoming expiry include items with the relevant date and put overdue or expired entries first. Each report can cover a container and its descendants or the whole inventory. SkiaSharp generates an A4 PDF in the order shown in the report table.
Local automation
A separate Model Context Protocol (MCP) server lets compatible clients query or update the same local inventory through standard input and output. It can open the database in read-only mode and runs without a network listener.