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

معرفی جامع پروژه «دوره» (Doreh)

سند یکپارچه و بازنویسی‌شده بر اساس سه گزارش پیوست‌شده

نسخه ۱.۰ — تهیه‌شده در ۵ تیر ۱۴۰۵ / ۲۶ ژوئن ۲۰۲۶

یادداشت انتشار: این سند، محتوای سه گزارش جداگانه درباره اپلیکیشن «دوره» را در یک متن واحد، منظم و قابل انتشار بازنویسی می‌کند[cite: 2]. در این نسخه، تکرارها حذف شده، اصطلاحات یکسان‌سازی شده و مواردی که در گزارش‌ها با شدت‌های متفاوت بیان شده بودند، با ادبیات دقیق‌تر و محتاطانه‌تر ارائه شده‌اند؛ به‌ویژه درباره وضعیت انتشار، پشتیبانی چندسکویی و قابلیت‌های آینده مانند پشتیبان‌گیری Google Drive[cite: 2]. تفاوت‌های ساختاری این سند با مستندات پروژه‌های دیگر نظیر سند merged_raqami_project_introduction.docx در ماهیت چندسکویی و تمرکز بر صندوق‌های گردشی نهفته است.

فهرست مطالب

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

«دوره» (Doreh) یک اپلیکیشن موبایل برای مدیریت صندوق‌های قرض‌الحسنه، صندوق‌های پس‌انداز گروهی و صندوق‌های گردشی است[cite: 2]. تمرکز اصلی برنامه روی استفاده آفلاین، ثبت دقیق اطلاعات مالی، گزارش‌گیری شفاف و ساده‌سازی کار مدیر صندوق است[cite: 2].

موضوع شرح یکپارچه‌شده
نام پروژه/اپلیکیشن دوره (Doreh)[cite: 2]
تاریخ شروع قابل استناد بر اساس تاریخچه Git، قدیمی‌ترین ثبت فعلی مخزن در ۱۲ ژوئن ۲۰۲۶ / ۲۲ خرداد ۱۴۰۵ است[cite: 2]. برخی مستندات داخلی نیز به طراحی معماری و اسناد مفهومی پیش از این تاریخ، در حدود مه ۲۰۲۶ / اردیبهشت ۱۴۰۵، اشاره دارند[cite: 2].
پلتفرم هدف اندروید به‌عنوان هدف اصلی[cite: 2]. ساختار Flutter امکان توسعه برای iOS و سایر پلتفرم‌ها را فراهم می‌کند، اما طبق گزارش‌ها، تست و بلوغ کامل روی همه پلتفرم‌ها تأیید نشده است[cite: 2].
وضعیت فعلی هسته عملیاتی آفلاین برنامه کامل و قابل استفاده است و در گزارش‌ها از آن به‌عنوان آماده انتشار یا قابل استفاده در مرحله تثبیت یاد شده است[cite: 2]. قابلیت‌هایی مانند Google Drive هنوز در حد placeholder هستند[cite: 2].
نسخه پایگاه داده SQLite Database Schema Version 10[cite: 2]

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

دسته ابزار/کتابخانه کاربرد
زبان برنامه‌نویسی Dart SDK ≥ 3.2.0[cite: 2] پیاده‌سازی منطق برنامه و کدهای Flutter[cite: 2]
فریم‌ورک اصلی Flutter / Material Design[cite: 2] توسعه اپلیکیشن موبایل با رابط کاربری مدر[cite: 2]ن
پایگاه داده محلی SQLite با sqflite[cite: 2] ذخیره آفلاین صندوق‌ها، اعضا، پرداخت‌ها و تنظیمات[cite: 2]
مدیریت وضعیت flutter_bloc / Cubit[cite: 2] مدیریت حالت صفحه‌ها و ارتباط UI با repositoryها[cite: 2]
ذخیره‌سازی امن flutter_secure_storage[cite: 2] نگهداری امن هش PIN و تنظیمات امنیتی[cite: 2]
گزارش PDF pdf + arabic_reshaper + bidi[cite: 2] تولید گزارش فارسی/RTL با شکل‌دهی صحیح متن[cite: 2]
خروجی Excel excel[cite: 2] استخراج داده‌ها به فایل چندبرگه‌ای xlsx[cite: 2]
اشتراک‌گذاری share_plus[cite: 2] ارسال گزارش‌ها و فایل‌های پشتیبان از طریق ابزارهای سیستم‌عامل[cite: 2]
تصویر رسید image_picker[cite: 2] انتخاب یا ثبت عکس رسید پرداخت[cite: 2]
تقویم و قالب‌بندی shamsi_date + intl[cite: 2] تقویم شمسی/میلادی، قالب تاریخ، عدد و ارز[cite: 2]
شناسه‌ها و مسیرها uuid, path, path_provider, file_selector[cite: 2] مدیریت شناسه رکوردها، مسیرهای محلی و انتخاب فایل[cite: 2]
فونت‌ها Vazirmatn و Parastoo[cite: 2] خوانایی بهتر فارسی در رابط و گزارش‌ها[cite: 2]

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

