💰 Expense Tracking & Budget Control System

Multi-Tenant SaaS Platform — OOP Training Program
Any organisation can sign up, invite their team, set budgets, and track expenses — each in their own private workspace.
User Roles4
Subscription Plans3
Core Features10
Main Screens8

1. Purpose

Companies need a simple way to track employee expenses, set yearly spending budgets for each expense category, and get alerts before they overspend. This system serves multiple organisations at once — each organisation gets its own private workspace where only their team can see their data.

What Makes It Multi-Tenant?

A single running application serves many organisations at the same time. Each organisation's expense data, categories, budgets, and users are completely private. One company cannot see another company's data — even though they are all using the same system.

Example: TechCorp BD and Medicore Ltd both use the same Expense Tracker. TechCorp's employees can only see TechCorp's expenses. Medicore's team sees only their own. The system keeps them separate automatically.

2. Business Scenario

TechCorp BD is a software company with 8 employees. The company owner, Rahim Ahmed, signs up for the platform, chooses the Pro Plan, and creates the company workspace. He sets up five expense categories and a yearly budget for each. He then invites his team — some as regular Members who add their own expenses, and one senior as a Manager who can review the team's full spending.

Every time a team member spends money — a taxi ride, a team lunch, a software subscription — they open the app and record the expense. The system checks if the spending is close to or over the budget, and alerts the Admin and Manager if needed. At the end of each month, the Manager opens the Monthly Summary to see how much each category has been spent, and whether the team is on track.

Daily Operations

WhoWhat They Do Daily
Admin Rahim AhmedMonitors budget health on the dashboard, manages team members, handles billing
Manager Nusrat JahanReviews team expenses, approves over-budget entries, views monthly report
Member Fahmida, Tarek, Karim…Adds their own expenses; can only see their own history

Expense Categories (TechCorp BD)

CategoryMonthly BudgetLimit Type
Travel & Transport৳30,000Hard Limit
Meals & Entertainment৳25,000Soft Limit
Software Subscriptions৳40,000Soft Limit
Office Supplies৳20,000Soft Limit
Training & Courses৳35,000Soft Limit

Soft Limit vs Hard Limit

Limit TypeWhat Happens When Budget Is Exceeded
Soft Limit The expense is saved. The system marks it as "Over Budget" and sends an alert. No approval needed.
Hard Limit The expense is held. The member cannot complete the entry until a Manager or Admin approves it.

3. Users & Roles

The system has four types of users. Each organisation has its own set of users, separate from all other organisations.

RoleWho They AreWhat They Can DoWhat They Cannot Do
Super Admin The platform operator (not part of any organisation) View all organisations, manage subscription plans, monitor platform health Cannot see any organisation's expense data
Tenant Admin The organisation owner or IT lead Invite & remove users, set roles, create categories, set budgets, view all expenses, manage billing Cannot access other organisations' workspaces
Manager Team lead or finance officer View all team expenses, approve over-budget entries, view monthly report, add own expenses Cannot manage users or change billing plan
Member Regular employee Add, edit, and view their own expenses only Cannot see other members' expenses or reports
Note: One person can belong to multiple organisations with different roles in each. For example, a consultant might be a Manager in TechCorp BD and a Member in another company — using the same login.

4. Subscription Plans

Each organisation chooses a plan when they sign up. The plan determines how many users they can invite, how many expense categories they can create, and how far back they can see their history.

Free

Starter

$0 forever
  • Up to 3 users
  • Up to 10 categories
  • 6 months expense history
  • Basic monthly report
  • In-app notifications only
Enterprise

Enterprise

Custom pricing
  • Unlimited users
  • Unlimited categories
  • Full history + archive export
  • Custom reports & data export
  • Single sign-on (SSO)
  • Priority support

Plan Limits Enforced by the System

5. Core Features

🏢

Organisation Workspace

Each organisation gets a fully private workspace. Sign up, choose a plan, and your team's data is isolated from everyone else.

👥

Team Invitations

Admins invite team members by email and assign them a role. Invitation links expire after 48 hours. Accepted members can log in immediately.

🏷️

Expense Categories

Create named categories to organise expenses (Travel, Meals, Software, etc.). Categories can be deactivated without losing old expense history.

💸

Add Expense

Members record daily expenses with date, category, amount, and a short description. The system warns if the same expense looks like a duplicate.

📅

Yearly Budget Setup

Admin sets a budget for each expense category for the year. Only the current year's budget can be changed. Past year budgets are locked.

🚨

Budget Monitoring

