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.

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
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).
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.
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
Services Delivered
Related Case Studies
Guides & articles from this niche
Planning a similar platform? Share your scope and we will map architecture, delivery phases, and a realistic timeline.