Production WPF desktop application built for Smart Solutions, Peshawar (NTN: 7569020-2), a printing and Haier AC after-sales service business. Designed and developed with specification-driven design, architecture review, implementation, testing, and deployment, by a software engineer with 20+ years of experience.
Smart Solutions was tracking print orders, Haier AC jobs, and business finances using Excel spreadsheets and manually generated invoices:
![]() |
![]() |
![]() |
| Daily transaction log in Excel | Monthly income/expense summary | Manually generated invoice |
Manual, error-prone, impossible to audit, and not shareable across multiple PCs. This app replaces the entire workflow with a validated, guided, multi-user desktop application.
- Print Orders: customers, multi-line orders with per-sqft and per-piece pricing, vendor assignment, status tracking (Draft → Confirmed → Sent to Vendor → Ready → Delivered)
- PDF Invoices: generated from a FastReport template with business letterhead
- Partial Payments: collect payments over time; balance = total invoiced − sum of payments
- Haier Jobs: warranty and out-of-warranty repair jobs, technician assignment, job status tracking (Pending → In Progress → Completed)
- Job Payments: same partial payment model as print orders
- Expenses: categorised expense tracking with payment channel breakdown (Cash, Easypaisa, Bank, etc.)
- Financial Reports: income, expense, and profit summaries by date range
- Customer Management: searchable customer list with contact and address details
- Audit Trail: every record stamped with the creating user; full accountability without complex permissions
- First-Run Wizard: guided 3-step setup (database connection → business info → admin PIN) on first launch
- Multi-PC LAN: each PC has its own
appsettings.json; all connect to a shared SQL Server on the LAN - MSIX Installer: distributed as a signed
.msixpackage for clean Windows installation
Item categories, item names, vendors, technicians, expense categories, payment channels, and user accounts: all managed via dedicated sidebar pages. No hardcoded lists anywhere.
| Component | Technology |
|---|---|
| Runtime | .NET 10, C# |
| UI Framework | WPF + XAML |
| MVVM | CommunityToolkit.Mvvm |
| Database | SQL Server Express 2022 |
| ORM | Entity Framework Core 10 (code-first, migrations) |
| UI Theme | MaterialDesignInXamlToolkit |
| PDF / Print | FastReport Community |
| Packaging | MSIX (single-project) |
| Tests | xUnit + NSubstitute + FluentAssertions |
Three-layer separation (no business logic in the UI layer, no EF in the business layer):
SmartSolutions.Data 16 entities · EF Core migrations · AppDbContext
SmartSolutions.Core 8 services · 10 interfaces · all business logic
SmartSolutions.App 19 ViewModels · 17 Views · Material Design UI · FastReport templates
SmartSolutions.Tests 35 unit tests · NSubstitute mocks · in-memory DB
Key patterns:
- MVVM strictly enforced:
[ObservableProperty]and[RelayCommand]from CommunityToolkit; no business logic in code-behind IDbContextFactory<AppDbContext>on every service: no shared singleton DbContext, safe for asyncISessionServicesingleton: holds the logged-in user in memory for audit trail stamping- All database calls are async: no
.Resultor.Wait()anywhere
This project was built using a structured, specification-driven engineering workflow:
- Requirements: business problem captured as a structured Product Requirements Document
- Architecture & design specs: each feature designed and reviewed before any code was written
- Implementation plans: detailed, task-by-task plans reviewed and confirmed
- Implementation: built incrementally, reviewed at every milestone
- Testing: 35-test xUnit suite (services, validation, connection handling) kept green throughout
- Deployment: MSIX packaging, first-run wizard, per-PC LAN configuration
The product requirements are documented in this repo:
| Artifact | Link |
|---|---|
| Product Requirements Document | docs/PRD.md |
Designed and built by a software engineer with 20+ years of experience, going from idea to production-ready app with every spec reviewed and approved before a line of code was written.
See docs/INSTALL.md for full setup instructions including MSIX certificate install and the first-run wizard walkthrough.
Prerequisites:
- Windows 10 / 11
- SQL Server Express 2022 (on one PC on the LAN)
- .NET 10 Desktop Runtime