The system checks every new expense against the category's budget. Alerts go out at 80% usage. Soft or Hard Limit rules apply at 100%.

Manager Approval

When a Hard Limit budget is exceeded, the entry waits for Manager or Admin approval. The Manager can approve or reject with a note.

📊

Monthly Summary

Managers and Admins see a full monthly report: total spent, budget vs actual per category, and which members spent what.

🔔

Notifications

In-app alerts for budget thresholds, over-budget entries, approval requests, and plan events. Each alert fires only once per period — no spam.

↩️

Adjustments & Corrections

If an expense was entered by mistake, the correction is recorded as a separate Adjustment Entry — the original record is never changed.

MVP Features (Build These First)

6. Main Screens — UI Mocks

6.1 Login Screen

Entry Point

Log in to Your Workspace

Example accounts: [email protected] (Admin)  |  [email protected] (Manager)  |  [email protected] (Member)

New Organisation? Sign Up

6.2 Organisation Onboarding

New Signup
✓ Create Account
2 · Set Up Organisation
3 · Choose Plan
4 · Invite Team

Step 2 — Set Up Your Organisation

Step 3 — Choose a Plan

StarterPro PopularEnterprise
PriceFree$49 / monthContact us
Users315Unlimited
Categories10UnlimitedUnlimited
History6 monthsFullFull + Archive

6.3 Dashboard

Admin View

TechCorp BD — June 2026 Overview

Team Spent৳86,400
Total Budget৳1,50,000
Team Members8 / 15
Pending Approvals2

Budget Health — All Categories

Travel & Transport৳32,100 / ৳30,000 — Over Budget
Meals & Entertainment৳20,400 / ৳25,000 — 82%
Software Subscriptions৳18,000 / ৳40,000 — 45%
Office Supplies৳9,400 / ৳20,000 — 47%
Training & Courses৳6,500 / ৳35,000 — 19%

Recent Expenses (All Team)

DateMemberCategoryDescriptionAmountStatus
15 JunFahmidaTravelTaxi to client — Gulshan৳1,200Pending Approval
12 JunTarekMealsTeam lunch৳3,800Saved
10 JunKarimSoftwareGitHub Pro৳1,500Saved

6.4 Add Expense Screen

Member View

Add New Expense — Fahmida Akter · TechCorp BD

Budget Impact: Travel & Transport is already over its ৳30,000 budget (currently ৳32,100). This category has a Hard Limit — this entry will need Manager or Admin approval before it is saved.
ℹ As a Member, you can only view and edit your own expenses. Your Manager can see all team expenses.

6.5 Manage Team Screen

Admin Only

Invite a New Team Member

Plan: Pro — 8 of 15 seats used. You can invite 7 more members.

Current Team — TechCorp BD

NameEmailRoleStatusAction
Rahim Ahmed[email protected]AdminActive
Nusrat Jahan[email protected]ManagerActive
Fahmida Akter[email protected]MemberActive
Karim Hasan[email protected]MemberInvited

6.6 Budget Setup Screen

Admin Only

Set Yearly Budget — 2026

One budget per category per year. Budgets for previous years are locked and cannot be changed. Categories without a budget are treated as Unlimited — no alerts will fire for them.

CategoryBudget Amount (৳)Limit TypeStatus
Travel & Transport Set
Meals & Entertainment Set
Software Subscriptions Set
Office Supplies Set
Entertainment Unlimited

6.7 Monthly Summary Screen

Manager & Admin

June 2026 — All Team

Total Spent৳86,400
Total Budget৳1,50,000
Remaining৳63,600
Over Budget1 category
CategoryBudgetSpentRemainingStatus
Travel & Transport৳30,000৳32,100−৳2,100 Over Budget
Meals & Entertainment৳25,000৳20,400৳4,600 82% Used
Software Subscriptions৳40,000৳18,000৳22,000 On Track
Office Supplies৳20,000৳9,400৳10,600 On Track
Training & Courses৳35,000৳6,500৳28,500 On Track

6.8 Notifications Screen

All Roles

Recent Alerts — TechCorp BD

🔴 Approval Required — Travel & Transport

Fahmida Akter submitted ৳1,200 (Taxi — Gulshan). Travel is a Hard Limit category and is already over budget. Manager or Admin must approve.

🔴 Travel & Transport — Over Budget

Team spending ৳32,100 exceeds the ৳30,000 Hard Limit budget (107%). Two entries are now waiting for approval.

⚠ Meals & Entertainment — 80% Alert

Team has spent ৳20,400 of the ৳25,000 budget (82%). This alert will not repeat until next month.

