بازگشت به پیشخوان اصلی
معرفی پروژه «رقمی» (Raqami)

سند یکپارچه معرفی کامل پروژه رقمی (Raqami)

بازنویسی و تلفیق محتوای سه سند پیوست‌شده

تاریخ تهیه سند: ۴ تیر ۱۴۰۵ / ۲۵ ژوئن ۲۰۲۶

توضیح مبنای نگارش: این سند، محتوای سه گزارش پیوست‌شده را در قالب یک متن واحد، منسجم و قابل انتشار بازنویسی می‌کند. در بخش‌هایی که اطلاعات اسناد با هم تفاوت داشته‌اند، متن نهایی با احتیاط نوشته شده و موارد نیازمند بازبینی در انتهای سند جداگانه مشخص شده‌اند.
منبع کاربرد در سند نهایی
codex-project-complete-introduction.md نمای کلی، قابلیت‌ها، وضعیت فعلی، حریم خصوصی و معماری
antigravity-project-complete-introduction.md توضیح فنی، امنیت، خروجی‌ها، QR، UI/UX و وضعیت قابلیت‌ها
claude-code-project-complete-introduction.md جزئیات نسخه، تکنولوژی‌ها، جریان کاربر، Known Issues و جدول‌های تکمیلی

فهرست مطالب


۱. خلاصه مدیریتی

رقمی (Raqami) یک اپلیکیشن اندرویدی آفلاین برای ثبت، سازمان‌دهی، نمایش و اشتراک‌گذاری اطلاعات حساب‌ها و کارت‌های بانکی در قالب کارت‌های دیجیتال زیباست. کاربر اطلاعاتی مانند نام صاحب حساب، بانک، شماره حساب، شماره شبا/IBAN و در صورت نیاز شماره کارت را یک‌بار وارد می‌کند و سپس می‌تواند آن را به‌صورت کارت گرافیکی، تصویر، PDF یا QR مشاهده، ذخیره یا ارسال کند.

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

بر اساس سه سند بررسی‌شده، پروژه از نظر هسته اصلی محصول، معماری، صفحات اصلی، مدل داده، خروجی‌گیری، قفل برنامه، پشتیبان‌گیری رمزدار و پشتیبانی فارسی/انگلیسی به سطح قابل استفاده رسیده است؛ با این حال، برخی موارد مانند بومی‌سازی چند متن hard-coded، استفاده کامل از تنظیمات پیش‌فرض کاربر، و هم‌راستاسازی برخی فیلدهای مدل داده با رابط کاربری هنوز نیازمند بازبینی نهایی هستند.

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

عنوان اطلاعات یکپارچه‌شده
نام پروژه / اپلیکیشن رقمی — Raqami
تاریخ شروع قابل احراز ۱۲ ژوئن ۲۰۲۶ / ۲۳ خرداد ۱۴۰۵، بر اساس نخستین commit در مخزن Git
نسخه گزارش‌شده 1.0.0 / versionCode 1 (نیازمند تأیید نهایی مخزن فعلی)
سکوی هدف Android، دستگاه‌های موبایل و تبلت با Android 8.0 / API 26 و بالاتر
وضعیت فعلی V1 توسعه‌یافته با هسته اصلی قابل استفاده؛ در انتظار بازبینی و تأیید دستی جزئیات
زبان‌های برنامه فارسی و انگلیسی، با پشتیبانی کامل از RTL/LTR
ماهیت برنامه Local-only / Offline (بدون اتصال به اینترنت یا شبکه بانکی)

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

حوزه فناوری / ابزار
زبان برنامه‌نویسی Kotlin (نسخه 2.0.21 گزارش شده در پروژه)
رابط کاربری Jetpack Compose, Material Design 3, AndroidX Navigation Compose
معماری MVVM + Clean Architecture با لایه‌های Presentation, Domain و Data
تزریق وابستگی Hilt
پایگاه داده محلی Room Database (نسخه دیتابیس گزارش‌شده: ۹، به همراه Migrationها و KSP)
مدیریت وضعیت ViewModel, Lifecycle, StateFlow و Kotlin Coroutines
امنیت AndroidX Security Crypto, EncryptedSharedPreferences, Android Keystore, Android BiometricPrompt
QR Code ZXing Core
تصویر و لوگو Coil Compose و مدیریت فایل داخلی برنامه
خروجی و اشتراک‌گذاری Canvas / Bitmap, Android PdfDocument, MediaStore, FileProvider و Android Share Sheet
ابزار ساخت Gradle Kotlin DSL, Android Gradle Plugin, JVM 17
SDK هدف minSdk 26, targetSdk 35, compileSdk 35

