Files
ruoyi-vue-pro/yudao-module-education/CONTEXT.md

4.0 KiB

Education

The Education context owns the language for educational content, practice, assessment, and student learning state.

Language

Question Content: The complete versioned educational prompt presented for answering, including its stem and any answer choices required by its question type. Avoid: Payload, raw question

Option-backed Question: A question whose answer must be selected from a finite, student-visible set of labeled options. The supported family is choice, multi, multi_choice, judge, and image. Avoid: Objective question when referring only to storage shape

Optionless Question: A question answered without selecting from a finite option list. The recognized family includes fill, text, terms, short_answer, composition, discuss, translation, case_analysis, brief_analysis, calculation, analysis_design, combination, and solution. Avoid: Subjective question when the distinction being made is only whether options are present

Composite Question: A container question, such as reading, whose answerable units are sub-questions rather than top-level options. It is not a valid standalone practice question until the sub-question model is supported by the target contract. Avoid: Reading question when other composite forms may use the same model

Safe Question: A student-visible projection of Question Content that contains only display fields and never contains an answer, explanation, analysis, scoring rule, correctness flag, or administrative metadata. Avoid: Sanitized DO, frontend question

Question Option: One distinct choice in an Option-backed Question, identified by a non-blank label and containing non-blank display content. Labels are unique within the question. Avoid: Answer, choice answer

Question Snapshot: The immutable, student-visible Question Content captured when a practice session is created so that later content edits do not change that session. It excludes answers and explanations; protected scoring data is not part of this projection even when stored beside it. Avoid: Question cache

Protected Answer Key: Server-only correctness and explanation data captured for stable scoring of a practice session. It is never included in a Safe Question, Question Snapshot JSON, or pre-submit response. Avoid: Question Snapshot, frontend answer

Unavailable Question Content: Question Content that cannot safely be displayed or restored because its type, required options, option structure, publication state, or snapshot encoding is invalid or unsupported. Avoid: Empty question, best-effort question

Tenant Locator Claim: An unauthenticated pre-login value used to request tenant selection: either a browser-context hostname claim or an explicit Public Tenant Handle. It is not proof of caller identity or tenant authorization. Avoid: Trusted identity, authenticated hostname, tenant ID

Browser-context Evidence: A hostname claim derived from Origin, falling back to Referer, and used to keep browser login-routing inputs consistent. Any HTTP client can forge it, so it is not an authentication boundary. Avoid: Trusted browser identity, verified origin

Public Tenant Handle: The exact, published pre-login handle used by a headless client to request one tenant. In the current target it is the System tenant's unique name under a constrained, case-sensitive, operationally immutable contract; it is not the source system's distinct Tenant Code. Avoid: Tenant Code, display-name search, tenantName query

Student Principal: An authenticated Member identity acting as a student. An administrator or generic authenticated account is not a Student Principal. Avoid: User, account, logged-in principal

Public Tenant Resolution: The unauthenticated pre-login mapping of a Tenant Locator Claim to minimal login-routing fields. A successful result discloses that an available tenant exists; failed unknown, disabled, and expired tenants remain indistinguishable. Avoid: Tenant authentication, tenant administration lookup, non-enumerating discovery