非機能案件 - 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対応(必要に応じて)

    • データ削除請求、データ移行リクエスト機能に備える。