-
Notifications
You must be signed in to change notification settings - Fork 343
Description
Feature Proposal
Spec Version 0.2.0
Context
While practicing, build status(spinner and the remaining time) of the practice submission is not visible to students.
Problem
- No visible progress/ETA during practice runs.
- Students wait in silence, often refreshing or re-submitting.
- Current design hides status to protect graded results, but this also blocks practice feedback.
Motivation
- Provide real-time feedback for practice runs (spinner, ETA, results).
- Reduce frustration and redundant requests.
- Keep graded runs fully isolated from practice runs.
Requirements Engineering
Existing (Problematic) Solution / System
User (student) can only see their practice grade after the grading is complete. This leaves user with a page without any feedback for seconds to minutes. Ideally user should see an indicator about the progress of their build job.
Proposed System
"Practice" button on the exercise detail page now toggles the Practice Mode.
While in practice mode, students will be able to see their practice (ungraded) points just like the ui before deadline.
Requirements
- FR: Practice Mode Toggle: The system shall allow students to enable/disable Practice Mode via a toggle on the exercise detail page.
- FR: Distinct UI Styling: The system shall visually indicate Practice Mode through a banner, color scheme, and badges etc. so students clearly know they are practicing.
- FR: Practice Endpoints: The system shall retrieve practice grades using existing endpoints with extra filters or with new created endpoints (TBD) .
- FR: Live Build Status and ETA: The system shall display real-time build status (queued, running, evaluating) with a spinner and remaining time updates using WebSocket or polling fallback.
- FR: Practice Results Display: The system shall show practice results (ungraded points and test details) upon completion, clearly labeled as “Practice” and excluded from gradebook data.
Analysis
Analysis Object Model
What are the involved Analysis Objects?
Dynamic Behavior
Include dynamic models (Activity Diagram, State Chart Diagram, Communication Diagram) here to outline the dynamic nature of the PROBLEM
System Architecture
Subsystem Decomposition
Show the involved subsystems and their interfaces. Make sure to describe the APIs that you add/change in detail. Model the DTOs you intend to (re)use or change!
Other Design Decisions
Potential topics to discuss here include: WebSockets, testing strategies.
UI/UX Design
Recording is just for a brief idea of the feature. UI needs to be improved by a lot.
Improvement ideas on UI
- A bigger indicator should be added for practice mode. (Adding big "practice mode" texts to a couple places or a different color scheme)
- Components/information to be shown in the practice mode should be determined
Screen.Recording.2025-07-29.at.17.29.11.mov
Metadata
Metadata
Assignees
Labels
Type
Projects
Status