TEC 시험 응시

CLASS-TEC-UNIT-QUIZ-DETAIL · /my-class/tec-unit-quiz/[unit]/[kind]

기능
8
API 호출
0
가드레일
2
id 가 테스트 이름
구현 단계
5 / 5
완료시험 · 평가wvctesol-api :8080로그인 필요서버 컴포넌트동적 라우트30

개발 스펙

이 화면에서 할 수 있어야 하는 것 (1)

  • TESOL 응시 화면과 같되, TEC 과정 규칙을 따른다.

비즈니스 규칙 (3)

  • TEC 은 14 유닛, 재응시는 A · B 두 차수뿐이다.
    근거: _Env.php:264~266
  • 복수정답 문항이 있다(현재 2-B Q14 한 문항).
  • 오픈 플래그는 TEC 전용 컬럼을 본다(prepare_tec_yn · pay_tec_yn · cyber_tec_yn · lecture_tec_start/end).

API (1)

메서드경로권한모듈 · 설명
GET/api/assessment/exams/TEC/{unit}/{kind}수강생
TESOL 과 같은 엔드포인트를 course 로 구분한다.
domains:assessment:assessment-web

가드레일 (2) — id 가 곧 테스트 이름이다

id반드시 만족해야 하는 것등급
quiz-tec-only-two-kinds
TEC 에 kind=C 를 요청하면 거부해야 한다.
high
quiz-tec-uses-tec-flags
TEC 응시 자격은 TESOL 플래그가 아니라 TEC 전용 컬럼으로 판정해야 한다.
critical

구현 계획 (5/5)

  1. ExamKind.of(TEC) — A·B 만 허용assessment-domain
  2. TESOL 과 같은 유스케이스를 course 로 갈라 쓴다assessment-app
  3. 같은 어댑터 재사용assessment-infrastructure
  4. 같은 컨트롤러 — course=TECassessment-web
  5. Next.js 를 BFF 로 전환 — Prisma 직접 접근 제거wvctesol

서버 사이드 구현 계획 — 자바 객체별 요구사항 (2/2)

객체모듈책임 · 지켜야 할 것
ExamKind.of(CourseCode)
enum
assessment-domain
과정별 허용 차수.
  • TEC 은 A·B 만. from(course, raw) 이 TEC 의 C 요청을 400 으로 막는다.
  • TESOL·TEC 이 같은 엔드포인트를 쓰므로 차수 검증을 도메인에 둬야 한다.
EntitlementReaderAdapter (TEC 분기)
class
assessment-infrastructure
TEC 전용 플래그 판정.
  • prepare_tec_yn · pay_tec_yn · cyber_tec_yn · lecture_tec_start/end 를 본다.
  • TESOL 플래그와 섞이면 TESOL 수강권으로 TEC 시험을 칠 수 있다.

테스트 방법 (2)

가드레일종류확인 방법
quiz-tec-only-two-kindse2eTEC UNIT1 에 kind=C 요청 → 400/404
quiz-tec-uses-tec-flagse2epay_yn=Y · pay_tec_yn=N 계정으로 TEC 응시 요청 → 403 EXAM_NOT_OPEN

스냅샷

로그인 세션으로 촬영한 실제 화면입니다.

CLASS-TEC-UNIT-QUIZ-DETAIL 스냅샷

기능 목록 (8)

입력
  • ·1개
  • ·제출 버튼1개
  • ·입력 필드4개
액션
  • ·서버 액션submitQuiz
상태
  • ·화면 상태started, remaining, warning, answers, validationError
인증
  • ·세션 확인
  • ·로그인 필요proxy 가 /login 으로 보냄
하드코딩
  • ·하드코딩 데이터tabs

화면 이동

← 이 화면으로 오는 곳
이 화면에서 가는 곳 →

연결

API

직접 호출하는 API 가 없습니다

소스
src/app/my-class/tec-unit-quiz/[unit]/[kind]/page.tsx