BaseMachina(ベースマキナ)を使って社内管理画面作ってます – ゼスト Tech Blog

弊社は、在宅医療・介護業界向けに訪問スケジュール管理を軸とした、経営を支え、伸ばすサービス群「ZEST」を開発・提供している会社です。

zest.jp

2025年に取り組んだものの1つに、basemachina(ベースマキナ)による社内管理画面構築があります。
本投稿では、その取組みを簡単に紹介したいと思います。

2024年にそれまでのシステムを刷新し、フルリニューアルリリースを行いました。
PJは1日でも早くリリースしたかったこともあり、自分たちがオペを頑張ればなんとかなる領域の機能開発については徹底的に削ぎ落とし、ユーザーの皆さまに提供する機能に全振りで開発プロジェクトを進めました。
リリース後は、手動オペレーション部分の機能開発に取り組みたいと思っていたものの、プロダクト側の優先度の高い開発が目白押しで、引き続き気合いで進めておりました。

しかしながら、ビジネスが拡大していく中での依頼数増加により、当番制を行ったりスプシ x GASを用意してなんとか工夫したりもしていましたが、段々と開発に集中して取り組むことが難しくなってきました。
また、手動オペレーションではいつか大きなミスを起こしてしまうリスクがありました。

そこで、

  • 開発チームに依頼しなくても、CSチームだけで完結できるように社内管理画面を提供したい
  • なるべくエンジニアリソースはプロダクトの価値向上に集中したいため、社内管理画面構築は少ない工数で実現したい

という観点からノーコード/ローコードツールによる社内管理画面構築を決めました。

いわゆるノーコード/ローコードプラットフォームで、WEBシステムの構築を実現できます。

about.basemachina.com

DBと接続してSQL実行によるデータ操作することもできますし、私たちが用意しているHTTPエンドポイント経由でデータ操作したりすることもできます。
必須チェックや数字の入力可能な範囲のチェックなどよく使うバリデーション類は設定だけで簡単に実現できます。
また、取得してきたデータの表示などは、簡単なJavaScriptで画面をカスタマイズしたり、Reactを使ったリッチな画面にしてみたり、最近では非エンジニアの人でも画面構築できるようにビジュアルエディター機能がリリースされていたりします。

なんでベースマキナ?

きっかけは、Xでフォローしていた方々が開発を行っていたり、導入してユーザーの立場だったりする人もいたりともともと認知しておりました。
トライアルを通じて、自分たちに必要な機能が一通りあること、サポート対応、価格面などで判断できました。

海外製ツールも多い領域ですが、以前に比べハードルは格段に下がっているとはいえ、日本語でキャッチアップできることはアドバンテージであると思います。

余談ですが、ドキュメントを以下のように提供していたりと、細かいところでエンジニア的に好きだな〜という点も。

about.basemachina.com

とある画面の一部を紹介するとこんな感じ。

契約いただいているお客様の会社情報を検索・表示し、例えばステータス変更をCSチームで行えるようにしています。
シンプルに、必要最低限という感じで作っています。それゆえ、短時間ですぐに機能を追加できます。

あとはちょっと細かいですが、本番環境切り替え時は赤色にして目立たせるようにしています。

画面の裏側の部分である、ZESTシステムとの接続については、BE側でAPIを提供し、ベースマキナはそのAPI経由でデータ操作を行うという構成にしました。
なお、私たちのシステムはGoogle Cloud上で稼働しています。
簡単に接続部分についても共有したいと思います。

事前準備(APIとの接続)

ベースマキナでは、インターナルなデータソースへアクセスするためにbridgeという機能を提供しています。

docs.basemachina.com

bridgeは認証機能付きのゲートウェイとして機能し、ベースマキナからインターナルなAPIへ安全にアクセスできます。

bridgeはコンテナイメージとして提供されているため、各クラウドサービスのCaaS(Container as a Service)を利用して簡単にデプロイできます。
Cloud Run上にbridgeを構築しています。

では設定方法についてご紹介します。ドキュメントのとおり、とても簡単です。

まず、ベースマキナの設定画面からネットワーク設定を開きます。「bridgeを自社のネットワーク内に設置する」をオンにすると「TENANT_ID」が表示されるので、メモしておきます。あとはホストにbridgeのURLを記載するだけで、ベースマキナ側の設定は完了です。

Cloud Run側ではコンテナイメージとして、ベースマキナが提供しているものを指定します。また環境変数として、先ほど確認した「TENANT_ID」を設定します。

その他にもTimeoutやIntervalなどを環境変数で設定できます。詳細はドキュメントをご確認ください。

なお、ベースマキナからのアクセスは固定IPを経由します。ゼストではこれを利用し、Cloud Runの前段にLoad BalancerとCloud Armorを配置して、bridgeへのアクセスにIP制限を設定しています。

最終的な構成図は下記のとおりです。

当初のねらいであった、エンジニア工数を少なく実現する部分は達成できたと考えています。
特にFEにかかる開発工数は、少しJavaScriptで整える程度でほぼゼロに近く、レビュー等の時間もほぼゼロに近く実現できています。

それもあって、一気に社内管理画面の機能が拡充しました。
手動オペもみるみる減っていき、開発に集中できる時間が増え、エンジニアの満足度も高い状況です。

また、ベースマキナではデータをCSVでExportしたり、CSVファイルをuploadして一括処理を行うようなことも簡単に行うことができます。
これにより、CS部門側で作業を一括で行いたいという要望にも対応できています。

優先度高く対応したいお客様がいるときなども、CSチーム側で判断して管理画面対応できるようになったため、開発チームに「忙しいところすみませんが、◯◯時までに対応お願いできるでしょうか🙇」みたいなSlackでのやりとりも減ってヘルシーだと思います。

以上、簡単な紹介ではありましたが、参考になれば幸いです。




元の記事を確認する

関連記事