RaspberryPi3でローカルアプリ開発(K3s開発基盤運用)/家計簿アプリ編

きっかけ

新しい職場でアプリ基盤チームに配属されたのですが、Kubernetes触ったことないので、勉強用環境が欲しく動きました。

経験ないことは伝えているものの、技術に対して私は杞憂民なので、技術的負債(学習面)がかなり劣っていると感じると、理不尽にキレられないか不安に思うんです。

あとはエンジニアとして生きてて日常生活で役立てたい思いもあります。

たとえるならガンダムパイロットがコックピットの中で籠るようなもんです。

最初に何で家計簿アプリ?

お金を守る方法で家計簿をもともとつけてて、スプレッドシートとLineのアルバム機能で管理してました。

Lineのアルバムって100個しか作れない制約があってそれを家計簿証跡確認に使うの不快なので先に作るかと思った次第です。

スプレッドシートって表計算ソフトなので、自由に編集できる自由度から誤操作しやすい点もいまいちってずっと思ってました。

これら課題があってすぐに思いつきました。

LANなのでほとんどセキュアな印象、クラウドで管理なんだかなぁですからね。

家計簿でやりたいことは、個人の貯金ノルマがあって実現するために節約するか贅沢するかを判断する。私の家庭では稼ぎが振れ幅はあるけど基本は折半で考えている。苦労かけるけど、このあたりの問題意識の共有、これだけは自分の親のトラウマがあるので譲れない。稼ぎがあっても軽薄にお金を使うわけにはいかない。

夫婦で収入の格差がある対策で、収入格差金という免除額をなんとなくで決めている。多すぎると総合的な支出が増えていってしまうので、ここの加減は大事になる。3.9万これが今うちで一番の理想である。

ここまで話せは、背景見えると思うので次に行きます。

家計簿アプリ

アーキテクチャ

アプリ名:budget-app(家計簿アプリ)

コンテナ管理:軽量Kubernetes(K3s) コンテナってラズパイ内でアプリが起動できるだけのメモリとかCPUとかのリソースを切り分ける仕組みでアプリ単位で管理できて便利だよねってやつ そのコンテナを複数管理するためにKubernetesアプリがある ほかにもアプリ作る予定があるので、この運用にした次第です。 勉強で使うのもあるけど。

フロント技術:SvelteKit ※フロント公開はNode.js ブラウザから確認できるようにする CSSはTailwind

データベース:SQLite 家計簿用のデータを管理

ストレージ:TrueNAS 家計簿の根拠レシート画像を格納する場所

ソース管理:Github なんでもよかった、たまには使うかの気持ち

Webアプリ画面

UIに関して

  • 家計簿モードと領収書モードがある(レシートを領収書っていうのも気が引けるけど)
  • スプレッドシートみたいにタブで管理(多くなると見づらい?新しいものは左に残るので困らない?研究中)
  • 収入格差別について
  • ちなみにこんな感じで格差があると判断されたらいくら立替免除か設定できる

    ↓家計簿の根拠画像確認は以下の通り