👤 New Member Joined

Fahmida Akter accepted the invitation and joined TechCorp BD as a Member.

📦 Team Seats — 8 of 15 Used

Your Pro plan allows 15 users. You have 8 active members. 7 seats remaining before you need to upgrade.

7. System Flows

Flow 1: Organisation Sign Up

1. Owner opens the website and clicks "Create Workspace".

2. Owner enters organisation name, email, and password.

3. System creates the organisation's private workspace.

4. Owner chooses a subscription plan (Starter / Pro / Enterprise).

5. Owner is automatically set as the Tenant Admin.

6. Onboarding wizard guides the owner: Create categories → Set budgets → Invite team.

7. Workspace is ready. Team members receive invitation emails.

Flow 2: Add an Expense (Member)

1. Member logs in and opens the Add Expense screen.

2. Member selects date, category, enters amount and a short description.

3. System checks: amount must be positive; date cannot be in the future.

4. System checks for a duplicate entry (same date, amount, category, and description).

5. If duplicate found: system shows a warning. Member can still choose to save.

6. System checks the category's budget.

7a. Soft Limit: Expense is saved. If over budget, it is marked "Over Budget" and an alert is sent.

7b. Hard Limit exceeded: Expense is held as "Pending Approval". Manager/Admin is notified.

8. Member sees a confirmation or a "Waiting for Approval" message.

Flow 3: Over-Budget Approval (Manager)

1. Manager opens the Notifications screen and sees an approval request.

2. Manager clicks "Review & Approve" to see the expense details and current budget status.

3a. If approved: Manager clicks Approve (optionally adds a note). Expense is saved. Member is notified.

3b. If rejected: Manager clicks Reject and enters a reason. Expense is discarded. Member is notified with the reason.

Flow 4: Invite a Team Member (Admin)

1. Admin opens the Manage Team screen.

2. System checks if the team has reached the plan's user limit.

3. If limit reached: system shows an upgrade prompt. Invitation is blocked.

4. Admin enters the new member's email and selects their role.

5. System sends an invitation email. The link expires in 48 hours.

6. Member clicks the link, sets a password, and joins the workspace.

7. Admin sees the member's status change from "Invited" to "Active".

Cancellation / Correction Flow

1. Member or Admin identifies an expense that was entered incorrectly (e.g. a refund was received).

2. They open the Adjustment screen and link to the original expense.

3. They enter the correction amount and a reason.

4. System saves the Adjustment Entry. The original expense record is never changed.

5. The monthly report reflects the adjustment correctly. Negative amounts never appear anywhere.

8. Important Business Rules

Expense Entry Rules

Budget Rules

Expense Category Rules

Overspending Rules

Organisation & Workspace Rules

Notification Rules

9. Example Report Data

Monthly Summary Report — TechCorp BD, June 2026

CategoryBudget (৳)Spent (৳)Remaining (৳)Status
Travel & Transport30,00032,100−2,100Over Budget
Meals & Entertainment25,00020,4004,60082%
Software Subscriptions40,00018,00022,000On Track
Office Supplies20,0009,40010,600On Track
Training & Courses35,0006,50028,500On Track
TOTAL1,50,00086,40063,600

Member-Wise Spending — June 2026 (Manager View)

MemberRoleTotal ExpensesNumber of Entries
Rahim AhmedAdmin৳12,4008
Nusrat JahanManager৳18,20011
Fahmida AkterMember৳22,10014
Tarek MahmudMember৳19,80012
Others (4 members)৳13,90022
TOTAL৳86,40067 entries

Super Admin — Platform Overview

OrganisationPlanUsersStatusJoined
TechCorp BDPro8 / 15Active01 Jun 2026
Medicore LtdStarter3 / 3Plan Limit Reached14 May 2026
NovaSoft IncEnterprise47 / ∞Active10 Apr 2026
GreenLeaf CoStarter2 / 3Active20 Jun 2026

10. Technical Specification

You can use any programming language you want.

You can use any database — or even an in-memory data store for the first version.

The project can be a console, desktop, or web application.

Focus on the object design: how are Organisations, Users, Expense Categories, Expenses, and Budgets represented as classes, and how do the business rules connect them?

Suggested build order: Start with a single organisation (no multi-tenancy yet). Get expense entry, category management, and budget alerts working first. Once that works, add a second organisation and enforce data separation between the two. Add subscription plan limits last.

11. Advanced Topics — For Discussion

The three questions below are not part of the MVP. They are discussion topics for when the system grows into a large-scale SaaS product serving thousands of organisations and millions of daily expense entries. Think about them from a business and product perspective — not just a technical one.

