家計簿アプリ作成シリーズの第91回です。前回、外部キー制約でアカウント削除時の関連データがまとめて消えるようにしましたが、カスケードで消えるのはD1のレコードだけで、R2に保存したレシート画像は残ったままでした。今回はそこに対応します。
家計簿アプリ作成シリーズの第87回です。お題59でVitestによるユニットテストを導入しましたが、あれはcalculateTotalsのような関数単体の検証でした。今回はPlaywrightを導入し、実際にブラウザを動かして「サインアップ …
家計簿アプリ作成シリーズの第85回です。これまでのCSVエクスポート/インポートは取引データのみが対象でしたが、今回はカテゴリ・予算・定期収支・テンプレートなどアプリの全データをJSON形式で一括バックアップ・リストアできる機能を実装しまし …
家計簿アプリ作成シリーズの第83回です。以前(お題63)のハイライト機能実装時に「全角/半角の違いまでは対応しない」と割り切っていた部分に、今回対応します。
家計簿アプリ作成シリーズの第81回です。前回はCloudflare Cron Triggersの基礎知識をまとめました。今回はSvelteKitプロジェクトにscheduledハンドラを組み込み、月次サマリーメールを実際に送信するまでの実装 …
家計簿アプリ作成シリーズの第78回です。月間の総予算を超えたときに、登録しているメールアドレス宛に通知メールを送る機能を追加します。
家計簿アプリ作成シリーズの第76回です。ここまで機能を積み上げてきましたが、キーボード操作やスクリーンリーダーでの使いやすさ(アクセシビリティ)はあまり意識してきませんでした。基本的な改善を行います。
家計簿アプリ作成シリーズの第74回です。前回スコープ外とした「編集画面での領収書の差し替え・削除」に対応します。
家計簿アプリ作成シリーズの第72回です。収支登録時に、レシートや領収書の写真をアップロードして取引に紐付けられるようにします。Cloudflare R2(オブジェクトストレージ)を使います。
家計簿アプリ作成シリーズの第71回です。家計簿アプリをスマートフォンのホーム画面に追加して、ネイティブアプリのように起動できるようにします。PWA(Progressive Web App)の基本的な対応です。