- 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
1.7 KiB
1.7 KiB
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.