# 볼링 매니저 (Bowling Manager)

볼링 매니저는 볼링장 운영자와 클럽 관리자를 위한 종합 관리 시스템입니다. 회원 관리, 이벤트 일정 관리, 점수 기록 및 통계, 구독 기반 프리미엄 기능을 제공합니다.

## 프로젝트 구조

이 프로젝트는 세 가지 주요 구성 요소로 이루어져 있습니다:

### 1. 백엔드 (Node.js/Express)

`/backend` 디렉토리에 위치한 서버 측 코드입니다.

- **기술 스택**: Node.js, Express, Sequelize ORM, MySQL
- **주요 기능**:
  - RESTful API 제공
  - 데이터베이스 관리
  - 인증 및 권한 관리
  - 구독 및 결제 처리
  - 영수증 검증

### 2. 프론트엔드 (Vue.js)

`/frontend` 디렉토리에 위치한 웹 클라이언트 코드입니다.

- **기술 스택**: Vue 3, Vite, Vuex, Vue Router
- **주요 기능**:
  - 관리자 대시보드
  - 회원 및 이벤트 관리
  - 통계 및 보고서
  - 구독 관리

### 3. 모바일 앱 (Flutter)

`/mobile` 디렉토리에 위치한 크로스 플랫폼 모바일 앱 코드입니다.

- **기술 스택**: Flutter, Dart, Provider 상태 관리
- **주요 기능**:
  - 회원 관리
  - 이벤트 및 일정 관리
  - 점수 기록 및 통계
  - 인앱 결제 및 구독
  - 오프라인 지원

## 설치 및 실행

### 백엔드

```bash
cd backend
npm install
npm start
```

### 프론트엔드

```bash
cd frontend
npm install
npm run dev
```

### 모바일 앱

```bash
cd mobile
flutter pub get
flutter run
```

## 구독 및 인앱 결제 기능

볼링 매니저는 다양한 구독 플랜을 제공합니다:

- **무료 플랜**: 기본 기능, 제한된 회원 및 이벤트 관리
- **기본 플랜**: 확장된 회원 및 이벤트 관리, 기본 통계
- **프리미엄 플랜**: 고급 통계, 커스터마이징 옵션
- **프로 플랜**: 모든 기능 무제한 이용, 우선 지원

구독 관련 문서:
- [구독 및 인앱 결제 요구사항 및 사용자 플로우](/docs/subscription_requirements_flow.md)
- [구독 및 인앱 결제 QA 체크리스트](/docs/subscription_qa_checklist.md)
- [배포 체크리스트](/docs/deployment_checklist.md)

## 개발 가이드

### 백엔드 API

백엔드 API는 RESTful 원칙을 따르며, JWT 기반 인증을 사용합니다. 주요 엔드포인트:

- `/api/auth`: 인증 관련 엔드포인트
- `/api/clubs`: 클럽 관리 엔드포인트
- `/api/members`: 회원 관리 엔드포인트
- `/api/events`: 이벤트 관리 엔드포인트
- `/api/scores`: 점수 관리 엔드포인트
- `/api/subscriptions`: 구독 관리 엔드포인트

### 모바일 앱 구조

모바일 앱은 다음과 같은 구조로 구성되어 있습니다:

- `lib/models`: 데이터 모델 클래스
- `lib/services`: API 통신 및 비즈니스 로직
- `lib/screens`: UI 화면
- `lib/widgets`: 재사용 가능한 UI 구성 요소
- `lib/utils`: 유틸리티 함수 및 상수

## 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요.

## 기여

버그 신고, 기능 요청 및 풀 리퀘스트는 환영합니다. 기여하기 전에 프로젝트 관리자에게 문의하세요.