Skip to content

Latest commit

Β 

History

History
348 lines (242 loc) Β· 14.3 KB

File metadata and controls

348 lines (242 loc) Β· 14.3 KB

SSam B Logo

강사 쀑심 μ˜¬μΈμ› ν•™μŠ΅ 운영 관리 μ‹œμŠ€ν…œ

μˆ˜μ—… μš΄μ˜λΆ€ν„° 학생 κ΄€λ¦¬κΉŒμ§€ SSam Bμ—μ„œ ν•œλ²ˆμ— μš΄μ˜ν•˜μ„Έμš”

Ssam B Landing



πŸ“‹ λͺ©μ°¨


❀️ ν”„λ‘œμ νŠΈ κ°œμš”

🍯🐝 Ssam B (μŒ€λΉ„)

"κ°•μ‚¬μ˜ 1μ‹œκ°„μ„ 10λΆ„μœΌλ‘œ" νŒŒνŽΈν™”λœ 도ꡬλ₯Ό ν•˜λ‚˜λ‘œ ν†΅ν•©ν•œ 강사 μ „μš© μ˜¬μΈμ› 운영 μ†”λ£¨μ…˜

SsamBλŠ” μ„ μƒλ‹˜ κ³μ—μ„œ μˆ˜μ—… μ™Έμ˜ λͺ¨λ“  일을 묡묡히 λ„μ™€μ£ΌλŠ” κ°€μž₯ μ„±μ‹€ν•œ μ‘°λ ₯자, κΏ€λ²Œ(Bee) 같은 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

강사가 μˆ˜μ—… μ€€λΉ„, 좜결, 성적 관리, μ†Œν†΅μ— μ†Œλͺ¨ν•˜λŠ” 물리적 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•˜κ³  ꡐ윑 λ³Έμ—°μ˜ κ°€μΉ˜μ— 집쀑할 수 μžˆλ„λ‘ λ•λŠ” 강사 μ „μš© 운영(Admin) μ†”λ£¨μ…˜μž…λ‹ˆλ‹€.

기쑴의 νŒŒνŽΈν™”λœ 도ꡬ(μ—‘μ…€, μΉ΄μΉ΄μ˜€ν†‘, λ…Έμ…˜, ꡬ글 μΊ˜λ¦°λ” λ“±)λ₯Ό ν•˜λ‚˜λ‘œ ν†΅ν•©ν•˜μ—¬ [μˆ˜μ—… 생성 β†’ 좜결 β†’ μ‹œν—˜/성적 β†’ 곡지/μ†Œν†΅] 으둜 μ΄μ–΄μ§€λŠ” κ°•μ‚¬μ˜ 데일리 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ΅œμ ν™”ν•©λ‹ˆλ‹€.

🎯 핡심 νƒ€κ²Ÿ

  • πŸ›  1인 강사: λͺ¨λ“  관리λ₯Ό 혼자 ν•΄μ•Ό ν•˜λŠ” 효율 쀑심 강사
  • 🏫 λŒ€ν˜• 학원 νŒ€: 체계적인 업무 λΆ„λ‹΄κ³Ό 기둝 κ³΅μœ κ°€ ν•„μš”ν•œ νŒ€
  • πŸ“‹ 운영 쑰ꡐ: λΉ λ₯΄κ³  μ •ν™•ν•œ 업무 μˆ˜ν–‰κ³Ό 보고가 ν•„μš”ν•œ 쑰ꡐ

✨ 핡심 κ°€μΉ˜

⚑ Fast πŸ“‚ Integrated πŸ›‘οΈ Reliable
λΉ λ₯Έ μž…λ ₯κ³Ό 확인 λΆ„μ‚°λœ λ°μ΄ν„°μ˜ 톡합 μ •ν™•ν•˜κ³  투λͺ…ν•œ 기둝
1~2회의 클릭으둜
였늘의 λͺ¨λ“  운영 처리
반-학생-ν•™λΆ€λͺ¨ 정보λ₯Ό
ν•˜λ‚˜μ˜ νλ¦„μœΌλ‘œ μ—°κ²°
상담 및 ν΄λ ˆμž„ λŒ€μ‘μ„ μœ„ν•œ
데이터 무결성 확보

πŸ‘₯ μ‚¬μš©μž μ—­ν• 

