Skip to content

feat(drill): Drill submission flow using stub runner; update DrillItem and redirect to next due #27

@ArchILLtect

Description

@ArchILLtect

Problem / context

DrillService and ChallengeRunService exist, but there is no user-facing Drill flow to submit code and advance the due queue.

Proposed solution

  • Add DrillController with endpoints:
    • GET /drill — show queue summary (top N) with CTA
    • GET /drill/next — resolve next due and redirect to /drill/{id}, or show friendly empty state
    • GET /drill/{id} — solve page with prompt, language select (java), and code textarea
    • POST /drill/{id}/submit — run stub, map to Outcome, DrillService.recordOutcome, flash message, redirect to /drill/next
  • Views (JSP): drill/queue.jsp and drill/solve.jsp
  • Show flash outcome after submit; add brief tip explaining the stub runner behavior.

In scope / Out of scope

In scope

  • Controller, JSPs, wiring to ChallengeRunService and DrillService, flash messages, empty-queue UX
    Out of scope
  • Real code execution or sandboxing, advanced editor features (tracked separately)

Acceptance criteria

  • /drill shows a due summary with CTA to continue
  • /drill/next redirects to a due challenge or shows a friendly message if none
  • /drill/{id} renders solve JSP with prompt and form
  • POST /drill/{id}/submit persists Submission, updates DrillItem, redirects to next due, shows flash outcome

Area

area:service

Dependencies / related issues

Uses existing DrillService

Checklist

  • I’ve checked existing issues for duplicates.
  • I can help implement this and open a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:serviceBusiness logic and orchestration (e.g., DrillService, ChallengeRunService).area:webControllers, JSP/JSTL, view models, and UI wiring.enhancementNew feature or requestfeature:drill-modeDrill queue, scheduling (nextDueAt), streak/timesSeen, and related UI.priority:P1-highHigh importance; schedule next.project:mvpUse for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.status:triageNewly filed or uncategorized. Needs initial review, labeling, and priority assignment.

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions