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/)
| 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. |
E:\Sites PowerShell Scripts
| 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-viewer.ps1 | Deploys 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.ps1 | Audit tool. Lists all Cloudflare Pages projects, custom domains, content file URLs, and non-Pages DNS records. Useful for inventory checks. |