Retail POS system

NoblePOS

Multi-tenant retail POS and back-office ERP (Focus / Noble-POS)—ASP.NET Core API, SQL Server, Vue 2 SPA, optional Electron.

NoblePOS project preview

Background & Context

Retail counters need POS that tolerates busy hardware (terminals, barcodes, receipts) while managers need inventory, purchasing, and accounting off the floor. NoblePOS-master (solution Focus.sln; branding Noble POS / Noble-POS) is a multi-tenant point-of-sale and business management system: ASP.NET Core 2.2 REST API (Noble.Api), clean-architecture Domain/Business/Persistence layers with MediatR CQRS, SQL Server via EF Core 2.2, and a Vue 2 SPA (Noble.web) with optional Electron 13 desktop shell and English/Arabic i18n.

Repository completeness warning: Focus.Business.csproj and many CQRS module folders referenced by controllers are missing from this snapshot; services.AddApplication() is referenced but not found. Treat the tree as an incomplete checkout that will not build as-is without restoring Business-layer sources. Features below are inferred from entities, controllers, and Vue routes that remain.

The Challenge

Retail businesses needed integrated POS, inventory, purchasing, and accounting across companies/locations—with desktop-friendly terminals and bilingual UI—without splitting stock truth across tools. Without a coherent retail pos system foundation, NoblePOS stakeholders faced fragmented tools, slow handoffs, and limited visibility—classic failure modes Tekvers designs against.

The Solution

NoblePOS: Multi-tenant retail POS and back-office ERP (Focus / Noble-POS)—ASP.NET Core API, SQL Server, Vue 2 SPA, optional Electron. Dual-surface retail model: in-store Electron + web back-office on one domain model. Tekvers delivered a maintainable retail pos system system for NoblePOS using ASP.NET Core 2.2, EF Core, SQL Server, MediatR/CQRS, with phased rollout, operator workflows, and documentation suited to long-term ownership.

Our Approach

  1. Clean-ish architecture + tenancy

    Domain → Business (CQRS/MediatR) → Persistence → API; soft-delete and company-scoped tenant filters in `ApplicationDbContext`; multi-company hierarchy (Noble Admin → Super Admin → Admin → User).

  2. Retail operations surface

    POS day start/close, counters/terminals, sales (hold/paid/credit/return patterns), cash customers, sale payments/returns; purchases, POs, purchase returns, mobile orders; warehouses, stock adjustments, transfers, barcodes/QR printing, promotions.

  3. Back-office finance and HR

    Chart of accounts, journals, payment vouchers, banks, expenses; employee registration, departments, designations; 15+ Vue report screens; Arabic/English locales.

What We Delivered

  • ASP.NET Core 2.2 REST API (`Noble.Api`) with large controller surface
  • EF Core/SQL Server persistence with soft-delete and company filters
  • JWT login/logout, TOTP 2FA, password reset email helper (`Focus.External`)
  • Vue 2 + Bootstrap-Vue + Element UI SPA with Vuex and vue-i18n
  • Optional Electron 13 desktop wrapper for POS terminals
  • Catalog (brand/color/size/unit/tax/category), inventory, purchasing, accounting, HR modules (as evidenced by remaining code)
  • Honest gap note: missing `Focus.Business` sources block a clean compile

Outcomes & Impact

  • Dual-surface retail model: in-store Electron + web back-office on one domain model
  • Bilingual (EN/AR) operational UI for multi-market retail
  • Clear upgrade path off .NET Core 2.2 once Business layer is restored

When complete sources are present, retailers sell at the counter and manage stock/finance upstairs on one stack. This documented snapshot preserves the architecture and module map honestly—including incompleteness—so portfolio claims stay defensible.

Technology Stack

  • ASP.NET Core 2.2
  • EF Core
  • SQL Server
  • MediatR/CQRS
  • JWT
  • Vue 2
  • Vuex
  • Electron
  • vue-i18n

Services Delivered

Guides & articles from this niche

Planning a similar platform? Share your scope and we will map architecture, delivery phases, and a realistic timeline.