Built 100% native for iOS
Wallet Projector is written entirely in Swift: a native SwiftUI interface, with account, persistence and cloud sync powered by Supabase.
Data architecture
Six models synced with Supabase power all of the app's logic.
Account
An account or card. Groups its own expenses and calculates its outstanding balance up to a given payday.
Expense
An expense or deposit (negative amount). Supports splitting across several pay periods and links to deposits that settled it.
FixedPayment
A recurring per-period payment (rent, car, etc.) that can be skipped for specific periods.
ExtraIncome
Additional income that applies to a single pay period, including the surplus carried over automatically.
FixedIncome
A recurring income source in addition to salary, applied every pay period.
AppSettings
Salary, reference payday, privacy and language preferences, and the record of already-settled pay periods.
About this site
This showcase site is independent of the app: it doesn't reimplement its functionality, only documents it. It's built with ASP.NET MVC 5 (.NET Framework) in C# and Bootstrap 5.3, meant to be opened directly in Visual Studio 2022.