گزارش تولید‌شده توسط Antigravity

معرفی جامع و فنی پروژه رقمی

یک اپلیکیشن بومی اندرویدی، آفلاین و بسیار امن برای نگهداری، دسته‌بندی و به‌اشتراک‌گذاری بصری اطلاعات حساب‌ها و کارت‌های بانکی.

رقمی · Raqamiنام پروژه
۲۳ خرداد ۱۴۰۵تاریخ شروع
Android 8.0+سکوی هدف
هسته اصلی کاملوضعیت فعلی
۰۱

نمای کلی پروژه

عنواناطلاعات
تاریخ شروع پروژه۲۳ خرداد ۱۴۰۵ (برابر با ۱۲ ژوئن ۲۰۲۶ میلادی، بر اساس نخستین commit در Git)
سکوی هدفسیستم‌عامل اندروید — موبایل و تبلت با اندروید ۸.۰ به بالا
وضعیت فعلیهسته اصلی و قابلیت‌های محوری پیاده‌سازی و با تست‌های بیلد اعتبارسنجی شده‌اند

فناوری‌ها، ابزارها و کتابخانه‌ها

زبان و سکو
  • Kotlin v2.0.21
  • compileSdk / targetSdk 35
  • minSdk 26
UI و معماری
  • Jetpack Compose + Material 3
  • Gradle Kotlin DSL
  • Hilt 2.51.1
داده و امنیت
  • Room (DB v9) + KSP
  • Security-Crypto + Keystore
  • Coroutines / StateFlow
ZXing 3.5.3 — تولید QR Coil Compose 2.6.0 — تصاویر PdfDocument — خروجی PDF MediaStore + FileProvider
۰۲

معرفی کوتاه

«رقمی» یک اپلیکیشن بومی اندرویدی، آفلاین و بسیار امن است که برای نگهداری، دسته‌بندی و به اشتراک‌گذاری بصری اطلاعات حساب‌ها و کارت‌های بانکی کاربران طراحی شده است. این اپلیکیشن به کاربران امکان می‌دهد اطلاعات کارت‌های مختلف خود را در قالب کارت‌های بانکی شبیه‌سازی‌شده با طراحی‌های مدرن و چشم‌نواز ثبت کنند و در زمان نیاز، مشخصات پرداخت خود را به سرعت در قالب عکس، سند PDF یا بارکد QR برای دیگران ارسال نمایند.

نکته بسیار مهم: رقمی یک برنامه بانکی، کیف پول الکترونیکی، درگاه پرداخت یا نرم‌افزار واسط انتقال وجه نیست. این برنامه هیچ‌گونه ارتباطی با شبکه بانکی ندارد و صرفاً اطلاعاتی را مدیریت می‌کند که خود کاربر در حافظه داخلی دستگاه ثبت کرده است.
۰۳

هدف پروژه

در حال حاضر، اکثر افراد برای نگهداری یا ارسال اطلاعات کارت‌ها و حساب‌های خود از روش‌های غیرمنظم و ناامن استفاده می‌کنند؛ از جمله ذخیره مشخصات در برنامه‌های یادداشت‌برداری، فرستادن اطلاعات در شبکه‌های اجتماعی برای خود یا نگهداری اسکرین‌شات‌های نامنظم از کارت‌ها در گالری گوشی.

سازمان‌دهی یکپارچه

تجمیع تمام اطلاعات حساب‌ها و کارت‌های بانکی در یک محیط متمرکز و به شدت منظم.

ارائه بصری زیبا

نمایش کارت‌ها به صورت گرافیکی و شبیه به کارت فیزیکی با امکان تغییر پویای رنگ و بذر طراحی.

اشتراک‌گذاری آسان و سریع

حذف نیاز به تایپ دستی و جلوگیری از اشتباه در کپی شماره‌ها با خروجی‌های آماده تصویری و متنی.

حریم خصوصی مطلق

تضمین عدم انتقال داده‌ها به سرورهای خارجی با کارکرد کاملاً آفلاین و امن‌سازی محلی اطلاعات.

۰۴

کاربران هدف

  • افرادی که کارت‌ها و حساب‌های متعددی در بانک‌های مختلف دارند و می‌خواهند همه آن‌ها را در یک جا مدیریت کنند.
  • کسب‌وکارهای کوچک، فریلنسرها و افرادی که نیاز دارند اطلاعات حساب خود را در قالب‌های تمیز و حرفه‌ای برای مشتریان ارسال کنند.
  • کاربرانی که به شدت روی امنیت اطلاعات شخصی و مالی خود حساس هستند و نمی‌خواهند اطلاعات کارت‌هایشان روی سرورهای ابری ذخیره شود.
  • افرادی که نیاز دارند کارت‌های بانکی خود را بر اساس زمینه‌های مختلف زندگی (شخصی، خانوادگی، کاری یا تجاری) تفکیک و فیلتر کنند.