US-20 — How to Make the Daily Expense Report Load Faster?

The Problem: When TechCorp BD has 8 employees adding a few expenses each day, the Monthly Summary loads in under a second. But when the platform grows to 10,000 organisations — each with hundreds of employees adding expenses every day — that same report could take over a minute to load. That is not acceptable for a SaaS product. The goal is to bring it down to 3 to 5 seconds.

Why does it get slow? Every time someone opens the Monthly Summary, the system currently reads every single expense entry for that month and adds them all up on the spot. With a small team this is fine. With millions of entries across thousands of organisations, it becomes very slow.

Discussion: What Can Be Done?

IdeaHow It Helps (in plain terms)
Pre-calculate daily totals in the background Instead of adding up all expenses every time a report is opened, the system quietly runs a background job at the end of each day and stores the day's total per category. When someone opens the report, it reads the pre-stored totals instead of scanning millions of rows from scratch.
Think of it like a bank balance: your bank does not add up every transaction from day one every time you check your balance — it keeps a running total and just updates it.
Save a snapshot of each month's report Once a month has ended, its report numbers will never change. The system can save a permanent copy of the finished monthly report. Future requests for that month just read the saved copy — no calculations needed at all.
Cache recent reports temporarily If 50 people in the same organisation all open the June report in the same hour, the system should not recalculate it 50 times. It calculates once, saves the result briefly, and serves the saved result to everyone else who asks for it in the same window.
Discussion question: If you pre-calculate and store daily totals, what happens when a Manager approves a pending expense that was submitted three days ago? How does the stored total get corrected?

US-21 — How to Use AI/ML for Smarter Duplicate Detection?

The Problem: The current system only catches exact duplicates — the same date, amount, category, and description must all match. But in real life, the same expense can be entered twice with slightly different wording. A human can spot this instantly; the current system cannot.

Examples the Current System Misses

First EntrySecond EntryAre They the Same?
Travel · ৳1,200 · "Taxi to Gulshan" Travel · ৳1,200 · "Cab to client office Gulshan" Probably yes
Meals · ৳3,800 · "Team lunch" Meals · ৳3,800 · "Lunch — team meeting" Probably yes
Software · ৳1,500 · "GitHub Pro subscription" Software · ৳1,500 · "GitHub monthly fee" Very likely yes
Travel · ৳1,200 · "Taxi to Gulshan" Travel · ৳1,200 · "Taxi to Mirpur" Probably no — different destination

How Could AI Help?

An AI system can be trained to read the description of a new expense and compare it to recent entries for the same user. If the descriptions are similar in meaning — even if the exact words are different — the AI can flag it as a possible duplicate and ask the member to confirm before saving.

The AI does not block the entry. It suggests: "This looks similar to an entry you saved on 14 June. Are you sure this is a different expense?" — and the member can confirm or cancel.

Discussion question: The AI will sometimes be wrong — it might flag two different expenses as duplicates when they are not. What is the cost of a false warning vs. a missed duplicate? How confident should the AI need to be before it shows a warning?

US-22 — AI-Based Chatbot for Report Queries

The Idea: Instead of navigating through multiple screens to find a number, a Manager or Admin can simply type a question in plain language and get an instant answer — without opening a single report screen.

Example Questions the Chatbot Could Answer

Question (typed by user)What the chatbot finds and shows
"What did we spend the most on last quarter?" Travel & Transport — ৳98,400 (Q2 2026)
"Which team member has the highest expenses this month?" Fahmida Akter — ৳22,100 across 14 entries in June 2026
"Are we going to go over our Meals budget this month?" At current pace, you will reach ৳26,400 against a ৳25,000 budget by month end.
"Show me all travel expenses above ৳2,000 in May." Lists the matching entries directly in the chat
"How does this month compare to last month?" June ৳86,400 vs May ৳74,200 — 16% higher this month. Biggest increase: Travel.

Who Benefits and How

RoleHow the Chatbot Helps Them
Admin Get a quick budget health check without opening the report screen. Ask "are we on track?" at any time.
Manager Compare member spending, spot patterns, and answer questions from team members without manually digging through data.
Member Ask "how much budget is left in Travel this month?" and get an instant answer — scoped only to their own data.
Important rule: The chatbot must respect the same access rules as the rest of the system. A Member asking "what did the whole team spend?" must get the same response as if they had tried to open the Monthly Summary screen — access denied.
Discussion question: The chatbot only has access to this organisation's data. How do you make sure it cannot accidentally answer a question using another organisation's numbers?