Help us understand the problem. What is going on with this article?

Railsでアンケートの再発明みたいなレーティングアプリ

More than 1 year has passed since last update.

スクリーンショット 2017-11-15 15.06.17.png

冒頭

オリジナルアプリをherokuではじめて公開したので、備忘録やメモ、頭の整理も兼ねて投稿。Ruby on Railsで作った、レーティングアプリケーションです。

あるものに対する、人の”考え”や”直感”を知ろうと思ったら、今はアンケートぐらいしか方法がないわけですが、その辺を何とか変えたいと考えて作りました。(全部説明すると長くなるので、別途ブログとかにまとめようと思います)

アンケートといっても結局人気投票だったりするわけですし、他にも証明しにくい”風潮”や”雰囲気”などに何か根拠を示せれば良いんじゃないかとか、色々と考えています。

Liibra ~Simply & Satisfactory Rating Application~
http://liibra.herokuapp.com/

スクリーンショット 2017-11-12 18.04.24.png

概要

イメージとしては、映画「ソーシャルネットワーク」でザッカーバーグ氏が大学でいたずらで作っていた『Hot or Not(女の子格付けサイト)』が近いです。

スクリーンショット 2017-11-12 16.56.25.png

レーティングしたい集団(プロトタイプでは、「都道府県」と「歴代アメリカ大統領」のジャンルを用意)から、ランダムで2つの対象(県・大統領)が表示されます。テーマに沿って、その2つのどちらが良いかをユーザーに選んでもらいます。それを繰り返す。これだけです。

対象にはそれぞれレーティングのための点数が付けられていて、選び方によって点数を再計算します。

また、各ジャンル内でユーザーが好きにテーマを作ることができます。 例えば「住みたい都道府県は?」とか「お気に入りの大統領を教えて!」のような感じです。

大勢の人の意見を取り入れることができれば、今までアンケートやイメージで何となく語っていたものを、数値化してあげることで、Liibraの結果を参考にして意思決定に使うことも考えられます。(ランキングをcsvでダウンロードすることも可能です)

技術的背景

Liibraの技術で、重要な点は3つです。

①スクレイピング
「都道府県」や「歴代アメリカ大統領」などのジャンルを作る際、スクレイピングを用いています。nokogiriやMechanizeを使って引っ張ってきました。
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

②レーティング計算式
得点をどのように計算するかはLiibraのキモです。チェスの大会やMLBの殿堂入り選手を評価する計算アルゴリズムを参考にし、評価インフレにも対応しています。
Elo Rating
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%AD%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0

③DB設計
普通のことですが得点の変更やランキングへの反映など、頻繁にDBにアクセスするため、テーブル設計には気を使いました。レーティング対象と得点を別テーブルで作成し、場面によって必要なものだけを呼び出すようにしています。
railsで多対多のアソシエーションの作り方と、出来ること

今後の展望

①スマホアプリの開発
レーティングを行う回数を増やしたいので、スマホアプリ開発は必須かと

②R言語による統計解析
Rは絶賛勉強中なんですが、せっかくデータを扱うんですから、何らかの統計処理を行おうかと考えています。
RとRubyによるデータ解析入門

③ソーシャル機能の強化
ユーザのフォローとかいいね機能を追加して、ユーザーのアクティビティを増やしたい。

最後に

サービスを作るに当たり、他の方のQiita投稿をたくさん参考にさせて頂きました。感謝いたします。
また、サービスを使ってみて、おかしいところや改善点などがあれば、ぜひツッコミをお待ちしています。

TeruhisaFukumoto
# 経歴 ex.Zeals VPoE → MedPeer Engineer # 言語 - Ruby - Python - Docker # コミュニティ - Gotanda.rb Organizer - Gotanda.js Organizer
https://medium.com/@teruhisafukumoto
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした