Skip to content

Instantly share code, notes, and snippets.

@myuon
Last active January 30, 2019 16:22
Show Gist options
  • Save myuon/73b97b984865624a71405543e372b58e to your computer and use it in GitHub Desktop.
Save myuon/73b97b984865624a71405543e372b58e to your computer and use it in GitHub Desktop.
最強のSNSをやっていくぜ

portals@me

要件をアレする

  • SLA: 99.9%
  • インフラコスト: (固定費$10 + $1/ユーザー)/月
  • ターゲット: クリエイター層(PCメイン) + ファン層(PC or スマホ)

エンティティ

  • ユーザーアカウント: 操作を行う人間1人に紐づくエンティティ
  • ユーザーグループ: ユーザーをまとめて名前と権限の割り当てを行う概念
  • コレクション: アーティクルをまとめて一覧として表示可能なもの
    • ストレージはコレクションごとに管理される
    • アーティクルの表示方法なども管理する
    • ユーザーアカウントに紐づいたデフォルトのコレクションが1つ存在する
  • アーティクル: クリエイターが投稿してファンに見せる作品の最小単位
  • タグ: アーティクル(またはコレクション?)につけられる適当な単語

エンティティ制約

  • 最大規模
    • ユーザー: ~1000程度
    • コレクション: ~100/ユーザー程度
    • アーティクル: ~1000/コレクション程度
  • 制限
    • ストレージ: ~5GB/ユーザー程度
    • ユーザーグループ: ~500ユーザー/グループ程度
  • 整合性
    • コレクション
      • 一意な名前を持つこと(URLからアクセス可能)
      • ユーザーは必ず1つ以上のコレクションを持つこと
      • コレクションごとにpublic/privateが選べる privateはオーナー以外には見えない
    • アーティクル
      • 特定のコレクションに所属すること
      • タグは10個まで

機能

トップページ系

  • 新規/更新コレクション一覧
  • ランキング
  • フォロータグの新着アーティクル一覧

ユーザーポートフォリオ系(ログイン不要で見ることができる)

  • ユーザーページ
  • ユーザーのコレクション一覧(一部のみ)
  • コレクションのアーティクル一覧(一部のみ or rate limit)
  • アーティクルの中身(制限なし or rate limit)

ファン系(一般ユーザーが可能な操作)

  • コレクションへのコメント表示/書き込み
  • アーティクルへのリアクション/引用
  • タグによる検索

クリエイター系

  • コレクションの管理
  • コレクションごとのアーティクルの管理
  • ユーザー設定の管理
  • ユーザーグループとしての作品の投稿
  • コレクションの権限をユーザー間またはユーザー・ユーザーグループ間でトランスファー
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment