About this software
About Tijara Retail ERP
Tijara is a retail ERP for supermarkets and grocery chains, built as ASP.NET Core 9 MVC with hand-written ADO.NET and SQL Server (no ORM). It covers head office, branches, warehouse, a keyboard-and-scanner POS, loyalty, an installable online store, home delivery with a driver PWA, a supplier portal and accounting. Each installation serves one company, scoped by branch and owner. The source includes numbered SQL schema scripts applied at start-up, Docker Compose setup, xUnit tests and a Stripe card gateway with refunds. Integrations for SMS, WhatsApp Cloud, and SMTP are configured from an admin screen.
Why Tijara Retail ERP
What makes it better
than the alternatives
- 01
Full source, no ORM
Parameterised ADO.NET repositories with a layered Web/Services/Data/Common structure and a CLAUDE.md guide for AI-assisted changes.
- 02
Single-tenant by design
One company per installation and database, with scoping by branch and by customer or supplier owner claims.
- 03
Online store with card payments
Installable PWA with branch picker, cart, card or COD checkout, order tracking and returns, plus Stripe checkout, webhook signature checks and idempotent refunds.
- 04
Configurable messaging
Admin-managed SMS provider presets (e.g. Vonage), WhatsApp Cloud, SMTP, message templates, and an outbound message queue and log, with secrets encrypted at rest.
- 05
Security basics in place
BCrypt password hashing (work factor 12), login rate limiting and lockout, antiforgery handling, audit log, and no connection string shipped in config.
Point of Sale
- Keyboard and scanner-first till with held bills
- Split tender: cash
- card
- loyalty points
- Automatic promotions and loyalty earn/redeem
- Printable receipts and shift open/close with sign-off
Product Master & Promotions
- 3-level category tree
- brands
- multiple barcodes (EAN-13/8
- UPC-A/E)
- weighed items
- Bulk price changes with history
- Shelf-label and barcode PDF printing
- Promotions: % off
- fixed amount
- buy-X-get-Y
- combos
- member and tier-gated
Inventory & Warehouse
- Branch and warehouse stock with movement history
- Expiry batches
- wastage records and stock counts
- Stock transfer requests with dispatch and receipt
- Vehicles for transfers
Procurement & Suppliers
- Suppliers
- purchase orders with approval rules
- Goods received notes
- Supplier portal
Online Store & Payments
- Mobile PWA storefront with catalogue
- cart
- wishlist and checkout
- Stripe card payments
- webhooks and refunds via admin screen
- Online returns and order status history
- Store link and QR code with readiness checklist
Delivery
- Delivery manager queue and assignment
- Driver PWA with cash and card slip handling
- Order picking and delivery handover
Loyalty & Marketing
- Points ledger with tiers
- expiry and rules
- Marketing audiences and campaigns
- Automatic customer messages by SMS
- WhatsApp and email
Finance & Branch Operations
- Cashier handover
- cash drops
- Z-number and day close
- Expenses and daily sales report
- GL accounts
- journal entries
- AP/AR invoices
- Tax invoice PDF documents
Administration & Reporting
- Role-based access with permission matrix and approval routes
- Audit log and notifications
- Analytics dashboards on pre-aggregated tables
- Optional Hangfire dashboard for background jobs
- admin only
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 50.4% |
| C# (Razor) | — | — | Web pages | 24.2% |
| SQL | — | — | Database | 17% |
| CSS | — | — | Styling | 3.6% |
| HTML | — | — | Front-end | 2.5% |
| JavaScript | — | — | Front-end | 2.1% |
| Python | — | — | Web, API | 0.2% |
- Primary language
- C# (.NET 9 SDK 9.0.100+, per global.json)
- Framework
- ASP.NET Core 9 MVC with ADO.NET (Microsoft.Data.SqlClient, no ORM)
- Database
- Microsoft SQL Server (Docker image in docker-compose; minimum version not pinned in the digest)
- Authentication
- Cookie authentication with BCrypt password hashing (work factor 12), login rate limiting, and lockout after failed attempts
- Licence
- Single-site
- Screens
- 150
- Database tables
- 73
- Supported languages
- English and Arabic, with right-to-left (RTL) layout when Arabic is selected
- Browser support
- Modern evergreen browsers (Chrome, Edge, Firefox, Safari); no formal test matrix in the digest
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM (estimate) | 8 GB RAM (estimate) |
| OS | Linux or Windows with the .NET 9 ASP.NET Core runtime and SQL Server | Linux or Windows with the .NET 9 ASP.NET Core runtime and SQL Server |
| Est. monthly hosting | $35 | $35 |
Requires Docker with Compose. Copy the example environment file, set SA_PASSWORD and the demo hashes, then start the stack. ```bash cp .env.example .env # edit .env: set SA_PASSWORD, and optionally DEMO_PASSWORD_HASH / PLATFORM_PASSWORD_HASH docker compose up -d --build ```
For development. Connection string is supplied through user secrets, never a committed file. ```bash cd "NET Project" dotnet restore dotnet build SupermarketMS.sln dotnet test cd SupermarketMS.Web dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=Tijara;User Id=tijara_app;Password=<password>;TrustServerCertificate=True;Encrypt=True" dotnet run ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (2 minor)
Moderate duplication and some oversized files; module boundaries mostly sound but view logic could be tightened; strong authentication and role guards; minor ownership gaps on read endpoints. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
Release historyCurrent version
Updates in the last 90 days
Buyers
Updates included
-
1.1.0 Version Current7 Oct 2026 ✓ Reviewed & audited
- Updated security fixes
-
1.0.0 First release 7 Oct 2026 ✓ Reviewed & audited
How updates work: versions add features and go through the full AI audit and human review. Patches are small fixes, audited and checked by a reviewer before release. Buyers get every update free for 1 year and are emailed the how-to-apply steps.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.