۰۵

قابلیت‌های اصلی

۵.۱ امنیت و حفاظت از ورود

  • ثبت رمز عبور عددی: راه‌اندازی اولیه اجباری با تعریف رمز عبور ۶ رقمی.
  • ورود بیومتریک: استفاده از حسگر اثر انگشت یا تشخیص چهره با امکان فعال/غیرفعال‌سازی.
  • قفل خودکار: قفل آنی یا پس از بازه‌های زمانی معین (بلاواسطه، ۱، ۵، ۱۵ دقیقه یا هرگز).
  • محدودیت دفعات ورود ناموفق: محدودسازی پس از ۱۰ تلاش ناموفق و انتظار ۳۰ ثانیه‌ای در برابر Brute Force.

۵.۲ مدیریت کارت‌ها و حساب‌ها

  • افزودن و ویرایش کارت با پیش‌نمایش زنده
  • تکثیر کارت (Duplicate) سریع
  • سنجاق کردن حداکثر ۵ کارت مهم در صدر داشبورد
  • جستجو و فیلتر پیشرفته + ثبت نام دلخواه (Nickname)

۵.۳ مدیریت اطلاعات پایه

بخشتوضیح
کشورهافهرست سیستم‌محور شامل ۲۰ کشور (ایران و امارات) با تنظیمات اختصاصی طول و الزامات شبا
بانک‌هالیست اولیه ۲۰ بانک پیش‌فرض، افزودن بانک سفارشی، بارگذاری لوگو و رنگ برند
دسته‌بندی‌هاپیش‌فرض: شخصی، خانوادگی، کاری، دوستان، تجاری، متفرقه + امکان تعریف دسته جدید

۵.۴ خروجی‌گیری و اشتراک‌گذاری

  • خروجی تصویر PNG: روی کارت، پشت کارت یا هر دو سمت، در گالری دستگاه
  • خروجی PDF: سند A4 شامل تصویر کارت، نام صاحب حساب و بند سلب مسئولیت
  • اشتراک‌گذاری سریع (Quick Share): ارسال مستقیم بدون باز کردن جزئیات کارت

۵.۵ پشتیبان‌گیری و بازیابی

  • پشتیبان‌گیری رمزگذاری‌شده محلی در قالب فایل .rqbk با پروتکل AES-GCM
  • بازیابی امن با تایید رمز عبور و ایجاد نسخه پشتیبان خودکار پیش از اِعمال نهایی
۰۶

نحوه کارکرد اپلیکیشن

جریان استفاده اولیه (Onboarding)

۱
انتخاب زبان واسط کاربری (فارسی یا انگلیسی)
۲
سلب مسئولیت — اسکرول اجباری بیانیه حقوقی برنامه
۳
تعیین رمز ورود ۶ رقمی و تایید مجدد آن
۴
پیشنهاد اختیاری فعال‌سازی بیومتریک

داشبورد و تعاملات اصلی

پس از ورود، کاربر وارد داشبورد اصلی می‌شود. در این بخش کارت‌های ثبت‌شده نمایش داده می‌شوند. کاربر می‌تواند با ضربه روی منوی سه نقطه هر کارت به گزینه‌های مشاهده، کپی اطلاعات به حافظه موقت، ویرایش، تکثیر یا حذف دسترسی داشته باشد.

منطق تجاری مهم در کد

  • اعتبارسنجی شماره شبا: الگوریتم MOD-97 هماهنگ با کدهای ISO کشورها؛ برای ایران، شبای ۲۶ کاراکتری اجباری است.
  • تشخیص هوشمند شبکه کارت: شناسایی پیشوندهای ویزا و مسترکارت و نمایش لوگوی متناظر.
  • عدم تعارض داده‌ها: جلوگیری از رکوردهای تکراری برای مشخصات کلیدی (مانند شماره حساب + بانک).
۰۷

داده‌های مدیریت‌شده توسط اپلیکیشن

