124 lines
2.9 KiB
Markdown
124 lines
2.9 KiB
Markdown
# 開発ガイド
|
||
|
||
## セットアップ
|
||
|
||
### 1. API (FastAPI)
|
||
|
||
```bash
|
||
cd api
|
||
|
||
# 仮想環境作成
|
||
python -m venv venv
|
||
source venv/bin/activate # macOS/Linux
|
||
# or
|
||
venv\Scripts\activate # Windows
|
||
|
||
# 依存関係インストール
|
||
pip install -r requirements.txt
|
||
|
||
# 環境変数設定
|
||
cp .env.example .env
|
||
# .envを編集
|
||
|
||
# 開発サーバー起動
|
||
uvicorn app.main:app --reload
|
||
```
|
||
|
||
APIは http://localhost:8000 で起動します。
|
||
APIドキュメントは http://localhost:8000/docs で確認できます。
|
||
|
||
### 2. Web (React + Vite)
|
||
|
||
```bash
|
||
cd web
|
||
|
||
# 依存関係インストール
|
||
npm install
|
||
|
||
# 開発サーバー起動
|
||
npm run dev
|
||
```
|
||
|
||
Webアプリは http://localhost:3000 で起動します。
|
||
|
||
## プロジェクト構造
|
||
|
||
```
|
||
ai.card/
|
||
├── api/ # FastAPI backend
|
||
│ ├── app/
|
||
│ │ ├── core/ # 設定、共通処理
|
||
│ │ ├── models/ # Pydanticモデル
|
||
│ │ ├── routes/ # APIエンドポイント
|
||
│ │ ├── services/ # ビジネスロジック
|
||
│ │ └── main.py # アプリケーションエントリ
|
||
│ └── requirements.txt
|
||
│
|
||
├── web/ # React frontend
|
||
│ ├── src/
|
||
│ │ ├── components/ # Reactコンポーネント
|
||
│ │ ├── services/ # API通信
|
||
│ │ ├── styles/ # CSS
|
||
│ │ ├── types/ # TypeScript型定義
|
||
│ │ └── App.tsx # メインコンポーネント
|
||
│ └── package.json
|
||
│
|
||
├── ios/ # iOS app (今後実装)
|
||
└── docs/ # ドキュメント
|
||
```
|
||
|
||
## 技術スタック
|
||
|
||
### Backend
|
||
- Python 3.9+
|
||
- FastAPI
|
||
- Pydantic
|
||
- SQLAlchemy (今後実装)
|
||
- atproto SDK
|
||
|
||
### Frontend
|
||
- React 18
|
||
- TypeScript
|
||
- Vite
|
||
- Framer Motion (アニメーション)
|
||
- Axios
|
||
|
||
## 開発のポイント
|
||
|
||
### 1. カードデータ
|
||
カードは0-15のIDを持ち、ai.jsonの定義に基づいています。
|
||
|
||
### 2. レアリティシステム
|
||
- 通常のガチャではキラカードが最高レア
|
||
- uniqueカードは隠し要素として実装
|
||
- 確率は設定ファイルで調整可能
|
||
|
||
### 3. atproto連携
|
||
- ユーザー認証はatproto OAuth(今後実装)
|
||
- カードデータはユーザーのPDSに保存(今後実装)
|
||
- 現在はローカルストレージのみ
|
||
|
||
### 4. アニメーション
|
||
- ガチャ演出はレアリティに応じて変化
|
||
- uniqueカードは特別な演出
|
||
- Framer Motionで実装
|
||
|
||
## 今後の実装予定
|
||
|
||
1. **データベース連携**
|
||
- SQLAlchemyでのモデル定義
|
||
- ユーザーごとのカード管理
|
||
|
||
2. **atproto統合**
|
||
- OAuth認証
|
||
- PDSへのデータ保存
|
||
- DID検証
|
||
|
||
3. **uniqueカード検証**
|
||
- グローバルレジストリ
|
||
- 重複チェック
|
||
- ai.verse連携
|
||
|
||
4. **iOS app**
|
||
- SwiftUIで実装
|
||
- 共通APIを使用 |