Skip to content

[CRITICAL] Interactive problem selection before download #57

@AVPthegreat

Description

@AVPthegreat

Feature Request: After scraping completes, display all discovered problems in a filterable/selectable UI. Allow users to cherry-pick which problems to include in the final ZIP download instead of auto-downloading everything.\n\nUser Story:\nAs a user, after scraping 50 hard problems from Codeforces, I want to:\n1. Preview the list of problems with metadata (title, difficulty, tags, acceptance rate)\n2. Select/deselect individual problems or use bulk filters\n3. Generate a custom ZIP with only my selected problems\n\nCurrent Behavior:\n- Scraping completes → ZIP auto-generated with ALL problems → no choice\n\nDesired Behavior:\n- Scraping completes → Problem Curation Page displays:\n - Table/grid of all scraped problems\n - Checkboxes for selection (select all / deselect all)\n - Filters: difficulty, tags, platform, acceptance rate\n - Search by title/ID\n - Preview pane showing problem statement snippet\n- "Generate ZIP with selected (X problems)" button\n- Downloads filtered ZIP with only checked problems\n\nAcceptance Criteria:\n- ✅ New route: GET /jobs/{id}/problems → JSON list of scraped problems with metadata\n- ✅ Curation UI page with selectable problem table\n- ✅ Client-side filtering and search (or server-side if list is large)\n- ✅ POST /jobs/{id}/download with selected problem IDs in request body\n- ✅ Backend generates ZIP with only requested problems\n- ✅ UI shows count: "X of Y problems selected"\n- ✅ Keyboard shortcuts: Ctrl+A (select all), Escape (deselect)\n\nPriority: P0 - Highly requested feature; core to user workflow

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Critical priorityenhancementNew feature or requestfrontendUI templates and JSuxUser experience and interactions

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions