Web未経験から100日でリリース！初心者が「お笑い情報のアグリゲーションサイト」をつくりました【個人開発】

こんにちは、かしい（[@rubys8arks](https://twitter.com/rubys8arks)）と申します。
SIerで働いていましたが、WEB業界への転職を目指しプログラミングの勉強を始めました。
データベースなどの知識は少しあったものの、Webアプリケーションの開発は今回が完全に初めてです!
# 作ったもの
お笑いライブの検索サイトです。日付やキーワードで東京近郊のお笑いライブを横断検索できます。
- [ワラリー! - お笑いライブ検索(東京)](https://warally.info)
<blockquote class="twitter-tweet" data-lang="fr"><p lang="ja" dir="ltr">🎊Web系未経験の初心者が100日間で初めてのrailsサービスをリリース🎊<br>👉<a href="https://t.co/qL6fAtOi5i">https://t.co/qL6fAtOi5i</a><br><br>首都圏のお笑いライブを日付やキーワードで横断検索できるサービスです！<br><br>・5秒で使えるTwitterログイン<br>・わかりやすいUI<br>・13サイトからデータを毎日スクレイピング<br><br>よかったら見てください〜✨ <a href="https://t.co/7js7F9Bs8p">pic.twitter.com/7js7F9Bs8p</a></p>&mdash; かしい@お笑いSNSつくった (@rubys8arks) <a href="https://twitter.com/rubys8arks/status/1061748089751515137?ref_src=twsrc%5Etfw">11 novembre 2018</a></blockquote>
<img width="337" alt="スクリーンショット 2018-11-13 18.58.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/238801/068ccb8d-ab67-c558-9e04-b279ddb801ce.png">
<img width="337" alt="スクリーンショット 2018-11-13 19.01.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/238801/e9b5e0c0-51d7-29ed-ff64-c8305d9fd755.png">
データはプレイガイドや劇場のサイトから自動でスクレイピングするほか、誰でもライブ情報を登録できるようになっています。
![ワラリー!ビジネスモデル図.jpg](https://qiita-image-store.s3.amazonaws.com/0/238801/13926ae2-5133-570c-86ca-0901e79b055f.jpeg)
* [ビジモ図鑑](https://note.mu/tck/n/n95812964bcbb?magazine_key=m91891e5390bc)で配布されているキットをお借りしました。

# サービスを作ったきっかけ
もともと「Walive!」というお笑いライブの検索サイトがあったのですが、そのサイトが2017年9月で突然閉鎖してしまったことがきっかけです。
せっかくお笑いファンの間で愛されているサイトだったのにもったいないなと思い、同じ機能(+α)を持った新しいサイトを作ろうと考えました。
<img width="600" alt="スクリーンショット 2018-11-13 19.23.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/238801/756b7047-435e-a639-0421-e4f4a4395b07.png">

# どういう技術で動いてるか
初心者なのであまり凝った技術は使っていません！

## バックエンド
### Ruby on Rails
webスクレイピング用に[Mechanize](https://github.com/sparklemotion/mechanize)のgemを使ってます。サービス層は悪！と言われてることもあるのですが、コントローラーやモデルが見やすくなるのでサービス層、ヘルパー層も使いました。

## サーバー
### Heroku
手軽にデプロイできるHerokuのサーバーを使っています。
アクセスできない時間ができるのが嫌だったので、Herokuの有料プランにしています。
- Hobby Dyno $7/月 (システムダウンタイムなし、独自ドメインのかんたん設定）
- Heroku Postgres Premium ＄9/月(1000万行まで保存できる)

Herokuの有料プランは使わずにもっと安くする方法もあるみたいなんですが、一旦は設定のしやすさを優先しています。

## フロントエンド
### jQuery
さんざん「jQueryはオワコン」と言われていますが、ぐぐったときに出てくる情報が多いので一旦jQueryで実装しました。
日付の選択をカレンダ([flatpickr](https://flatpickr.js.org/))で行えるようにしたり、アンケート結果をアコーディオンでぬるっと表示させたりしています。
<img width="339" alt="スクリーンショット 2018-11-13 19.32.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/238801/a15b6af6-0ca5-398f-3a51-22a54bf96210.png">

### fontawesome
みんな大好き[fontawesome](https://fontawesome.com/)です。
フォームのplaceholderにも使っています。

# こだわったこと
## UIとデザイン  
「とにかく人に使ってほしい」という思いからUIとデザイン（特にライブの入力フォーム回り）にこだわりました。
実際にサービスへの反応も「デザインがいい！」というものが多く、ありがたい限りです。
CSSのフレームワークは使わず、TumblrのEstenテーマ、Twitter、InstagramなどのSNSを参考にしました。
<img width="312" alt="スクリーンショット 2018-11-13 20.32.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/238801/a45d9e30-287d-a752-ee65-e7f4fbe33380.png">
<img width="336" alt="スクリーンショット 2018-11-13 20.32.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/238801/3385c57f-2855-7b5e-5b60-a95cf021cc56.png">

- URLを貼り付けたらogp情報を取ってライブの説明や出演者、画像などを自動入力できるように
- 会場をセレクトボックスで選択できるようにしつつ、自由入力欄も作ったり
- フォーム数が多くなると入力したくなくなるので、重要でない項目はモーダルで分けたり

自分にとってはだいぶ使いやすくなったのですが、フォームはまだまだ改善の余地があるなと思っています。

## SNSログイン
お笑いファンはだいたいTwitterで情報収集しているので、既にアカウントを持っているであろうTwitterアカウントで登録・ログインできるようにしました。
知らないサービスにいきなり「メールアドレスで登録できます！」と言われてもユーザー登録しないなと思ったので、SNS連携としました。

## いいね機能
旧サイト「Walive!」にはなかった機能として、ライブへのいいね機能を2種類実装しました。
ライブに行く人あるあるとして、自分のスケジュールを把握できずに同じ日の同じ時間帯のライブ(いわゆる『被り』)のチケットを間違えて買っちゃったりします。
そういうのを防止したいなと思い、すでにチケットを買った・予約したライブは『絶対いく』、まだ買ってないけど行けたら行きたいライブは『気になる』で管理できるようにしました。

# Webサービスをつくってみた感想
最初の1ヶ月はプログラミングスクールでhtml/cssとruby/Ruby on Railsを学んだのですが、スタッフの「1ヶ月ですぐ作れるよ！」という甘い声をうのみにして痛い目にあいました…。
スクールを終えた知識で作ってみても「え、いいねボタン自動で切り替わらないの？(jQueryが必要)」、「孫モデルまでアソシエーションしてデータ取るのどうやるの？」、「[pry](https://github.com/pry/pry)なんて便利なgemがあったの？」などなどわからないことだらけ。
最初の頃、家で同じエラーに1週間くらいわんわん言ってた私に「macbookを買え、もくもく会に行け」と言いたいです。
Twitter、Slack、もくもく会などでド初心者の質問に親切に答えてくださった皆さん、本当にありがとうございました！！

エンジニアの方にはあまりお笑いライブに馴染みはないかもしれませんが、せっかく作ったのでちら見してもらえれば幸いです。
出演者ですぐ探せるので、「こないだテレビで見た芸人面白かったな」というときはぜひ使ってみてください！

[ワラリー! - お笑いライブ検索(東京)](https://warally.info)