موارد استفاده (Use Cases) و نمودارهای توالی سامانه دارانو
این سند شامل شرح کامل تمامی use case های سامانه دارانو به همراه نمودارهای توالی (Sequence Diagrams) برای هر یک میباشد.
فهرست مطالب
Use Case های سطح کاربر
- ثبتنام و ورود کاربر
- احراز هویت (KYC)
- کیف پول ریالی
- واریز ریال
- واریز و برداشت توکن
- خرید توکن در بازار اولیه
- معامله در بازار ثانویه
- مشاهده داراییها و تاریخچه
- استفاده از کد تخفیف
Use Case های سمت مدیریت
- صدور توکن و تخصیص اولیه
- مدیریت بازخرید
- مدیریت سفارشها و بازار
- مدیریت کاربران و گزارشات
- پیکربندی و پایش سامانه
Use Case های سطح کاربر
1. ثبتنام و ورود کاربر
شرح خلاصه
کاربر با استفاده از شماره موبایل خود میتواند در سامانه ثبتنام کرده یا وارد شود. سیستم از طریق ارسال کد OTP هویت کاربر را تأیید میکند و در صورت موفقیت، توکن JWT صادر میشود. برای کاربران جدید، بهصورت خودکار کیف پول توکنی ایجاد میشود.
بازیگران
- کاربر (User)
- سیستم احراز هویت (Auth Service)
- سرویس کیف پول (Wallet Service)
پیشنیازها
- شماره موبایل معتبر
- دسترسی به پیامک OTP
جریان اصلی
- کاربر شماره موبایل را وارد میکند
- سیستم کد OTP ارسال میکند
- کاربر کد دریافتی را وارد میکند
- سیستم کد را تأیید میکند
- برای کاربر جدید: ایجاد حساب کاربری و کیف پول
- صدور JWT Token
- ورود موفق به سیستم
نتیجه
- کاربر وارد سامانه میشود
- نشست کاربری ایجاد میشود
- برای کاربر جدید: کیف پول آماده استفاده است
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant AUTH as Auth Service
participant WAL as Wallet Service
participant DB as Database
participant SMS as SMS Service
U->>UI: ورود شماره موبایل
UI->>API: درخواست ورود/ثبتنام
API->>AUTH: بررسی وجود کاربر
AUTH->>DB: جستجوی کاربر
DB-->>AUTH: نتیجه جستجو
AUTH->>SMS: ارسال کد OTP
SMS-->>U: دریافت کد
AUTH-->>API: کد ارسال شد
API-->>UI: منتظر کد OTP
U->>UI: وارد کردن کد OTP
UI->>API: تأیید کد
API->>AUTH: اعتبارسنجی OTP
alt کاربر جدید
AUTH->>DB: ایجاد حساب کاربری
AUTH->>WAL: ایجاد کیف پول
WAL->>DB: ذخیره اطلاعات کیف پول
WAL-->>AUTH: کیف پول ایجاد شد
end
AUTH->>AUTH: تولید JWT Token
AUTH-->>API: JWT + Refresh Token
API-->>UI: توکنهای احراز هویت
UI-->>U: ورود موفق
2. احراز هویت (KYC)
شرح خلاصه
فرآیند احراز هویت کاربران شامل چند مرحله است: تأیید اطلاعات هویتی از طریق سرویسهای شخص ثالث (زحل، احراز، جیبیت)، احراز هویت شاهکار برای تأیید مالکیت شماره موبایل، و تأیید اطلاعات بانکی. این فرآیند برای دسترسی به امکانات معاملاتی الزامی است.
بازیگران
- کاربر (User)
- سرویس احراز هویت (Auth Service)
- سرویسهای شخص ثالث (Zohal, Ehraz, Jibit)
- سامانه شاهکار
پیشنیازها
- ثبتنام و ورود به سیستم
- اطلاعات هویتی معتبر (کدملی، تاریخ تولد)
- شماره شبا معتبر
جریان اصلی
- کاربر درخواست احراز هویت میدهد
- وارد کردن اطلاعات هویتی (کدملی، تاریخ تولد)
- تأیید مالکیت شماره موبایل از طریق شاهکار
- وارد کردن اطلاعات بانکی (شماره شبا)
- ارسال اطلاعات به سرویسهای شخص ثالث
- دریافت نتیجه احراز هویت
- بهروزرسانی وضعیت KYC کاربر
نتیجه
- وضعیت KYC کاربر به تأیید شده تغییر میکند
- امکان دسترسی به خدمات معاملاتی فراهم میشود
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant AUTH as Auth Service
participant SHAHKAR as سامانه شاهکار
participant KYC as سرویس KYC شخص ثالث
participant DB as Database
U->>UI: درخواست احراز هویت
UI->>API: شروع فرآیند KYC
API->>AUTH: درخواست KYC
AUTH-->>API: درخواست اطلاعات هویتی
API-->>UI: فرم اطلاعات
U->>UI: کدملی + تاریخ تولد
UI->>API: ارسال اطلاعات هویتی
API->>AUTH: تأیید شاهکار
AUTH->>SHAHKAR: بررسی مالکیت موبایل
SHAHKAR-->>AUTH: نتیجه تأیید
alt تأیید شاهکار موفق
AUTH-->>API: درخواست اطلاعات بانکی
API-->>UI: فرم شماره شبا
U->>UI: شماره شبا
UI->>API: ارسال شبا
API->>AUTH: اعتبارسنجی بانکی
AUTH->>KYC: تأیید اطلاعات
KYC-->>AUTH: نتیجه احراز هویت
alt احراز هویت موفق
AUTH->>DB: بهروزرسانی وضعیت KYC
AUTH-->>API: KYC تأیید شد
API-->>UI: احراز هویت موفق
UI-->>U: دسترسی کامل فعال شد
else احراز هویت ناموفق
AUTH-->>API: خطای اعتبارسنجی
API-->>UI: اطلاعات نادرست
UI-->>U: لطفاً مجدداً تلاش کنید
end
else تأیید شاهکار ناموفق
AUTH-->>API: خطای شاهکار
API-->>UI: مالکیت موبایل تأیید نشد
UI-->>U: شماره موبایل به نام شما نیست
end
3. کیف پول ریالی
شرح خلاصه
کیف پول ریالی یک حساب داخلی در سامانه است که کاربران میتوانند موجودی ریالی خود را در آن نگهداری کنند. این کیف پول برای خریدهای سریع، انتقال ریال بین کاربران، و دریافت وجه از بازخرید توکن استفاده میشود. تمام تراکنشهای داخلی فوری و بدون کارمزد هستند.
بازیگران
- کاربر (User)
- سرویس مالی (Wallet Service)
- درگاه پرداخت
پیشنیازها
- احراز هویت تأیید شده (KYC)
- حساب کاربری فعال
جریان اصلی
- مشاهده موجودی کیف ریالی
- شارژ کیف پول (از طریق درگاه بانکی)
- برداشت به حساب بانکی
- انتقال ریال به سایر کاربران
- استفاده برای خرید توکن
نتیجه
- کاربر میتواند موجودی ریالی خود را مدیریت کند
- امکان خریدهای سریع فراهم میشود
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant WAL as Wallet Service
participant PAY as Payment Gateway
participant DB as Database
U->>UI: مشاهده کیف ریالی
UI->>API: درخواست موجودی
API->>WAL: دریافت موجودی ریالی
WAL->>DB: خواندن موجودی
DB-->>WAL: موجودی فعلی
WAL-->>API: موجودی
API-->>UI: نمایش موجودی
UI-->>U: موجودی کیف ریالی
alt شارژ کیف پول
U->>UI: درخواست شارژ + مبلغ
UI->>API: ایجاد تراکنش شارژ
API->>WAL: ایجاد درخواست پرداخت
WAL->>PAY: هدایت به درگاه
PAY-->>U: صفحه پرداخت
U->>PAY: تأیید پرداخت
PAY->>WAL: تأیید تراکنش
WAL->>DB: افزایش موجودی
WAL-->>API: شارژ موفق
API-->>UI: تراکنش موفق
UI-->>U: کیف پول شارژ شد
end
alt برداشت به حساب بانکی
U->>UI: درخواست برداشت + مبلغ + شبا
UI->>API: ثبت درخواست برداشت
API->>WAL: بررسی موجودی
WAL->>DB: کسر موجودی
WAL->>PAY: انتقال به حساب
PAY-->>WAL: تأیید واریز
WAL-->>API: برداشت موفق
API-->>UI: تراکنش موفق
UI-->>U: وجه به حساب شما واریز شد
end
alt انتقال به کاربر دیگر
U->>UI: انتقال + مبلغ + گیرنده
UI->>API: درخواست انتقال
API->>WAL: بررسی موجودی و گیرنده
WAL->>DB: کسر از فرستنده
WAL->>DB: افزودن به گیرنده
WAL-->>API: انتقال موفق
API-->>UI: تراکنش موفق
UI-->>U: انتقال انجام شد
end
4. واریز ریال
شرح خلاصه
کاربران میتوانند از طریق سه روش اصلی به کیف ریالی خود شارژ کنند: پرداخت آنلاین از طریق درگاه بانکی، واریز با شناسه پرداخت منحصر به فرد، و استفاده از کیف پولهای مجازی (جیبیت، وندار). هر روش مزایای خاص خود را دارد و کاربر میتواند متناسب با نیاز خود انتخاب کند.
بازیگران
- کاربر (User)
- درگاه پرداخت (Payment Gateway)
- سرویس مالی (Wallet Service)
- پرداختیارها (Jibit, Vandar)
پیشنیازها
- احراز هویت تأیید شده
- حساب بانکی یا کیف پول مجازی فعال
جریان اصلی
روش 1: درگاه آنلاین
- انتخاب مبلغ واریز
- هدایت به درگاه بانکی
- تأیید پرداخت
- افزایش موجودی کیف ریالی
روش 2: واریز با شناسه
- دریافت شناسه پرداخت منحصر به فرد
- واریز از طریق بانک به حساب سیستم
- شناسایی و تأیید خودکار تراکنش
- افزایش موجودی
روش 3: کیف پول مجازی
- اتصال کیف پول (جیبیت/وندار)
- انتخاب مبلغ
- تأیید برداشت از کیف پول
- افزایش موجودی
نتیجه
- موجودی کیف ریالی افزایش مییابد
- کاربر آماده خرید توکن است
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant WAL as Wallet Service
participant PAY as Payment Gateway
participant BANK as بانک
participant DB as Database
Note over U,DB: روش 1: درگاه آنلاین
U->>UI: انتخاب واریز ریال
UI->>API: درخواست واریز + مبلغ
API->>WAL: ایجاد تراکنش
WAL->>DB: ثبت تراکنش موقت
WAL->>PAY: ایجاد درخواست پرداخت
PAY-->>U: هدایت به درگاه بانک
U->>BANK: ورود اطلاعات کارت
BANK->>BANK: احراز هویت
BANK->>PAY: تأیید پرداخت
PAY->>WAL: Callback تأیید
WAL->>DB: بهروزرسانی تراکنش
WAL->>DB: افزایش موجودی کیف ریالی
WAL-->>API: واریز موفق
API-->>UI: بازگشت به صفحه
UI-->>U: واریز موفق انجام شد
Note over U,DB: روش 2: واریز با شناسه
U->>UI: درخواست شناسه پرداخت
UI->>API: تولید شناسه
API->>WAL: ایجاد شناسه منحصر به فرد
WAL->>DB: ثبت شناسه
WAL-->>API: شناسه + شماره حساب
API-->>UI: نمایش اطلاعات
UI-->>U: شناسه و شماره حساب
U->>BANK: واریز با شناسه
BANK->>WAL: اعلان تراکنش (Hook)
WAL->>DB: تطبیق شناسه
WAL->>DB: افزایش موجودی
WAL->>API: اعلان واریز
API->>UI: نوتیفیکیشن
UI-->>U: واریز تأیید شد
Note over U,DB: روش 3: کیف پول مجازی
U->>UI: واریز از جیبیت/وندار
UI->>API: اتصال کیف پول
API->>WAL: درخواست احراز هویت
WAL->>PAY: OAuth کیف پول
PAY-->>U: تأیید دسترسی
U->>PAY: تأیید
PAY-->>WAL: Token دسترسی
WAL-->>API: کیف پول متصل شد
API-->>UI: آماده واریز
U->>UI: مبلغ واریز
UI->>API: درخواست برداشت
API->>WAL: برداشت از کیف پول
WAL->>PAY: تراکنش برداشت
PAY-->>WAL: تأیید
WAL->>DB: افزایش موجودی
WAL-->>API: واریز موفق
API-->>UI: تراکنش موفق
UI-->>U: واریز انجام شد
5. واریز و برداشت توکن
شرح خلاصه
کاربران میتوانند توکنهای خود را از کیف پولهای خارجی به دارانو واریز کنند یا از دارانو به کیف پولهای خارجی منتقل نمایند. تمام انتقالها روی بلاکچین ققنوس (Kuknos) انجام میشود و قابل پیگیری هستند. برای واریز، کاربر آدرس کیف پول خود در دارانو را دریافت میکند و برای برداشت، آدرس مقصد را وارد مینماید.
بازیگران
- کاربر (User)
- سرویس کیف پول (Wallet Service)
- بلاکچین ققنوس (Kuknos Network)
- Wallet Streamer
پیشنیازها
- احراز هویت تأیید شده
- کیف پول توکنی ایجاد شده
- برای برداشت: موجودی کافی توکن
جریان اصلی
واریز توکن:
- کاربر آدرس کیف پول خود را کپی میکند
- از کیف پول خارجی توکن ارسال میکند
- Wallet Streamer تراکنش را شناسایی میکند
- موجودی کاربر بهروزرسانی میشود
برداشت توکن:
- کاربر آدرس مقصد را وارد میکند
- مقدار توکن را مشخص میکند
- تأیید تراکنش
- انتقال On-Chain روی ققنوس
- کاهش موجودی کاربر
نتیجه
- توکنها بین کیف پولها منتقل میشوند
- تمام تراکنشها روی بلاکچین ثبت میشوند
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant WAL as Wallet Service
participant GH as Kuknos Blockchain
participant STR as Wallet Streamer
participant DB as Database
Note over U,DB: واریز توکن از کیف پول خارجی
U->>UI: درخواست آدرس واریز
UI->>API: دریافت آدرس کیف پول
API->>WAL: آدرس کیف پول کاربر
WAL->>DB: خواندن آدرس عمومی
DB-->>WAL: آدرس
WAL-->>API: آدرس کیف پول
API-->>UI: نمایش آدرس + QR Code
UI-->>U: کپی آدرس
U->>U: ارسال از کیف پول خارجی
U->>GH: تراکنش On-Chain
GH->>GH: تأیید تراکنش
STR->>GH: Streaming تراکنشها
GH-->>STR: تراکنش جدید
STR->>STR: شناسایی آدرس کاربر
STR->>DB: ثبت تراکنش
STR->>DB: بهروزرسانی موجودی
STR->>API: اعلان واریز
API->>UI: نوتیفیکیشن
UI-->>U: توکن واریز شد
Note over U,DB: برداشت توکن به کیف پول خارجی
U->>UI: درخواست برداشت
UI->>API: شروع فرآیند برداشت
API-->>UI: فرم برداشت
U->>UI: آدرس مقصد + مقدار توکن
UI->>API: ثبت درخواست برداشت
API->>WAL: بررسی موجودی
WAL->>DB: خواندن موجودی
DB-->>WAL: موجودی فعلی
alt موجودی کافی
WAL->>WAL: آمادهسازی تراکنش
WAL->>GH: انتقال On-Chain
GH->>GH: پردازش تراکنش
GH-->>WAL: تأیید تراکنش
WAL->>DB: کاهش موجودی
WAL->>DB: ثبت تراکنش برداشت
WAL-->>API: برداشت موفق
API-->>UI: تراکنش موفق
UI-->>U: توکن ارسال شد
STR->>GH: پیگیری تأییدات
GH-->>STR: تأیید نهایی
STR->>DB: بهروزرسانی وضعیت
else موجودی ناکافی
WAL-->>API: خطا: موجودی کافی نیست
API-->>UI: خطای موجودی
UI-->>U: موجودی کافی نیست
end
6. خرید توکن در بازار اولیه
شرح خلاصه
در بازار اولیه (ICO/Primary Sale)، کاربران میتوانند مستقیماً توکنهای جدید را از سیستم خریداری کنند. این خرید میتواند از طریق درگاه پرداخت، کیف ریالی، یا به صورت اقساطی (BNPL) انجام شود. پس از پرداخت موفق، توکنها به صورت On-Chain به کیف پول کاربر منتقل میشوند. امکان استفاده از کد تخفیف و کد دعوت نیز وجود دارد.
بازیگران
- کاربر (User)
- سرویس بازار (Market Service)
- سرویس کیف پول (Wallet Service)
- درگاه پرداخت (Payment Gateway)
- بلاکچین ققنوس (Kuknos)
پیشنیازها
- احراز هویت تأیید شده
- پذیرش Trust Line برای توکن مورد نظر
- موجودی کافی (ریالی یا اعتبار اقساط)
جریان اصلی
- مشاهده پروژههای موجود در بازار اولیه
- انتخاب پروژه و تعداد توکن
- انتخاب روش پرداخت (آنلاین/کیف ریالی/اقساطی)
- اعمال کد تخفیف (اختیاری)
- تأیید و پرداخت
- انتقال On-Chain توکن به کیف پول کاربر
- دریافت تأییدیه خرید
نتیجه
- توکنها به کیف پول کاربر منتقل میشوند
- تراکنش در بلاکچین ثبت میشود
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant MKT as Market Service
participant WAL as Wallet Service
participant PAY as Payment Gateway
participant GH as Kuknos Blockchain
participant DB as Database
U->>UI: مشاهده بازار اولیه
UI->>API: لیست پروژههای ICO
API->>MKT: دریافت پروژههای فعال
MKT->>DB: خواندن پروژهها
DB-->>MKT: لیست پروژهها
MKT-->>API: پروژههای فعال
API-->>UI: نمایش پروژهها
UI-->>U: لیست پروژهها
U->>UI: انتخاب پروژه + تعداد توکن
UI->>API: ایجاد سفارش
API->>MKT: بررسی موجودی پروژه
MKT->>DB: چک موجودی توکن
DB-->>MKT: موجودی کافی
MKT->>WAL: بررسی Trust Line
WAL->>GH: Query Trust Line
GH-->>WAL: Trust Line فعال
MKT->>MKT: محاسبه قیمت
MKT-->>API: قیمت نهایی
API-->>UI: نمایش قیمت
U->>UI: انتخاب روش پرداخت
alt پرداخت از کیف ریالی
UI->>API: پرداخت از کیف ریالی
API->>WAL: بررسی موجودی ریالی
WAL->>DB: خواندن موجودی
DB-->>WAL: موجودی کافی
WAL->>DB: کسر موجودی
WAL-->>API: پرداخت موفق
else پرداخت آنلاین
UI->>API: پرداخت آنلاین
API->>PAY: ایجاد تراکنش
PAY-->>U: هدایت به درگاه
U->>PAY: تأیید پرداخت
PAY-->>API: Callback تأیید
else خرید اقساطی (BNPL)
UI->>API: درخواست اقساط
API->>MKT: بررسی اعتبار کاربر
MKT->>DB: چک اعتبار
DB-->>MKT: اعتبار کافی
MKT-->>API: تأیید اقساط
end
API->>MKT: تأیید نهایی سفارش
MKT->>DB: ثبت سفارش
MKT->>WAL: انتقال توکن
WAL->>GH: Transfer On-Chain
GH->>GH: پردازش تراکنش
GH-->>WAL: تأیید انتقال
WAL->>DB: بهروزرسانی موجودی
WAL-->>MKT: انتقال موفق
MKT->>DB: تکمیل سفارش
MKT-->>API: خرید موفق
API-->>UI: تأییدیه خرید
UI-->>U: توکن خریداری شد
7. معامله در بازار ثانویه
شرح خلاصه
بازار ثانویه یک پلتفرم P2P (Peer-to-Peer) است که کاربران میتوانند توکنهای خود را به یکدیگر بفروشند. فروشندگان سفارش فروش ثبت میکنند و توکنهای خود قفل میشود. خریداران میتوانند از Order Book سفارش مناسب را انتخاب کرده و خریداری کنند. تسویه به صورت خودکار و On-Chain انجام میشود. سیستم از مکانیزم Maker/Taker Fee پشتیبانی میکند.
بازیگران
- فروشنده (Seller/Maker)
- خریدار (Buyer/Taker)
- سرویس بازار (Market Service)
- سرویس کیف پول (Wallet Service)
- بلاکچین ققنوس (Kuknos)
پیشنیازها
- احراز هویت تأیید شده
- برای فروشنده: موجودی توکن
- برای خریدار: موجودی ریالی کافی
جریان اصلی
ثبت سفارش فروش (Maker):
- انتخاب توکن و مقدار برای فروش
- تعیین قیمت واحد
- تأیید سفارش
- قفل شدن توکنها
- قرارگیری سفارش در Order Book
خرید از بازار (Taker):
- مشاهده Order Book
- انتخاب سفارش فروش
- تأیید خرید و پرداخت
- انتقال خودکار توکن از فروشنده به خریدار
- واریز ریال به حساب فروشنده
- کسر کارمزد
نتیجه
- توکن به خریدار منتقل میشود
- وجه به فروشنده واریز میشود
- معامله در بلاکچین ثبت میشود
Sequence Diagram
sequenceDiagram
participant S as فروشنده
participant B as خریدار
participant UI as رابط کاربری
participant API as API Gateway
participant MKT as Market Service
participant WAL as Wallet Service
participant GH as Kuknos Blockchain
participant DB as Database
Note over S,DB: ثبت سفارش فروش (Maker)
S->>UI: ایجاد سفارش فروش
UI->>API: ثبت سفارش + توکن + قیمت
API->>MKT: ایجاد سفارش
MKT->>WAL: بررسی موجودی فروشنده
WAL->>DB: خواندن موجودی توکن
DB-->>WAL: موجودی کافی
MKT->>WAL: قفل کردن توکن
WAL->>DB: Lock Token
DB-->>WAL: توکن قفل شد
MKT->>DB: ثبت سفارش (Status: Open)
MKT-->>API: سفارش ثبت شد
API-->>UI: سفارش در Order Book
UI-->>S: سفارش شما ثبت شد
Note over S,DB: خرید از بازار ثانویه (Taker)
B->>UI: مشاهده بازار ثانویه
UI->>API: دریافت Order Book
API->>MKT: لیست سفارشهای فروش
MKT->>DB: Query سفارشهای Open
DB-->>MKT: لیست سفارشها
MKT-->>API: Order Book
API-->>UI: نمایش سفارشها
UI-->>B: لیست سفارشهای فروش
B->>UI: انتخاب سفارش + تعداد
UI->>API: ثبت درخواست خرید
API->>MKT: Match Order
MKT->>WAL: بررسی موجودی ریالی خریدار
WAL->>DB: خواندن موجودی ریالی
DB-->>WAL: موجودی کافی
MKT->>MKT: محاسبه قیمت + کارمزد
MKT->>WAL: کسر موجودی ریالی خریدار
WAL->>DB: کسر ریال
MKT->>WAL: انتقال توکن
WAL->>WAL: آزادسازی قفل
WAL->>GH: Transfer On-Chain
GH->>GH: پردازش تراکنش
GH-->>WAL: تأیید انتقال
WAL->>DB: بهروزرسانی موجودی توکن
WAL->>DB: افزایش ریال فروشنده
WAL->>DB: کسر کارمزد
WAL-->>MKT: معامله تکمیل شد
MKT->>DB: بهروزرسانی وضعیت سفارش
MKT-->>API: Trade موفق
API->>UI: اعلان به خریدار
UI-->>B: توکن خریداری شد
API->>UI: اعلان به فروشنده
UI-->>S: توکن شما فروخته شد
8. مشاهده داراییها و تاریخچه
شرح خلاصه
کاربران میتوانند تمامی داراییهای خود (توکنها و موجودی ریالی) را در یک داشبورد جامع مشاهده کنند. همچنین دسترسی کامل به تاریخچه تمام تراکنشها (خرید، فروش، واریز، برداشت) با امکان فیلتر و جستجو وجود دارد. ارزش کل داراییها به صورت لحظهای محاسبه و نمایش داده میشود.
بازیگران
- کاربر (User)
- سرویس کیف پول (Wallet Service)
- سرویس بازار (Market Service)
- بلاکچین ققنوس (Kuknos)
پیشنیازها
- ورود به سیستم
- داشتن حساب کاربری
جریان اصلی
- ورود به داشبورد پورتفولیو
- مشاهده موجودی تمام توکنها
- مشاهده موجودی ریالی
- نمایش ارزش کل داراییها
- مشاهده تاریخچه تراکنشها
- فیلتر بر اساس نوع تراکنش، تاریخ، توکن
- Export گزارش (PDF/Excel)
نتیجه
- کاربر اطلاعات کامل داراییهای خود را مشاهده میکند
- دسترسی به تاریخچه کامل تراکنشها
Sequence Diagram
sequenceDiagram
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant WAL as Wallet Service
participant MKT as Market Service
participant GH as Kuknos Blockchain
participant DB as Database
Note over U,DB: مشاهده داراییها (Portfolio)
U->>UI: ورود به داشبورد
UI->>API: درخواست اطلاعات دارایی
par دریافت موجودی توکنها
API->>WAL: دریافت موجودی توکنها
WAL->>GH: Query Balance On-Chain
GH-->>WAL: موجودی توکنها
WAL->>MKT: دریافت قیمت لحظهای
MKT->>DB: Query آخرین قیمتها
DB-->>MKT: قیمتها
MKT-->>WAL: قیمتهای لحظهای
WAL->>WAL: محاسبه ارزش توکنها
WAL-->>API: موجودی + ارزش توکنها
and دریافت موجودی ریالی
API->>WAL: دریافت موجودی ریالی
WAL->>DB: Query موجودی ریالی
DB-->>WAL: موجودی ریالی
WAL-->>API: موجودی ریالی
end
API->>API: محاسبه ارزش کل دارایی
API-->>UI: اطلاعات کامل دارایی
UI-->>U: نمایش پورتفولیو
Note over U,DB: مشاهده تاریخچه تراکنشها
U->>UI: درخواست تاریخچه
UI->>API: دریافت تاریخچه تراکنشها
API->>DB: Query تراکنشهای کاربر
DB-->>API: لیست تراکنشها
API-->>UI: تاریخچه کامل
UI-->>U: نمایش تراکنشها
opt فیلتر کردن
U->>UI: اعمال فیلتر (نوع/تاریخ/توکن)
UI->>API: درخواست فیلتر شده
API->>DB: Query با فیلتر
DB-->>API: نتایج فیلتر شده
API-->>UI: تراکنشهای فیلتر شده
UI-->>U: نمایش نتایج
end
opt دریافت جزئیات تراکنش
U->>UI: انتخاب تراکنش
UI->>API: درخواست جزئیات
API->>DB: Query جزئیات تراکنش
DB-->>API: اطلاعات کامل
alt تراکنش On-Chain
API->>WAL: دریافت اطلاعات بلاکچین
WAL->>GH: Query Transaction
GH-->>WAL: جزئیات On-Chain
WAL-->>API: اطلاعات بلاکچین
end
API-->>UI: جزئیات کامل تراکنش
UI-->>U: نمایش جزئیات
end
opt Export گزارش
U->>UI: درخواست Export
UI->>API: ایجاد گزارش
API->>DB: دریافت دادهها
DB-->>API: دادههای گزارش
API->>API: ایجاد فایل (PDF/Excel)
API-->>UI: فایل گزارش
UI-->>U: دانلود گزارش
end
9. استفاده از کد تخفیف
شرح خلاصه
سیستم کد تخفیف امکان ایجاد کمپینهای تخفیف را برای مدیران فراهم میکند. کاربران میتوانند هنگام خرید توکن (در بازار اولیه یا ثانویه) از کدهای تخفیف استفاده کنند. کدها میتوانند عمومی، شخصی، یا یکبار مصرف باشند. سیستم محدودیتهای مختلفی مانند تاریخ انقضا، حداقل مبلغ خرید، و تعداد استفاده را پشتیبانی میکند.
بازیگران
- کاربر (User)
- Admin
- سرویس بازار (Market Service)
پیشنیازها
- کاربر: حساب کاربری فعال
- Admin: ایجاد کد تخفیف معتبر
جریان اصلی
ایجاد کد تخفیف (Admin):
- ورود به پنل مدیریت
- ایجاد کد تخفیف جدید
- تعیین پارامترها (درصد/مبلغ، محدودیتها)
- فعالسازی کد
استفاده از کد (User):
- انتخاب توکن برای خرید
- وارد کردن کد تخفیف
- اعتبارسنجی کد
- اعمال تخفیف
- تکمیل خرید با قیمت تخفیفخورده
نتیجه
- تخفیف به خرید اعمال میشود
- تعداد استفاده کد بهروزرسانی میشود
Sequence Diagram
sequenceDiagram
participant A as Admin
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant MKT as Market Service
participant DB as Database
Note over A,DB: ایجاد کد تخفیف توسط Admin
A->>UI: ورود به پنل مدیریت
A->>UI: ایجاد کد تخفیف جدید
UI->>API: ثبت کد تخفیف
API->>MKT: ایجاد کد
MKT->>MKT: تولید کد منحصر به فرد
MKT->>DB: ذخیره کد + پارامترها
Note right of DB: پارامترها:<br/>- درصد/مبلغ تخفیف<br/>- تاریخ شروع/پایان<br/>- حداقل مبلغ<br/>- حداکثر تعداد استفاده<br/>- نوع (عمومی/شخصی)
MKT-->>API: کد ایجاد شد
API-->>UI: تأیید ایجاد
UI-->>A: کد تخفیف فعال شد
Note over A,DB: استفاده از کد تخفیف توسط کاربر
U->>UI: شروع فرآیند خرید توکن
UI->>API: ایجاد سفارش
API->>MKT: محاسبه قیمت اولیه
MKT-->>API: قیمت بدون تخفیف
API-->>UI: نمایش قیمت
U->>UI: وارد کردن کد تخفیف
UI->>API: اعتبارسنجی کد
API->>MKT: بررسی اعتبار کد
MKT->>DB: Query کد تخفیف
DB-->>MKT: اطلاعات کد
MKT->>MKT: بررسی شرایط
Note right of MKT: بررسی:<br/>- کد معتبر است؟<br/>- منقضی نشده؟<br/>- ظرفیت دارد؟<br/>- مبلغ کافی است؟<br/>- کاربر مجاز است؟
alt کد معتبر
MKT->>MKT: محاسبه تخفیف
MKT-->>API: تخفیف + قیمت نهایی
API-->>UI: نمایش قیمت با تخفیف
UI-->>U: تخفیف اعمال شد
U->>UI: تأیید خرید
UI->>API: تکمیل سفارش
API->>MKT: ثبت سفارش با تخفیف
MKT->>DB: ثبت سفارش
MKT->>DB: افزایش تعداد استفاده کد
MKT->>DB: ثبت سابقه استفاده
MKT-->>API: سفارش ثبت شد
API-->>UI: خرید موفق
UI-->>U: خرید با تخفیف انجام شد
else کد نامعتبر
MKT-->>API: خطای اعتبارسنجی
Note right of API: انواع خطا:<br/>- کد وجود ندارد<br/>- منقضی شده<br/>- ظرفیت تمام شده<br/>- مبلغ کمتر از حداقل<br/>- کاربر مجاز نیست
API-->>UI: پیام خطا
UI-->>U: کد تخفیف نامعتبر
end
Note over A,DB: مشاهده گزارش استفاده (Admin)
A->>UI: مشاهده گزارش کدهای تخفیف
UI->>API: درخواست آمار
API->>MKT: دریافت گزارش
MKT->>DB: Query آمار استفاده
DB-->>MKT: آمار کامل
MKT-->>API: گزارش
API-->>UI: نمایش آمار
UI-->>A: آمار و گزارش کدها
Use Case های سمت مدیریت
10. صدور توکن و تخصیص اولیه
شرح خلاصه
مدیران سیستم میتوانند توکنهای جدید برای داراییهای واقعی ایجاد کنند. این فرآیند شامل تعریف مشخصات توکن (نام، نماد، تعداد کل)، صدور On-Chain روی بلاکچین ققنوس، و تخصیص اولیه به کیف پول سیستم است. تمام عملیات با سیستم ABAC (Attribute-Based Access Control) کنترل میشوند.
بازیگران
- Admin/Asset Manager
- سرویس کیف پول (Wallet Service)
- بلاکچین ققنوس (Kuknos)
پیشنیازها
- دسترسی Admin با نقش Asset Manager
- مجوز ABAC برای صدور توکن
- اطلاعات کامل دارایی
جریان اصلی
- ورود به پنل مدیریت
- ایجاد پروژه/دارایی جدید
- تعریف مشخصات توکن
- تأیید و صدور توکن
- ایجاد توکن روی بلاکچین
- تخصیص اولیه به کیف پول سیستم
- ایجاد سفارش فروش در بازار اولیه
نتیجه
- توکن جدید روی بلاکچین صادر میشود
- توکن آماده فروش در بازار اولیه است
Sequence Diagram
sequenceDiagram
participant A as Admin
participant UI as Admin Panel
participant API as API Gateway
participant AUTH as Auth Service
participant WAL as Wallet Service
participant MKT as Market Service
participant GH as Kuknos Blockchain
participant DB as Database
A->>UI: ورود به پنل مدیریت
UI->>API: درخواست احراز هویت
API->>AUTH: بررسی نقش و دسترسی
AUTH->>AUTH: RBAC + ABAC Check
Note right of AUTH: بررسی:<br/>- نقش: Asset Manager<br/>- Policy: Token Issuance<br/>- Scope: Project Level
alt دسترسی مجاز
AUTH-->>API: دسترسی تأیید شد
API-->>UI: ورود موفق
A->>UI: ایجاد پروژه جدید
UI->>API: ثبت پروژه
API-->>UI: فرم مشخصات توکن
A->>UI: تکمیل اطلاعات توکن
Note right of A: اطلاعات:<br/>- نام توکن<br/>- نماد (Symbol)<br/>- تعداد کل (Total Supply)<br/>- توضیحات<br/>- قیمت اولیه<br/>- اطلاعات دارایی
UI->>API: ثبت اطلاعات
API->>MKT: ایجاد پروژه
MKT->>DB: ذخیره اطلاعات پروژه
MKT-->>API: پروژه ایجاد شد
A->>UI: تأیید صدور توکن
UI->>API: درخواست صدور
API->>WAL: Issue Token
WAL->>WAL: آمادهسازی تراکنش
WAL->>GH: صدور توکن On-Chain
Note right of GH: عملیات بلاکچین:<br/>- ایجاد Asset<br/>- Set Asset Options<br/>- Minting
GH->>GH: پردازش تراکنش
GH-->>WAL: تأیید صدور
WAL->>DB: ثبت اطلاعات توکن
WAL->>DB: ذخیره Transaction Hash
WAL-->>API: صدور موفق
API->>MKT: فعالسازی پروژه
MKT->>DB: بهروزرسانی وضعیت
Note right of DB: وضعیت: Active<br/>موجودی: Total Supply<br/>قابل فروش: Yes
MKT-->>API: پروژه فعال شد
API-->>UI: توکن صادر شد
UI-->>A: توکن با موفقیت ایجاد شد
else دسترسی غیرمجاز
AUTH-->>API: خطای دسترسی
API-->>UI: عدم مجوز
UI-->>A: شما مجوز این عملیات را ندارید
end
opt تخصیص اولیه به کیف پولهای خاص
A->>UI: تخصیص به کیف پولها
UI->>API: لیست تخصیصها
API->>WAL: انتقال توکنها
loop برای هر تخصیص
WAL->>GH: Transfer On-Chain
GH-->>WAL: تأیید انتقال
WAL->>DB: ثبت تخصیص
end
WAL-->>API: تخصیصها انجام شد
API-->>UI: تأیید
UI-->>A: تخصیص اولیه انجام شد
end
11. مدیریت بازخرید
شرح خلاصه
مدیران میتوانند درخواستهای بازخرید توکن از کاربران را مدیریت کنند. این شامل تعیین قیمت بازخرید، بررسی و تأیید درخواستها، و پردازش خودکار یا دستی بازخرید است. سیستم از تنظیمات بازخرید خودکار (Auto Buy-Back) نیز پشتیبانی میکند.
بازیگران
- Admin/Asset Manager
- کاربر (User)
- سرویس بازار (Market Service)
- سرویس کیف پول (Wallet Service)
پیشنیازها
- توکن قابل بازخرید
- تنظیمات بازخرید فعال
- موجودی ریالی کافی در سیستم
جریان اصلی
- تنظیم پارامترهای بازخرید (قیمت، محدودیتها)
- دریافت درخواست بازخرید از کاربر
- بررسی شرایط (Lock Period, etc.)
- تأیید یا رد درخواست
- دریافت توکن از کاربر
- پرداخت معادل ریالی
نتیجه
- توکن به سیستم بازمیگردد
- وجه به حساب کاربر واریز میشود
Sequence Diagram
sequenceDiagram
participant A as Admin
participant U as کاربر
participant UI as رابط کاربری
participant API as API Gateway
participant MKT as Market Service
participant WAL as Wallet Service
participant GH as Kuknos Blockchain
participant DB as Database
Note over A,DB: تنظیم پارامترهای بازخرید
A->>UI: ورود به پنل مدیریت
A->>UI: تنظیمات بازخرید توکن
UI->>API: بهروزرسانی تنظیمات
API->>MKT: ذخیره پارامترها
MKT->>DB: ذخیره تنظیمات
Note right of DB: تنظیمات:<br/>- قیمت بازخرید<br/>- بازخرید خودکار<br/>- حداقل/حداکثر مقدار<br/>- Lock Period<br/>- کارمزد بازخرید
MKT-->>API: تنظیمات ذخیره شد
API-->>UI: تأیید
UI-->>A: بازخرید فعال شد
Note over A,DB: درخواست بازخرید توسط کاربر
U->>UI: درخواست بازخرید توکن
UI->>API: ثبت درخواست
API->>MKT: بررسی امکان بازخرید
MKT->>DB: خواندن تنظیمات
DB-->>MKT: پارامترهای بازخرید
MKT->>WAL: بررسی موجودی کاربر
WAL->>GH: Query Balance
GH-->>WAL: موجودی توکن
MKT->>MKT: بررسی شرایط
Note right of MKT: بررسی:<br/>- توکن قابل بازخرید؟<br/>- Lock Period سپری شده؟<br/>- مقدار در محدوده؟<br/>- موجودی کافی؟
alt شرایط برقرار
MKT->>MKT: محاسبه قیمت بازخرید
MKT->>DB: ثبت درخواست (Pending)
MKT-->>API: درخواست ثبت شد
API-->>UI: منتظر تأیید
UI-->>U: درخواست شما ثبت شد
alt بازخرید خودکار فعال
MKT->>MKT: تأیید خودکار
MKT->>WAL: پردازش بازخرید
WAL->>GH: دریافت توکن از کاربر
GH->>GH: پردازش تراکنش
GH-->>WAL: توکن دریافت شد
WAL->>DB: افزایش موجودی ریالی کاربر
WAL->>DB: کسر موجودی ریالی سیستم
WAL->>DB: کسر کارمزد
MKT->>DB: بهروزرسانی وضعیت (Completed)
MKT-->>API: بازخرید انجام شد
API->>UI: نوتیفیکیشن
UI-->>U: بازخرید موفق
else بازخرید دستی
Note over A,DB: بررسی و تأیید توسط Admin
A->>UI: مشاهده درخواستهای بازخرید
UI->>API: لیست درخواستهای Pending
API->>MKT: Query درخواستها
MKT->>DB: لیست Pending
DB-->>MKT: درخواستها
MKT-->>API: لیست
API-->>UI: نمایش
UI-->>A: درخواستهای بازخرید
A->>UI: بررسی + تصمیم
alt تأیید بازخرید
A->>UI: تأیید درخواست
UI->>API: تأیید بازخرید
API->>MKT: پردازش بازخرید
MKT->>WAL: انتقال توکن
WAL->>GH: Transfer On-Chain
GH-->>WAL: تأیید
WAL->>DB: بهروزرسانی موجودیها
MKT->>DB: وضعیت: Approved
MKT-->>API: تأیید شد
API->>UI: نوتیفیکیشن به کاربر
UI-->>U: بازخرید تأیید شد
else رد بازخرید
A->>UI: رد درخواست + دلیل
UI->>API: رد بازخرید
API->>MKT: ثبت رد
MKT->>DB: وضعیت: Rejected
MKT-->>API: رد شد
API->>UI: نوتیفیکیشن
UI-->>U: درخواست رد شد
end
end
else شرایط برقرار نیست
MKT-->>API: خطا
API-->>UI: پیام خطا
UI-->>U: امکان بازخرید وجود ندارد
end
12. مدیریت سفارشها و بازار
شرح خلاصه
مدیران میتوانند بازار را کنترل و نظارت کنند. این شامل مشاهده تمام سفارشهای فعال، لغو سفارشهای مشکوک، تنظیم کارمزدهای Maker/Taker، مدیریت Order Book، و کنترل نقدینگی بازار است. سیستم گزارشهای جامعی از حجم معاملات، قیمتها، و فعالیت کاربران ارائه میدهد.
بازیگران
- Admin/Market Operator
- سرویس بازار (Market Service)
پیشنیازها
- دسترسی Admin با نقش Market Operator
- مجوز ABAC برای مدیریت بازار
جریان اصلی
- مشاهده Order Book و سفارشهای فعال
- مدیریت سفارشها (لغو، تعلیق)
- تنظیم کارمزدها
- مشاهده آمار و گزارشات
- کنترل نقدینگی
- تنظیمات امنیتی (حد معامله، KYC Level)
نتیجه
- بازار به صورت سالم و شفاف عمل میکند
- گزارشهای کامل در دسترس است
Sequence Diagram
sequenceDiagram
participant A as Admin
participant UI as Admin Panel
participant API as API Gateway
participant AUTH as Auth Service
participant MKT as Market Service
participant DB as Database
A->>UI: ورود به پنل مدیریت بازار
UI->>API: درخواست احراز هویت
API->>AUTH: بررسی دسترسی
AUTH->>AUTH: RBAC + ABAC Check
AUTH-->>API: دسترسی تأیید شد
API-->>UI: ورود موفق
Note over A,DB: مشاهده و مدیریت سفارشها
A->>UI: مشاهده Order Book
UI->>API: درخواست سفارشهای فعال
API->>MKT: دریافت Order Book
MKT->>DB: Query سفارشهای Open
DB-->>MKT: لیست سفارشها
MKT->>MKT: تحلیل و آمادهسازی
MKT-->>API: Order Book کامل
API-->>UI: نمایش
UI-->>A: لیست سفارشهای فعال
opt مدیریت سفارش خاص
A->>UI: انتخاب سفارش
UI->>API: درخواست جزئیات
API->>MKT: اطلاعات کامل سفارش
MKT->>DB: Query جزئیات
DB-->>MKT: اطلاعات کامل
MKT-->>API: جزئیات سفارش
API-->>UI: نمایش جزئیات
UI-->>A: اطلاعات سفارش
alt لغو سفارش
A->>UI: لغو سفارش + دلیل
UI->>API: درخواست لغو
API->>MKT: Cancel Order
MKT->>DB: بهروزرسانی وضعیت
MKT->>DB: آزادسازی توکن قفل شده
MKT-->>API: سفارش لغو شد
API->>UI: نوتیفیکیشن به کاربر
UI-->>A: سفارش لغو شد
end
end
Note over A,DB: تنظیم کارمزدها
A->>UI: تنظیمات کارمزد
UI->>API: درخواست تنظیمات فعلی
API->>MKT: دریافت کارمزدها
MKT->>DB: Query تنظیمات
DB-->>MKT: کارمزدهای فعلی
MKT-->>API: تنظیمات
API-->>UI: نمایش کارمزدها
UI-->>A: کارمزدهای فعلی
A->>UI: تغییر کارمزدها
Note right of A: تنظیمات:<br/>- Maker Fee<br/>- Taker Fee<br/>- کارمزد بر اساس توکن<br/>- تخفیف حجمی
UI->>API: ذخیره کارمزدهای جدید
API->>MKT: بهروزرسانی
MKT->>DB: ذخیره تنظیمات
MKT-->>API: تأیید
API-->>UI: کارمزدها بهروز شدند
UI-->>A: تنظیمات ذخیره شد
Note over A,DB: مشاهده آمار و گزارشات
A->>UI: درخواست گزارش بازار
UI->>API: دریافت آمار
API->>MKT: تولید گزارش
par جمعآوری دادهها
MKT->>DB: حجم معاملات
DB-->>MKT: آمار معاملات
and
MKT->>DB: تعداد کاربران فعال
DB-->>MKT: آمار کاربران
and
MKT->>DB: میانگین قیمتها
DB-->>MKT: آمار قیمت
and
MKT->>DB: کارمزدهای دریافتی
DB-->>MKT: آمار کارمزد
end
MKT->>MKT: تحلیل و تجمیع
MKT-->>API: گزارش کامل
API-->>UI: نمایش گزارش
UI-->>A: آمار و تحلیل بازار
Note over A,DB: کنترل نقدینگی
A->>UI: مدیریت نقدینگی
UI->>API: وضعیت نقدینگی
API->>MKT: تحلیل نقدینگی
MKT->>DB: موجودیهای سیستم
DB-->>MKT: موجودیها
MKT->>MKT: محاسبه Liquidity Ratio
MKT-->>API: وضعیت نقدینگی
API-->>UI: نمایش
UI-->>A: تحلیل نقدینگی
opt تنظیمات امنیتی
A->>UI: تنظیمات امنیتی بازار
Note right of A: تنظیمات:<br/>- حداکثر مبلغ معامله<br/>- KYC Level مورد نیاز<br/>- محدودیت روزانه<br/>- فیلترهای ضد تقلب
UI->>API: بهروزرسانی تنظیمات
API->>MKT: ذخیره تنظیمات امنیتی
MKT->>DB: ذخیره
MKT-->>API: تأیید
API-->>UI: تنظیمات ذخیره شد
UI-->>A: تنظیمات امنیتی فعال شد
end
13. مدیریت کاربران و گزارشات
شرح خلاصه
مدیران میتوانند کاربران را مدیریت کنند، شامل مشاهده اطلاعات کاربران، وضعیت KYC، تاریخچه فعالیتها، مسدودسازی یا فعالسازی حسابها، و دسترسی به گزارشات جامع مالی و عملیاتی. سیستم از فیلترهای پیشرفته و امکان Export گزارشات پشتیبانی میکند.
بازیگران
- Admin/User Manager
- سرویس احراز هویت (Auth Service)
- سرویس مالی (Wallet Service)
پیشنیازها
- دسترسی Admin با نقش User Manager
- مجوز RBAC/ABAC
جریان اصلی
- جستجو و فیلتر کاربران
- مشاهده جزئیات کاربر
- بررسی وضعیت KYC
- مشاهده تاریخچه فعالیتها
- مدیریت وضعیت حساب (فعال/غیرفعال/مسدود)
- تولید گزارشات سفارشی
- Export دادهها
نتیجه
- مدیریت کامل کاربران
- دسترسی به گزارشات جامع
Sequence Diagram
sequenceDiagram
participant A as Admin
participant UI as Admin Panel
participant API as API Gateway
participant AUTH as Auth Service
participant WAL as Wallet Service
participant MKT as Market Service
participant DB as Database
A->>UI: ورود به پنل مدیریت کاربران
UI->>API: احراز هویت
API->>AUTH: بررسی دسترسی
AUTH-->>API: دسترسی تأیید شد
API-->>UI: ورود موفق
Note over A,DB: جستجو و مشاهده کاربران
A->>UI: جستجوی کاربر
Note right of A: فیلترها:<br/>- شماره موبایل<br/>- کدملی<br/>- وضعیت KYC<br/>- تاریخ ثبتنام<br/>- سطح فعالیت
UI->>API: درخواست لیست کاربران
API->>AUTH: Query کاربران
AUTH->>DB: جستجو با فیلتر
DB-->>AUTH: لیست کاربران
AUTH-->>API: نتایج
API-->>UI: نمایش لیست
UI-->>A: لیست کاربران
Note over A,DB: مشاهده جزئیات کاربر
A->>UI: انتخاب کاربر
UI->>API: درخواست اطلاعات کامل
par دریافت اطلاعات
API->>AUTH: اطلاعات هویتی
AUTH->>DB: Query اطلاعات کاربر
DB-->>AUTH: اطلاعات + وضعیت KYC
AUTH-->>API: اطلاعات هویتی
and
API->>WAL: اطلاعات مالی
WAL->>DB: موجودیها
DB-->>WAL: موجودی توکن + ریال
WAL-->>API: اطلاعات مالی
and
API->>MKT: تاریخچه معاملات
MKT->>DB: Query تراکنشها
DB-->>MKT: تاریخچه
MKT-->>API: تراکنشها
end
API->>API: تجمیع اطلاعات
API-->>UI: پروفایل کامل کاربر
UI-->>A: نمایش اطلاعات کامل
Note over A,DB: بررسی وضعیت KYC
A->>UI: مشاهده جزئیات KYC
UI->>API: درخواست اطلاعات KYC
API->>AUTH: اطلاعات احراز هویت
AUTH->>DB: Query KYC Data
DB-->>AUTH: اطلاعات KYC
Note right of DB: اطلاعات:<br/>- وضعیت (تأیید/رد/در انتظار)<br/>- اطلاعات شاهکار<br/>- اطلاعات بانکی<br/>- مدارک ارسالی<br/>- تاریخ احراز
AUTH-->>API: اطلاعات کامل KYC
API-->>UI: نمایش
UI-->>A: جزئیات احراز هویت
opt تغییر وضعیت KYC
A->>UI: تأیید/رد KYC
UI->>API: بهروزرسانی وضعیت
API->>AUTH: تغییر وضعیت KYC
AUTH->>DB: Update KYC Status
AUTH-->>API: تأیید
API->>UI: نوتیفیکیشن به کاربر
UI-->>A: وضعیت بهروز شد
end
Note over A,DB: مدیریت وضعیت حساب
A->>UI: تغییر وضعیت حساب
Note right of A: عملیات ممکن:<br/>- فعالسازی<br/>- غیرفعالسازی<br/>- مسدودسازی موقت<br/>- مسدودسازی دائم
UI->>API: درخواست تغییر وضعیت
API->>AUTH: بهروزرسانی وضعیت
AUTH->>DB: Update Account Status
alt مسدودسازی حساب
AUTH->>WAL: قفل کردن داراییها
WAL->>DB: Lock Assets
WAL-->>AUTH: داراییها قفل شدند
AUTH->>MKT: لغو سفارشهای فعال
MKT->>DB: Cancel Active Orders
MKT-->>AUTH: سفارشها لغو شدند
end
AUTH-->>API: وضعیت تغییر کرد
API->>UI: نوتیفیکیشن
UI-->>A: حساب کاربر بهروز شد
Note over A,DB: تولید گزارشات
A->>UI: درخواست گزارش سفارشی
Note right of A: گزارشات:<br/>- کاربران جدید<br/>- حجم معاملات<br/>- کارمزدهای دریافتی<br/>- وضعیت KYC<br/>- تراکنشهای مشکوک
UI->>API: پارامترهای گزارش
API->>AUTH: جمعآوری دادهها
par دریافت دادههای مختلف
AUTH->>DB: آمار کاربران
DB-->>AUTH: دادههای کاربری
and
API->>WAL: آمار مالی
WAL->>DB: دادههای مالی
DB-->>WAL: آمار
WAL-->>API: اطلاعات مالی
and
API->>MKT: آمار معاملات
MKT->>DB: دادههای معاملاتی
DB-->>MKT: آمار
MKT-->>API: اطلاعات معاملات
end
AUTH-->>API: دادههای کاربری
API->>API: تجمیع و تحلیل
API-->>UI: گزارش نهایی
UI-->>A: نمایش گزارش
opt Export گزارش
A->>UI: درخواست Export (PDF/Excel/CSV)
UI->>API: تولید فایل
API->>API: ایجاد فایل Export
API-->>UI: فایل آماده
UI-->>A: دانلود گزارش
end
Note over A,DB: مشاهده فعالیتهای مشکوک
A->>UI: بررسی فعالیتهای مشکوک
UI->>API: درخواست تراکنشهای مشکوک
API->>MKT: تحلیل الگوهای غیرعادی
MKT->>DB: Query تراکنشها
Note right of MKT: الگوهای مشکوک:<br/>- حجم غیرعادی<br/>- قیمت غیرمنطقی<br/>- فعالیت همزمان<br/>- wash trading
DB-->>MKT: تراکنشهای مشکوک
MKT-->>API: لیست فعالیتها
API-->>UI: نمایش
UI-->>A: فعالیتهای مشکوک
14. پیکربندی و پایش سامانه
شرح خلاصه
مدیران سیستم میتوانند تنظیمات کلی سامانه را پیکربندی کنند و سلامت سیستم را پایش نمایند. این شامل مانیتورینگ سرویسها، مشاهده لاگها، تنظیم پارامترهای سیستم، مدیریت اتصال به بلاکچین، و دریافت آلارمهای امنیتی و عملیاتی است. از ابزارهایی مانند Prometheus، Grafana، و Portainer استفاده میشود.
بازیگران
- System Admin/DevOps
- Prometheus
- Grafana
- Portainer
- تمام سرویسهای سیستم
پیشنیازها
- دسترسی System Admin
- دسترسی به ابزارهای مانیتورینگ
جریان اصلی
- مشاهده وضعیت سرویسها (Health Check)
- مانیتورینگ منابع (CPU, Memory, Disk)
- بررسی لاگهای سیستم
- تنظیم پارامترهای سیستمی
- مدیریت اتصال بلاکچین
- دریافت و مدیریت آلارمها
- Backup و Recovery
نتیجه
- سیستم به صورت بهینه عمل میکند
- مشکلات به موقع شناسایی میشوند
Sequence Diagram
sequenceDiagram
participant A as System Admin
participant UI as Admin Panel
participant PORT as Portainer
participant PROM as Prometheus
participant GRAF as Grafana
participant ALERT as Alertmanager
participant API as API Gateway
participant WAL as Wallet Service
participant GH as Kuknos Blockchain
participant DB as Database
Note over A,DB: مانیتورینگ وضعیت سرویسها
A->>UI: ورود به داشبورد مانیتورینگ
UI->>GRAF: درخواست داشبورد
GRAF->>PROM: Query Metrics
par جمعآوری Metrics
PROM->>API: /metrics
API-->>PROM: API Metrics
and
PROM->>WAL: /metrics
WAL-->>PROM: Wallet Metrics
and
PROM->>DB: Database Metrics
DB-->>PROM: DB Metrics
end
PROM-->>GRAF: تمام Metrics
GRAF->>GRAF: ایجاد نمودارها
GRAF-->>UI: داشبورد
UI-->>A: نمایش وضعیت سیستم
Note over A,DB: Health Check سرویسها
A->>UI: بررسی سلامت سرویسها
UI->>PORT: لیست کانتینرها
PORT-->>UI: وضعیت کانتینرها
par بررسی Health
UI->>API: /health
API->>API: Self Check
API->>DB: Ping Database
DB-->>API: OK
API-->>UI: Status: Healthy
and
UI->>WAL: /health
WAL->>GH: Check Connection
GH-->>WAL: OK
WAL->>DB: Ping DB
DB-->>WAL: OK
WAL-->>UI: Status: Healthy
end
UI-->>A: همه سرویسها سالم هستند
Note over A,DB: بررسی اتصال بلاکچین
A->>UI: بررسی وضعیت ققنوس
UI->>WAL: Blockchain Status
WAL->>GH: Network Info
GH-->>WAL: Network Status
Note right of GH: اطلاعات:<br/>- وضعیت شبکه<br/>- آخرین بلاک<br/>- زمان پاسخ<br/>- تعداد تراکنشهای pending
WAL->>GH: Test Transaction
GH-->>WAL: Transaction Success
WAL-->>UI: وضعیت بلاکچین
UI-->>A: اتصال بلاکچین سالم است
Note over A,DB: مشاهده و تحلیل لاگها
A->>UI: مشاهده لاگها
UI->>PORT: درخواست لاگها
alt لاگ سرویس خاص
PORT->>API: docker logs
API-->>PORT: Logs
PORT-->>UI: نمایش لاگها
else لاگهای خطا
PORT->>PROM: Query Error Logs
PROM-->>PORT: Error Logs
PORT-->>UI: نمایش خطاها
end
UI-->>A: لاگهای سیستم
Note over A,DB: تنظیم پارامترهای سیستم
A->>UI: تنظیمات سیستم
UI->>API: درخواست تنظیمات فعلی
API->>DB: Query Config
DB-->>API: تنظیمات
API-->>UI: نمایش
UI-->>A: تنظیمات فعلی
A->>UI: تغییر پارامترها
Note right of A: پارامترها:<br/>- حداکثر درخواست/دقیقه<br/>- Timeout تراکنشها<br/>- Cache TTL<br/>- تنظیمات امنیتی<br/>- فیچرهای فعال/غیرفعال
UI->>API: بهروزرسانی تنظیمات
API->>DB: ذخیره Config جدید
API->>API: Reload Configuration
API-->>UI: تنظیمات اعمال شد
UI-->>A: تنظیمات بهروز شدند
Note over A,DB: مدیریت آلارمها
PROM->>PROM: بررسی شرایط آلارم
Note right of PROM: شرایط آلارم:<br/>- CPU > 80%<br/>- Memory > 90%<br/>- Disk < 10% free<br/>- Error Rate > threshold<br/>- Response Time > 5s
alt آلارم فعال شد
PROM->>ALERT: Trigger Alert
ALERT->>ALERT: بررسی قوانین
ALERT->>A: ارسال اعلان (Email/SMS/Telegram)
A->>UI: بررسی آلارم
UI->>GRAF: مشاهده نمودارها
GRAF->>PROM: Query Metrics
PROM-->>GRAF: دادههای دقیق
GRAF-->>UI: نمودار مشکل
UI-->>A: تشخیص مشکل
A->>UI: اقدام اصلاحی
alt راهاندازی مجدد سرویس
UI->>PORT: Restart Service
PORT->>PORT: Restart Container
PORT-->>UI: سرویس راهاندازی شد
else افزایش منابع
UI->>PORT: Scale Service
PORT-->>UI: منابع افزایش یافت
end
UI-->>A: مشکل برطرف شد
A->>ALERT: تأیید رفع مشکل
ALERT->>ALERT: Close Alert
end
Note over A,DB: Backup و Recovery
A->>UI: مدیریت Backup
UI->>API: وضعیت آخرین Backup
API->>DB: Query Backup Info
DB-->>API: اطلاعات Backup
API-->>UI: نمایش
UI-->>A: وضعیت Backup
opt ایجاد Backup دستی
A->>UI: ایجاد Backup
UI->>API: درخواست Backup
API->>DB: Create Backup
DB->>DB: Dump Database
DB-->>API: Backup Created
API-->>UI: Backup موفق
UI-->>A: Backup ایجاد شد
end
opt بازیابی از Backup
A->>UI: بازیابی از Backup
UI->>API: لیست Backup ها
API->>DB: Query Backups
DB-->>API: لیست
API-->>UI: نمایش
UI-->>A: انتخاب Backup
A->>UI: تأیید بازیابی
UI->>API: Restore Backup
API->>DB: Restore از فایل
DB->>DB: بازیابی دادهها
DB-->>API: Restore Complete
API-->>UI: بازیابی موفق
UI-->>A: سیستم بازیابی شد
end