システム設計書
システム構成
システム構成図
技術スタック
| レイヤー | 技術・製品 | バージョン | 用途 |
|---|---|---|---|
| モバイルアプリ | React Native | 0.72.x | iOS/Androidアプリ |
| 管理画面 | React | 18.x | SPA管理画面 |
| 管理画面 | Next.js | 14.x | SSR/SSGフレームワーク |
| API Gateway | AWS API Gateway | v2 | REST API + WebSocket |
| コンテナ基盤 | Amazon EKS | 1.28 | Kubernetes |
| API | Node.js | 20.x | マイクロサービス |
| API | Express.js | 4.x | Webフレームワーク |
| データベース | Aurora PostgreSQL | 15.x | メインDB |
| キャッシュ | ElastiCache Redis | 7.x | キャッシュ/リアルタイムデータ |
| NoSQL | DynamoDB | - | 位置情報/ログデータ |
| ストレージ | Amazon S3 | - | 画像/ファイル |
| CDN | CloudFront | - | 静的コンテンツ配信 |
| 監視 | CloudWatch/X-Ray | - | APM/ログ管理 |
アーキテクチャ設計
マイクロサービス構成
データベース設計
ER図(主要エンティティ)
インフラ設計
AWS構成図
セキュリティ設計
監視・運用設計
API設計
API一覧
| エンドポイント | メソッド | 説明 | 認証 |
|---|---|---|---|
| /api/v1/auth/register | POST | ユーザー登録 | 不要 |
| /api/v1/auth/login | POST | ログイン | 不要 |
| /api/v1/auth/refresh | POST | トークン更新 | 必要 |
| /api/v1/stations | GET | ステーション検索 | 不要 |
| /api/v1/stations/:id | GET | ステーション詳細 | 不要 |
| /api/v1/stations/nearest | GET | 最寄りステーション | 不要 |
| /api/v1/reservations | POST | 予約作成 | 必要 |
| /api/v1/reservations/:id | GET | 予約詳細 | 必要 |
| /api/v1/reservations/:id/checkin | POST | チェックイン | 必要 |
| /api/v1/reservations/:id/extend | POST | 利用延長 | 必要 |
| /api/v1/payments | POST | 決済処理 | 必要 |
| /api/v1/products | GET | 商品一覧 | 不要 |
| /api/v1/users/me | GET | ユーザー情報 | 必要 |
| /api/v1/users/history | GET | 利用履歴 | 必要 |
WebSocket API
| イベント | 方向 | 説明 |
|---|---|---|
| station.status.update | Server→Client | ステーション状態更新 |
| station.inventory.update | Server→Client | 在庫情報更新 |
| reservation.reminder | Server→Client | 予約リマインダー |
| user.location.update | Client→Server | 位置情報更新 |
開発・デプロイ設計
CI/CDパイプライン
環境構成
| 環境 | 用途 | URL | 構成 |
|---|---|---|---|
| 開発 | 開発・単体テスト | dev.reready.app | 最小構成 |
| ステージング | 結合テスト・受入テスト | stg.reready.app | 本番相当 |
| 本番 | 本番サービス | app.reready.app | 冗長構成 |
改訂履歴
| 版 | 日付 | 作成者 | 変更内容 |
|---|---|---|---|
| 1.0 | 2024/01/31 | ReReadyチーム | 初版作成 |