Spark Your Inquiry, Ignite Insights.
Live Site: https://inquiry.makeboldspark.com
InquirySpark is a .NET 10 unified survey/inquiry and decision-management system delivered through a single MVC web application backed by read-only SQLite databases. It demonstrates modern ASP.NET Core architecture with Bootstrap 5, EF Core 10, and ASP.NET Core Identity.
Built by Mark Hazleton — Mark Hazleton, Solutions Architect InquirySpark is part of the Make Bold Spark portfolio of technical demonstrations.
InquirySpark is a .NET 10 unified survey/inquiry and decision-management system delivered through a single MVC web application backed by read-only SQLite databases. The solution contains:
- InquirySpark.Web: Unified operations workspace (Bootstrap 5 + DataTables, Razor Views, ASP.NET Core Areas)
- InquirySpark.Repository: EF Core 10 services and DbContext abstractions
- InquirySpark.Common: Shared models, SDK objects, response wrappers
- InquirySpark.Common.Tests: MSTest unit and integration test suite
Legacy applications removed:
DecisionSparkandInquirySpark.Adminhave been decommissioned and are no longer part of the active solution. Their capabilities are fully delivered byInquirySpark.Web.
- .NET SDK 10.0.100 (enforced via global.json)
- Node.js 20.x for the Web asset pipeline (npm build runs automatically on
dotnet build) - No SQL Server required — all persistence uses immutable SQLite databases
git clone https://github.com/MarkHazleton/InquirySpark.git
cd InquirySpark
dotnet restore InquirySpark.slndotnet build InquirySpark.sln -warnaserror- All projects enforce nullable reference types and XML documentation
- npm build runs automatically for
InquirySpark.Web - SQLite databases are copied to output directories via
CopyToOutputDirectory
dotnet run --project InquirySpark.Web- Default URL:
https://localhost:5002 - Landing page redirects to
/Unified/Operations(the unified operations dashboard) - SQLite databases loaded from
data/sqlite/in read-only mode - No migrations or schema changes allowed
dotnet test InquirySpark.sln- MSTest suite covers shared libraries, navigation, capability services, and audit services
- 99 of 108 tests pass; 5 known
SystemHealthTestsfailures are environmental (developersecrets.jsonoverride) - 4 tests are skipped (integration scenarios requiring live infrastructure)
Immutable SQLite databases are stored in data/sqlite/:
- ControlSparkUser.db: ASP.NET Core Identity users and roles (read-write for Identity operations)
- InquirySpark.db: Survey/inquiry domain data (read-only)
Connection strings in appsettings.json use Mode=ReadOnly for the inquiry database and Mode=ReadWriteCreate for the Identity store. Database.Migrate() is disabled — schema changes are applied manually via sqlite3.
- Persistence: EF Core 10 with Microsoft.Data.Sqlite provider
- UI: Bootstrap 5 + DataTables 2.3.5 via npm (CDN-free), Bootswatch theme system, Bootstrap Icons
- Unified Area: All user-facing capabilities live under
InquirySpark.Web/Areas/Unified/— one authenticated session, one navigation model - Dependency Injection: Primary constructors, all services registered in
Program.cs - Audit: Structured logging via
IUnifiedAuditService→ standardILoggerpipeline (no EF audit tables) - Response pattern: All service methods return
BaseResponse<T>/BaseResponseCollection<T>viaDbContextHelper
| Path | Description |
|---|---|
/ |
Redirects to /Unified/Operations |
/Unified/Operations |
Unified operations dashboard |
/Unified/CapabilityCompletionMatrix |
Capability completion/cutover matrix |
/Unified/OperationalReadiness |
Operational readiness dashboard |
/Unified/OperationsSupport/Health |
System health check (anonymous) |
/Identity/Account/Login |
ASP.NET Core Identity sign-in |
- Project Constitution — primary governance, rules, and validation criteria
- Unified Web Experience Spec
- Capability Parity Traceability
- Repo Story (2026-04-12)
- Missing .db file errors: Verify
data/sqlite/*.dbassets exist and connection strings point to correct relative paths - SQLite write attempts: Ensure
Mode=ReadOnlyis present in all connection strings forInquirySparkConnection - npm build failures: Run
npm installmanually in theInquirySpark.Web/directory, thennpm run build - 5 SystemHealthTests failures: Pre-existing environmental issue —
secrets.jsonoverrides test env vars; not a code regression
- Read
.documentation/memory/constitution.mdbefore making changes - Active feature specs live under
.documentation/specs/ - Current branch:
001-unified-web-experience
See LICENSE file.