دوره یک دستیار آفلاین برای مدیران صندوق‌های خانوادگی، دوستانه، کاری و محلی است[cite: 2]. کاربر می‌تواند اعضا را ثبت کند، برای هر عضو سهم کامل یا کسری تعریف کند، نوبت‌های دریافت را به‌صورت تصادفی یا دستی تنظیم کند، پرداخت‌های دوره‌ای را همراه با رسید ثبت کند و در پایان یا در هر مرحله، گزارش‌های PDF و Excel تهیه کند[cite: 2].

در صندوق‌های گردشی یا ROSCA، اعضای گروه در دوره‌های مشخص مبلغی ثابت یا متناسب با سهم خود پرداخت می‌کنند و در هر نوبت، یک فرد یا گروه از افراد مبلغ جمع‌آوری‌شده را دریافت می‌کند[cite: 2]. دوره این فرآیند را از حالت دفتر کاغذی، یادداشت‌های پراکنده یا فایل‌های اکسل غیرمنظم خارج کرده و در قالب یک سیستم موبایل‌محور، قابل پیگیری و شفاف ارائه می‌دهد[cite: 2].

۳. مسئله، هدف و ارزش پیشنهادی

هدف اصلی پروژه، دیجیتالی‌کردن مدیریت صندوق‌های قرض‌الحسنه و کاهش خطاهای محاسباتی و اختلاف‌های احتمالی میان اعضاست[cite: 2]. بسیاری از صندوق‌های خانوادگی و دوستانه هنوز با دفترچه، پیام‌های پراکنده یا فایل‌های ساده مدیریت می‌شوند؛ روشی که در ظاهر ساده است اما با افزایش تعداد اعضا، دوره‌ها و سهم‌های کسری، به‌سرعت پیچیده و پرخطا می‌شود[cite: 2].

ارزش اصلی دوره در این است که مفاهیم نسبتاً پیچیده مالی را پشت یک رابط ساده پنهان می‌کند؛ کاربر لازم نیست حسابدار باشد، کافی است اعضا، سهم‌ها، پرداخت‌ها و نوبت‌ها را ثبت کند و محاسبات را به برنامه بسپارد[cite: 2].

۴. مخاطبان هدف

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

۵. قابلیت‌های اصلی برنامه

۵.۱ مدیریت اشخاص و اعضا

۵.۲ مدیریت صندوق‌ها

۵.۳ مدیریت سهم‌ها و سهام کسری

۵.۴ قرعه‌کشی و نوبت‌بندی

۵.۵ ثبت پرداخت‌های اعضا

۵.۶ ثبت پرداخت نوبت یا خروجی صندوق

۵.۷ خروج و جایگزینی عضو

۵.۸ داشبورد و نمای مدیریتی

۵.۹ لاگ حسابرسی

۵.۱۰ تنظیمات و شخصی‌سازی

۶. جریان کاری کاربر

