파닉스 강의실

CLASS-PHONICS-ONLINE · /my-class/phonics-online

실제 화면 열기 ↗
기능
4
API 호출
0
가드레일
2
id 가 테스트 이름
구현 단계
5 / 5
완료수강 · 커리큘럼wvctesol-api :8080로그인 필요클라이언트 컴포넌트199

개발 스펙

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

  • 파닉스 과정 영상을 본다(5 유닛 · 5 레슨).

비즈니스 규칙 (2)

  • 접근 플래그는 pay_phonics_yn 이다.
  • 이 과정에는 시험이 없다.
    근거: _lib/_exam_phonics.php 의 $UnitQuiz 가 빈 배열이다.

API (1)

메서드경로권한모듈 · 설명
GET/api/learning/courses/PHONICS/curriculum수강생
파닉스 커리큘럼.
domains:learning:learning-web

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

id반드시 만족해야 하는 것등급
phonics-requires-own-flag
TESOL 수강권만으로 파닉스 강의실이 열리면 안 된다.
critical
phonics-no-quiz
파닉스 화면에 시험 응시 진입점이 있으면 안 된다.
normal

구현 계획 (5/5)

  1. CurriculumUnit · ScoreReport · StudentInfo · 포트 2개learning-domain
  2. LearningUseCase · CourseCataloglearning-app
  3. Curriculum · Learner 어댑터learning-infrastructure
  4. /api/learning/courses/PHONICS/curriculum 구현learning-web
  5. Next.js 를 BFF 로 전환 — Prisma 직접 접근 제거wvctesol

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

객체모듈책임 · 지켜야 할 것
ScoreReport
record
learning-domain
성적표 계산. 원본 resultOfCourse.php:99~143.
  • 평균의 분모는 합격 유닛 수다. 전체 유닛 수로 나누면 안 된다.
  • 통과한 유닛에서 가장 나중 차수부터 거슬러 올라가 70점 이상인 첫 점수를 쓴다(C→B→A).
  • 합격 유닛이 0 이면 0 을 돌려준다 — 0 으로 나누지 않는다.
  • BigDecimal 로 소수점 2자리를 만든다. double 은 표시가 흔들린다.
CourseCatalog
class
learning-app
과정별 상수(유닛 수 · 차수 순서 · 시험 유무).
  • 원본이 _Env.php 와 _exam*.php 에 흩어 두었던 값을 한곳에 모은다.
  • PHONICS·TEACHING 은 hasExam=false — 이 과정에는 시험이 없다.
LearningUseCase
service
learning-app
커리큘럼 · 성적표 · 학생정보 조회.
  • 모든 조회가 수강권 확인을 먼저 한다. 과정마다 보는 플래그가 다르다.
  • memberId 는 토큰에서만 온다 — 파라미터로 받으면 남의 성적표를 볼 수 있다.
CurriculumRepositoryAdapter
class
learning-infrastructure
unit · lesson 조회.
  • unit · lesson 이 정본이다. 화면에 배열로 두면 DB 와 어긋난다(UNIT2 레슨 누락 버그의 원인).
  • left join 이라 레슨이 없는 유닛도 목록에 남는다.
LearnerRepositoryAdapter
class
learning-infrastructure
수강 자격 · 성적 · 학생정보 조회.
  • 과정별로 컬럼을 통째로 갈아 끼운다 — TESOL 은 pass_yn/certi_yn/entrance, TEC 은 *_tec_yn.
  • 스캔본 노출은 조건이 하나 더 붙는다: 결제+준비완료 **+ 사이버승인 + 합격**.
  • 합격일은 pass_date 앞 8자리를 YYYY-MM-DD 로 자른다.

테스트 방법 (2)

가드레일종류확인 방법
phonics-requires-own-flagunitpay_phonics_yn=N 계정으로 파닉스 강의실 접근 → 차단
phonics-no-quize2e파닉스 화면에 응시 링크가 0개

스냅샷

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

CLASS-PHONICS-ONLINE 스냅샷

기능 목록 (4)

상태
  • ·화면 상태activeVideo
미디어
  • ·Vimeo 영상
인증
  • ·로그인 필요proxy 가 /login 으로 보냄
하드코딩
  • ·하드코딩 데이터tables

화면 이동

← 이 화면으로 오는 곳

없음

이 화면에서 가는 곳 →

연결

API

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

소스
src/app/my-class/phonics-online/page.tsx