Back to Projects

Bachelor's Kanakku (IN PROGRESS)

Financial Management • Full Stack • Architecture
Launch Live App (Demo)

Interactive Mobile Simulation • Treasurer Dashboard

The Pre-paid Pooled Fund Model (PFM). A solution to centralized liquidity with distributed equity, solving the "Hot Potato" problem of rotating treasurers and physical cash in shared living spaces.


1. The Core Shift: "The Hot Potato" Protocol

In traditional models, one person acts as the permanent "Bank". In our reality, the "Bank" is a role that passes from one member to another each month (e.g., Nandha Gopal in Oct -> Niranjan in Nov).

1.1 The "Handover" Challenge

When the month ends, the system orchestrates a three-step atomic transaction:

  • Digital Close: The ledger for the current month is finalized.
  • Physical Handover: The outgoing Treasurer must physically transfer the remaining cash (e.g., ₹4,261) to the incoming Treasurer.
  • Liability Shift: The system records the transfer of liability for the funds.
1.2 Dynamic Scalability
  • Variable Contribution: Monthly contributions can be adjusted (e.g., ₹1,500 in Oct -> ₹2,000 in Nov).
  • Member Churn: New members can join mid-stream without breaking historical data. The system recalculates the "Total Pot" dynamically.

2. Database Schema (Scalable)

The database decouples the Treasurer from the Group and attaches them to the Period (Month).

Table 1: flat_pools ("The Apartment")
id: UUID
name: "Flat 302"
current_period_id: UUID (FK)
Table 2: pool_members ("Dynamic List")
user_id: UUID
pool_id: UUID
status: ENUM('ACTIVE', 'LEFT')
joined_date: DATE
exit_date: DATE (Nullable)
Table 3: financial_periods ("The Month")
id, pool_id: UUID
month_name: "October 2025"
treasurer_id: UUID (FK -> Users)
contribution_amount: INTEGER
status: ENUM('OPEN', 'HANDOVER', 'CLOSED')
opening_balance: INTEGER
closing_balance: INTEGER

3. The "Handover" Algorithm

The logic orchestrating the "Month End" transition.

  • System sums all expenses.
  • Calculates Physical_Cash_Expected = Opening + Contributions - Expenses.
  • Treasurer confirms: "Yes, I have ₹5,082 in my hand."

  • Input Next Month's Rep.
  • Input Next Month's Contribution Amount.
  • Manage Member Changes (Add/Remove members).

  • System creates PENDING period for November.
  • Old Rep transfers cash to New Rep. New Rep clicks "Received".
  • Database Commit: Close October, Open November, Set Opening Balance, Generate Contribution Requests for new period.

4. Developer Task Highlights

Dynamic Period Creation
POST /api/periods/start

Creates ledger entries for new contributions immediately upon period start.

Member Onboarding (Prorated)

Logic to handle mid-month joiners:

Contribution = (Days_Remaining / Total_Days) * Base_Contribution

5. User Interface Concepts

The Vault Widget
CURRENT VAULT (NOV)

"Money is safe with Niranjan"

The Auditor Widget
Cash in Hand

₹ 5,082

Total Collected - Total Spent

"Visible to everyone to ensure transparency."