A business automation platform for reminders, scheduled jobs, notifications, and integrations — with Philippine credit card SOA workflows as the first module.
Track statement-of-account PDFs from Gmail, parse dues across multiple PH banks, send Telegram/Slack reminders, validate payment receipts with AI, and mark cards paid from the dashboard or bot. Built with Next.js 15, tRPC, Drizzle, Supabase, and Bun.
Features · Tech Stack · Project Structure · Routes
- Card CRUD — encrypted PDF passwords, recurring due day, per-card Gmail routing, bank issuer config
- SOA pipeline — Gmail fetch → PDF unlock/parse → summary PDF → Postgres upsert
- Bank parsers (PH) — Metrobank, RCBC, BPI, Unionbank; OCR fallback when PDF text is unusable
- Manual SOA upload — drag-and-drop PDF or image; auto-detects bank and statement period
- Period workspace — Overview, Transactions, and Analytics tabs per billing cycle
- Transaction categories — built-in labels, custom categories, keyword rules, AI categorization
- Due entries — minimum/total due, paid status, partial payments, multi-receipt sums
- Mark paid / unpaid — dashboard UI, Telegram webhook, receipt AI validation
- Scheduled reminders — default daily jobs for payment alerts and SOA Gmail checks
- Preventive due entries — fallback rows when the reminder window opens without a parsed SOA
- Google Calendar — optional due-date events per card cycle
- Multi-file upload — batch processing with live progress per detected card/bank
- Gemini / Groq vision — validates payment screenshots against due amounts
- Telegram bot — send receipt photos to mark cards paid from chat
- Month view — receipts grouped by SOA statement period
- Multi Google/Gmail accounts — link additional inboxes without switching sessions
- Telegram & Slack — outbound notifications and inbound mark-paid via webhook
- Automation jobs — cron-style scheduling with run history and manual trigger
- Supabase pg_cron + Vercel — daily dispatch for due jobs and SOA pipeline
- Overview — statement paid %, minimum met per card, attention list, spend summary
- Settings — integrations, AI API keys, transaction category rules
- Light / dark mode via
next-themes - Public
/landing — dashboard routes require Google sign-in
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router, Turbopack) |
| UI | React 19, Tailwind CSS 3, shadcn/ui |
| API | tRPC 11 + TanStack Query 5 |
| Database | Supabase Postgres + Drizzle ORM |
| Auth | NextAuth 5 — Google OAuth (Gmail + Calendar scopes) |
| Storage | Supabase Storage (SOA PDFs, receipts) |
| PDF / OCR | pdfjs-dist, qpdf-wasm, Tesseract.js, pdfkit |
| AI | Gemini / Groq (receipt validation, SOA extraction, transaction categorization) |
| Monorepo | Turborepo + Bun |
| Hosting | Vercel — kame-ops-web.vercel.app |
| Toasts | Sonner |
| Forms | React Hook Form + Zod |
apps/web/
src/app/ # Routes only (pages, layouts, API handlers)
src/features/dashboard/ # Feature modules
credit-cards/ # Card CRUD
soa/ # SOA periods, statements, analytics
reminders/ # Due entries, mark paid, automations
receipts/ # Upload + AI validation
integrations/ # Gmail, Telegram, Slack settings
settings/ # Profile, AI keys, category rules
overview/ # Dashboard home
src/server/
routers/ # tRPC routers
services/ # Business logic (SOA, reminders, receipts, …)
src/lib/soa/ # Gmail fetch, bank parsers, summary PDF
docs/ # Product and technical documentation
scripts/ # Local setup, Supabase bootstrap, CLI migration
.cursor/ # Cursor rules, skills, hooks, agents
| Route | Access | Description |
|---|---|---|
/ |
Public | Marketing landing |
/login |
Public | Google OAuth sign-in |
/dashboard |
Auth | Overview and mission panel |
/dashboard/credit-cards |
Auth | Manage cards |
/dashboard/soa |
Auth | SOA period list |
/dashboard/soa/[periodId] |
Auth | Period detail (Overview / Transactions / Analytics) |
/dashboard/reminders |
Auth | Due entries, mark paid, scheduled jobs |
/dashboard/receipts |
Auth | Receipt upload and validation |
/dashboard/settings |
Auth | Integrations, AI keys, category rules |
| Path | Purpose |
|---|---|
.cursorrules |
Main Cursor rules |
.cursor/rules/ |
Modular rules |
.cursor/skills/ |
Agent skills (/credit-cards, /integrations, …) |
docs/ |
Product and technical docs |
Private / personal use.
Built for operators who want reminders, SOA parsing, and payment tracking in one place — not scattered scripts and inbox tabs.