Skip to content

Native SwiftUI app for viewing transparent bank accounts using Česká spořitelna’s public API. Built with clean MVVM architecture, async/await networking, and modern SwiftUI patterns.

Notifications You must be signed in to change notification settings

mustafos/TransparentAccountsApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

🏦 FinCheck – Transparent Accounts Viewer

FinCheck is a SwiftUI-based iOS app for browsing publicly available transparent bank accounts and their transactions using the official ČSAS public API.


📱 Features

  • 🔍 Browse a list of transparent accounts
  • 📋 View detailed account info: IBAN, bank code, balance, transparency periods
  • 💸 Explore transactions with direction, sender, counterparty, and description
  • 🔄 Pull-to-refresh and loading states
  • ⚠️ Error messages on failure (network/decoding)
  • 🧩 Logging with os_log

⚙️ Tech Stack

  • iOS 18.5
  • SwiftUI + MVVM
  • URLSession for networking
  • .xcconfig-based secret management
  • os_log for logging

🚀 Getting Started

  1. Clone this repository:
git clone https://github.com/mustafos/TransparentAccountsApp.git
  1. Open TransparentAccountsApp.xcodeproj in Xcode 15+

  2. Set up the API key:

  • Create a file Secrets.xcconfig at the root of the project:
touch Secrets.xcconfig
  • Add the following content:
CSAS_API_KEY = your-public-api-key
  • Example template:
# Secrets.xcconfig.example
CSAS_API_KEY = <# Insert your CSAS API key here #>
  • Ensure Info.plist (already included) contains:
<key>CSAS_API_KEY</key>
<string>$(CSAS_API_KEY)</string>

💡 Secrets.xcconfig.example is included as a reference.
Do not commit your actual Secrets.xcconfig — it's gitignored for security.

  1. Build and run the app.

🔐 API Info

Data is fetched from the official ČSAS Transparent Accounts API:
🔗 ERSTE Group


🧪 Preview

FinCheck App


📁 Project Structure

TransparentAccountsApp
├── Models/
│   ├── Transaction/
│   │   ├── Transaction.swift
│   │   └── Transaction+Equatable.swift
│   └── Account.swift
├── Services/
│   └── CSASService.swift
├── ViewModels/
│   ├── AccountListViewModel.swift
│   └── TransactionListViewModel.swift
├── Views/
│   ├── Account/
│   │   ├── AccountListView.swift
│   │   └── AccountDetailView.swift
│   ├── Transaction/
│   │   ├── TransactionListView.swift
│   │   └── TransactionDetailView.swift
│   └── Components/
│       ├── InfoRow.swift
│       └── TransactionListCellView.swift
├── Utils/
│   ├── CSASLog.swift
│   ├── Secrets.swift
│   └── Extensions/
│       ├── Date+Ext.swift
│       └── Transaction+Ext.swift
├── Assets.xcassets
├── Info.plist
├── Secrets.xcconfig
├── TransparentAccountsAppApp.swift
└── TransparentAccountsAppTests/
├── MockTransactions.json
└── TransactionListViewModelTests.swift

✅ To Do

  • Add search bar to filter accounts
  • Support Dark Mode
  • Add unit tests for CSASService
  • Refactor config/secret management via .xcconfig

© 2025 Mustafa Bekirov

About

Native SwiftUI app for viewing transparent bank accounts using Česká spořitelna’s public API. Built with clean MVVM architecture, async/await networking, and modern SwiftUI patterns.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages