Guide Summary
| Audience | Developers, support staff, implementation team, and AI agents with code access. |
| Applies To | QBM Client, QBM Server, QBMWServices, QSalesView, QClock, common libraries, configuration, endpoints, logging. |
| Purpose | Provide a high-level developer reference for support and troubleshooting without exposing secrets or replacing source review. |
| Last Updated | 2026-05-18 |
Solution Structure
| Area | Role | Support Notes |
| ClientUI | Windows desktop client and help documentation. | User-facing forms, menus, and help pages. |
| QBMServer | Server-side Windows service layer. | Private service used by QBM Client and QBMWServices. |
| QBMWServices | .NET web API bridge. | Used by QSalesView, QClock, and integrations. Common API port is 8053. |
| Projects/QSalesView | Browser sales dashboard. | Calls QBMWServices using configured BaseAddress or Service Address. |
| Projects/QClock | Browser/device time clock app. | Uses QBMWServices and QBM employee data. |
| BusinessFacade, BACFacade, BACInterfaces | Shared business and service-facing layers. | Review these before changing cross-module logic. |
| Dependent Dlls | Shared dependent assemblies folder. | Expected loading path; do not change unless development confirms a defect. |
Technical Flows
- Authentication: QSalesView sends login to QBMWServices, which validates through QBM Server and returns token context.
- Permission check: Browser requests include token and app context; QBMWServices validates permissions with QBM Server.
- Product key check: QBMWServices reads ProductKey from configuration and exposes validation through its connection API.
- Database connection: QBM Server owns the database access path to SQL Server and company database.
- Reporting: Desktop and web reports depend on permissions, filters, QBM Server availability, and database response time.
- API endpoints: Main QBMWServices controllers include Connection, Company, Customer, Employee, Item, Location, CRM, Lead, Picker, and Restaurant Delivery.
Support Hotspots
- Configuration files such as QBMWServices
appsettings.json.
- Service installation scripts and Windows service registration.
- QBM Server private port and QBMWServices API port.
- Browser BaseAddress and Cloudflare Tunnel target.
- Logs from QBM Client, QBM Server, QBMWServices, Windows Event Viewer, browser console, and SQL Server.
- Error handling patterns should present customer-safe messages and keep details for support logs.
Expected result: Code-aware support can locate the likely project, configuration, service, route, or permission layer before changing code.
Troubleshooting Decision Tree
- Is this a configuration issue? Verify settings and services before changing code.
- Is this a permission issue? Reproduce with exact user, group, screen, report, and app id.
- Is this an API issue? Identify controller, route, request fields, response, and logs.
- Is this a client/server mismatch? Align deployment before changing code.
- Is the issue related to
Dependent Dlls? Do not change loading behavior unless a confirmed bug exists.
- If code is required, keep the fix scoped and add support evidence to the issue.
What To Send To Support
- Exact error, route, screen, timestamp, and affected version.
- Reproduction steps and whether it affects one customer or all customers.
- Logs and masked configuration.
- Expected behavior and business rule.
- Deployment mode: LAN, VPN, ZeroTier, Cloudflare Tunnel, hosted, or local test.
Security Notes
- Do not copy secrets from configuration into tickets or help pages.
- Do not expose private ports publicly.
- Do not recommend removing or changing
Dependent Dlls loading unless development confirms it is the bug.