μ—­ν•  핡심 λͺ©ν‘œ μ£Όμš” κΆŒν•œ 및 κΈ°λŠ₯
운영 효율 κ·ΉλŒ€ν™” 및
ν•™μŠ΅ 데이터 톡합 관리
β€’ 반(Class) 생성 및 전체 μ‹œκ°„ν‘œ 관리
β€’ 좜결/성적 μž…λ ₯ 및 μ΅œμ’… ν™•μ •(Lock)
β€’ 곡지사항 λ°œμ†‘ 및 λ°œμ†‘ 이λ ₯ 확인
β€’ 쑰ꡐ 업무 λ°°μ • 및 문의 λ‹΅λ³€
운영 보쑰 및
λ°°μ •λœ μ—…λ¬΄μ˜ μ •ν™•ν•œ μˆ˜ν–‰
β€’ λΆ€μ—¬λœ 반의 좜결 및 성적 λŒ€ν–‰ μž…λ ₯
β€’ λ°°μ •λœ 업무(Tasks) μƒνƒœ 관리 (μ§„ν–‰/μ™„λ£Œ)
β€’ ν—ˆμš©λœ λ²”μœ„ λ‚΄ 학생/ν•™λΆ€λͺ¨ 문의 λ‹΅λ³€
ν•™μŠ΅ ν˜„ν™© νŒŒμ•… 및
μ›ν™œν•œ μ§ˆμ˜μ‘λ‹΅
β€’ μˆ˜μ—… μ‹œκ°„ν‘œ 및 μž¬μ‹œν—˜(클리닉) 일정 확인
β€’ 좜결 ν˜„ν™© 및 성적 리포트 쑰회
β€’ 강사/쑰ꡐ λŒ€μƒ 1:1 ν•™μŠ΅ 문의 μž‘μ„±
μžλ…€ 관리 μƒνƒœ 확인 및
ν•„μˆ˜ 곡지 μˆ˜μ‹ 
β€’ μžλ…€μ˜ μ‹€μ‹œκ°„ 좜결 μƒνƒœ 및 성적 확인
β€’ 학원 곡지 및 μžλ…€ λŒ€μƒ κ°œλ³„ 곡지 확인
β€’ μžλ…€ ν•™μŠ΅ κ΄€λ ¨ 상담 문의 μž‘μ„±

πŸ›  μ„œλΉ„μŠ€ 핡심 κΈ°λŠ₯

  1. 반(Class) & 일정: μš”μΌ/μ‹œκ°„ μ„€μ • μ‹œ μˆ˜μ—… μ„Έμ…˜ μžλ™ 생성
  2. 좜결 관리: μˆ˜μ • 이λ ₯이 λ‚¨λŠ” 투λͺ…ν•œ 좜결 μ‹œμŠ€ν…œ
  3. μ‹œν—˜/성적: 점수 기반 μž¬μ‹œν—˜(클리닉) λŒ€μƒμž μžλ™ λΆ„λ₯˜
  4. 곡지/μ†Œν†΅: λŒ€μƒλ³„ λ°œμ†‘ 기둝 관리 및 νƒ€μž„λΌμΈ 기반 Q&A

✨ μ£Όμš” κΈ°λŠ₯

🏠 λžœλ”© νŽ˜μ΄μ§€

  • 메인 λžœλ”©: /

πŸ” 인증 μ‹œμŠ€ν…œ

강사/쑰ꡐ (Educators)

  • 둜그인: /educators/login
  • 강사 νšŒμ›κ°€μž…: /educators/instructor-register
  • 쑰ꡐ νšŒμ›κ°€μž…: /educators/assistant-register

학생/ν•™λΆ€λͺ¨ (Learners)

  • 둜그인: /learners/login
  • νšŒμ›κ°€μž…: /learners/register

