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
│   ├── 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
│
├── discovery/
│   ├── discover.py           Google Places API calls + spiral tile gen
│   └── blocklist.py          ~150 franchise keyword fragments
│
├── seo/
│   └── audit.py              HTML parser + SEO rule checks
│
├── 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
│   ├── seo_window.py           SEO audit results window
│   ├── 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
│
└── data/                     Runtime data (created on first run)
    ├── pipeline.json
    ├── queue.json
    ├── rejected.json
    ├── saved_searches.json
    └── temp/

Runtime Data Directories

downloaded_sites/
├── smithplumbing/            Raw website copy (HTML, images, CSS, JS)
│   └── index.html
└── acmeroof/

edited_sites/
├── smithplumbing/            AI-rebuilt React project
│   ├── package.json
│   ├── src/
│   │   ├── App.jsx
│   │   └── components/
│   ├── public/
│   └── 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/)

FileDescription
build.ps1Orchestrates 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.issInno 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.ps1Downloads 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.ps1Runs after the Inno Setup installer completes. Installs Claude Code CLI and Wrangler from bundled tgz files via npm, ensuring they work offline during install.

E:\Sites PowerShell Scripts

ScriptDescription
deploy-demo.ps1Deploys 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-viewer.ps1Deploys a Canvas or Markdown viewer with content files. Parameters: -Type canvas|markdown, -Files <path[]>, -SiteName <slug>. Generates redirect HTML per file. Used to publish DESIGN_NOTES.md during Host Demo.
list-site-structure.ps1Audit tool. Lists all Cloudflare Pages projects, custom domains, content file URLs, and non-Pages DNS records. Useful for inventory checks.