桐生あんずです

日常やプログラミングについて書いています。

「Rulenote」というマイルールを投稿・共有できるサービスを公開した

これはClassi Advent Calender 2020 22日目の記事です。

qiita.com

前回は@yoko-yanさんの「iOSアプリのCI(CircleCI)を改善してみた話」でした。

桐生あんずです。今年の4月に新卒エンジニアとしてClassiに入社しました。アプリケーションのコードをいじりつつ最近はインフラのお仕事や監視業に関わったり社内の有志でCTFの問題を解いたりセキュリティ関係の大会に出たりしています。

 

今年の5〜7月頃に社内研修で作ったサービス「Rulenote」を本日からパブリック向けに公開した話について紹介していきます。

サービスの紹介

サービスのコンセプト

自分の身の回りには異様にこだわりの強い人やちょっと変わったルールを持った人がいるように思うことがありそんな様子を見ていると、人には何かしらのこだわりや習慣があってそれを投稿・共有できるプラットフォームがあると面白いのではと思い新卒研修のお題としてサービス化することにしました。

Rulenoteでできること

RulenoteのHELPページをそのまま抜粋すると以下のような感じです。 f:id:kiryuanzu:20201223184337p:plain

つまりは「ルールをカテゴリ付けして投稿する&共感したルールにいいねする」というシンプルな設計のサービスです。「最近はこういうことを習慣化してるな」と思ったり「これからはこの習慣を身につけていきたい」と思ったらサクッと投稿していきます。 f:id:kiryuanzu:20201223184356p:plain その後、蓄積されたルールを見ることで過去の自分や他人にはこんなこだわりがあったのか……と眺めることができたり、カテゴリごとのルールを眺めることでふとした生活の知恵を発掘できるのではないかという使い方も今後できるようになっていくと思われます。 f:id:kiryuanzu:20201223184523p:plain

夢がありませんか?ちょっとでも面白そうと思った方は投稿していただけると幸いです!!!!!!!!

技術的な話周りと今後の展望

以下のような構成でRulenoteは作られています。

アプリケーション構成

API側はRails・フロント側はAngularの構成です。Angularは入社前にほとんど書いたことがなかったのですが、社内ではフロントエンド側はAngularで書かれていることが多いのでこの機会にインプットしようと思いチャレンジしました。

インフラ構成

EC2 + ALB + RDS( Aurora サーバーレスのmysql5.6互換) 普通のRDSを個人で使おうとしたところ色々と高そうなことに気付いたのでAurora サーバーレスを選択しました。

実のところ、このサービスをパブリックに出すまでに一度社内の環境で本番環境を用意したのですが、VPCやsubnet周りの土台はすでに用意してもらっていて講義で概念を教えてもらったりコンソールで情報を見るだけで自分の手で作ることはまだなかった状況でした。今回はVPCを作成するところから始めたので改めておさらいすることができたように思います。 f:id:kiryuanzu:20201223185654p:plain 過去の記憶を喚び起こしながら必要なフローをざっくりと書き進めて作業をした図

ちょっと昔の記事ですが、以下の記事がAWSの概念周りが丁寧にドキュメント込みで紹介されていてわかりやすかったので助かりました。

stefafafan.hatenablog.com

雑な展望

作って満足だと悲しいので、以下のことはここ数ヶ月内で頑張ろうと思います。

  • 使ってもらえる人を増やす
    • 宣伝をTwitter・ブログ等でゆるゆるとやっていきます
  • CircleCIかGitHub Actionsでデプロイ周りを自動化させる
    • 自動化しないとだるすぎる・冬休みの宿題にします
  • 細かい機能の追加・修正
    • ここのUIもっとよくしろや的なコメントも大歓迎です。今日早速アドバイスをもらいました
  • ECS化しよう
    • 今回はコンソールを使ってEC2の環境を用意しましたが職場ではterraformが主流でECS化をバンバン行なっている状態なので波に乗りたい気持ちです
    • 会社の先輩が書いた最高環境構築情報です

そんな感じです。ありがとうございました。Rulenoteの活用情報をお待ちしております!!!

小ネタ

自分の作ったサービスをとにかく誰でもいいから褒めて欲しくて入院中の父親に共有しました。

(なんでおじさん構文なんですか?というツッコミがありそうなので説明しておくと、家族LINEでは全員がおじさん構文を使ってくる状況なので止むを得ずにおじさん構文を使っています) f:id:kiryuanzu:20201223194400j:plain