File & Directory Structure
Every file and folder in the application, explained.
Source Code Root (E:\All In One App\)
All In One App/
├── main.py Entry point
├── main_window.py Top-level window and layout
├── app_style.py Global dark stylesheet + status color maps
│
├── core/ Business logic, workers, data
│ ├── config.py AppConfig dataclass + path resolution
│ ├── paths.py Backward-compat constants proxy
│ ├── signals.py AppSignals singleton (cross-module events)
│ ├── data_manager.py JSON state store (pipeline, queue, rejected)
│ ├── registry.py Windows Registry read/write
│ ├── ai_launcher.py Routes to Claude or Gemini launcher
│ ├── claude_launcher.py Spawns Claude CLI in new terminal
│ ├── gemini_launcher.py Spawns Gemini CLI in new terminal
│ ├── process_monitor.py QThread: watches spawned process until exit
│ ├── webcopy_worker.py QThread: runs Cyotek WebCopy
│ ├── webcopy_queue.py Concurrency pool for WebCopy jobs (max 3)
│ ├── deploy_worker.py QThread: runs deploy-demo.ps1 + encrypted doc publish
│ ├── cold_call_worker.py QThread: silent Claude contact extraction
│ ├── backup_worker.py QThread: copies site to Site Backups/
│ ├── discovery_worker.py QThread: calls Google Places API
│ ├── saved_searches.py Preset dataclass + JSON persistence
│ ├── api_export.py Export/import API keys to/from JSON
│ ├── data_archive.py Full ZIP export/import with workers
│ ├── report_crypto.py AES-256-GCM encryption + fragment URL generation
│ └── clear_data.py QThread: wipes all filesystem data (keeps registry keys)
│
├── discovery/
│ ├── discover.py Google Places API calls + spiral tile gen
│ └── blocklist.py ~150 franchise keyword fragments
│
├── seo/
│ ├── audit.py HTML parser + on-page SEO rule checks
│ ├── models.py PageResult / Finding dataclasses + severity enum
│ ├── technical.py Technical SEO checks (canonical, robots, sitemap, etc.)
│ ├── local_seo.py Local SEO checks (NAP, Maps embed, LocalBusiness schema)
│ ├── geo.py AI/GEO readiness checks (structured data, FAQ, llms.txt)
│ ├── keywords.py Keyword density analysis and per-page tables
│ ├── schema_gen.py JSON-LD structured data snippet generator
│ ├── llms_txt.py llms.txt generator for AI crawler discoverability
│ ├── sitemap_gen.py sitemap.xml generator
│ └── report_gen.py Compiles findings into client-facing seo-report.md
│
├── stock_checker/
│ └── lens_worker.py Playwright Google Lens automation
│
├── ui/
│ ├── pipeline_row_widget.py One row in the pipeline table
│ ├── discovery_panel.py Left panel: search inputs + list
│ ├── swiper_panel.py Right panel: browser + evaluate buttons
│ ├── settings_dialog.py Settings modal
│ ├── scratch_popup.py Build from Scratch dialog
│ ├── cold_call_popup.py Contact results popup
│ ├── pipeline_panel.py Scrollable container for all pipeline rows
│ ├── seo_window.py Multi-tab SEO suite (Audit, Keywords, AI Enhancement, etc.)
│ ├── note_popup.py Per-lead note editor
│ ├── manual_add_dialog.py Add existing site to pipeline
│ └── toast.py Auto-dismiss notification overlay
│
├── Native/ Build and packaging scripts
│ ├── build.ps1 Main build orchestrator
│ ├── installer.iss Inno Setup installer script
│ ├── stage-bundle.ps1 Downloads/packs dependencies
│ ├── post-install.ps1 Runs after Inno Setup (installs Node packages)
│ ├── bundle/ Pre-staged installers (Node MSI, WebCopy, CLIs)
│ ├── frozen/ PyInstaller output directory
│ └── output/ Final HippopotamooseSetup.exe
│
├── tools/ PowerShell scripts (deployment, audit, build)
│ ├── deploy-demo.ps1
│ ├── deploy-docs.ps1
│ ├── deploy-viewer.ps1
│ ├── list-site-structure.ps1
│ ├── list-client-docs.ps1
│ ├── install.ps1
│ ├── build-installer.ps1
│ └── markdown-files/ Legacy .md files awaiting migration to encrypted-docs
│
└── data/ Runtime data (created on first run)
├── pipeline.json
├── queue.json
├── rejected.json
├── saved_searches.json
├── temp/
└── encrypted-docs/ Staged .enc files + docs-index.json (LOCAL ONLY — never deployed)
Runtime Data Directories
downloaded_sites/
├── smithplumbing/ Raw website copy (HTML, images, CSS, JS)
│ └── index.html
└── acmeroof/
edited_sites/
├── smithplumbing/ AI-rebuilt static site
│ ├── index.html
│ ├── css/
│ ├── js/
│ ├── images/
│ ├── _worker.js Contact-form relay (Pages advanced mode)
│ └── DESIGN_NOTES.md AI design decision log
└── acmeroof/
example_sites/
├── plumber/
│ └── bestplumber/ Reference site saved via ★ EXAMPLE
└── roofer/
Site Backups/
└── smithplumbing/
├── Edition 1/ Snapshot after first Form revision
└── Edition 2/
Build System (Native/)
| File | Description |
build.ps1 | Orchestrates the full build. Parameters: -SkipBundle (skip downloading dependencies), -SkipFreeze (skip PyInstaller), -Clean (delete output before building). Run with .\build.ps1 from the Native/ directory. |
installer.iss | Inno Setup 6 script. Defines the installer UI, installs the frozen app to {autopf}\Hippopotamoose, bundles all runtime dependencies, and runs post-install.ps1. |
stage-bundle.ps1 | Downloads Node.js LTS MSI, Cyotek WebCopy EXE, Claude Code CLI tgz, Wrangler tgz via npm pack, and installs Playwright Chromium to bundle/ms-playwright/. Only needs to run once; outputs are checked into bundle/. |
post-install.ps1 | Runs after the Inno Setup installer completes. Installs Claude Code CLI and Wrangler from bundled tgz files via npm, ensuring they work offline during install. |
PowerShell Tools (tools/)
| Script | Description |
deploy-demo.ps1 | Deploys a site folder to Cloudflare Pages. Parameters: -SiteName <slug>. Reads credentials from environment variables. Creates the Pages project if missing, runs wrangler, creates CNAME DNS record. |
deploy-docs.ps1 | Deploys encrypted .enc files to the shared client-docs Cloudflare Pages project. Parameters: -StagingDir <path>. Copies only .enc files — never docs-index.json. |
deploy-viewer.ps1 | Legacy viewer deployer (Canvas/Markdown). Kept for backward compatibility. New deployments use deploy-docs.ps1 and the encrypted fragment URL system. |
list-site-structure.ps1 | Audit tool. Lists all Cloudflare Pages projects, custom domains, content file URLs, and non-Pages DNS records. Useful for inventory checks. |
list-client-docs.ps1 | Lists all published client documents from data/encrypted-docs/docs-index.json with their full shareable fragment URLs. Safe to run — reads local files only, no API calls. |
install.ps1 | One-time setup script. Installs prerequisites (Node.js packages, Playwright Chromium) if not already present. |
build-installer.ps1 | Builds the distributable Windows installer by invoking PyInstaller then Inno Setup. |