체크온뮤직 — 프로그램 설계 개요

학원(Academy) 단위로 구성원·수업·일정·출결·메모·Todo·노트·푸시·고객지원을 다루는 웹·모바일 서비스입니다.

클라이언트는 모바일 WebView 셸 두 저장소로 나뉩니다.


1. 시스템 구성 요소

구분디렉터리역할
checkon-webNext.js(App Router), Prisma·MySQL, NextAuth
모바일checkon-appExpo WebView 셸, 푸시·OTA 등

2. 아키텍처

  • 역할: 시스템·학원 관리자·부관리자·선생님·학생 등이 Role·UserAcademy에 따라 기능이 나뉩니다.
  • 배치 연동: 출석 알림 등은 HTTP로 API를 호출하는 스케줄 작업(batch/* 등)과 연동될 수 있습니다.

3. 데이터 흐름

  1. 계정·학원: UserUserAcademy로 학원에 소속되고, 학원별 프로필·승인 상태를 관리합니다.
  2. 수업·일정: Class, 담당(TeacherClass 등), ClassSchedule, 출결·수업 이력 API가 갱신·조회를 담당합니다.
  3. 업무 보조: 학원 단위 Todo·Note, 코드 마스터(CodeGroup·Code), 시스템 콘텐츠·FAQ, 문의(SupportInquiry) 등.
  4. 내부 결제: 학원 운영 관련 내부 Payment는 스키마에 정의되어 있으며, 화면·API는 도메인 설계에 맞게 사용합니다.

스키마 전체는 checkon-web/prisma/schema.prisma를 기준으로 합니다.

3.1 요청·저장 흐름(도식)

3.2 핵심 엔티티 관계(요약)

도식의 Lesson·LessonSchedule은 Prisma의 Class·ClassSchedule과 같습니다.


4. 웹 애플리케이션 레이어 (checkon-web)

4.1 기능 영역(예)

  • 온보딩·학원 선택, 대시보드(통계·노트·할 일 등)
  • 관리자: 학원·반·학생·선생님·출결·결제·알림·설정·콘텐츠·FAQ
  • 선생님: 대시보드, 수업·학생·일정·출결·메모
  • 공통: 코드 조회, 학원 검색, 프로필·비밀번호·탈퇴, 푸시·업로드 토큰, 고객 문의

5. 모바일 앱 레이어 (checkon-app)

5.1 WebView 브릿지(요약)


6. 디렉터리 구조(루트)

PROD_checkon/
├── checkon-web/
├── checkon-app/
└── ReadMe.md

7. 기술 스택 요약

영역기술
Next.js 16, React 19, Prisma, MySQL, NextAuth, Mantine, Recharts 등
Expo, React Native, WebView