داده‌های واردشده توسط کاربر
  • مشخصات کارت: نام صاحب حساب، شماره حساب، شماره کارت، شبا/IBAN، یادداشت اختیاری
  • مشخصات بانک سفارشی: نام انگلیسی/فارسی، کد کشور، رنگ برند، لوگو
  • دسته‌بندی سفارشی: عنوان فارسی/انگلیسی، آیکون، رنگ
  • تنظیمات ورود: رمز عبور عددی ۶ رقمی
داده‌های تولیدشده توسط برنامه
  • شناسه‌های منحصربه‌فرد پایگاه داده (UUIDs/IDs)
  • بذر طراحی کارت (designSeed)
  • فایل‌های تصاویر لوگوهای آپلودشده
  • متادیتای تاریخ ایجاد/ویرایش، وضعیت سنجاق و فایل‌های .rqbk
توجه: فیلد برچسب‌ها (Tags) و انتخابگر فیلدهای اختصاصی QR در مدل داده وجود دارند، اما رابط کاربری فعلی فرم مستقیمی برای آن‌ها ندارد.
۰۸

حریم خصوصی و امنیت

اپلیکیشن رقمی بر پایه فلسفه «حاکمیت کامل کاربر بر داده‌ها» توسعه یافته است.

۸.۱ رفتار عمومی حریم خصوصی

  • بدون مجوز اینترنت: در AndroidManifest.xml مجوز دسترسی به اینترنت تعریف نشده است.
  • غیرفعال بودن انتقال سیستمی: Android Cloud Backup و انتقال مستقیم دستگاه به دستگاه غیرفعال شده‌اند.

۸.۲ رمزنگاری و نگهداری اطلاعات امنیتی

  • رمز عبور کاربر: با PBKDF2WithHmacSHA256، ۱۰۰,۰۰۰ تکرار و نمک تصادفی هش می‌شود.
  • فضای ذخیره‌سازی امن: مقادیر هش‌شده در EncryptedSharedPreferences با حفاظت Android Keystore.
  • پایگاه داده: اطلاعات کارت‌ها در Room ذخیره می‌شود؛ امنیت این بخش به sandbox سیستم‌عامل وابسته است.

۸.۳ قانون مطلق فیلدهای ممنوعه

PIN / ATM / Web PasswordsCVV / CVV2 / CVC تاریخ انقضای کارترمزهای OTPاطلاعات دسترسی اینترنت‌بانک
این فیلدها در هیچ‌یک از کدهای پایگاه داده تعریف نشده‌اند و برنامه کاملاً در برابر ذخیره این اطلاعات حساس ایزوله است.
۰۹

بومی‌سازی و پشتیبانی زبانی

  • پشتیبانی کامل از دو زبان: فارسی (fa) و انگلیسی (en) با به‌روزرسانی آنی کل متون برنامه.
  • هماهنگی کامل منابع: تقارن ساختاری کامل فایل‌های strings.xml.
  • RTL: رابط کاربری در حالت فارسی کاملاً راست‌به‌چپ است.
  • استقلال جهت کارت: جهت نمایش کارت کاملاً مستقل از زبان فعال اپلیکیشن است؛ اعداد همواره چپ‌به‌راست نمایش داده می‌شوند.
۱۰

رابط کاربری و تجربه کاربری

  • پیش‌نمایش زنده کارت: کارت گرافیکی با ابعاد ISO 7810 ID-1 که آنی تغییرات را رندر می‌کند.
  • بذرهای طراحی گرافیکی: ۲۴ پالت رنگی گرادیان و افکت‌های هندسی متنوع با دکمه «باز تولید طرح».
  • جزئیات فیزیکی کارت: تراشه طلایی EMV، نماد پرداخت بدون تماس و لایه براق شبیه‌سازی‌شده.
  • فونت بومی: خانواده فونت وزیرمتن (Vazirmatn) برای متون فارسی.
۱۱

قابلیت‌های خروجی، اشتراک‌گذاری و پشتیبان‌گیری

۱۱.۱ خروجی تصویر و سند

برنامه می‌تواند خروجی PNG با کیفیت بالا از روی کارت، پشت کارت یا هر دو سمت تهیه کند. PDF نیز در ابعاد A4 شامل تصویر کارت، نام صاحب حساب و بند سلب مسئولیت در مسیر Downloads/Raqami ذخیره می‌شود.

۱۱.۲ بارکد QR در پشت کارت

بارکد QR حاوی اطلاعات غیرحساس پرداخت است. از آنجا که QR به‌راحتی توسط هر دوربین قابل خواندن است، اپلیکیشن یک دیالوگ هشدار حریم خصوصی زرد رنگ نمایش می‌دهد که کاربر باید تایید کند تا اشتراک‌گذاری فعال شود.

۱۱.۳ اشتراک‌گذاری سریع (Quick Share)

کاربران می‌توانند قالب پیش‌فرض برای اشتراک‌گذاری تعیین کنند تا با فشردن دکمه اشتراک‌گذاری سریع، خروجی مورد نظر بدون عبور از مراحل انتخاب فرمت تولید شود.

۱۲

خلاصه معماری فنی

پروژه رقمی بر اساس معماری پاک (Clean Architecture) و الگوی MVVM طراحی شده است:

لایه ارائه (UI)

تمام صفحه‌ها با Compose؛ وضعیت با StateFlow ایمن می‌شود.

لایه دامنه

منطق خالص کسب‌وکار مانند CreateCardUseCase و IbanValidator.

لایه داده

Room، LogoManager و BackupManager.

۱۳

محدودیت‌ها و موارد عمداً خارج از دامنه

  • عدم اتصال به شبکه بانکی: بدون استعلام موجودی، ثبت تراکنش یا اتصال به پایانه بانکی.
  • عدم همگام‌سازی ابری: داده‌ها صرفاً روی همان دستگاه؛ انتقال فقط با فایل پشتیبان رمزدار.
  • محدودیت‌های رندر و چاپ: چاپ مستقیم حذف شده؛ PrintHelper فقط مرجع ساختار است.
  • فیلدهای امنیتی: امکان ثبت تاریخ انقضا یا CVV وجود ندارد.
۱۴

قابلیت‌های تکمیل‌شده و موارد در انتظار

۱۰۰٪ تکمیل‌شده و تاییدشده در کد
  • Onboarding و پذیرش سلب مسئولیت
  • قفل برنامه با رمز و بیومتریک
  • ایجاد، ویرایش، حذف و تکثیر کارت
  • بذرگذاری خودکار ۲۰ بانک پیش‌فرض
  • فیلترینگ و جستجوی پیشرفته
  • تولید PDF و تصاویر کارت‌ها
  • پشتیبان‌گیری و بازیابی .rqbk
غیرفعال، ناقص یا در انتظار توسعه
  • مدیریت پویای کشورها (فرم ثبت/ویرایش جدید)
  • رابط مدیریت برچسب‌ها (Tags)
  • سفارشی‌سازی پیشرفته فیلدهای QR
  • ترجمه برخی متون ثابت کارت (مانند "AUTHORIZED SIGNATURE")
۱۵

توضیح عمومی جهت انتشار

مرتب، زیبا و امن؛ تمام کارت‌های بانکی شما در یک جا!

«رقمی» یک ابزار شخصی و کاملاً آفلاین برای کسانی است که از نوشتن اطلاعات حساب‌های بانکی خود در یادداشت‌های پراکنده یا ارسال مداوم پیام‌های متنی نامنظم خسته شده‌اند. با رقمی، می‌توانید مشخصات کارت‌ها و حساب‌های بانکی خود را به شکلی کاملاً منظم ثبت کرده و آن‌ها را در قالب کارت‌های شبیه‌سازی‌شده زیبا و گرافیکی مشاهده کنید.

امنیت و حریم خصوصی در رقمی اولویت اول است. این اپلیکیشن کاملاً آفلاین طراحی شده و هیچ نیازی به دسترسی به اینترنت ندارد. رقمی یک برنامه پرداخت نیست، بلکه دستیار هوشمند، شکیل و امن شما برای سازمان‌دهی و اشتراک‌گذاری اطلاعات بانکی‌تان است.

جمع‌بندی نهایی

پروژه رقمی نمونه موفقی از توسعه یک ابزار کاربردی با کیفیت و منطبق بر اصول معماری پاک در اندروید است. ارزش اصلی این نرم‌افزار در سادگی کاربری، زیبایی بصری بی‌نظیر در تولید کارت‌های فرضی، و پایبندی صد در صدی به حریم خصوصی کاربران از طریق کارکرد کاملاً آفلاین و رمزنگاری محلی داده‌ها است.

این نرم‌افزار برای انتشار عمومی کاملاً آماده و قابل اتکا است. برای ارتقای نسخه به حالت تجاری کامل، تراز کردن نهایی مدل‌های داده استفاده‌نشده (مانند برچسب‌ها) با رابط کاربری و رفع ناهماهنگی‌های کوچک در زبان متون کارت پشتی می‌تواند از اولویت‌های فاز بعدی توسعه باشد.