QPhising
Operational web tracking, campaign simulation workflows, and actionable visitor analytics in one contract-first platform.
QPhising combines campaign lifecycle control, public landing telemetry, analytics dashboards, report exports, and security-aware auditability for teams that need reliable operational visibility.
Analytics Overview
Feature Highlights
Built from real platform capabilities in this repository, designed for secure and traceable operations.
Campaign Lifecycle Management
Create, schedule, start, pause, complete, cancel, and soft-delete campaigns with role-based permissions.
Tracking Page Operations
Manage publish/archive lifecycle, metadata, validity windows, templates, and privacy settings per tracking page.
Anonymous Visit Ingestion
Capture visits by ID or slug endpoints with deduplication support, request limits, and abuse-aware rate limiting.
Analytics & Trends
Observe total/unique visits, top pages, recent traffic stream, and trend buckets with bot-exclusion controls.
Report Center
Export analytics as CSV or PDF with global/selected scope, detail-level options, and localization-ready output.
Audit & Security Visibility
Track operational and security-relevant events while enforcing JWT, role policies, and correlation-driven logging.
Why QPhising
QPhising is designed backend-first with Clean Architecture, CQRS workflows, and generated API clients to keep contracts authoritative from API to UI.
Reporting Preview
Summary and detailed export modes provide executive-level views and operational detail for teams sharing evidence across stakeholders.
Admin Management Preview
Operators and admins manage campaigns, templates, tracking pages, and audit logs from a single consistent interface.
Architecture
Clean Architecture boundaries with a contract-first API and generated frontend proxies.
Frontend
Angular + PrimeNG dashboard modules consume generated OpenAPI clients and runtime-configurable gateway/auth endpoints.
API
ASP.NET Core API with MediatR CQRS handlers, validation, ProblemDetails middleware, and secure management endpoints.
Database
PostgreSQL via EF Core migrations with soft-delete semantics and query filters for write-side entities.
Deployment
Docker Compose stack for API, Gateway, frontend, and optional Redis profile with environment-driven startup configuration.
Authentication
JWT/OIDC integration (Keycloak authority), policy-based role authorization, and authenticated routing for admin surfaces.
Tracking Engine
Public `/p/{slug}` landing resolution plus anonymous visit capture, deduplication controls, and analytics/reporting pipelines.
Tech Stack
.NET 10
ASP.NET Core API and gateway services.
Angular 19
Modern standalone frontend architecture.
PostgreSQL 16
Primary operational data storage.
Ocelot Gateway
Edge routing and downstream forwarding.
Redis (Optional)
Optional transient readiness/cache layer.
QuestPDF + CSV
Professional reporting outputs.
Installation
Local Run
dotnet restore QPhising.slnx
dotnet build QPhising.slnx
# API
dotnet run --project backend/API/QPhising.Api.csproj
# Gateway
dotnet run --project backend/Gateway/QPhising.Gateway.csproj
# Frontend
cd frontend
npm ci
npm run start
Docker Compose
cp deploy/env/.env.local.example .env
docker compose up --build
# optional Redis profile
docker compose --profile redis up --build
Build & Test
dotnet build QPhising.slnx --configuration Release
dotnet test backend/API.Tests/QPhising.Api.Tests.csproj --configuration Release
cd frontend
npm ci
npm run build
Roadmap
- Expanded native analytics visualizations and richer trend explorations.
- Scheduled and automated report delivery workflows.
- Retention enforcement and cleanup orchestration for visit-event data.
- Extended observability integrations (metrics/tracing backends).
- Optional deployment manifests for advanced runtime targets.