Skip to content

Instantly share code, notes, and snippets.

@ahmmedrejowan
Created August 14, 2025 17:30
Show Gist options
  • Save ahmmedrejowan/2eb9e62eeaf8cdf15feee64647e95d1d to your computer and use it in GitHub Desktop.
Save ahmmedrejowan/2eb9e62eeaf8cdf15feee64647e95d1d to your computer and use it in GitHub Desktop.

Open Source Project Plan: Bank Info Management App

1. Executive Summary

1.1 Project Overview

This project involves the creation of a secure, open-source Android application designed to help users store and manage sensitive bank account information locally on their devices. The app will ensure that users can store critical banking details (e.g., account numbers, routing numbers, SWIFT codes, etc.) securely, with full encryption of all data and authentication using biometrics or PIN/password protection. The app will be ad-free, open-source, and available for free on GitHub, ensuring that users have full control over their data.

1.2 Purpose and Goals

The purpose of this project is to provide a privacy-focused solution to store bank-related information on mobile devices securely. Users will be able to:

  • Store sensitive banking details encrypted using strong encryption algorithms.
  • Access the app quickly and securely via biometric authentication or a PIN/password.
  • Back up their data securely and transfer it between devices without relying on cloud services.

The core goals include:

  • Implementing strong encryption for data storage.
  • Offering biometric and PIN-based authentication for easy access.
  • Ensuring the app is open-source, ad-free, and free to use.
  • Building a secure backup/transfer mechanism for data migration across devices.

1.3 Project Scope

  • Platform: Android (with potential for future expansion to iOS in the long-term).
  • Code Repository: The project will be hosted on GitHub as open-source, allowing the community to contribute and collaborate.
  • License: The project will be licensed under MIT License to encourage contributions and ensure it remains free and open.

2. Target Audience

2.1 Primary Audience

  • Tech-Savvy Individuals: People who are aware of privacy risks and are seeking a solution to securely store and manage sensitive information on their devices.
  • Professionals and Freelancers: Individuals who manage multiple bank accounts (personal, business, international) and require secure storage.
  • Digital Nomads & Expats: Individuals who maintain multiple accounts for different currencies and countries and need secure access to their data.

2.2 Secondary Audience

  • Privacy-Conscious Users: Individuals who prefer to keep their sensitive information off cloud-based services.
  • Android Users Seeking Privacy Solutions: Users who are looking for a simple, free, and open-source alternative to commercial password managers or other encrypted storage apps.

3. Features & Functional Requirements

3.1 Core Features

  • Encrypted Bank Info Storage: Secure storage of account information (e.g., account numbers, routing numbers, SWIFT codes) using AES-256-GCM encryption.

  • User Authentication:

    • Biometric Authentication: Support for fingerprint and face recognition.
    • PIN/Password Authentication: Optional PIN/password-based access to the app.
  • Auto-Lock: Automatically lock the app after a certain period of inactivity to protect sensitive information.

  • Re-authentication on Cold Start: Re-authenticate the user every time the app is restarted or brought back from the background.

  • Backup & Restore:

    • Encrypted backup files that users can export and import across devices.
    • QR code-based data transfer between devices for secure, local transfer of encrypted data.

3.2 Non-Core Features

  • Open Source & Community-Driven: All source code will be open-source and hosted on GitHub, allowing for public contributions, audits, and transparency.
  • Cross-Platform Support (Future): While the initial version will be for Android, future support for iOS could be considered using shared codebases like Kotlin Multiplatform.

3.3 Excluded Features

  • Cloud Sync: The app will not support cloud-based synchronization, ensuring complete privacy and data security by storing all data locally on the device.
  • Monetization: The app will remain ad-free, and there will be no paid features. It will be entirely free to use.
  • Platform-Specific Features: For now, the app will focus on Android. Features like deep integration with iOS APIs or support for Android-specific apps will be excluded in the initial version.

4. Technical Architecture

4.1 Tech Stack

  • Programming Language: Kotlin (official language for Android development).

  • UI Framework: Jetpack Compose, which provides a modern and declarative UI framework for Android.

  • Database: Room Database with optional integration of SQLCipher for encrypted database storage.

  • Authentication: BiometricPrompt API for biometric authentication (fingerprint/face recognition) and PIN/password for fallback.

  • Encryption: AES-256-GCM for encrypting sensitive bank data.

  • Backup:

    • QR Code Generation: ZXing library for secure QR code-based data transfer between devices.
    • AES Encrypted Backup File: Secure local file storage with AES encryption for backups.

4.2 Application Architecture

  • UI Layer: Jetpack Compose for the declarative UI, ensuring modern and consistent experiences across devices.

  • Data Layer:

    • Room Database for local storage of bank information.
    • Crypto Engine for AES-256 encryption of sensitive data.
  • Authentication Layer:

    • Biometric Authentication (via BiometricPrompt API).
    • PIN/Password Protection via local key derivation and storage in Keystore.

5. Roadmap & Milestones

5.1 Development Phases

Phase 1: Project Initialization & Basic Features

  • Week 1–2: Set up the project with Jetpack Compose, Room Database, and Kotlin Coroutines.
  • Week 3–4: Implement basic features for adding, updating, and deleting bank account details.
  • Week 5: Implement basic AES encryption and ensure secure local storage of encrypted data.

Phase 2: Security Features & Authentication

  • Week 6–7: Integrate Biometric Authentication (using BiometricPrompt API) for easier access.
  • Week 8: Implement PIN/Password authentication and key derivation using Android Keystore.

Phase 3: Backup & Transfer Mechanisms

  • Week 9–10: Develop encrypted backup files and restore functionality.
  • Week 11: Implement QR code transfer for secure migration of encrypted data between devices.

Phase 4: UI & Usability Enhancements

  • Week 12–13: Finalize UI with Jetpack Compose to ensure accessibility and ease of use.
  • Week 14: Test backup/restore flows and finalize all security aspects.

Phase 5: Testing, Deployment & Open Source Release

  • Week 15–16: Perform thorough testing (unit, integration, usability testing).
  • Week 17: Publish the app on GitHub as an open-source project, with complete documentation and a clear README file.
  • Ongoing: Regular updates, bug fixes, and community-driven contributions.

6. Open Source Contribution & Community Guidelines

6.1 GitHub Repository

  • The project will be hosted on GitHub with a public repository.
  • All development, issue tracking, and release management will be handled through GitHub.

6.2 Contribution Guidelines

  • Clear documentation on how to contribute to the project, including coding standards, pull request process, and testing requirements.
  • Community Reviews: Encourage active community participation in reviewing and suggesting new features, as well as bug fixes.

6.3 License

  • The app will be licensed under the MIT License, ensuring that anyone can freely use, modify, and distribute the software while maintaining transparency and openness.

7. Security & Privacy Considerations

7.1 Data Privacy

  • All sensitive bank information will be encrypted using AES-256-GCM and stored locally on the device. There will be no cloud storage involved, ensuring that users’ data remains private and under their control.

7.2 User Privacy

  • The app will be ad-free with no data collection or analytics, ensuring a 100% privacy-focused solution.

7.3 Security Audits

  • Open-source nature ensures that the app can be regularly reviewed and audited for security vulnerabilities by the community and third-party experts.

8. Conclusion

This Bank Info Management App will provide a highly secure, privacy-focused solution for individuals who need to manage their banking information securely. By being open-source, ad-free, and completely free to use, it ensures that users can trust the app with their most sensitive data while keeping full control over their information. The development will follow best practices in security and privacy, and the app will be a valuable tool for anyone who prioritizes keeping their data safe without relying on cloud services.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment