Back to projects

Project Details

Multi-Branch Commerce Platform

A Laravel 12 + Inertia + React 19 commerce platform built solo across 764 of 765 commits, handling multi-branch and multi-country operations with lot-level rewards accounting.

ongoingLast updated Aug 4, 2026

What It Does

  • Runs commerce operations across several branches and countries from one application.
  • Tracks rewards at lot-allocation granularity rather than as a flat point balance.
  • Moves stock between branches with receipts recorded on both sides of the transfer.

Architecture Highlights

  • Access governance is a subsystem with its own services, so branch and country scoping is enforced in one place rather than re-implemented per feature.
  • Inertia keeps a single Laravel routing surface while the interface is written in React and TypeScript.
  • The rewards ledger is append-only at lot granularity, which keeps reward disputes traceable to source stock.

Key Features

Rewards Ledger

  • Lot-allocation model so rewards are attributed to the specific stock they came from
  • Auditable earn and burn history rather than a mutable balance field

Inter-Branch Inventory

  • Transfers between branches with receipt records at origin and destination
  • Stock positions stay reconcilable per branch

Access Governance

  • 11 dedicated services enforcing branch and country scoping
  • Scoping applied as a subsystem rather than scattered per-controller checks

Search & Interface

  • Meilisearch integration for fast product and order lookup
  • 251 Inertia pages typed end to end with TypeScript

Tech Stack

Backend

  • Laravel 12
  • PHP 8.4
  • MySQL

Frontend

  • Inertia
  • React 19
  • TypeScript

Search

  • Meilisearch

Testing

  • Pest
  • 216 test files

Performance & Product Notes

  • 216 test files covering roughly 1,483 cases.
  • Meilisearch keeps catalog search responsive as the product surface grows across countries.
  • Built and maintained solo across 764 of the project's 765 commits.

© 2026 Md Sajjadur Rahaman

Built with