# Quickstart: Fix UI Styling, WebSocket Port Mismatch, and URL Validation ## Development Setup 1. **Frontend Styling**: - Ensure Tailwind CSS is initialized: `cd frontend && npm install` - Verify `frontend/src/app.css` contains: ```css @tailwind base; @tailwind components; @tailwind utilities; ``` - Import in `frontend/src/routes/+layout.svelte`: ```svelte ``` 2. **WebSocket Configuration**: - Create/Update `.env` in `frontend/`: ```env PUBLIC_WS_URL=ws://localhost:8000 ``` - Use in Svelte components: ```javascript import { PUBLIC_WS_URL } from '$env/static/public'; const wsUrl = PUBLIC_WS_URL || `ws://${window.location.hostname}:8000`; ``` 3. **Backend URL Validation**: - Update `superset_tool/models.py` (or relevant model file): ```python from pydantic import validator class ServiceConnection(BaseModel): base_url: str @validator('base_url') def normalize_url(cls, v): if not v.endswith('/api/v1'): return f"{v.rstrip('/')}/api/v1" return v ``` ## Verification Steps 1. Run backend: `cd backend && uvicorn src.app:app --reload` 2. Run frontend: `cd frontend && npm run dev` 3. Open browser and verify: - UI is styled (Tailwind classes working). - Logs appear in real-time (WebSocket connected). - External service connection accepts base URLs.