# Quick Start Guide ## Project Setup (5 minutes) ### 1. Open in VS Code ```bash # Option A: Open the workspace file directly code webdrop_bridge.code-workspace # Option B: Open the folder code . ``` ### 2. Install Dependencies ```bash # Create virtual environment python -m venv venv # Activate virtual environment source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # Install development dependencies pip install -r requirements-dev.txt ``` ### 3. Verify Installation ```bash # Run project structure tests pytest tests/unit/test_project_structure.py -v # Expected output: # test_project_structure.py::test_project_structure PASSED # test_project_structure.py::test_essential_files PASSED # test_project_structure.py::test_python_package_structure PASSED ``` ## Project Structure Overview ``` webdrop-bridge/ │ ├── src/webdrop_bridge/ ← Main application code │ ├── core/ ← Business logic (validator, drag interceptor) │ ├── ui/ ← UI components (main window, widgets) │ └── utils/ ← Utilities (logging, helpers) │ ├── tests/ ← Test suite │ ├── unit/ ← Unit tests │ ├── integration/ ← Integration tests │ └── fixtures/ ← Test data │ ├── build/ ← Build automation │ ├── windows/ ← Windows-specific │ ├── macos/ ← macOS-specific │ └── scripts/ ← Build scripts │ ├── docs/ ← Documentation │ └── ARCHITECTURE.md ← Architecture guide │ ├── webapp/ ← Embedded web application │ └── index.html ← Test drag-drop page │ ├── DEVELOPMENT_PLAN.md ← Detailed roadmap ├── README.md ← User documentation ├── CONTRIBUTING.md ← Contributing guidelines └── Makefile ← Convenience commands ``` ## Current Status **Phase 4 is COMPLETE** - All core features and professional features implemented! ### What's Already Implemented **Phase 1-3 (Core Features):** - ✅ Configuration system with JSON file support & profiles - ✅ Path validator with whitelist-based security - ✅ Drag interceptor for web-to-file conversion - ✅ Main window with toolbar and WebEngine integration - ✅ Windows MSIX and macOS DMG build automation - ✅ 99+ unit tests with 85%+ coverage **Phase 4.1 (Auto-Update System - Feb 2026):** - ✅ Update manager with Forgejo API integration - ✅ Update UI dialogs and status bar integration - ✅ Automatic background update checking - ✅ 76 tests, 79% coverage **Phase 4.2 (Enhanced Logging - Feb 2026):** - ✅ Structured JSON logging with rotation - ✅ Performance metrics tracking - ✅ Log archival with 30-day retention - ✅ 20 tests, 91% coverage **Phase 4.3 (Advanced Configuration - Feb 2026):** - ✅ Configuration profiles (work, personal, etc.) - ✅ Settings dialog with 5 organized tabs - ✅ Configuration validation & import/export - ✅ 43 tests, 87% coverage ### Next Steps (Phase 5) See [DEVELOPMENT_PLAN.md Phase 5](DEVELOPMENT_PLAN.md#phase-5-post-release-months-2-3) for: - Release candidate testing - Cross-platform validation - Performance optimization - Final packaging and deployment ## Common Tasks ### Running Tests ```bash # All tests pytest tests -v # With coverage pytest --cov=src/webdrop_bridge # Specific test type pytest tests/unit/ -v # Unit tests pytest tests/integration/ -v # Integration tests ``` ### Running Integration Tests ```bash pytest tests/integration/ -v ``` ### Code Quality ```bash # Format code tox -e format # Check formatting tox -e lint # Type checking tox -e type # All checks at once tox ``` ### Building ```bash # Windows MSI python build/scripts/build_windows.py # macOS DMG bash build/scripts/build_macos.sh ``` ### Documentation ```bash # Build Sphinx docs tox -e docs # View docs open docs/_build/html/index.html # macOS start docs\_build\html\index.html # Windows ``` ## Using Makefile (Convenience) ```bash # List all commands make help # Install dependencies make install-dev # Run tests make test # Code quality make lint make format make type # Build make build-windows make build-macos # Clean make clean ``` ## VS Code Tips ### Debugging 1. **Set breakpoint**: Click line number 2. **Start debugging**: F5 (or Run → Run Without Debugging) 3. **Step over**: F10 4. **Step into**: F11 Configurations available in `.vscode/launch.json`: - Python: Current File - WebDrop Bridge (main application) ### Testing in VS Code 1. **Open test file**: `tests/unit/test_project_structure.py` 2. **Run test**: Click "Run Test" above test function 3. **Debug test**: Click "Debug Test" ### Recommended Extensions - Python (ms-python.python) - Pylance (ms-python.vscode-pylance) - Black Formatter (ms-python.black-formatter) - Ruff (charliermarsh.ruff) ## Configuration Create `.env` file from template: ```bash cp .env.example .env ``` Edit as needed: - `WEBAPP_URL` - Web app location - `ALLOWED_ROOTS` - Whitelisted directories - `LOG_LEVEL` - DEBUG, INFO, WARNING, ERROR ## Next Steps **Phase 4 is complete!** Here's what you can do: ### To Run the Application ```bash # Run the full application (requires config) python -m webdrop_bridge.main ``` ### To Run Tests ```bash # Run all tests pytest tests -v # Run with coverage pytest --cov=src/webdrop_bridge tests # Run specific test file pytest tests/unit/test_config.py -v ``` ### To Explore Phase 4 Features 1. **Auto-Update System** → See `src/webdrop_bridge/core/updater.py` 2. **Enhanced Logging** → See `src/webdrop_bridge/utils/logging.py` 3. **Configuration Profiles** → See `src/webdrop_bridge/core/config_manager.py` 4. **Settings Dialog** → See `src/webdrop_bridge/ui/settings_dialog.py` ### To Prepare for Phase 5 1. **Read** [DEVELOPMENT_PLAN.md Phase 5](DEVELOPMENT_PLAN.md#phase-5-post-release-months-2-3) 2. **Review** [CHANGELOG.md](CHANGELOG.md) for v1.0.0 Phase 4 additions 3. **Test on multiple platforms** - Windows, macOS 4. **Report issues** via GitHub/Forgejo issues ### To Contribute 1. **Review** [CONTRIBUTING.md](CONTRIBUTING.md) 2. **Choose a Phase 5 task** or bug fix 3. **Follow TDD** - write tests first 4. **Run quality checks** → `tox` ## Getting Help - 📖 **Documentation**: See README.md, DEVELOPMENT_PLAN.md, docs/ - 🐛 **Issues**: GitHub Issues tracker - 💬 **Questions**: GitHub Discussions - 🤝 **Contributing**: See CONTRIBUTING.md --- **Phase 4 Complete!** → Next: [DEVELOPMENT_PLAN.md Phase 5](DEVELOPMENT_PLAN.md#phase-5-post-release-months-2-3) Release Candidates