Bokegram ver3.0.0を公開しました


10月4日にBokegram ver3.0.0を公開しました。
前バージョンからは約3年半ぶりのアップデートになりました。

Bokegram ver3.0.0

新しい機能をつけていく上で、これまでのボケグラムではデータの取り方や構造などに少し無理があり、今回ソースをほぼ一から書き直す形になりました。後述しますが、こういった理由からこれまでのボケグラムのデータとは互換性がありません、ごめんなさい。

新バージョンのサンプルを公開しています。まだお題を1つ出しただけなので寂しい感じですが、こちらも是非参考にご覧ください。

ここからはver3.0.0での更新内容について一通り紹介します。

レスポンシブデザインを導入

スマートフォンでの表示があまりよろしくなかったので、スマートフォンからでも見やすく(?)しました。管理作業もスマートフォンから可能です。また全体的にデザインを刷新しました。


総合ランキングを追加

これはボケグラムのような配布型だと難しいかな、とこれまでずっと手付かずの機能だったのですが、今回MySQLに移行したことを機に追加しました。ランキングの内容は、総合得点ランキング(参加者の全体にわたっての獲得点の合計のランキング)と回答ランキング(1つの回答につき何点獲得したかのランキング)の2つです。


管理しやすくしました

これまで管理画面のデザインがかなり手付かずでしたが、メニューを整理し、デザイン面などからも管理しやすいものにしました。


お題ごとに、任意の採点者の投票先一覧のページを追加

結果発表後の回答の個別ページから、例えばAさんの回答に投票したBさんはそのお題で他にどのような回答に投票をしたのかを一覧で見ることができるようになりました。

-----
ここからは細かい話ですが、

CSVファイルからMySQLへの移行

データをCSVファイルからMySQLへと変更しました。データの取り方を根本的に変えたため、以前のバージョンと互換性はありません。これまでのボケグラムのCSVファイルは配列化するためにエスケープして使用していた区切り文字がエスケープシーケンスと被っていました。そのためデータとして生まれたCSVファイルをエクセルなどで開いたときに正しく参照できないという致命的なバグがありました。ver3.0.0ではMySQL管理ツールのphpMyAdminなどを使用して比較的容易にデータを管理者が扱えるようになっています。


セキュリティ面の向上

XSS対策、CSRF対策、またSQLを利用するにあたってSQLインジェクションへの対策を加えました。また、これまでIPアドレスによるアクセス制限については.htaccessをユーザー自身で変更することで機能させていましたがボケグラム管理画面からIPアドレスを入力し、簡単に設定できるように変更しました。


設置の簡易化

「MySQLに移行した」と聞くと設置が難しくなったように感じるかもしれませんが、ボケグラムの設置自体についてはかなり簡単になったと思います。パーミッションの変更なども不要になりました。MySQLを用意してから、config.phpファイルにパスワードなどを書いて保存したらあとは全部アップロードすればOKです。.htaccessを利用できない環境でも(利用できる方が好ましいけど)ちゃんと使えます。多分。

文字コードの変更

EUC-JPからUTF-8へ変更しました。