Skip to content
This repository has been archived by the owner on Jun 29, 2020. It is now read-only.

products

giginet edited this page May 18, 2014 · 4 revisions

Product

Productは完成作品を管理するアプリケーションである。

Projectとは基本的に独立しているが、Projectと紐付けることも可能である。

このアプリは、Kawaz2ndにおいても企画段階は存在したが「もう面倒だから良いじゃん」みたいな誤った判断によりエターナったアプリである。

今思えば、外部にKawaz作品を知らしめるために非常に重要なアプリケーションだったと言っても過言ではない。

Kawaz2ndによる問題点

  • 初めて来た人がまずどこにゲームがあるかわからない
  • 完成済みのプロジェクトと、未完成のプロジェクトが混在していてわかりにくい
  • プロジェクトページのデザインがごちゃごちゃしている
  • プラットフォーム別の絞り込みがしにくい

などの問題点が多い。そのため、Kawaz3rdではトップページに大きくProductを表示し、来訪者に見せられるようにしたい。

逆に言えば、Product以外のコンテンツは目立たなくても良い。(ブログ、イベント、プロジェクト)

フィールドの仕様(企画)

型はDjangoのFieldモデルに対応。備考がない場合は必須

products.product

プロダクトモデルである。

フィールド名 概要 備考
title Char 作品タイトル
slug Slug 作品ID
thumbnail Thumbnail サムネイル 設定必須。16:9。タイル上に配置される
advertisement_image ImageField Kawazポータルトップに来るイメージ画像。スクリーンショットとは別(後述) 未設定可能
trailer URL トレーラー用URL。YouTubeのURLを入力しておくとトレーラーが埋め込まれる。Google Playなどに近い 未指定可能
description Markup 概要。作品紹介
platforms ManyToMany(Platform) 対象プラットフォーム 事前にNervが用意した物から複数選択可能
categories ManyToMany(Category) ゲームのカテゴリ 事前にNervが用意した物から複数選択可能
project ForeignKey 元のプロジェクト 未指定可能
display_mode CharField 表示レベル featured/tiled/normalの3種 後述
publish_at date 公開日 過去に公開された物も遡って公開日を設定可能なため、登録者が自分で設定する
created_at datetime 作成日 自動指定
update_at datetime 更新日 自動指定
administrators ManyToMany(Persona) 管理者 基本的にお客さんからは誰が作ったかはどうでもいい情報なので、内部メンバーにしか見えない

display_mode

前回までは表示順が完全にランダムで、来訪者にとって探しづらいシステムだった。

かといって、配布形態が異なるため、単純にダウンロード数や人気順を比較できない。

そのため、display_modeという概念を導入し、表示順をNervユーザーが弄れるようにした。

|display_mode | 概要 | | Featured | トップのカルーセルにadvertisement_imageが+タイルの上位にthumbnailが表示。 advertisement_imageの設定が必須 | | Tiled | トップにthumbnailがタイル表示 | | Normal | See Moreに表示 |

@shinka-cb と @giginetが策定

トップページには、その他に、Recentlyとして、公開日が新しい、かつdisplay_modeがNormalのもの3つがRecentlyとして並ぶ。

その他のNormalはトップページには置かれずにSee More内に並ぶ。

See More(ListView)内は、display_modeによらず、公開日が新しい順に全てが表示される。

products.package_release

ゲームのバイナリを格納するモデルである。

フィールド名 概要 備考
label Char パッケージ名
platform ForeignKey 対象プラットフォーム
version Char バージョン名 空白文字可能
product ForeignKey(Product) プロダクト
content_file FileField ファイル URLが指定されていれば未指定可能
downloads PositiveInteger ダウンロード数

GithubのReleaseのイメージに近いかも

Productに複数のパッケージが紐付くイメージ。

例えば、Windows版、Mac版などはfileとしてアップロードする

products.url_release

URLを保持し、外部サイトにホスティングするRelease形態

フィールド名 概要 備考
label Char パッケージ名
platform ForeignKey 対象プラットフォーム
version Char バージョン名 空白文字可能
product ForeignKey(Product) プロダクト
url URL URL
pageviews PositiveInteger ページビュー

iPhoneやAndroidはStoreへのリンクを貼ると言ったことが可能。 複数バージョンの配布も可能。

products.platform

フィールド名 概要 備考
label Char プラットフォーム名
icon ImageField Platformのfavicon

Nervが追加可能。例えば「Mac」、「Windows」、「iPad」などと大まかな分類。これにより、ユーザーが絞り込み可能。さらに細かい動作環境については、プロダクトのdescriptionでまかなって貰う。

products.screenshot

フィールド名 概要 備考
image ImageField スクリーンショット
product ForeignKey(Product) Product

ゲームのスクリーンショット。各プロダクトに複数枚登録可能にして、カルーセルなどでまとめて閲覧できるようにする。App Storeの下の方のイメージに近い

products.category

ジャンルを管理するモデル

フィールド名 概要 備考
label Char ジャンル名
description CharField ジャンルの説明

基本的にProjectのカテゴリと同様。というか、これを作らずにProjectのカテゴリと共用してしまってもいい感じがする。

要議論

あくまでアイディア。たぶん乗らないのが多い

トップページへの表示順

解決済み。display_mode参照

Press情報の扱い by @meyco

  • Pressなどの掲載情報を扱えるようにしたい?

or

  • Descriptionに勝手に書いて貰うようにする

前者のメリットとしては「掲載ページまとめ」ページを作るのが非常に楽になる。例えばURLを入力すると勝手にタイトル取ってきてリンク貼るとか・・・・・・。

カテゴリの扱い

解決済み。別のカテゴリを設置した。

AppStore / Google Play専用のsyntax

解決済み。URLReleaseに判定メソッドを設置。embed可能

i18n

例えば『Wave Weaver』などは、日本語英語両対応してリリースしているので、productだけでもその辺のローカライズ機構があると嬉しい感じある。(あとでよい)