Skip to content

Latest commit

 

History

History
100 lines (91 loc) · 5.56 KB

File metadata and controls

100 lines (91 loc) · 5.56 KB

Project structure

Canonical layout of the repository and where each piece lives.

Folder tree

├── .github/
│   ├── workflows/
│   │   └── ci.yml              # CI: build WPF app, generate extension rules
│   └── ISSUE_TEMPLATE/         # Bug report, feature request, config
│
├── wpf-browser/                # Privacy Monitor desktop app (WPF + WebView2)
│   ├── PrivacyMonitor.csproj
│   ├── App.xaml(.cs), MainWindow.xaml(.cs)
│   ├── BrowserTab.cs, PrivacyEngine.cs, ProtectionEngine.cs, ForensicEngine.cs
│   ├── UpdateService.cs, DesktopShortcut.cs, SystemThemeDetector.cs
│   ├── ChromeExtensionExport.cs, ReportGenerator.cs, ScriptCatalog.cs
│   ├── SecurityHeuristics.cs, ThreatSimulation.cs, TrackerIntelligence.cs
│   ├── LessonEngine.cs, Models.cs, AssemblyInfo.cs
│   ├── NetworkInterceptor/     # Live interceptor, replay, risk scoring, export
│   │   ├── ARCHITECTURE.md
│   │   ├── NetworkInterceptorService.cs, NetworkInterceptorViewModel.cs
│   │   ├── NetworkInterceptorWindow.xaml(.cs), ReplayModifyWindow.xaml(.cs)
│   │   ├── RiskScoring.cs, TrafficMetrics.cs, AlertManager.cs
│   │   └── ...
│   ├── Themes/                 # WPF theme dictionaries (Light, Dark, Large variants)
│   ├── ExportBlocklist/        # CLI to export blocklist for chrome-extension
│   ├── docs/                   # Technical documentation
│   ├── scripts/                # Helper scripts (firewall, uninstall)
│   ├── website/                # Canonical website (deploy source for update-vps.ps1)
│   │   ├── index.html, download.html, features.html, security.html
│   │   ├── admin.html, logs.html, setup-2fa.html
│   │   └── assets/             # styles.css, app.js, logo, screens, build-info.json
│   ├── publish.ps1             # Build single-file EXE, copy to website/
│   └── (bin/, obj/, publish/)  # Build outputs — gitignored
│
├── chrome-extension/           # Chrome/Edge extension (same engine; export writes here)
│   ├── manifest.json, background.js, popup.html/.css/.js, options.html/.js
│   ├── cosmetic.css/.js        # Cosmetic ad hiding filters
│   ├── ad-defuser.js/.page.js  # Tracking API neutralization
│   ├── ad-shield.js/.page.js   # Synthetic click / overlay protection
│   ├── click-guard.js/.page.js # Click hijacking protection
│   ├── navigation-guard.js     # Script-driven redirect blocking
│   ├── redirect-blocker.js     # Gateway redirect unwrapping
│   ├── preroll-skip.js         # Video ad skip
│   ├── preroll-detector.js     # Video ad detection
│   ├── tracker-domains.js      # Generated by app: --export-blocklist
│   ├── rules.json, rules-stealth.json, rules-video-ads.json
│   └── generate-rules.js       # Optional Node; C# export replaces need
│
├── browser-update-server/      # Node update server (deploy to VPS)
│   ├── server/
│   │   ├── server.js           # Express: /api/latest, /api/download, /admin
│   │   ├── package.json
│   │   └── .env.example        # ADMIN_PASSWORD, SESSION_SECRET (copy to .env on VPS)
│   ├── builds/
│   │   └── version.json        # Version manifest for /api/latest
│   ├── nginx/                  # Reverse proxy config
│   └── guacamole/              # Optional RDP-in-browser (Docker)
│
├── wpf-browser.sln             # Solution file
├── update-vps.ps1              # Deploy website, server, builds → VPS
├── update-all.ps1              # Restore packages and build everything
├── README.md                   # Project overview
├── PROJECT_STRUCTURE.md        # This file
├── CHANGELOG.md                # Change log
├── DEPLOYMENT.md               # GitHub push and VPS deploy steps
├── SECURITY-AUDIT-REPORT.md    # Security audit findings
└── LICENSE

Canonical paths

What Path Notes
Website (deploy) wpf-browser/website/ update-vps.ps1 uploads this folder.
Update server browser-update-server/server/ Node app. node_modules excluded from deploy.
Version manifest browser-update-server/builds/version.json Version and download filenames.
WPF app wpf-browser/ Build: dotnet build wpf-browser/PrivacyMonitor.csproj
Chrome extension chrome-extension/ Export writes tracker-domains.js, rules.json here.
Docs wpf-browser/docs/ Technical documentation only in this location.
Scripts wpf-browser/scripts/ Helper scripts only in this location.
Themes wpf-browser/Themes/ WPF theme XAML dictionaries.

Build outputs (gitignored)

  • wpf-browser/bin/, wpf-browser/obj/, wpf-browser/publish/
  • wpf-browser/website/*.exe, wpf-browser/website/*.zip
  • browser-update-server/server/node_modules/
  • Root bin/, obj/ (if building from root)

Scripts

Script Purpose
update-vps.ps1 Upload website, server, builds to VPS; fix permissions; restart Node.
update-all.ps1 Restore NuGet/Node and build (run from repo root).
wpf-browser/publish.ps1 Build single-file EXE; copy to wpf-browser/website/.
browser-update-server/setup-ssh-key.ps1 One-time: SSH key setup for passwordless deploy.