-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
area:serviceBusiness logic and orchestration (e.g., DrillService, ChallengeRunService).Business logic and orchestration (e.g., DrillService, ChallengeRunService).area:webControllers, JSP/JSTL, view models, and UI wiring.Controllers, JSP/JSTL, view models, and UI wiring.enhancementNew feature or requestNew feature or requestfeature:drill-modeDrill queue, scheduling (nextDueAt), streak/timesSeen, and related UI.Drill queue, scheduling (nextDueAt), streak/timesSeen, and related UI.priority:P1-highHigh importance; schedule next.High importance; schedule next.project:mvpUse for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.Use 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.Newly filed or uncategorized. Needs initial review, labeling, and priority assignment.
Description
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
Labels
area:serviceBusiness logic and orchestration (e.g., DrillService, ChallengeRunService).Business logic and orchestration (e.g., DrillService, ChallengeRunService).area:webControllers, JSP/JSTL, view models, and UI wiring.Controllers, JSP/JSTL, view models, and UI wiring.enhancementNew feature or requestNew feature or requestfeature:drill-modeDrill queue, scheduling (nextDueAt), streak/timesSeen, and related UI.Drill queue, scheduling (nextDueAt), streak/timesSeen, and related UI.priority:P1-highHigh importance; schedule next.High importance; schedule next.project:mvpUse for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.Use 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.Newly filed or uncategorized. Needs initial review, labeling, and priority assignment.
Projects
Status
Done