# Real Bars vs Fake Bars Trend Analyzer A Python web app wrapped by a native macOS shell. ## Standardized Layout - `web/src/`: web backend + Streamlit app source - `mac/src/`: Xcode macOS shell app (`WKWebView` host) - `scripts/`: build and packaging scripts - `docs/`: architecture and supporting docs - `skills/`: reusable project skills ## Web Source - `web/src/app.py`: Streamlit entrypoint and UI orchestration - `web/src/web_core/`: strategy/data/chart/export modules - `web/src/requirements.txt`: Python dependencies - `web/src/ONBOARDING.md`: in-app onboarding guide content - `web/src/PRD.md`: web product rules and behavior spec ## macOS Shell - Project location: `mac/src/` (`*.xcodeproj` auto-discovered by scripts) - Uses `WKWebView` and launches embedded backend executable from app resources. - No external browser required. See `mac/src/README.md` for shell details. ## Setup ### Quick start ```bash ./run.sh ``` ### Setup only ```bash ./run.sh --setup-only ``` ### Tests ```bash make test ``` ## Build Self-Contained macOS App ```bash ./scripts/build_selfcontained_mac_app.sh ``` Output: `dist-mac//.app` Package as DMG: ```bash APP_BUNDLE_PATH="dist-mac//.app" ./scripts/create_installer_dmg.sh ``` Output: `build/dmg/-.dmg` ## Optional Standalone Streamlit App ```bash ./scripts/build_standalone_app.sh ``` Output: `dist-standalone//dist/.app` ## Notes - Analysis-only app; no trade execution. - Yahoo Finance interval availability depends on symbol/lookback. - For broad distribution, use code signing + notarization.