۳. معرفی کوتاه محصول

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

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

۴. هدف و دلیل ایجاد پروژه

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

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

۵. کاربران هدف

رقمی برای افرادی طراحی شده که چند حساب یا کارت دارند و می‌خواهند اطلاعات بانکی خود را منظم، سریع و امن‌تر مدیریت کنند. تمرکز اسناد روی کاربران ایرانی و منطقه خلیج فارس، به‌ویژه امارات متحده عربی، دیده می‌شود؛ اما ساختار کشور، بانک و IBAN می‌تواند برای استفاده گسترده‌تر نیز توسعه یابد.

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

۶.۱. راه‌اندازی اولیه و ورود امن

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

۶.۳. اطلاعات قابل ثبت برای هر کارت

فیلد اطلاعاتی وضعیت و توضیح عملکردی
نام صاحب حساب فیلد اصلی و اجباری؛ مورد استفاده در نمایش و جست‌وجو
کشور انتخابی از فهرست کشورها؛ مبنای اعتبارسنجی‌های ساختار IBAN
بانک انتخاب از بانک‌های پیش‌فرض سیستم یا ایجاد بانک سفارشی
شماره حساب فیلد عددی/متنی مورد استفاده در نمایش و اشتراک‌گذاری
شماره شبا / IBAN اعتبارسنجی‌شده بر اساس استاندارد ملی؛ قابلیت اجباری شدن بر اساس کشور
شماره کارت اختیاری؛ جهت تشخیص شبکه کارت و رندر روی کارت گرافیکی
یادداشت (Note) اختیاری و کاملاً داخلی؛ از خروجی‌های عمومی حذف می‌شود
دسته‌بندی اختیاری (مانند: شخصی، خانواده، کاری، تجاری، مشتریان)
جهت کارت امکان تنظیم روی RTL یا LTR به‌صورت مستقل از زبان کل اپلیکیشن

۶.۴. مدیریت داده‌های پایه

۶.۵. طراحی بصری کارت‌ها

۶.۶. خروجی، ذخیره و اشتراک‌گذاری

۶.۷. کد QR

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

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


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

۷.۱. جریان کلی کاربر (User Flow)

جریان تعاملی کاربر در اپلیکیشن از گام اول تا استفاده مستمر به شرح زیر است:

۷.۲. صفحه‌ها و ماژول‌های اصلی

صفحه / ماژول نقش و وظیفه عملیاتی در برنامه
SplashScreen نمایش برندینگ اولیه و مسیریابی خودکار کاربر بر اساس وضعیت احراز هویت.
OnboardingScreen پیکربندی اولیه زبان، ضوابط حقوقی، رمز عبور و تنظیمات بیومتریک اولیه.
AppLockScreen درگاه امنیتی ورود به برنامه با پین‌کد یا حسگر اثر انگشت / تشخیص چهره.
HomeScreen داشبورد اصلی حاوی لیست کارت‌ها، فیلترها، قابلیت پین و دسترسی به منوی سریع.
CardCreate / Edit واسط گرافیکی ایجاد و ویرایش مشخصات حساب با قابلیت اعتبارسنجی آنی فیلدها.
CardPreviewScreen نمایش دو سویه کارت گرافیکی، کپی متون به حافظه موقت و مدیریت خروجی‌ها.
SettingsScreen مدیریت پارامترهای امنیتی، تم، فونت، شخصی‌سازی QR و هدایت به بخش پشتیبان‌گیری.

۸. داده‌های مدیریت‌شده

ساختار مدیریت داده در اپلیکیشن رقمی به سه دسته کلی تقسیم می‌شود:

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

۹.۱. اصول کلی حریم خصوصی

فلسفه اصلی امنیت در رقمی، نگه‌داشتن کنترل کامل داده‌ها در اختیار کاربر است. این اپلیکیشن بر پایه مدل Local-only توسعه یافته است. مجوز دسترسی به اینترنت (android.permission.INTERNET) در مانیفست برنامه تعریف نشده و بک‌آپ‌های خودکار ابری سیستم‌عامل اندروید برای این برنامه غیرفعال شده‌اند تا احتمال خروج ناخواسته داده‌ها به صفر برسد.

قانون مطلق اطلاعات ممنوعه

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

  • PIN کارت یا رمزهای اول و دوم.
  • کدهای امنیتی CVV / CVV2 / CVC.
  • تاریخ انقضای کارت بانکی.
  • رمزهای اینترنتی، رمز پویا (OTP) یا هرگونه اطلاعات احراز هویت شبکه بانکی.

۹.۲. رمزنگاری پایگاه داده و تنظیمات

