═══════════════════════════════════════════════════════════════ SUPPORTHUB - QUICK RUN STEPS ═══════════════════════════════════════════════════════════════ 📁 STEP 1: Navigate to project ────────────────────────────────────────────────────────────── cd C:\Users\Pol\Dropbox\www\support.smart-modules.com 🔧 STEP 2: Activate virtual environment ────────────────────────────────────────────────────────────── venv\Scripts\activate ✓ Verify: You should see (venv) in prompt 🚀 STEP 3: Start Flask ────────────────────────────────────────────────────────────── flask run ✓ Wait for: "Running on http://127.0.0.1:5000" 🌐 STEP 4: Open browser ────────────────────────────────────────────────────────────── http://localhost:5000 ═══════════════════════════════════════════════════════════════ QUICK VERIFICATION ═══════════════════════════════════════════════════════════════ □ Login page appears □ Can login with admin credentials □ Inbox page loads (/inbox) □ Star column appears (first column) □ Sort dropdown appears (top-right) □ Click star - toggles without reload □ Change sort - page reloads with new order ═══════════════════════════════════════════════════════════════ COMMON ERRORS ═══════════════════════════════════════════════════════════════ ERROR: "python: command not found" FIX: venv\Scripts\activate (make sure (venv) shows in prompt) ERROR: "Port 5000 already in use" FIX: taskkill /F /IM python.exe OR: flask run --port 5001 ERROR: "No module named 'supporthub'" FIX: set FLASK_APP=supporthub.app.main:create_app() flask run ERROR: "No such column: is_starred" FIX: Run migration in QUICK_RUN_STEPS.txt (see below) ERROR: Star toggle doesn't work FIX: Open F12 → Console → Check for JavaScript errors View Source → Search "csrf-token" (should exist) ═══════════════════════════════════════════════════════════════ DATABASE MIGRATION (if needed) ═══════════════════════════════════════════════════════════════ python -c "import sqlite3; conn=sqlite3.connect('supporthub_local.db'); cursor=conn.cursor(); cursor.execute('ALTER TABLE tickets ADD COLUMN is_starred BOOLEAN DEFAULT 0 NOT NULL'); cursor.execute('CREATE INDEX IF NOT EXISTS idx_tickets_starred ON tickets(is_starred)'); cursor.execute('CREATE INDEX IF NOT EXISTS idx_tickets_read ON tickets(is_read)'); conn.commit(); conn.close(); print('Migration complete')" ═══════════════════════════════════════════════════════════════ STOP APPLICATION ═══════════════════════════════════════════════════════════════ In terminal where Flask is running: CTRL+C ═══════════════════════════════════════════════════════════════ FULL TROUBLESHOOTING ═══════════════════════════════════════════════════════════════ See: RUN_APP_GUIDE.md ═══════════════════════════════════════════════════════════════