Fadal — Home Open for projects
ID Work with me
All projects

EPS. 03 AI & automation

FinTrack AI — Digital Finance System for a Small Business

A web-based finance system for Acacia Water, a water-gallon and gas agent; bank and e-wallet transactions log themselves through Gmail, receipts just need a photo, and it all adds up on a dashboard you can question with an AI assistant.

Role
Full-Stack Developer & AI Automation
Period
1–2 months
Tools
  • Next.js
  • TypeScript
  • Tailwind CSS
  • Supabase
  • pgvector
  • n8n
  • Groq API
  • Telegram Bot API
  • Gmail API
A FinTrack AI poster, a digital finance system for small businesses. The left side has a short description, the Full-Stack Developer & AI Automation role, the tech stack (Next.js, TypeScript, Tailwind CSS, Supabase, pgvector, n8n, Groq API, Telegram Bot API, Gmail API), and the tagline "Helping small businesses manage their finances more easily with AI and automation"; the right shows a laptop with the AI assistant page and a login card. The account email is blurred.

The challenge

Acacia Water is a small business selling water gallons and gas, with transactions every day, all of them recorded by hand. To keep track of income, expenses, and overall financial health, every transaction has to be recorded neatly, yet they come from all over: shopping receipts, transfer notifications from banks and e-wallets, and quick notes sent by chat. The business needed one place to hold it all.

My role

I built the system from start to finish: gathering requirements, designing the database and data flow, building the website with Next.js, TypeScript, and Supabase, creating three automation workflows in n8n, adding a RAG-based AI assistant, deploying to Vercel, and testing it all.

Process

The work took 1–2 months and followed the SDLC stages: planning, requirements analysis, design, implementation, testing, and evaluation. My main rule: every channel can have its own way in, but the data must end up in one database in the same format, so the dashboard and the AI assistant read from the same source.

Solution

  • Most automatic of all, from bank & e-wallet straight to the dashboard: every income or expense notification email from a bank or e-wallet that lands in Gmail is read by an n8n workflow, turned into a transaction, and logged on the dashboard by itself. The owner doesn’t have to record anything.
  • Five ways in: a form on the website (voice input works too), a Telegram bot, bank & e-wallet notification emails in Gmail, receipt photo uploads, and CSV import. Transactions can be exported as well.
  • Log from anywhere with Telegram on your phone: no laptop or notebook needed; the bot understands text, photos, and voice. Text messages are read by an LLM, receipt photos by a vision LLM, and voice notes are transcribed first with Whisper. Every AI call has a fallback that kicks in automatically when the main call fails or hits a rate limit, and a Telegram account must be linked to a website account first.
  • Three n8n workflows: Receipt OCR reads receipts uploaded on the website, Telegram Bot processes messages from Telegram, and Gmail Parser reads notification emails from banks and e-wallets.
  • A RAG-based AI assistant: the full transaction history is indexed with pgvector embeddings, so questions like “how much did I spend this month?” or “which category is the biggest?” are answered from the user’s own data. The assistant can also log transactions straight from the conversation: by text, receipt photo, voice, or even a bank statement PDF or CSV file.
  • Semantic search on the transactions page: the search box understands everyday queries like “pengeluaran > 100k” (expenses over 100k), no need to set filters one by one.
  • Dashboard & analytics: net balance, this month’s income and expenses, saving rate, and an analytics page.
  • Budgets & savings goals: monthly budgets per category to keep spending in check, and savings goals you can track right in the app.
  • Data kept safe per account: Row Level Security is on for every table, so each account only ever sees its own data. The only path that bypasses it is the n8n webhook, which is guarded by a secret header.
  • Pleasant to use: a bilingual interface (Indonesian/English) with light and dark themes.

Results

Before and after FinTrack AI:

Task Before (manual) After (FinTrack AI)
Bank & e-wallet transactions Copied by hand from each notification Logged by themselves from the notification email: 0 manual input
Purchases with a receipt Writing the date, amount, merchant, and category one by one Send 1 receipt photo, message, or voice note; 5 fields fill in automatically
Where you can log Only when the notes are at hand Anywhere, via Telegram on your phone
Transaction sources Scattered across receipts, emails, and chats 5 channels flowing into 1 database
Categories Picked by hand Assigned by AI
Monthly recap Calculated by hand Balance, income, expenses, and saving rate calculated on the dashboard
Finding information Digging through old notes Asking the AI assistant, or typing “pengeluaran > 100k” into the search box
  • Passed black-box testing on the website features, transaction channel integrations, the RAG chatbot, and a range of browsers and devices: everything worked as required.
  • Acacia Water’s bookkeeping and financial monitoring now live in one central system, more practical and better structured.

Lessons

Building many ways in taught me the value of one shared data format: once text, photos, voice, and email all become the same kind of transaction, the dashboard and the AI assistant only need to read one source. I also learned that AI services can’t be assumed to always be available, so every call needs a fallback and a clear failure message for the user. Finally, an AI assistant feels far more useful when its answers are grounded in the user’s own data through RAG, not just general knowledge.

TV remote

Keyboard shortcuts for getting around this site.

1 – 5
Jump to channel 1–5
0
Back to the main broadcast (top)
T
Switch light / night theme
M
Turn motion on / off
S
Turn sound on / off
?
Open / close this remote