別財布夫婦を支える自作アプリ

前提

家計はざっくり以下のルールで運用している。

  1. 光熱費や固定費は按分
  2. 家族用の消耗品・嗜好品は折半

1.の支払いはすべて私が担当しており、按分した金額を毎月振り込んでもらっている。

2.の方は「夫婦のどちらがどれだけ支払っているか」を可視化するアプリを自作し、負担状況がお互いにわかるようにした。

自作アプリ1 Discordボット

家族用の Discord サーバーを作って利用しているため、以下の機能を持つ Discord ボットを自作した。

それぞれの機能は、Discord のスラッシュコマンドで呼び出せる。

スラッシュコマンド

Discord のスラッシュコマンドは引数を入力しやすくて好き。

自作アプリ2 Webアプリ

自作した Discord ボットは、一度のスラッシュコマンドで 1 つまでしか立て替え情報を入力できない。
複数の立て替え情報を入力するには何度もスラッシュコマンドを入力しなければならず、これが煩わしかったので作った。

Web アプリには Discord の ID でログインする(OAuth2)。
これは、先に作った Discord ボットで立て替え記録のユーザー識別のために、Discord のユーザーID を使っていたためである。
Discord へのログインに成功したらサーバー側で Discord のユーザーID やユーザー名を取得し、JWT でクライアントに返却するようにしている。

ログインボタン

以下はログイン後の画面。

ログイン後の画面

まとめ

自分や家族の役に立つものを作る、というのは実装意欲が湧き、新しいことを学ぶチャンスになってよい。

最初は全部 Rust で作ろうとしたけれど、一度作ってから Rust に書き換える方針にした。
そのうち Rust での実装を開始したい。

需要がなさそうだけれど、公開リポジトリにしようか検討中。