非機能案件 - pikawakapikka/SkillSync GitHub Wiki
非機能要件
1. セキュリティ
-
認証・認可
- Firebase Authentication または Auth0 を使用したJWTベースのセキュアなログイン。
- 企業/求職者のアクセス権をロールで分離。
-
データ保護
- HTTPSによる通信の暗号化。
- パスワードはソルト付きハッシュ(bcrypt)で保存。
- プロフィール・成果物等のファイルはS3に保存し、署名付きURLで限定公開。
-
脆弱性対策
- OWASP Top 10 を考慮した脆弱性対策(XSS、CSRF、SQLiなど)。
- APIアクセスに対するレート制限とIPフィルタリング導入。
2. パフォーマンス
-
初回表示速度
- フロントエンドはReact+Viteで構築し、必要に応じてSSR(Next.js)導入。
- 画像や動画はCloudFront経由でキャッシュ配信。
-
データ検索性能
- 求人・ユーザー検索にはElasticsearchを活用し、スキルタグベースで高速検索を実現。
- RDBでは適切なインデックス設計を行う。
-
同時アクセス耐性
- 負荷テストで1000同時接続を想定。
- Node.jsクラスタリング or サーバレス構成でスケール対応。
3. 信頼性・可用性
-
システム稼働率
- 月間稼働率99.9%以上を目標。
- ヘルスチェック用エンドポイントの常時監視。
-
自動バックアップ
- データベース(PostgreSQL)は日次バックアップ+7日間保存。
- S3ストレージのバージョニング有効化。
-
障害対応
- 障害発生時はSlack連携で通知。
- フェイルオーバー構成(RDSマルチAZ、S3冗長化)。
4. 運用・保守性
-
CI/CD
- GitHub Actionsを用いた自動ビルド・テスト・デプロイ。
- 本番・ステージング環境は完全に分離。
-
ログ管理
- アプリログ・エラーログはCloudWatchまたはLogDNAに集約。
- ユーザー操作ログは個人特定できない形式で保存(監査・改善用途)。
-
監視
- New RelicまたはDatadogによるAPM監視。
- フロントエンドはSentryでエラー収集。
5. ユーザビリティ・アクセシビリティ
-
レスポンシブ対応
- スマートフォン、タブレット、PCすべてに対応(Tailwindによる設計)。
-
直感的なUI設計
- Figmaでのプロトタイプをもとに、簡潔で迷わない導線を実装。
-
アクセシビリティ配慮
- ARIA属性の適切な利用。
- キーボード操作への対応、色覚バリアフリーの配色指針に準拠。
-
多言語対応(将来的な拡張)
- i18nライブラリの導入により日本語/英語の切り替えに対応可能な構造。
6. 法令・規約対応
-
プライバシーポリシー
- ユーザーデータの取り扱いに関する明確なポリシー表示。
-
利用規約
- スカウトや成果物に関する知的財産の取り扱いなど明示。
-
GDPR/JLIS対応(必要に応じて)
- データ削除請求、データ移行リクエスト機能に備える。