エコシステム
http://event.makewith.jp/ のサービスを作ったときに使った各種ツールを紹介します。 Rails、各種ホスティングサービスの恩恵をうけ、なんとか形にすることはできました。これからサービスを作ろうと考えている方の参考になればうれしいです。
ミドルウェア、インフラ周り
を使用しています。herokuは、マニュアルがしっかり書かれているので設定周りで困ったことはありませんでした。heroku最高!!メール送信ではSendGridをフリープランで使用しています。一日200通の制限がありますが、当面は大丈夫そうです。作った後の運用も踏まえ、自分で出来ること、出来ないことを一度考えてから、技術選定をしてあげるとよい思います。
デザイン・フロントエンド関連
デザイナーではないので、一番苦しいフェーズでした。WebフォントやCSSフレームワーク、 フリーアイコン、勉強会でとった写真の素材を活用しなんとかしましたが、一番時間がかかったフェーズです。
WEBフォント(google)
フリーアイコン(Font Awesome)
https://github.com/bokmann/font-awesome-rails
アイコン表示のヘルパーを用意してくれます。
CSSフレームワーク(bootstrap)
今回はrails_layoutを使って、大枠のレイアウトを作ってからカスタマイズしていきました。 また、 http://bootsnipp.com/ にてスニペットと本家のマニュアルを参考にしながら、作りたいレイアウトのサンプルをピックアップし当て込んでいきました。bootstrapつらいですが、こういった所は、やはり利点と感じています。
※その他参考にしたサイト
http://railsapps.github.io/twitter-bootstrap-rails.html
pjax
https://github.com/kossnocorp/jquery.turbolinks
rails4からturbolinksがデフォルトで導入されていますが、onloadイベントが発火されない問題があるため、上記Gemをいれて解消しています。その他問題がいくつかあるようなのですが、今のところはそのまま利用しています。
ページ更新の進捗
https://github.com/caarlos0/nprogress-rails
youtubeライクにページ更新の進捗が表示されます。(ページ上部に表示される、ニョキニョキー、クルクルクルーのところです。)herokuなのでページ表示に少し時間かかる、また、pjaxの遷移だと更新を待っている間に少し違和感が出てしまうため、更新の進捗状況を表示した方がよさそうです。
フォーム
https://github.com/plataformatec/simple_form
イベント新規作成画面などで利用しています。
入力補助
日付
https://github.com/Nerian/bootstrap-datepicker-rails
時刻
https://github.com/tispratik/bootstrap-timepicker-rails
イベント新規作成画面で使っています。カレンダーからの日付入力、時間のところは上下キーを押すと時刻が入ります。
機能関連 ・認証
普通のログインと、facebook認証で使っています。https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview deviseでの連携の仕方が記載してあるので、参考にしてみてください。
ページング
https://github.com/amatsuda/kaminari
bootstrapのviewを作成するジェネレーターも用意されています。
マークダウン表示
https://github.com/vmg/redcarpet
イベント登録時に記載する内容はmarkdownの整形ルールを採用しています。
タグ
https://github.com/mbleigh/acts-as-taggable-on
イベントにつけるタグはこれを利用しています。
画像アップロード
https://github.com/thoughtbot/paperclip
s3へアップロードするインターフェースも用意されています。 が、今回herokuを使って運用しているため、画像アップロードする際にかなり時間がかかってしまいます。http://qiita.com/anoworl/items/35e75a20e70d2ad0f658 に書いている通り、herokuの場合はダイレクトでs3にアップロードする仕組みを作ってあげたほうがよいと思います。
URL
https://github.com/norman/friendly_id
カテゴリ別イベント一覧ページのURLで利用しています。 ユーザー名でアクセスすると、その人の情報を表示させるような利用シーンが一般的だと思います。
テスト・デバック関連
group :test do gem 'spring-commands-rspec' gem 'database_cleaner' gem 'launchy' gem 'factory_girl_rails' gem 'simplecov' gem 'simplecov-rcov' gem 'coveralls', require: false gem 'capybara' gem 'rspec-parameterized', git: 'git@github.com:tomykaira/rspec-parameterized.git' end group :development, :test do gem 'pry-rails' gem 'pry-doc' gem 'pry-remote' gem 'rspec-rails' gem 'mailcatcher' gem 'marginalia' end
紹介がめんどくさくなってきたので、その部分のgem貼ります。各種リードミーをよんでみてください。
その他
デコレーター
https://github.com/amatsuda/active_decorator
viewがすっきりする
初期データの投入
https://github.com/mbleigh/seed-fu
どーん
環境変数管理
https://github.com/laserlemon/figaro
ヤムラー
パフォーマンス、死活監視
ちぇけらちょ
そんじゃーね!1