Bills Manager - 個人の支出管理を支援するTelegramボット

Web

概要

Bills Managerは、Telegram上で個人の請求書や支出を管理するためのボットのバックエンドを実装したリポジトリです。ユーザーはチャットを通じて支出の入力や確認ができ、そのデータはGoogle Sheetsに非同期で記録されます。システムは大きく2つの部分から構成されており、Javaで記述されたAWS Lambda関数がTelegramボットのインターフェースを担い、Go言語で書かれたAPIがRabbitMQを介してGoogle Sheetsへの書き込み処理を行います。これにより、スケーラブルかつリアルタイムに近い支出管理を実現しています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 2
  • ファイル数: 3
  • メインの言語: Java

主な特徴

  • Telegramユーザーと直接対話可能なJava製AWS Lambda関数によるボット実装
  • Google Sheetsとの連携をRabbitMQによる非同期メッセージングで実現
  • Go言語で書かれたAPIが支出データの処理・登録を担当
  • サーバーレス環境とマイクロサービスアーキテクチャの組み合わせによる柔軟な運用

技術的なポイント

Bills Managerは、個人の家計管理に特化したTelegramボットのバックエンドとして、サーバーレスかつ非同期処理を駆使したアーキテクチャを採用しています。フロントエンドとなるTelegramボットはJavaで開発され、AWS Lambda上で動作します。この設計により、インフラ管理の負荷を軽減し、利用量に応じて自動的にスケールするメリットがあります。Lambda関数はTelegramのWebhookからのリクエストを受け取り、ユーザーの入力を処理。支出の登録や照会などの対話をリアルタイムで実現します。

支出データの保存処理は直接LambdaからGoogle Sheetsに行うのではなく、RabbitMQメッセージキューを介して非同期に処理されます。これにより、APIの応答性を高めつつ、スケーラブルなデータ書き込みが可能となっています。RabbitMQはメッセージブローカーとして信頼性の高いキューイングを担い、メッセージの遅延や一時的な障害にも耐性があります。

メッセージキューからのデータ受信・Google Sheetsへの書き込み処理はGo言語で実装されたAPIが担当。Goの高い並行処理性能を活かし、多数のリクエストを効率的に処理できます。Google Sheets APIを使うことで、ユーザーはクラウド上でリアルタイムに支出情報を確認・分析でき、Excelなどの従来型ツールよりも柔軟かつ共有しやすい管理環境を実現しています。

これらの技術選択により、本プロジェクトはリアルタイム性、拡張性、運用効率のバランスを取った設計となっているのが特徴です。AWS LambdaとRabbitMQの組み合わせはサーバーレス環境における非同期処理の好例であり、Go言語のAPIは処理負荷の高い部分を担うことでシステム全体の性能向上に寄与しています。Telegramの親和性の高さも相まって、ユーザーは馴染みのあるチャットインターフェースで手軽に家計管理が可能です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: プロジェクトの概要と利用方法を記載
  • bills-manager-api: Go言語で実装された非同期処理APIのディレクトリ。RabbitMQからのメッセージ受信とGoogle Sheets連携を担当
  • bills-manager-bot: Javaで開発されたAWS Lambda上のTelegramボットロジック。ユーザーとの対話処理を行う

まとめ

Telegramとクラウド技術を融合した個人支出管理ボットの模範例。

リポジトリ情報: