From 0bbe00b75e38662d20ae6d36d838bc32427c2372 Mon Sep 17 00:00:00 2001 From: TNB Date: Tue, 7 Jul 2026 09:15:19 -0400 Subject: [PATCH] Correct TallyFlow architecture based on source code review in ~/src/ - Core is central and owns MongoDB (not Assets) - Core: Go backend + Vue.js frontend (no Node.js) - Verified against tallyflow-web, photomicroservice, tallyflow-iot, tallyflow_mobile, tallyflow-print - Updated diagram, legend, cards, and description for accuracy --- TallyFlow/TallyFlow-Architecture-Diagram.html | 179 +++++++++--------- TallyFlow/TallyFlow-Architecture.md | 35 ++-- 2 files changed, 108 insertions(+), 106 deletions(-) diff --git a/TallyFlow/TallyFlow-Architecture-Diagram.html b/TallyFlow/TallyFlow-Architecture-Diagram.html index 1734ec8..f16e58d 100644 --- a/TallyFlow/TallyFlow-Architecture-Diagram.html +++ b/TallyFlow/TallyFlow-Architecture-Diagram.html @@ -59,11 +59,11 @@

TallyFlow Architecture

-

Manufacturing Asset Tracking & RFID Workflow Platform

+

Manufacturing Asset Tracking & RFID Workflow Platform — Source-verified

- + @@ -76,104 +76,99 @@ - - - TallyFlow Core (Backend API + Web UI) + + + TallyFlow Core (Central Hub) - - - Core - FastAPI / Node.js - REST + WebSocket + + + Core Backend + Go (Echo / gRPC) + REST + WebSocket API - - - Assets (Mobile) - Lightweight Inventory - Seek & Find • Enrollment + + + Core Web UI + Vue.js 2 + Webpack + Asset management, reporting - - - Print - Zebra (ZPL compatible) - Label + RFID Encoding + + + MongoDB + Asset registry + Tags • Photos • Zones • Events - - - Capture - (PhotoTag) - Photo + Barcode assoc - QC Documentation + + + Assets (Mobile) + Flutter + Seek & Find • Inventory + Enrollment • Zones - - - IoT - Fixed Readers + Sensors - Impinj / Zebra - MQTT / HTTP / BLE + + + Capture + (PhotoTag) + Go + Mongo + Photo + Barcode QC - - - MongoDB - Asset registry • Event store • Audit - Tags, photos, zones, history + + + Print + Flutter + Rust + Zebra ZPL + RFID - - - Excel Import - Bulk asset load + + + IoT + Rust (tallyflow-iot) + Fixed readers • Sensors - + - - - Photo + Data + + + Sync / Enroll - - - Sync + + + Owns & Persists - - Print Jobs + + Print Jobs - - Tag Events + + Tag Events - - - Persist - - - - - - + + + Photos + Metadata - Legend + Legend - - Core Backend + + Core (Go + Vue.js) - - Assets (Mobile) + + Assets (Flutter) - - Capture (PhotoTag) + + Capture (Go) - - Print (Zebra ZPL) + + Print (Flutter/Rust) - - IoT / Edge + + IoT (Rust) - - MongoDB + + MongoDB (Core-owned) - - Data Flow + + API Flow
@@ -181,13 +176,13 @@
-

Core

+

Core (Central)

@@ -196,10 +191,10 @@

Assets (Mobile)

@@ -208,10 +203,10 @@

Capture (PhotoTag)

@@ -220,16 +215,16 @@

Print + IoT

diff --git a/TallyFlow/TallyFlow-Architecture.md b/TallyFlow/TallyFlow-Architecture.md index 870f80b..5daaf3b 100644 --- a/TallyFlow/TallyFlow-Architecture.md +++ b/TallyFlow/TallyFlow-Architecture.md @@ -2,26 +2,33 @@ **Diagram:** [[TallyFlow-Architecture-Diagram.html]] -## Overview +## Overview (Source-Verified) -TallyFlow is a modular asset tracking platform centered on **TallyFlow Core**, the central web backend and integration hub. All other components synchronize with Core for asset registration, configuration, reporting, and data consistency. +TallyFlow's architecture is centered on **TallyFlow Core**, which serves as the single integration hub and owns the primary data store. -**TallyFlow Assets (Mobile)** is the primary field application for lightweight inventory management, geiger-counter-style seek & find, fast enrollment, zone movements, and shipping workflows. +**Core** consists of: +- Go backend (API layer, business logic, using Echo/gRPC patterns) +- Vue.js 2 web frontend (tallyflow-web) for asset management, reporting, and configuration +- MongoDB database (owned by Core) storing the asset registry, tags, photo metadata, zones, events, and audit history -**TallyFlow Capture** (rebranded from PhotoTag) enables photo documentation by associating images with barcodes, work orders, serial numbers, and other metadata for quality control and visual record-keeping across incoming, in-process, and outgoing inspections. +All other components communicate exclusively through Core's REST + WebSocket APIs. -**TallyFlow Print** handles on-demand Zebra ZPL-compatible label printing and RFID encoding, with optional automatic registration back into Core. +**TallyFlow Assets (Mobile)** is a Flutter application focused on field operations: lightweight inventory, geiger-counter-style seek & find, fast enrollment, zone movements, and shipping workflows. It syncs with Core. -**IoT** provides real-time location, environmental sensor data (temperature, humidity, shock), and fixed RFID reader integration (Impinj, Zebra) via MQTT/HTTP/BLE, feeding live events into Core. +**TallyFlow Capture** (PhotoTag) is implemented as a Go microservice (photomicroservice) that handles photo + barcode association for quality control and visual documentation. It stores photo metadata in its own MongoDB collections but registers assets and events back to Core. -Data is persisted in **MongoDB**, which stores the asset registry, tag events, photo metadata, zones, and full audit history. Bulk onboarding is supported via Excel import. All modules communicate through Core’s REST + WebSocket APIs, enabling unified visibility and waste reduction across manufacturing operations. +**TallyFlow Print** is a Flutter + Rust application that generates Zebra ZPL-compatible labels and RFID encodings, with optional auto-registration into Core. + +**IoT** is a Rust-based service (tallyflow-iot) that ingests data from fixed RFID readers (Impinj, Zebra) and environmental sensors, pushing real-time tag events and sensor data to Core. + +This structure was verified by inspecting the repositories in `~/src/` (tallyflow-web, photomicroservice, tallyflow-iot, tallyflow_mobile, tallyflow-print, etc.). ## Key Data Flows -- **Assets (Mobile) ↔ Core**: Sync inventory updates, enrollment, and seek/find data -- **Capture ↔ Core**: Photo + barcode metadata and QC records -- **Print → Core**: Print job submission + optional auto-registration -- **IoT → Core**: Real-time tag events and sensor data -- **Core ↔ MongoDB**: Persistent storage of all asset, tag, photo, and event data -- **Excel → Core**: Bulk asset and tag ingestion +- **Assets (Mobile) ↔ Core**: Enrollment, inventory updates, seek/find sync via API +- **Capture → Core**: Photo metadata and QC records +- **Print → Core**: Print jobs and optional asset registration +- **IoT → Core**: Real-time tag/sensor events +- **Core ↔ MongoDB**: Core owns and directly manages all persistent data (assets, photos, zones, history) +- **Core Web UI (Vue.js)**: Operator interface for the full system -This architecture allows flexible deployment — from mobile-only inventory tracking to full IoT + automated capture environments — while keeping Core as the single source of truth. \ No newline at end of file +Core is the only component that directly owns the database. All other modules are clients or data producers that route through Core. \ No newline at end of file