You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A personal, fully-automated expense tracking system. Credit card and mobile payment transactions are captured automatically via Android notification interception and enriched with government e-invoice data — all surfaced through a Discord bot interface.
cd backend
pnpm install
pnpm dev # local dev via wrangler
pnpm test# vitest
pnpm run register-commands # register Discord slash commands
pnpm deploy # deploy to Cloudflare Workers
Required Secrets (wrangler secrets)
Secret
Description
DISCORD_PUBLIC_KEY
Ed25519 public key for interaction verification
DISCORD_BOT_TOKEN
Bot token for outbound Discord API calls
DISCORD_CHANNEL_ID
Target channel for push notifications
DISCORD_APPLICATION_ID
Application ID for follow-up messages
SUPABASE_URL
Supabase project URL
SUPABASE_SERVICE_ROLE_KEY
Supabase service role key
GEMINI_API_KEY
Gemini API key for NLP parsing
ANDROID_API_KEY
Static key for Android → Worker auth
Android
Open android/ in Android Studio. Set BASE_URL and API_KEY in local.properties or the app's network config, then build and install on your device. Grant notification access in system settings.
Design Principles
Single user — no auth layer, no user_id partitioning; Discord webhook signature verification is the security boundary
Serverless boundary compliance — all Discord interactions return type:5 (deferred) within 3 seconds; heavy work runs in ctx.waitUntil()
Offline-first on Android — every notification is written to Room DB before network; WorkManager retries until confirmed
Automation over manual input — the system is designed so that normal credit card spending requires zero manual action