- MongoDB nested inside Core (no longer 6th component) - IoT → Core connection is dashed (optional) - Print includes Print UI + Print API note - Capture shown as native app (not Go/Vue) - Core Web UI and Print UI as differentiated sub-boxes - Strict focus on the 5 components: Core, Assets, Print, Capture, IoT
44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# TallyFlow Architecture
|
||
|
||
**Diagram:** [[TallyFlow-Architecture-Diagram.html]]
|
||
|
||
## Overview (5 Components)
|
||
|
||
TallyFlow is built around exactly **five primary components**, with **Core** as the central hub that owns the database.
|
||
|
||
### 1. Core (Central)
|
||
- Go backend + Vue.js Web UI
|
||
- Owns MongoDB (assets, tags, photos, zones, events)
|
||
- Single API integration point for all other components
|
||
- Handles configuration, reporting, and orchestration
|
||
|
||
### 2. Assets (Mobile)
|
||
- Flutter native mobile application
|
||
- Lightweight inventory, geiger-style seek & find, enrollment, zone moves
|
||
- Communicates with Core via REST/WebSocket API
|
||
|
||
### 3. Print
|
||
- Flutter + Rust implementation
|
||
- Zebra ZPL-compatible label printing and RFID encoding
|
||
- Includes **Print UI** for configuration
|
||
- Can also be driven directly via the **Print API**
|
||
|
||
### 4. Capture (PhotoTag)
|
||
- Native mobile application (not Go/Vue)
|
||
- Associates photos with barcodes, work orders, and metadata
|
||
- Focused on quality control and visual documentation
|
||
- Sends data to Core via API
|
||
|
||
### 5. IoT
|
||
- Rust-based service
|
||
- Integrates fixed RFID readers (Impinj, Zebra) and environmental sensors
|
||
- Pushes tag events and sensor data to Core (optional / dashed connection)
|
||
|
||
**MongoDB** is not a standalone component — it is fully owned and managed inside Core.
|
||
|
||
## Data Flows
|
||
- **Assets, Print, Capture** → Core: Solid lines (primary, always-available flows)
|
||
- **IoT → Core**: Dashed line (optional, event-driven)
|
||
- Core Web UI and Print UI are shown as sub-elements within their respective components
|
||
|
||
This structure was verified by reviewing the actual source repositories in `~/src/`. All external modules interact exclusively through Core’s API layer. |