مسیر معمول استفاده از برنامه ساده و مرحله‌ای است. مدیر صندوق ابتدا اشخاص را ثبت می‌کند، سپس صندوق را می‌سازد، اعضا و سهم‌ها را مشخص می‌کند، نوبت‌ها را تولید یا تنظیم می‌کند و بعد از فعال‌سازی، فقط پرداخت‌های ورودی و خروجی را ثبت می‌کند[cite: 2].

  1. در اولین اجرا، کاربر یک PIN امنیتی تعریف می‌کند و از دفعات بعد با همان PIN وارد برنامه می‌شود[cite: 2].
  2. در بخش اعضا، اشخاص مورد نیاز همراه با اطلاعات تماس ثبت می‌شوند[cite: 2].
  3. یک صندوق جدید با مبلغ سهم، تاریخ شروع، چرخه پرداخت، هماهنگ‌کننده و توضیحات ساخته می‌شود[cite: 2].
  4. اعضا به صندوق اضافه می‌شوند و برای هر عضو تعداد سهم مشخص می‌شود[cite: 2].
  5. برنامه بررسی می‌کند که مجموع سهم‌ها برای نوبت‌سازی معتبر باشد[cite: 2].
  6. نوبت‌ها به‌صورت تصادفی تولید می‌شوند یا مدیر ترتیب آن‌ها را دستی تنظیم می‌کند[cite: 2].
  7. صندوق فعال می‌شود و ساختار اصلی اعضا، سهم‌ها و نوبت‌ها قفل می‌گردد[cite: 2].
  8. در هر چرخه، پرداخت اعضا ثبت می‌شود و برنامه مانده بدهی را محاسبه می‌کند[cite: 2].
  9. در زمان رسیدن هر نوبت، پرداخت خروجی به دریافت‌کننده ثبت می‌شود؛ این پرداخت می‌تواند مرحله‌ای باشد[cite: 2].
  10. در طول اجرای صندوق یا پس از پایان آن، گزارش PDF، خروجی Excel و فایل پشتیبان تهیه می‌شود[cite: 2].

صفحه‌ها و بخش‌های اصلی برنامه

بخش کارکرد
Splash / ورود بررسی وضعیت PIN، تنظیم اولیه یا ورود امن به برنامه[cite: 2]
Dashboard نمای کلی صندوق‌ها، فیلتر وضعیت، کارت‌های مالی و دسترسی سریع[cite: 2]
Members مدیریت اشخاص و مشاهده سوابق مالی آن‌ها[cite: 2]
Fund Detail جزئیات صندوق در تب‌های Overview، Payout Order، Payments و Reports[cite: 2]
Payment Form ثبت یا ویرایش واریزی اعضا همراه با مانده و رسید[cite: 2]
Reports تولید و اشتراک‌گذاری گزارش‌های PDF و خروجی‌ها[cite: 2]
Settings زبان، تقویم، ارز، فونت گزارش، پشتیبان‌گیری، Excel و پاک‌سازی داده‌ها[cite: 2]

۷. داده‌ها و ساختار اطلاعاتی

برنامه هم داده‌های واردشده توسط کاربر را نگهداری می‌کند و هم داده‌هایی را به‌صورت خودکار تولید می‌کند[cite: 2]. هدف از این ساختار، حفظ پیوند دقیق میان اشخاص، صندوق‌ها، سهم‌ها، پرداخت‌ها و نوبت‌هاست تا گزارش‌های مالی قابل اعتماد تولید شود[cite: 2].

جداول اصلی پایگاه داده (SQLite)

جدول نقش در سیستم
persons فهرست اشخاص مستقل از صندوق‌ها[cite: 2]
funds اطلاعات صندوق‌ها، مبلغ سهم، چرخه پرداخت، تاریخ شروع و وضعیت[cite: 2]
fund_members ارتباط شخص با صندوق، خروج عضو و جایگزینی[cite: 2]
shares مقدار سهم هر عضو و ارتباط سهم با نوبت[cite: 2]
draws نوبت‌های دریافت، ترتیب پرداخت، مبلغ، وضعیت و تاریخ[cite: 2]
payments واریزی‌های اعضا، روش پرداخت، رسید و وضعیت[cite: 2]
draw_payout_transactions جزئیات پرداخت‌های مرحله‌ای هر نوبت[cite: 2]
audit_logs ثبت رویدادها و عملیات مهم[cite: 2]
settings تنظیمات زبان، تقویم، ارز، فرمت‌ها و گزینه‌ها[cite: 2]

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

دوره با رویکرد Local-first و Offline-first طراحی شده است[cite: 2]. یعنی داده‌های اصلی روی دستگاه کاربر ذخیره می‌شوند و برنامه برای استفاده روزمره به سرور خارجی یا اینترنت دائمی وابسته نیست[cite: 2]. این موضوع برای صندوق‌های خانوادگی و محلی اهمیت زیادی دارد[cite: 2].

