Inventory, sales tracking, and operational visibility

SME Operations System

Enabling business owners to track stock, verify sales, and operate reliably under power and connectivity constraints.

Problem Statement

Small and medium enterprises often lack visibility into their operations—inventory discrepancies, unverified sales, and manual record-keeping create operational blind spots.

Business owners struggle to answer basic questions: What stock is available? How much was sold today? Are records accurate?

Existing tools assume reliable power, consistent internet, and technical literacy—assumptions that don't hold in resource-constrained environments.

System Goal

Provide business owners with real-time operational visibility—accurate inventory counts, verified sales records, and actionable insights—designed to work offline and sync when connectivity is restored.

Constraints Handled

Power instability

Frequent outages mean the system must preserve data integrity during unexpected shutdowns and resume operations without manual intervention.

Intermittent connectivity

Network access is unreliable. The system operates fully offline, queuing changes for synchronization when connectivity returns.

Concurrent operations

Multiple staff members may record sales or update inventory simultaneously across different devices. The system resolves conflicts using logical timestamps and merge strategies.

Low technical literacy

Interfaces are simplified and task-focused. No complex workflows or hidden features—every action is explicit and reversible.

Key Engineering Decisions

Offline-first architecture with local persistence

All data is stored locally first using SQLite, ensuring the system remains functional without network access. Changes are queued and synchronized in the background when connectivity is available.

Event sourcing for audit trails

Every inventory change and sale is recorded as an immutable event. This allows business owners to reconstruct state at any point in time and detect discrepancies.

Conflict-free replicated data types (CRDTs) for inventory

Used CRDT principles to merge concurrent updates without losing data. When multiple devices modify inventory offline, the system converges to a consistent state during sync.

Transaction batching for low-bandwidth sync

Instead of syncing every operation individually, changes are batched and compressed before transmission. This reduces bandwidth usage and improves sync reliability over slow connections.

Simplified state model

Avoided complex workflows. Inventory has three states: available, reserved, sold. Sales are either pending or confirmed. This reduces cognitive load and makes the system easier to reason about.

Tech Context

Built with SQLite for local data persistence, ensuring fast reads and writes without network dependency.

Used background sync workers to handle data replication when connectivity is detected.

Designed for mobile-first deployment on Android devices, minimizing hardware requirements.

System Model

Actors

Business owners, staff members, system

Resources

Inventory items, sales records, transactions

Actions

Record sale, update inventory, generate reports, sync data

Constraints

Inventory cannot go negative, sales must reference valid inventory, sync conflicts must be resolvable