πŸ‘¨β€πŸ« 강사/쑰ꡐ λŒ€μ‹œλ³΄λ“œ (/educators/*)

κΈ°λŠ₯ 라우트 μ„€λͺ…
🧩 ν™ˆ /educators 메인 λŒ€μ‹œλ³΄λ“œ
πŸ‘€ ν”„λ‘œν•„ /educators/profile 개인 정보 관리
πŸ‘₯ 학생 관리 /educators/students μˆ˜κ°•μƒ 정보 및 좜결 관리
πŸ“š μˆ˜μ—… 관리 /educators/lectures κ°•μ˜ 생성, μˆ˜μ •, 쑰회
πŸ“… 일정 관리 /educators/schedules μˆ˜μ—… 일정 및 μΊ˜λ¦°λ”
πŸ’¬ μ†Œν†΅ /educators/communication 곡지사항 μž‘μ„±, 문의 λ‹΅λ³€
🀝 쑰ꡐ 관리 /educators/assistants 쑰ꡐ κΆŒν•œ 및 업무 관리
πŸ“ μ‹œν—˜/리포트 /educators/exams 평가 및 성적 관리
πŸ“‚ μžλ£Œμ‹€ /educators/materials ν•™μŠ΅ 자료 μ—…λ‘œλ“œ 및 곡유

πŸŽ“ 학생/ν•™λΆ€λͺ¨ λŒ€μ‹œλ³΄λ“œ (/learners/*)

κΈ°λŠ₯ 라우트 μ„€λͺ…
🧩 메인 λŒ€μ‹œλ³΄λ“œ /learners 메인 λŒ€μ‹œλ³΄λ“œ
πŸ‘€ ν”„λ‘œν•„ /learners/profile 개인 정보 관리
πŸ“– λ‚˜μ˜ κ°•μ˜ /learners/lectures μˆ˜κ°• 쀑인 κ°•μ˜ 및 상세 정보
πŸ’¬ μ†Œν†΅ /learners/communication 곡지사항 확인, λ¬Έμ˜κΈ€ μž‘μ„±

⏳ 기타

  • 쑰ꡐ 승인 λŒ€κΈ°: /pending-approval

πŸ›  기술 μŠ€νƒ

πŸ— Core

🎨 UI / UX

βš™ State & Data

🩺 Quality


πŸ›Έ νŒ€ μ†Œκ°œ

πŸ‘‘ λ°•μ°½κΈ° 이유리 μž„κ²½λ―Ό κΉ€μœ€κΈ°
창기 유리 경민 윀기
PM & ν”„λ‘ νŠΈ ν”„λ‘ νŠΈ λ°±μ—”λ“œ λ°±μ—”λ“œ & 배포

πŸš€ λΉ λ₯Έ μ‹œμž‘

πŸ“¦ μš”κ΅¬μ‚¬ν•­

ν”„λ‘œμ νŠΈ 싀행을 μœ„ν•΄ λ‹€μŒ 버전이 ν•„μš”ν•©λ‹ˆλ‹€:

도ꡬ 버전 μ„€μ • 파일
Node.js 24.13.0 .nvmrc, package.json#engines
pnpm 10.28.0 package.json#packageManager

πŸ’» μ„€μΉ˜ 및 μ‹€ν–‰

# 1. μ˜μ‘΄μ„± μ„€μΉ˜
pnpm install

# 2. ν™˜κ²½ λ³€μˆ˜ μ„€μ •
cp .env.example .env.local

# 3. Git hooks μ„€μ •
pnpm run prepare

# 4. 개발 μ„œλ²„ μ‹€ν–‰
pnpm dev

개발 μ„œλ²„κ°€ μ‹€ν–‰λ˜λ©΄ http://localhost:3000μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ”§ ν™˜κ²½ λ³€μˆ˜ μ„€μ •

.env.local νŒŒμΌμ— λ‹€μŒ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•΄μ£Όμ„Έμš”:

# API μ—”λ“œν¬μΈνŠΈ
NEXT_PUBLIC_API_BASE_URL=         # 강사/쑰ꡐ용 API
NEXT_PUBLIC_API_BASE_URL_SVC=     # 학생/ν•™λΆ€λͺ¨μš© API

# Sentry (선택사항)
NEXT_PUBLIC_SENTRY_DSN=
SENTRY_AUTH_TOKEN=

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

src/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ (auth)/            # 인증 κ΄€λ ¨ 라우트
β”‚   β”œβ”€β”€ educators/         # 강사/쑰ꡐ 라우트
β”‚   β”œβ”€β”€ learners/          # 학생/ν•™λΆ€λͺ¨ 라우트
β”‚   └── _components/       # νŽ˜μ΄μ§€λ³„ μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ components/            # 곡용 μ»΄ν¬λ„ŒνŠΈ
β”‚   └── ui/               # shadcn/ui μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ services/             # API ν΄λΌμ΄μ–ΈνŠΈ 및 도메인 둜직
β”œβ”€β”€ providers/            # React Context Providers
β”œβ”€β”€ stores/               # Zustand μƒνƒœ 관리
β”œβ”€β”€ hooks/                # μ»€μŠ€ν…€ ν›…
β”œβ”€β”€ types/                # TypeScript νƒ€μž… μ •μ˜
β”œβ”€β”€ validation/           # Zod μŠ€ν‚€λ§ˆ
β”œβ”€β”€ utils/                # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
└── constants/            # μƒμˆ˜ μ •μ˜

μ£Όμš” 디렉토리 μ„€λͺ…

디렉토리 μ—­ν• 
src/app λΌμš°νŒ…, νŽ˜μ΄μ§€, λ ˆμ΄μ•„μ›ƒ, 메타데이터, μ—λŸ¬ 처리
src/components μž¬μ‚¬μš© κ°€λŠ₯ν•œ UI μ»΄ν¬λ„ŒνŠΈ
src/services Axios ν΄λΌμ΄μ–ΈνŠΈ + 도메인별 API 호좜 + Mapper
src/providers React Query, Auth, Modal, Breadcrumb λ“± Provider
src/stores Zustand 기반 ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœ 관리
src/hooks μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ»€μŠ€ν…€ ν›…
src/types 곡톡 νƒ€μž… μ •μ˜
src/validation Zod μŠ€ν‚€λ§ˆ 및 폼 검증

πŸ”’ κΆŒν•œ 및 인증

μ—­ν•  기반 λΌμš°νŒ…

SSam BλŠ” URL 기반으둜 μ‚¬μš©μž 역할을 κ΅¬λΆ„ν•©λ‹ˆλ‹€:

URL νŒ¨ν„΄ μ—­ν•  μ„€λͺ…
/educators/* MGMT 강사(INSTRUCTOR) 및 쑰ꡐ(ASSISTANT)
/learners/* SVC 학생(STUDENT) 및 ν•™λΆ€λͺ¨(PARENT)

인증 방식

  • μ„Έμ…˜ 관리: μΏ ν‚€ 기반 μ„Έμ…˜
  • API 톡신: 역할별 λ‹€λ₯Έ Base URL μ‚¬μš©
    • 강사/쑰ꡐ: NEXT_PUBLIC_API_BASE_URL
    • 학생/ν•™λΆ€λͺ¨: NEXT_PUBLIC_API_BASE_URL_SVC

쑰ꡐ 승인 ν”„λ‘œμ„ΈμŠ€

쑰ꡐ(ASSISTANT)λŠ” κ°€μž… ν›„ λ‹€μŒ 쑰건을 λ§Œμ‘±ν•΄μ•Ό λŒ€μ‹œλ³΄λ“œμ— μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • signStatusκ°€ SIGNED μƒνƒœμ—¬μ•Ό 함
  • 쑰건 λ―ΈμΆ©μ‘± μ‹œ /pending-approval νŽ˜μ΄μ§€λ‘œ μžλ™ λ¦¬λ‹€μ΄λ ‰νŠΈ

πŸ“œ 슀크립트 κ°€μ΄λ“œ

개발 및 λΉŒλ“œ

pnpm dev          # 개발 μ„œλ²„ μ‹€ν–‰ (http://localhost:3000)
pnpm build        # ν”„λ‘œλ•μ…˜ λΉŒλ“œ
pnpm start        # ν”„λ‘œλ•μ…˜ μ„œλ²„ μ‹€ν–‰

μ½”λ“œ ν’ˆμ§ˆ

# Linting
pnpm lint         # ESLint μ‹€ν–‰
pnpm lint:fix     # ESLint μžλ™ μˆ˜μ •

# Formatting
pnpm format       # Prettier ν¬λ§·νŒ… 적용
pnpm format:check # Prettier 체크만 μˆ˜ν–‰

# Type Checking
pnpm type-check   # TypeScript νƒ€μž… 체크

ν…ŒμŠ€νŠΈ

pnpm test         # Jest ν…ŒμŠ€νŠΈ μ‹€ν–‰

🚒 배포 및 운영

배포 ν”Œλž«νΌ

이 ν”„λ‘œμ νŠΈλŠ” Vercel 배포λ₯Ό μ „μ œλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

Sentry μ„€μ •

μ—λŸ¬ λͺ¨λ‹ˆν„°λ§μ„ μœ„ν•΄ Sentryκ°€ ν†΅ν•©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

  • μ„€μ • 파일: next.config.tsμ—μ„œ withSentryConfig μ‚¬μš©
  • ν΄λΌμ΄μ–ΈνŠΈ μ΄ˆκΈ°ν™”: src/instrumentation-client.ts
  • Tunnel Route: /monitoring (κ΄‘κ³  차단 우회)

ν™˜κ²½ λ³€μˆ˜ (배포 μ‹œ)

Vercel λŒ€μ‹œλ³΄λ“œμ—μ„œ λ‹€μŒ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•΄μ£Όμ„Έμš”:

NEXT_PUBLIC_API_BASE_URL
NEXT_PUBLIC_API_BASE_URL_SVC
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
SENTRY_ORG
SENTRY_PROJECT

Made with ❀️ by SSam B Team