نکته مهم امنیتی: فایل پشتیبان محلی از نوع SQLite .db به‌صورت رمزنگاری‌شده توصیف نشده است؛ بنابراین اگر کاربر آن را در پیام‌رسان‌ها یا فضای ابری شخصی ارسال کند، مسئولیت نگهداری امن آن بر عهده خود کاربر خواهد بود[cite: 2].

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

قابلیت شرح پیاده‌سازی
زبان‌ها فارسی و انگلیسی[cite: 2]
جهت متن RTL برای فارسی و LTR برای انگلیسی[cite: 2]
تقویم شمسی/جلالی و میلادی/گرگوری[cite: 2]
اعداد و مبالغ قالب‌های قابل تنظیم برای اعداد، ارز و جداکننده‌ها[cite: 2]
گزارش PDF شکل‌دهی متن فارسی با arabic_reshaper و bidi و استفاده از فونت‌های فارسی[cite: 2]
ترجمه‌ها نگهداری رشته‌ها در ساختار AppLocalizations و اعمال زبان بدون نیاز به اینترنت[cite: 2]

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

۱۱. خروجی‌ها، گزارش‌ها و پشتیبان‌گیری

گزارش‌های PDF

خروجی Excel و پشتیبان‌گیری

خروجی Excel برای تحلیل، آرشیو و بررسی خارج از برنامه کاربرد دارد[cite: 2]. این فایل چندبرگه‌ای، داده‌های اصلی مانند صندوق‌ها، اشخاص، پرداخت‌ها و لاگ حسابرسی را در قالب فایل xlsx ارائه می‌کند[cite: 2]. همچنین برنامه امکان ایجاد فایل پشتیبان SQLite را با نام زمان‌دار و قابلیت بازیابی امن (مجهز به Rollback در صورت بروز خطا) فراهم می‌سازد[cite: 2].

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

پروژه از ساختاری نزدیک به Clean Architecture و لایه‌بندی ۴ گانه استفاده می‌کند[cite: 2]:

لایه مسیر رایج وظیفه اصلی
Presentation lib/presentation صفحه‌ها، ویجت‌ها، Cubitها و مدیریت وضعیت UI[cite: 2]
Domain lib/domain Entityها، قواعد کسب‌وکار و interfaceهای repository[cite: 2]
Data lib/data پیاده‌سازی repositoryها، مدل‌های داده و ارتباط با SQLite[cite: 2]
Core lib/core زیرساخت مشترک مانند امنیت، دیتابیس، PDF، Excel، تاریخ و پشتیبان‌گیری[cite: 2]

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

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

موارد پیشنهادی برای نسخه‌های آینده:

۱۵. متن معرفی عمومی و بازاریابی

معرفی کوتاه برای مارکت یا صفحه دانلود

«دوره» دستیار آفلاین شما برای مدیریت صندوق‌های قرض‌الحسنه، خانوادگی و دوستانه است[cite: 2]. اعضا را ثبت کنید، سهم‌ها را مشخص کنید، نوبت‌ها را قرعه‌کشی کنید، پرداخت‌ها را همراه با رسید ذخیره کنید و در هر زمان گزارش PDF یا خروجی Excel بگیرید؛ بدون دفتر کاغذی، بدون محاسبات دستی و بدون نیاز به اینترنت دائمی[cite: 2].

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

اپلیکیشن دوره یک محصول موبایل‌محور و آفلاین برای مدیریت صندوق‌های گردشی است که بخش اصلی نیازهای عملی این حوزه را پوشش می‌دهد[cite: 2]. بهترین توصیف برای وضعیت فعلی برنامه این است: «هسته عملیاتی کامل و قابل استفاده برای مدیریت آفلاین صندوق، با چند قابلیت تکمیلی برنامه‌ریزی‌شده برای بلوغ محصول در نسخه‌های آینده»[cite: 2].

منابع مورد استفاده برای تدوین این سند:
• doreh-project-complete-introduction.md | • antigravity-project-complete-introduction.md | • codex-project-complete-introduction.md[cite: 2]