muhiddin@grimoire:~$ cat ./apps/aile-cuzdanim/README.md

Aile Cüzdanım_

Finance · Android · iOS

Family finances in one app.

A family finance platform I built end to end, from the mobile app to the server. It brings family members together in a shared budget with income and expense tracking, category budgets and automated payments, and values gold, currency and crypto holdings at live prices.

platform
Android · iOS
developer
Muhiddin İlhan
backend
Express + MongoDB
Aile Cüzdanım home screen

## how it works

  1. 01

    Create your family

    Sign up, create a family and invite your partner and other members.

  2. 02

    Log income & expenses

    Record transactions by category, person and account, and define recurring payments once.

  3. 03

    Add your assets

    Bank accounts, cards, gold, currencies, stocks and crypto in one place, at current prices.

  4. 04

    Track your budget

    Category budgets, monthly reports and reminders keep the whole family on the same page.

## features

Shared family wallet

Several people see and manage the same accounts, cards and transactions.

Category budgets

Monthly or weekly budgets with spent and remaining amounts shown live.

Recurring payments

Rent, subscriptions and bills are posted by the server on their due date or queued for approval.

Gold, FX & assets

Gold, currency, stock and crypto holdings are revalued automatically at market prices.

Reminders

Notifications for card due dates, debts and recurring payments.

Home screen widgets

“Budgets” and “Quick Add” widgets open the app straight on the right screen.

## screens

Aile Cüzdanım – Home
Home
Aile Cüzdanım – Transactions
Transactions
Aile Cüzdanım – Reports
Reports
Aile Cüzdanım – Assets
Assets
Aile Cüzdanım – Budgets
Budgets

## technical details

tech stack

FlutterExpress.jsAPIMongoDBAIAndroidiOSGitHubCI/CD

challenge

Running recurring payments, reminders and price updates while the app is closed.

solution

The server runs an in-process scheduler: recurring payments hourly, reminders every 10 minutes, prices every 30, and runs never overlap. Push goes through FCM, and a log collection prevents duplicate reminders.

challenge

Live gold and FX prices without a paid market-data API.

solution

Prices are read and parsed from a public source, differing gold names are resolved through an alias map, and results are saved with a bulk update.

challenge

Feeding native Android widgets from Flutter and handling widget taps.

solution

home_widget pushes data to Kotlin widget providers. Deep links are held until the user is signed in, then handled.