{"id":35668544,"url":"https://github.com/databricks-solutions/project-0xfffff","last_synced_at":"2026-02-02T17:24:22.479Z","repository":{"id":323772942,"uuid":"1094628679","full_name":"databricks-solutions/project-0xfffff","owner":"databricks-solutions","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-12T04:41:51.000Z","size":3068,"stargazers_count":4,"open_issues_count":2,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T10:34:36.899Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/databricks-solutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS.txt","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-12T00:54:56.000Z","updated_at":"2026-01-12T04:41:48.000Z","dependencies_parsed_at":"2025-12-04T18:03:42.305Z","dependency_job_id":null,"html_url":"https://github.com/databricks-solutions/project-0xfffff","commit_stats":null,"previous_names":["databricks-solutions/project-0xfffff"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/databricks-solutions/project-0xfffff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fproject-0xfffff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fproject-0xfffff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fproject-0xfffff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fproject-0xfffff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/databricks-solutions","download_url":"https://codeload.github.com/databricks-solutions/project-0xfffff/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fproject-0xfffff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28644690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-05T18:06:00.247Z","updated_at":"2026-02-02T17:24:22.472Z","avatar_url":"https://github.com/databricks-solutions.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workshop Annotation Platform\n\nA collaborative platform for annotating and evaluating LLM traces with MLflow integration, discovery phases, and inter-rater reliability analysis.\n\n## 📚 Documentation\n\nFor detailed documentation, see the [/doc](doc/) folder:\n\n- **[Facilitator Guide](doc/FACILITATOR_GUIDE.md)** - A comprehensive guide for facilitators to deploy, configure, and run the workshop.\n- **[Release Notes](doc/RELEASE_NOTES.md)** - Latest release information and quick start\n- **[Build Guide](doc/FACILITATOR_GUIDE.md)** - Client build instructions\n- **[Authentication Fix](doc/AUTHENTICATION_FIX.md)** - Authentication improvements\n- **[Annotation Editing](doc/ANNOTATION_EDITING_FIX.md)** - Annotation editing features\n- **[Database Migrations](doc/DB_MIGRATIONS.md)** - SQLite schema migrations (Alembic)\n- **[All Documentation](doc/README.md)** - Complete documentation index\n\n## 🚀 Quick Start (Recommended)\n\nFor production use, we recommend using the **latest stable release**:\n\n\u003e 💡 **Tip:** View all releases at [Releases Page](https://github.com/databricks-solutions/project-0xfffff/releases)\n\n## Installation\nDownload project-with-build.zip which includes pre-built frontend assets.\n\n## 📋 Prerequisites\n\n- **Python 3.11+**\n- **Node.js 22.16+**\n- **Databricks workspace** with:\n  - MLflow experiments\n  - Databricks Apps\n- **Strongly recommended: just**\n   - [Installation](https://just.systems/man/en/packages.html)\n   - It's possible to use without this, but the majority of useful scripts use just.\n\n\n\n## 🚀 Local Development\n\n### Frontend Setup\n\n1. **Navigate to client directory:**\n   ```bash\n   cd client\n   ```\n\n2. **Install Node dependencies:**\n   ```bash\n   npm install\n   ```\n\n3. **Start the development server:**\n   ```bash\n   npm run dev\n   ```\n\n   The UI will be available at `http://localhost:3000`\n\n4. **Build for production:**\n   ```bash\n   npm run build\n   ```\n\n### Backend Setup\n\n#### Option 1: Using uv (Recommended ⚡)\n1. **Create a virtual environment and install dependencies:**\n   ```bash\n   uv venv\n   source .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\n   uv pip install -e .\n   ```\n\n\n2. **Run the FastAPI development server in local:**\n   ```bash\n   uv run uvicorn server.app:app --reload --port 8000\n   ```\n\n   The API will be available at `http://localhost:8000`\n   API documentation at `http://localhost:8000/docs`\n\n#### Option 2: Using pip (Traditional)\n\n1. **Create and activate a virtual environment:**\n   ```bash\n   python3 -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   ```\n\n2. **Install Python dependencies:**\n   ```bash\n   pip install -e .\n   # Or for editable install with dev dependencies:\n   pip install -e \".[dev]\"\n   ```\n\n3. **Run the FastAPI development server:**\n   ```bash\n   uvicorn server.app:app --reload --port 8000\n   ```\n\n   The API will be available at `http://localhost:8000`\n   API documentation at `http://localhost:8000/docs`\n\n\n## 🧪 End-to-End (E2E) Tests\n\nE2E tests are run with **Playwright** against a real local stack (FastAPI + Vite) using an **isolated SQLite database**.\n\n```bash\n# Run E2E tests headless (default)\njust e2e\n\n# Run E2E tests headed (useful for debugging)\njust e2e headed\n\n# Run E2E tests in Playwright UI mode\njust e2e ui\n\n# Debugging helpers\njust e2e-servers   # start API+UI against .e2e-workshop.db\njust e2e-test      # run tests (assumes servers are already running)\n```\n\n## 🚢 Deploying to Databricks Apps Manually\n\n### 0. Prerequisites\n\nEnsure you have the [Databricks CLI](https://docs.databricks.com/aws/en/dev-tools/cli/tutorial) installed and configured:\n\n```bash\ndatabricks --version\ndatabricks current-user me  # Verify authentication\n```\n\n### 1. Create a Databricks App\n\n```bash\ndatabricks apps create human-eval-workshop\n```\n\n### 2. Build the Frontend\n\n```bash\ncd client \u0026\u0026 npm install \u0026\u0026 npm run build \u0026\u0026 cd ..\n```\n\nThis creates an optimized production build in `client/build/`\n\n### 3. Sync Files to Workspace\n\n```bash\nDATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName)\ndatabricks sync . \"/Workspace/Users/$DATABRICKS_USERNAME/human-eval-workshop\"\n```\n\nRefer to the [Databricks Apps deploy documentation](https://docs.databricks.com/aws/en/dev-tools/databricks-apps/deploy?language=Databricks+CLI#deploy-the-app) for more info.\n\n### 4. Deploy the App\n\n```bash\ndatabricks apps deploy human-eval-workshop \\\n  --source-code-path /Workspace/Users/$DATABRICKS_USERNAME/human-eval-workshop\n```\n\n### 5. Access Your App\n\nOnce deployed, the Databricks CLI will provide a URL to access your application.\n\n\n## ⚙️ Configuration\n\n### Authentication Configuration (`config/auth.yaml`)\n\nConfigure facilitator accounts and security settings:\n\n```yaml\nfacilitators:\n  - email: \"facilitator@email.com\"\n    password: \"xxxxxxxxxx\"\n    name: \"Workshop Facilitator\"\n    description: \"Primary workshop facilitator\"\n\nsecurity:\n  default_user_password: \"changeme123\"\n  password_requirements:\n    min_length: 8\n    require_uppercase: true\n    require_lowercase: true\n    require_numbers: true\n  session:\n    token_expiry_hours: 24\n    refresh_token_expiry_days: 7\n```\n\n## 📄 License\n\nSee LICENSE.MD file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabricks-solutions%2Fproject-0xfffff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatabricks-solutions%2Fproject-0xfffff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabricks-solutions%2Fproject-0xfffff/lists"}