アイマスP向け名刺管理サービスを作った

#まえがき
この記事は、[アイドルマスター Advent Calendar 2018](https://adventar.org/calendars/3046)の2日目の記事です。
1日目の記事はきりだるまさんの[
ミリオンライブとシンデレラガールズの違いを歌詞解析から見つめてみる ～果てしない旅路と終わりはない夢路、舞踏会より煌めく場所へ～](https://kiridaruma.hateblo.jp/entry/2018/12/01/121301)
でした。歌詞をDoc2Vecに投げたりして類似度比較とかやってみても面白そうだなと思いました。

2018年もついに師走に突入しましたね。みなさんお忙しいですか？
私は学士4年の卒業論文の〆切まで2か月を切ってそれなりに忙しいですが、なんとか見通しは立ったので頑張ります。ちなみに趣味でこんなWebサービス作ったり、Mastodonの開発に加わったりしていますが、卒業研究は機械学習を用いたソーシャルデータ分析です。~~や～自然言語処理って面倒ね~~

また、昨日今日とデレマスの6thライブがナゴヤドームで行われていますね。私は現地には行かずLVで見ます。1日目は森下来奈さんの肩と原田彩楓さんの背中とのぐちゆりさんのへそでしたね（？）
2日目の冬の遊園地も楽しみですね。

とまあ前置きはこれくらいにして本題にいきます。

#アイマスP向け名刺管理サービスを作った
ご存知の方も中にはいると思いますが、[THE NAMECARDM@STER](https://ncm.fvhp.net)というアイマスのプロデューサー向け名刺管理サービスを作って立ち上げました。今回はこのサービスについてあれこれ書きたいと思います。

**サービスの使い方については[こちら](https://gist.github.com/fvh-P/3e1002bbe27f48afd0672265520cfc11)をご覧ください。**

【お知らせ】
**先日、名刺ページがOGPに対応し、Twitterなどに名刺のURLを投稿すると名刺画像が表示されるようになりました！**
![NCM_OGP.png](https://qiita-image-store.s3.amazonaws.com/0/51289/d3e43274-076f-428f-d9d3-231398801017.png)


#つくった動機
「なんでTHE NAMECARDM@STER (以下NCM) を作ろうと思ったか」という話です。
色々理由があるので箇条書きにします。

- 紙の名刺はかさばるし、貰っても失くしてしまったりする
- 紙の名刺は一度印刷して渡してしまったら、もう**情報の修正・更新は不可能**
- 色々な自分の情報、プロデュース活動やアイドルへの愛を語るには**名刺サイズの紙切れでは小さすぎる**
- **ハイパーリンクは印刷できない！**

といったところでしょうか。
そして、プロデューサー名刺というのは**世間一般の名刺とはかなり異なる**性質のものであるため、ビジネス用途の名刺管理ソフトを使ってうまく管理できるかというと、ちょっと微妙なところです。

じゃあどうしようか…？簡単です。
**ないものは作ればいいんですよ**
DIYですよDIY（？）

とまあこんな感じで作り始めました。

#方針
このサービスの方針はこんな感じになっています。

####目的は「名刺をWebの力でもっと便利にする」。
リアルでの名刺交換をやめにしようという目的ではない。**名刺交換は今やアイマスライブやオフ会の醍醐味**の一つでもあるので、それに手を入れたりすることはしません。
そのため、1つの名刺からアカウントを辿って他の名刺を見ることはできません。QRコードかURLをゲットしようね。

~~リアルの名刺にWeb名刺のQRコードを載せていただけると私が泣いて喜びます~~

####各Pが**「自分の」**名刺をサービスに登録する形式にする。
**もらった名刺を登録する**というやり方にはしません。こんなどこの馬の骨とも知らん奴のサービスに勝手に登録されたくねぇ！っていう方ももちろんいると思いますし、何より1枚1枚登録するのが面倒すぎます。

####名刺画像以外にも**自己紹介**・**担当アイドル**・**SNSアカウント**などを登録できるようにする。
みなさんのP名刺を見ていると、「自分のプロデュース活動を知ってほしいけど名刺には書ききれない」、「担当がいっぱいいて名刺上に書ききれない」という方もいるそうなので別枠をご用意。SNSアカウント名は大多数の方が名刺に記載していますし、**Webならリンクが張れる**ので別枠にしました。

####公開・限定公開をユーザが選べるようにする
最初の方針と被るとこがありますが、合言葉機能を付けることで**「この名刺はリアルで会った人にだけ渡す」**といった名刺の運用にもある程度対応できるようにしました。（誰かに合言葉をばらされたら成り立たなくなるという問題はありますが。。。）
あと、名刺IDを無作為に掘って見られるというのが好ましくない場合にも作成時に「合言葉」を設定しましょう。

と、こんな方針で開発・運用しています。
#開発
さて、このNCMですが、~~特に意味もなく~~オープンソースにて開発しています。
ソースコードは[Github](https://github.com/fvh-P/NCM)で管理しています。

使用したフレームワークはRuby on Railsです。いや～いい時代ですねこのレベルのWebサービスなら大学生でも1～2か月で作れちゃいますよみなさん✋（多方面から殴られて死ぬ）

RDBはPostgreSQL 9.6を使っています。PostgreSQLでなければいけない理由があったわけではなく、趣味です。

ページデザインはまあ見ての通りゴリッゴリのbootstrapです。~~だってWebデザインとかわかんねぇし。。。~~

##開発上の課題
まだまだ開発途上のサービスなので色々課題が山積しています。

####テストコードをあんまり書いてない。
はい。すいません。ちょっと書いたけどまだRSpecの書き方がよくわかりません…
####要らないファイルがたくさん残ったまま。
はい。ごめんなさい。不要ファイルがいっぱいあることはわかっているんですが具体的にどれが不要なのかを認識していないんです。
####コードの書き方が変
実務経験もない大学生なので、もしこんな風に書くといいぞって箇所があったらIssueでもPull Requestでもいいのでお願いしますm(_ _)m

とまあ、他にも細かいところは色々あるんですが、それらすべて基本的に**「経験がない」**ことが一番の要因な気がします。Githubで先人たちの~~マサカリの投擲~~アドバイスを受け入れる準備はしてあるので何卒よろしくお願いします。。。

##今後の予定
- マイページや受け取りリストをpagenateする
- 前述の開発上の課題を片付ける

ですが私が卒業研究で多忙なのでかな～～り後回しになってしまいそうです。~~もし「俺がやってやるぜ～～」っていう神様がいましたらPull Requestよろしくお願いします。~~
また、NCMに対する意見や提案などはTwitter・Mastodon・GithubのIssueなどへぜひお寄せください。

#運用
Rails使っててGithubにソース公開してんのはわかったけどじゃあ運用どうしてんの？？っていう話です。

まあ、早い話が**AWS**を使ってます。や、あれは神サービスだよ。マジで。なんでもできる。~~（オタク特有の誇張表現）~~

実はサービスインから2か月くらいは「運用とかよくわからんしHerokuにおまかせ～～ｗ」ってヘラヘラしてたんですが、10月頃にたまたまGithub Education経由で$150分のAWSクレジットをもらったし、以前某氏に**「Herokuは甘え」**みたいなことを言われた気がしたので、一念発起してAWSに移行、11月1日からAWSで動いています。SSL/TLSの設定が一番面倒だったな…

アプリケーションサーバ自体はUnicornで、Nginxをリバースプロキシとして使っています。

といっても、EC2のt3.microインスタンスの中にRDBも建てちゃってるんでAWSを使いこなしているかと言われたらそうではないです（だってそっちの方が安いし…）
t3.nanoでも行けるんじゃないか？と思ってt3.nanoに変更して数日様子を見ています。ちょっとメモリが不足気味なのでmicroに戻すかも。

~~AWSで1か月運用してみて思ったんですけど、Heroku、高くね？~~
#おわりに
実はまともなWebアプリを作ったのはこれが初めてなんですが、めっちゃ勉強になりましたね。といってもまだまだ色々足りてませんけど。
自分は本とか読んで勉強~~した気になる~~するよりは実際にコード書いたりサーバ建てたりしながら勉強していくタイプなのでこれからも色々やっていこうかなと思ってます。~~内定蹴って修士進学するしね~~

以上、アイマスP向け名刺管理サービスを作った話でした。是非皆さんも有効活用してみてくださいね。
~~こんなあり得ん乱雑な文章を~~お読みいただきありがとうございました。

明日はDJ_MS2Kさんで
「シンデレラ6thの総括をしたかったけど名古屋不参加なのでメラドの感想と来年のアイマスについて」
です。
2019年も！アイマスですよ！アイマス！！！