[TurboGears] 同人誌情報サイトを作成する。その1
趣旨
私は同人誌を頻繁に読みます。一次創作も二次創作も読めば、評論などを読むこともあります。その中には大変面白いものもあり、誰かにその本を勧めたくなります。そんな同人誌を読んだときの感想を言い合えるような場があれば、同人誌即売会で気に入る本を見つけたときのような、新しい発見があるのではないかと考えました。そこで、同人誌の情報を扱うサイトを構築しようと思います。
名前
このサイトの名前はまだ決めていません。しかしそれでは開発できないので、とりあえずCalciumRider(カルシウムライダー。carと略す)とします。
用語定義
CalciumRiderでは、以下のように用語を定義します。
用語 | 定義 |
---|---|
作品 | 著作物のうち、企業以外から発行されるもの。なお、形態はマンガ、小説、評論、音楽など、問わない。 |
形式 | 作品の論理的な形。マンガ、小説、音楽、評論、イラスト、フィギュアなど。 |
媒体 | 作品の物理的な形。本、CD, フィギュアなど。 |
ジャンル | 作品内で主に語られている内容が属する分野。 |
アイテム | 作品を構成する物品。作品が書籍とフィギュアで構成されている場合、書籍とフィギュアがアイテムとなり、その作品は2つのアイテムを持つことになる。書籍のみで構成される一般的な同人誌の場合、1作品1アイテムである。 |
同人誌 | 作品と同一。書籍であるとは限らない。 |
著作者 | 作品を制作する人物。 |
サークル | 一名以上の著作者が所属する団体。 |
ユーザ | このサイトを閲覧し、データを操作する人物。 |
お気に入り | ユーザと、ユーザが好きな作品、著作者、サークルとの間の関連。 |
オリジナル作品 | 作品が二次創作物であるとき、その元となる作品(企業から発行されるものも含む)。 |
ユースケース
CalciumRiderでは、以下の利用方法を想定します。
アクター | アクション |
---|---|
ユーザ | サークルを閲覧する。 |
ユーザ | サークルを登録する。 |
ユーザ | サークルを編集する。 |
ユーザ | サークルを削除する。 |
ユーザ | 著作者を閲覧する。 |
ユーザ | 著作者を登録する。 |
ユーザ | 著作者を編集する。 |
ユーザ | 著作者を削除する。 |
ユーザ | 作品を閲覧する。 |
ユーザ | 作品を登録する。 |
ユーザ | 作品を編集する。 |
ユーザ | 作品を削除する。 |
ユーザ | 作品につけられたコメントを閲覧する。 |
ユーザ | 作品にコメントをつける。 |
ユーザ | 作品につけたコメントを編集する。 |
ユーザ | 作品につけたコメントを削除する。 |
ユーザ | サークルをお気に入りに追加する。 |
ユーザ | サークルをお気に入りから外す。 |
ユーザ | 著作者をお気に入りに追加する。 |
ユーザ | 著作者をお気に入りから外す。 |
ユーザ | 作品をお気に入りに追加する。 |
ユーザ | 作品をお気に入りから外す。 |
ユーザ | アカウントを登録する。 |
ユーザ | アカウントを編集する。 |
ユーザ | アカウントを削除する。 |
管理者のユースケースは省略しました。
なお、CalciumRiderではイベントの情報は扱いません。将来的にはするかもしれませんが、仕様が大きくなりそうなのと、既にそういったサイトは存在するので、今回は見送ります。
データモデル
CalciumRiderでは、以下のデータモデルを扱います。
+--------+ * 1 +------+ 1 * +--------+ * * +----+ |コメント|-----| |------| |-----|形式| +--------+ * | 作品 | | | +----+ | +----| | | | * 1 +--------+ |* | +------+ | |-----|ジャンル| | | * +------+ * * | | +--------+ |1 | +-|著作者|------| | * 1 +----+ | | | +------+ |アイテム|-----|媒体| +------+ *| | |* | | +----+ | |--+ *| |* | | * * +------------+ |ユーザ|-----+ +--------+ | |-----|キャラクター| | |-------|サークル| | | +------------+ +------+ * * +--------+ | | * * +--------------+ | |-----|オリジナル作品| +--------+ +--------------+
ユーザと作品、ユーザと著作者、ユーザとサークルの3つの関連は、「お気に入り」です。
フレームワーク
フレームワークには、TurboGearsを使用します。理由は、以下の通りです。
開発方針
たとえ開発途中であっても、動く部分を公開しながら開発を進めようと思っています。