Files
obsidian/TallyFlow/TallyFlow-Architecture.md
T
TNB fceef6f42b Fix architecture diagram issues
- Changed Core Backend to 'Go (REST API)' (removed gRPC, kept REST)
- Removed BLE from IoT (not supported yet)
- Fixed text overflow in boxes by adjusting layout and labels
- Updated description to reflect REST-only API
2026-07-07 09:36:26 -04:00

1.9 KiB
Raw Blame History

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)

  • Core Backend (Go) positioned in the center — provides the REST API
  • Core Web UI (Vue.js) on the left — consumes the Core API
  • 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
  • Can register assets directly with Core

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)
  • Can integrate with ERP systems

MongoDB is not a standalone component — it is fully owned and managed inside Core.

Data Flows

  • Assets, Print, Capture → Core: Solid lines (primary flows)
  • IoT → Core: Dashed line (optional, event-driven)
  • Print additionally supports asset registration back into Core
  • Core Web UI communicates with Core Backend via the same API used by other components

This structure was verified by reviewing the actual source repositories in ~/src/. All external modules interact exclusively through Cores REST API layer.