گذرواژه ۶ رقمی کاربر به صورت متن ساده ذخیره نمی‌شود و فرآیند هشینگ آن با PBKDF2WithHmacSHA256 و ۱۰۰,۰۰۰ مرتبه تکرار به همراه Salt تصادفی انجام می‌پذیرد. پایگاه داده اصلی در محیط امن Sandbox اندروید نگه‌داری می‌شود. اطلاعات بسیار حساس تنظیمات نیز در EncryptedSharedPreferences تحت حفاظت Android Keystore ذخیره می‌گردند.

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

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

فونت‌های تعبیه شده در پروژه عبارتند از: Vazirmatn، Rubik، Estedad، Noto Naskh Arabic به همراه فونت‌های پیش‌فرض سیستم و فونت‌های Monospace جهت نمایش خوانای اعداد.

۱۱. رابط کاربری و تجربه کاربری (UI/UX)

طراحی واسط کاربری بر پایه Material Design 3 استوار است. در صفحه داشبورد اصلی، کارت‌ها در قالب لیست‌های بهینه‌سازی شده با نمایش آمار کلی در بالای صفحه چیدمان شده‌اند. هر کارت حاوی منوی دسترسی سریع (سه‌نقطه) جهت ویرایش، اشتراک‌گذاری سریع (Quick Share)، تکثیر یا حذف است. فرم‌های ورود اطلاعات مجهز به فیلدهای اعتبارسنجی زنده با پیام‌های خطای واضح املایی و ساختاری (مانند بررسی صحت فرمت شبا) هستند.

۱۲. خروجی، اشتراک‌گذاری و پشتیبان‌گیری

فرآیند تولید خروجی‌ها از طریق خط‌لوله رندر تصویر انجام می‌شود که اشیای گرافیکی Compose را به دیتای Bitmap تبدیل می‌کند. ابعاد تصاویر خروجی در حالت تک‌رو ۱۲۶۰×۷۹۵ پیکسل و در حالت خروجی دوطرفه مدمج ۱۳۸۰×۱۷۷۰ پیکسل است.

خروجی‌های PDF با ابعاد استاندارد سند A4 رندر شده و از موتور داخلی اندروید بدون وابستگی به لایه‌های پرهزینه WebView استفاده می‌کنند. تمامی خروجی‌ها پیش از فرستاده شدن به منوی اشتراک‌گذاری سیستم‌عامل، از فیلتر حذف اطلاعات داخلی (مانند یادداشت‌ها و نام‌های مستعار) عبور می‌کنند.

۱۳. معماری فنی

پروژه در قالب یک پکیج تک‌ماژوله ساختاریافته و از اصول Clean Architecture تبعیت می‌کند:

۱۴. محدودیت‌ها و موارد خارج از دامنه

۱۵. وضعیت قابلیت‌ها و موارد باقی‌مانده

۱۵.۱. قابلیت‌های تکمیل‌شده با اطمینان بالا

بخش‌های Onboarding، سیستم قفل بیومتریک و پین، عملیات پایه‌ای کارت (CRUD)، موتور اعتبارسنجی MOD-97 شبا، خروجی‌های تصویر و PDF، و سیستم بک‌آپ مجهز به رمزنگاری AES-256 به طور کامل پیاده‌سازی شده و پایدار هستند.

۱۵.۲. موارد نیازمند بازبینی یا تکمیل (بخش‌های فنی باقی‌مانده)

مورد نیازمند بررسی توضیح فنی ابهام یا نقص موجود
بومی‌سازی برخی رشته‌ها برخی متون بخش پشت کارت، کدهای پاسخ QR و متون صفحه About همچنان به صورت هاردکد انگلیسی هستند.
تنظیمات پیش‌فرض کارت در کلاس CardCreateViewModel برخی تنظیمات پیش‌فرض اعمالی از سوی کاربر نادیده گرفته می‌شوند.
فیلتر فایل بازیابی سیستم انتخاب فایل در بخش Restore به جای فیلتر اختصاصی .rqbk از فیلتر عمومی */* استفاده می‌کند.
لوگوی بانک‌های پیش‌فرض در برخی از بانک‌های اولیه، به جای لوگوی اصلی از تصویر موقت (Placeholder) رنگی استفاده شده است.

۱۶. متن پیشنهادی برای انتشار عمومی

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

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

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

۱۷. جمع‌بندی نهایی

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

۱۸. پیوست: نکات اختلافی و نیازمند بازبینی نهایی

در زمان تلفیق اسناد سه‌گانه، تضادهای آماری و عملکردی زیر مشاهده شد که نیازمند بازبینی مستقیم کدهای منبع پیش از نهایی‌سازی مستندات است: