docs: consolidate 53 files into 15 structured files in 3 folders
- business/ (5): club-commission, payment, ecommerce, membership, content - technical/ (5): cms-arch, ui, deployment, migration, api - overview/ (5): flowcharts, index, changelog, glossary, roadmap - Removed all old folders: backoffice, cms, deployment, docs, frontoffice, migration, ui-modernization, business (old) - Updated internal links with relative folder paths
This commit is contained in:
@@ -0,0 +1,280 @@
|
||||
# 📊 فلوچارتها و دیاگرامهای کلان
|
||||
|
||||
> **دید بالا (Big Picture): فلوی کاربر، مالی و داده**
|
||||
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
|
||||
|
||||
---
|
||||
|
||||
## ۱. فلوی کلان کاربر (User Journey)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ FourSat — User Journey │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ [ورود به سایت] │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ◆ آیا ثبتنام کرده؟ ◆──── خیر ───→ [Landing Page] │
|
||||
│ │ │ │
|
||||
│ بله [ثبتنام] │
|
||||
│ │ موبایل + OTP │
|
||||
│ ▼ │ │
|
||||
│ [Login + JWT] ▼ │
|
||||
│ │ [پروفایل] │
|
||||
│ ▼ │ │
|
||||
│ ◆ عضو باشگاه؟ ◆ ▼ │
|
||||
│ │ │ ┌───────────────┐ │
|
||||
│ بله خیر │ Regular Store │ │
|
||||
│ │ │ │ خرید عادی │ │
|
||||
│ │ └──────────────→│ IPG پرداخت │ │
|
||||
│ │ └───────────────┘ │
|
||||
│ ▼ │
|
||||
│ ┌──────────────────────────────────────────────┐ │
|
||||
│ │ Club Member Dashboard │ │
|
||||
│ ├──────────┬──────────┬──────────┬─────────────┤ │
|
||||
│ │ فروشگاه │ درخت شبکه │ کمیسیون │ Chatika AI │ │
|
||||
│ │ تخفیفی │ باینری │ هفتگی │ │ │
|
||||
│ │ (30%↓) │ │ │ │ │
|
||||
│ └──────────┴──────────┴──────────┴─────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۲. فلوی مالی (Financial Flow)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ FourSat — Financial Flow │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ═══════════════════ ورودی پول ═══════════════════ │
|
||||
│ │
|
||||
│ [ZarinPal IPG] ──→ ┐ │
|
||||
│ [Daya Loan] ──→ ├──→ [PYMS Service] ──→ [DB Transaction] │
|
||||
│ [Manual Pay] ──→ ┘ │ │
|
||||
│ ▼ │
|
||||
│ ═══════════ توزیع به ۳ کیفپول ═══════════ │
|
||||
│ │
|
||||
│ ┌────────────────┐ ┌─────────────────┐ ┌──────────────────┐ │
|
||||
│ │ 💰 Balance │ │ 🌐 NetworkBal │ │ 🏷️ DiscountBal │ │
|
||||
│ │ (نقدی) │ │ (شبکهای) │ │ (تخفیفی) │ │
|
||||
│ │ │ │ │ │ │ │
|
||||
│ │ • خرید فروشگاه │ │ • محاسبه │ │ • فروشگاه تخفیفی │ │
|
||||
│ │ • هزینه فعالسازی │ │ کمیسیون │ │ • سهم 30% از │ │
|
||||
│ │ (25M) │ │ • سقف 300/هفته │ │ قیمت محصول │ │
|
||||
│ └───────┬────────┘ └────────┬────────┘ └────────┬─────────┘ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ═══════════════════ خروجی پول ═══════════════════ │
|
||||
│ │
|
||||
│ ┌──────────────────────────────────────────────────────┐ │
|
||||
│ │ Weekly Commission Pool │ │
|
||||
│ │ │ │
|
||||
│ │ Source: هر فعالسازی → 25.2M واریز │ │
|
||||
│ │ Calculate: sp_CalculateWeeklyBalances │ │
|
||||
│ │ Distribute: sp_CalculateWeeklyCommissionPool │ │
|
||||
│ │ Formula: UserShare = UserBalance / TotalBalance │ │
|
||||
│ │ Cap: MAX 300 per leg per week │ │
|
||||
│ │ Carryover: به هفته بعد (max 300, else flush) │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─ Member A: Balance=150 → Share=150/600 → 25% ─┐ │ │
|
||||
│ │ │ Member B: Balance=200 → Share=200/600 → 33% │ │ │
|
||||
│ │ │ Member C: Balance=250 → Share=250/600 → 42% │ │ │
|
||||
│ │ └─ Total: 600 ─┘ │ │
|
||||
│ └──────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۳. فلوی داده (Data Flow)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ FourSat — Data Flow │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ [Browser/Client] │
|
||||
│ │ │
|
||||
│ │ HTTPS │
|
||||
│ ▼ │
|
||||
│ [nginx / K8s Ingress] │
|
||||
│ │ │
|
||||
│ ├──→ / ──────────→ [FrontOffice :5003] (Blazor Server) │
|
||||
│ │ │ │
|
||||
│ ├──→ /admin ─────→ [BackOffice :5002] (Blazor WASM) │
|
||||
│ │ │ │
|
||||
│ └──→ /hangfire ──→ [CMS :5001] (Dashboard) │
|
||||
│ │ │
|
||||
│ ┌─────────────────────────────┘ │
|
||||
│ │ gRPC (Protobuf v3, HTTP/2) │
|
||||
│ ▼ │
|
||||
│ [CMS Microservice :5001] │
|
||||
│ │ │
|
||||
│ ├──→ [MediatR] ──→ Commands/Queries ──→ Handlers │
|
||||
│ │ │ │
|
||||
│ ├──→ [Hangfire] ──→ Background Jobs │ │
|
||||
│ │ • DayaLoan (15min) │ │
|
||||
│ │ • Commission (weekly) │ │
|
||||
│ │ • Chatika (5min) │ │
|
||||
│ │ • InventorySync (hourly) │ │
|
||||
│ │ │ │
|
||||
│ └──→ [External Services] │ │
|
||||
│ • ZarinPal API │ │
|
||||
│ • Kavenegar API ▼ │
|
||||
│ • DayaLoan API [EF Core 9] │
|
||||
│ • Chatika API │ │
|
||||
│ ▼ │
|
||||
│ [SQL Server 2022] │
|
||||
│ Schema: [CMS] │
|
||||
│ ~15 main tables │
|
||||
│ + 3 Stored Procs │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۴. درخت باینری شبکه (Network Tree)
|
||||
|
||||
```
|
||||
┌─────────┐
|
||||
│ Root │
|
||||
│ (Admin) │
|
||||
└────┬────┘
|
||||
┌─────────┴─────────┐
|
||||
┌────▼────┐ ┌────▼────┐
|
||||
│ User A │ │ User B │
|
||||
│ L=120 │ │ L=0 │
|
||||
│ R=80 │ │ R=150 │
|
||||
└────┬────┘ └────┬────┘
|
||||
┌───────┴───────┐ ┌──────┴──────┐
|
||||
┌────▼──┐ ┌────▼──┐ ┌──▼───┐ ┌───▼──┐
|
||||
│User C │ │User D │ │User E│ │User F│
|
||||
│Active │ │Active │ │Pend. │ │Active│
|
||||
└───────┘ └───────┘ └──────┘ └──────┘
|
||||
|
||||
Legend:
|
||||
L = Left leg sales this week
|
||||
R = Right leg sales this week
|
||||
Active = فعال (contract signed)
|
||||
Pend. = در انتظار فعالسازی
|
||||
Max depth = 15 levels
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۵. فلوی خرید — Regular vs Discount Store
|
||||
|
||||
```
|
||||
┌────────────────────────────────┬──────────────────────────────────┐
|
||||
│ Regular Store │ Discount Store │
|
||||
├────────────────────────────────┼──────────────────────────────────┤
|
||||
│ │ │
|
||||
│ [مشاهده محصولات] │ [مشاهده محصولات] ← فقط باشگاه │
|
||||
│ │ │ │ │
|
||||
│ ▼ │ ▼ │
|
||||
│ [Lazy Load — 12 per page] │ [Lazy Load — 12 per page] │
|
||||
│ │ │ │ │
|
||||
│ ▼ │ ▼ │
|
||||
│ [افزودن به سبد] │ [افزودن به سبد] │
|
||||
│ │ │ │ │
|
||||
│ ▼ │ ▼ │
|
||||
│ [بررسی موجودی] │ [بررسی موجودی] │
|
||||
│ │ │ [بررسی DiscountBalance] │
|
||||
│ ▼ │ │ │
|
||||
│ [Checkout] │ ▼ │
|
||||
│ │ │ [محاسبه سهم تخفیف (30%)] │
|
||||
│ ▼ │ [محاسبه سهم نقدی (70%)] │
|
||||
│ [ZarinPal IPG] │ │ │
|
||||
│ [100% نقدی] │ ▼ │
|
||||
│ │ │ [کسر از DiscountBalance] │
|
||||
│ ▼ │ [ZarinPal IPG برای باقیمانده] │
|
||||
│ [ثبت سفارش] │ │ │
|
||||
│ │ │ ▼ │
|
||||
│ ▼ │ [ثبت سفارش ترکیبی] │
|
||||
│ [کسر موجودی] │ [کسر موجودی] │
|
||||
│ │ │ │ │
|
||||
│ ▼ │ ▼ │
|
||||
│ [SMS تأیید] │ [SMS تأیید] │
|
||||
│ │ │
|
||||
└────────────────────────────────┴──────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۶. معماری Deployment
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ Production Server │
|
||||
│ 45.149.79.127 │
|
||||
├──────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────┐ ┌────────────────────────────────────┐ │
|
||||
│ │ nginx │────→│ Kubernetes Cluster │ │
|
||||
│ │ :80/:443│ │ │ │
|
||||
│ └─────────┘ │ ┌───────────┐ ┌───────────────┐ │ │
|
||||
│ │ │CMS ×2 │ │FrontOffice ×2 │ │ │
|
||||
│ │ │:5001 gRPC │ │:5003 Blazor │ │ │
|
||||
│ │ └─────┬─────┘ └───────────────┘ │ │
|
||||
│ │ │ │ │
|
||||
│ │ ┌─────▼─────┐ ┌───────────────┐ │ │
|
||||
│ │ │SQL Server │ │BackOffice ×1 │ │ │
|
||||
│ │ │:1433 │ │:5002 Static │ │ │
|
||||
│ │ └───────────┘ └───────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌───────────┐ ┌───────────────┐ │ │
|
||||
│ │ │Nexus │ │Hangfire │ │ │
|
||||
│ │ │:8081 │ │(inside CMS) │ │ │
|
||||
│ │ └───────────┘ └───────────────┘ │ │
|
||||
│ └────────────────────────────────────┘ │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۷. Entity Relationship (سادهشده)
|
||||
|
||||
```
|
||||
┌──────────┐ ┌──────────────┐ ┌──────────────┐
|
||||
│ User │────→│ ClubMembership│────→│ NetworkNode │
|
||||
│ │ │ │ │ (BinaryTree)│
|
||||
└────┬─────┘ └──────────────┘ └──────────────┘
|
||||
│
|
||||
├────→ ┌──────────┐ ┌──────────┐
|
||||
│ │ Order │────→│ OrderItem│────→ [Product]
|
||||
│ └──────────┘ └──────────┘
|
||||
│
|
||||
├────→ ┌──────────────┐
|
||||
│ │ Transaction │────→ [Wallet (×3)]
|
||||
│ └──────────────┘
|
||||
│
|
||||
├────→ ┌──────────────┐
|
||||
│ │ UserContract │
|
||||
│ └──────────────┘
|
||||
│
|
||||
└────→ ┌──────────────┐
|
||||
│ ChatMessage │
|
||||
└──────────────┘
|
||||
|
||||
┌──────────┐ ┌───────────┐
|
||||
│ Product │────→│ Inventory │
|
||||
│ │────→│ Category │
|
||||
│ │────→│ Images │
|
||||
└──────────┘
|
||||
|
||||
┌──────────┐ ┌──────────────────────┐
|
||||
│ SitePage │ │ SystemConfiguration │
|
||||
│ (typed) │ │ (key-value) │
|
||||
└──────────┘ └──────────────────────┘
|
||||
|
||||
┌──────────┐
|
||||
│ BlogPost │────→ [Tags, Category, Author]
|
||||
└──────────┘
|
||||
```
|
||||
@@ -0,0 +1,167 @@
|
||||
# 📋 شاخص اصلی مستندات (Master Index)
|
||||
|
||||
> **فهرست کامل ۱۵ فایل مستند پروژه FourSat (کارا بازار سلامت)**
|
||||
> **تاریخ تجمیع:** اسفند ۱۴۰۴
|
||||
> **تعداد فایلهای مبدأ:** ۵۳ فایل (~۳۲,۰۰۰ خط)
|
||||
> **تعداد فایلهای نهایی:** ۱۵ فایل
|
||||
|
||||
---
|
||||
|
||||
## ساختار مستندات
|
||||
|
||||
```
|
||||
totalDoc/
|
||||
├── 📁 business/ (سطح بیزینسی — ۵ فایل)
|
||||
│ ├── BUSINESS-01-CLUB-COMMISSION.md سیستم باشگاه و کمیسیون
|
||||
│ ├── BUSINESS-02-PAYMENT-FINANCE.md مالی و درگاهها
|
||||
│ ├── BUSINESS-03-ECOMMERCE-STORES.md فروشگاه و موجودی
|
||||
│ ├── BUSINESS-04-USER-MEMBERSHIP.md چرخه کاربر و عضویت
|
||||
│ └── BUSINESS-05-CONTENT-MANAGEMENT.md محتوا و صفحات
|
||||
│
|
||||
├── 📁 technical/ (سطح فنی — ۵ فایل)
|
||||
│ ├── TECH-01-CMS-ARCHITECTURE.md معماری CMS
|
||||
│ ├── TECH-02-BACKOFFICE-FRONTOFFICE.md معماری UI
|
||||
│ ├── TECH-03-DEPLOYMENT-INFRA.md استقرار و زیرساخت
|
||||
│ ├── TECH-04-MIGRATION.md مهاجرت داده
|
||||
│ └── TECH-05-API-INTEGRATION.md API و یکپارچهسازی
|
||||
│
|
||||
└── 📁 overview/ (نمای کلان — ۵ فایل)
|
||||
├── OVERVIEW-01-FLOWCHARTS.md فلوچارتها و دیاگرامها
|
||||
├── OVERVIEW-02-INDEX.md ← همین فایل
|
||||
├── OVERVIEW-03-CHANGELOG.md تاریخچه و درصد تکمیل
|
||||
├── OVERVIEW-04-GLOSSARY.md واژهنامه و استانداردها
|
||||
└── OVERVIEW-05-ROADMAP.md نقشه راه و ریسکها
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## خلاصه هر فایل
|
||||
|
||||
### 🏆 Business Level
|
||||
|
||||
| # | فایل | موضوع | خلاصه |
|
||||
|---|------|--------|--------|
|
||||
| B1 | [BUSINESS-01-CLUB-COMMISSION](../business/BUSINESS-01-CLUB-COMMISSION.md) | باشگاه و کمیسیون | درخت باینری، فرمول ۴مرحلهای، Pool هفتگی، وام دایا، Chatika |
|
||||
| B2 | [BUSINESS-02-PAYMENT-FINANCE](../business/BUSINESS-02-PAYMENT-FINANCE.md) | مالی و پرداخت | ZarinPal IPG، ۳ کیفپول، PYMS، پرداخت ترکیبی، VAT |
|
||||
| B3 | [BUSINESS-03-ECOMMERCE-STORES](../business/BUSINESS-03-ECOMMERCE-STORES.md) | فروشگاه | Regular + Discount Store، Lazy Load، موجودی خودکار، باندل |
|
||||
| B4 | [BUSINESS-04-USER-MEMBERSHIP](../business/BUSINESS-04-USER-MEMBERSHIP.md) | کاربر و عضویت | ثبتنام OTP، قرارداد، فیچرهای باشگاه، Auth-Aware، Referral |
|
||||
| B5 | [BUSINESS-05-CONTENT-MANAGEMENT](../business/BUSINESS-05-CONTENT-MANAGEMENT.md) | محتوا | Site Pages (Shopify)، بلاگ، مدیریت فایل، SMS/Email، Landing |
|
||||
|
||||
### ⚙️ Technical Level
|
||||
|
||||
| # | فایل | موضوع | خلاصه |
|
||||
|---|------|--------|--------|
|
||||
| T1 | [TECH-01-CMS-ARCHITECTURE](../technical/TECH-01-CMS-ARCHITECTURE.md) | معماری CMS | .NET 9، CQRS/MediatR، gRPC، EF Core 9، Hangfire، DB schema |
|
||||
| T2 | [TECH-02-BACKOFFICE-FRONTOFFICE](../technical/TECH-02-BACKOFFICE-FRONTOFFICE.md) | معماری UI | Blazor WASM/Server، MudBlazor v8، Code-behind، RTL، Theme |
|
||||
| T3 | [TECH-03-DEPLOYMENT-INFRA](../technical/TECH-03-DEPLOYMENT-INFRA.md) | استقرار | Docker، K8s، CI/CD، Nexus، Offline deployment، Mirrors |
|
||||
| T4 | [TECH-04-MIGRATION](../technical/TECH-04-MIGRATION.md) | مهاجرت | BFF removal، Gateway removal، Data migration، SQL scripts |
|
||||
| T5 | [TECH-05-API-INTEGRATION](../technical/TECH-05-API-INTEGRATION.md) | API | Proto definitions، ZarinPal/Kavenegar/Daya/Chatika، Error handling |
|
||||
|
||||
### 📊 Overview / Meta
|
||||
|
||||
| # | فایل | موضوع | خلاصه |
|
||||
|---|------|--------|--------|
|
||||
| O1 | [OVERVIEW-01-FLOWCHARTS](OVERVIEW-01-FLOWCHARTS.md) | دیاگرامها | User Journey، Financial Flow، Data Flow، ER Diagram، Network Tree |
|
||||
| O2 | [OVERVIEW-02-INDEX](OVERVIEW-02-INDEX.md) | شاخص | همین فایل — فهرست و نقشه ۱۵ فایل |
|
||||
| O3 | [OVERVIEW-03-CHANGELOG](OVERVIEW-03-CHANGELOG.md) | تاریخچه | همه کارهای انجامشده با بولت + درصد تکمیل |
|
||||
| O4 | [OVERVIEW-04-GLOSSARY](OVERVIEW-04-GLOSSARY.md) | واژهنامه | اصطلاحات فارسی/انگلیسی، استانداردهای کد |
|
||||
| O5 | [OVERVIEW-05-ROADMAP](OVERVIEW-05-ROADMAP.md) | نقشه راه | ریسکها، وابستگیها، کارهای باقیمانده، اولویتها |
|
||||
|
||||
---
|
||||
|
||||
## نقشه ارتباط فایلها
|
||||
|
||||
```
|
||||
┌──────────────┐
|
||||
│ O2: INDEX │ ← شما اینجا هستید
|
||||
└──────┬───────┘
|
||||
│
|
||||
┌─────────────────┼──────────────────┐
|
||||
│ │ │
|
||||
┌────▼────┐ ┌────▼─────┐ ┌────▼─────┐
|
||||
│Business │ │Technical │ │Overview │
|
||||
│ (B1-B5) │ │ (T1-T5) │ │ (O1-O5) │
|
||||
└────┬────┘ └────┬─────┘ └────┬─────┘
|
||||
│ │ │
|
||||
┌────┴────────────────┴──────────────────┴────┐
|
||||
│ │
|
||||
│ B1 ←→ B2 (مالی/باشگاه) │
|
||||
│ B2 ←→ B3 (پرداخت/فروشگاه) │
|
||||
│ B3 ←→ B4 (فروشگاه/کاربر) │
|
||||
│ B4 ←→ B5 (کاربر/محتوا) │
|
||||
│ B1 ←→ T1 (باشگاه/CMS) │
|
||||
│ T1 ←→ T2 (CMS/UI) │
|
||||
│ T1 ←→ T3 (CMS/Deploy) │
|
||||
│ T3 ←→ T4 (Deploy/Migration) │
|
||||
│ T1 ←→ T5 (CMS/API) │
|
||||
│ O1: دیاگرام = بصری B1-B5 + T1-T5 │
|
||||
│ O3: تاریخچه = changelog B1-B5 + T1-T5 │
|
||||
│ O5: آینده = roadmap B1-B5 + T1-T5 │
|
||||
│ │
|
||||
└──────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## نقشه ادغام (53 فایل → 15 فایل)
|
||||
|
||||
<details>
|
||||
<summary>کلیک برای مشاهده mapping کامل</summary>
|
||||
|
||||
| فایل مبدأ | فایل مقصد |
|
||||
|-----------|-----------|
|
||||
| `business/club-commission-system-complete.md` | B1 |
|
||||
| `business/balance-calculation-rules.md` | B1 |
|
||||
| `business/club-membership-contract-system.md` | B1, B4 |
|
||||
| `business/daya-loan-integration.md` | B1, B2 |
|
||||
| `business/discount-shop-business.md` | B2, B3 |
|
||||
| `business/DISCOUNT-STORE-STATUS.md` | B3 |
|
||||
| `business/manual-payment-system.md` | B2 |
|
||||
| `business/package-purchase-system.md` | B1, B2 |
|
||||
| `cms/payment-gateway.md` | B2, T5 |
|
||||
| `cms/payment-architecture-pyms.md` | B2, T1 |
|
||||
| `cms/SITE-PAGES-SIMPLIFICATION.md` | B5 |
|
||||
| `cms/system-constants.md` | B5, T1 |
|
||||
| `cms/email-sms-configuration.md` | B5 |
|
||||
| `cms/chatika-integration.md` | B1, B5, T5 |
|
||||
| `cms/club-feature-management-services.md` | B4, T5 |
|
||||
| `cms/CMS-README.md` | T1 |
|
||||
| `cms/ICURRENTUSERSERVICE-IMPLEMENTATION.md` | B4, T1 |
|
||||
| `cms/FILE-MANAGEMENT-ARCHITECTURE.md` | B5, T1 |
|
||||
| `cms/FRONTOFFICE-CMS-API-COMPATIBILITY.md` | T5 |
|
||||
| `cms/BFF-REMOVAL-PLAN.md` | T1, T4 |
|
||||
| `cms/ADMIN-CUSTOMER-SEPARATION-FIX.md` | B4 |
|
||||
| `cms/REGISTRATION-FLOW-FIXES.md` | B4 |
|
||||
| `cms/INVENTORY-IMPROVEMENTS.md` | B3 |
|
||||
| `cms/INVENTORY-REFACTORING-STATUS.md` | B3 |
|
||||
| `cms/PRODUCT-BUNDLE-FEATURE.md` | B3 |
|
||||
| `cms/REMAINING-TASKS.md` | O5 |
|
||||
| `cms/FRONTOFFICE-RELEASE-NOTES-v1.5.0.md` | O3 |
|
||||
| `deployment/CICD-PIPELINE-GUIDE.md` | T3 |
|
||||
| `deployment/DEPLOYMENT-README.md` | T3 |
|
||||
| `deployment/INFRASTRUCTURE-GUIDE.md` | T3 |
|
||||
| `deployment/INGRESS-NGINX-WARNING.md` | T3 |
|
||||
| `deployment/OFFLINE-DEPLOYMENT-GUIDE.md` | T3 |
|
||||
| `deployment/SERVER-MIRRORS-CONFIG.md` | T3 |
|
||||
| `migration/BACKOFFICE-BFF-MIGRATION.md` | T4 |
|
||||
| `migration/customer-facing-capabilities-codex.md` | T4 |
|
||||
| `migration/DATA-TABLE-MAPPINGS.md` | T4 |
|
||||
| `migration/DATAMIGRATION-README.md` | T4 |
|
||||
| `migration/FRONTOFFICE-TO-CMS-MIGRATION.md` | T4 |
|
||||
| `migration/GATEWAY-REMOVAL-MIGRATION-PLAN.md` | T4 |
|
||||
| `migration/MIGRATION-PROGRESS.md` | T4, O3 |
|
||||
| `ui-modernization/BACKOFFICE-ARCHITECTURE.md` | T2 |
|
||||
| `ui-modernization/BACKOFFICE-STORE-UNIFICATION.md` | T2, B3 |
|
||||
| `ui-modernization/UI-MODERNIZATION-PLAN.md` | T2 |
|
||||
| `ui-modernization/PHASE-1-COMPLETE.md` | T2, O3 |
|
||||
| `ui-modernization/PHASE-3-COMPLETE.md` | T2, O3 |
|
||||
| `ui-modernization/PRODUCT-IMAGES-SQUARE.md` | T2, B3 |
|
||||
| `backoffice/BACKOFFICE-AUDIT.md` | T2, O3 |
|
||||
| `backoffice/BACKOFFICE-CHANGELOG.md` | T2, O3 |
|
||||
| `frontoffice/CHANGELOG.md` | T2, O3 |
|
||||
| `frontoffice/UI-UNIFICATION-PLAN.md` | T2 |
|
||||
| `SHOP-UNIFICATION.md` | B3 |
|
||||
| `INDEX.md` | O2 |
|
||||
| `docs/MOVED-TO-TOTALDOC.md` | — (deleted) |
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,196 @@
|
||||
# 📜 تاریخچه کارهای انجامشده
|
||||
|
||||
> **همه فعالیتهای پروژه به صورت بولت با توضیح یکخطی و درصد تکمیل**
|
||||
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
|
||||
|
||||
---
|
||||
|
||||
## خلاصه کلی
|
||||
|
||||
| حوزه | تعداد آیتم | تکمیلشده | درصد کل |
|
||||
|------|-----------|----------|---------|
|
||||
| **BackOffice** | 58 | 57 | **98%** |
|
||||
| **FrontOffice** | 35 | 32 | **91%** |
|
||||
| **CMS Core** | 45 | 42 | **93%** |
|
||||
| **Deployment** | 20 | 18 | **90%** |
|
||||
| **Migration** | 15 | 15 | **100%** |
|
||||
| **مجموع** | **173** | **164** | **95%** |
|
||||
|
||||
---
|
||||
|
||||
## ۱. BackOffice — فازها (98% کامل)
|
||||
|
||||
### Phase 1-3: پایه و ساختار
|
||||
- ✅ ارتقا به MudBlazor v8 — تغییر تمام کامپوننتها به API جدید
|
||||
- ✅ پیادهسازی MainLayout با Drawer و AppBar — RTL support
|
||||
- ✅ ایجاد NavMenu با آیکونها و گروهبندی — دستهبندی منطقی
|
||||
- ✅ پیادهسازی الگوی Code-behind — جدا کردن logic از markup
|
||||
- ✅ اضافه کردن Theme سفارشی — رنگها و فونت Vazirmatn
|
||||
|
||||
### Phase 4-6: محصولات و فروشگاه
|
||||
- ✅ صفحه لیست محصولات — MudDataGrid با pagination
|
||||
- ✅ فرم ایجاد/ویرایش محصول — MudForm با FluentValidation
|
||||
- ✅ آپلود تصویر محصول — Drag & drop با preview
|
||||
- ✅ مدیریت دستهبندیها — CRUD درختی
|
||||
- ✅ AppImage کامپوننت — تصاویر مربعی ۱:۱ همهجا
|
||||
|
||||
### Phase 7-9: سفارشات و مالی
|
||||
- ✅ لیست سفارشات — فیلتر وضعیت، تاریخ، مبلغ
|
||||
- ✅ جزئیات سفارش — آیتمها + تراکنشها
|
||||
- ✅ تغییر وضعیت سفارش — با تأیید دیالوگ
|
||||
- ✅ گزارش مالی — خلاصه تراکنشها
|
||||
|
||||
### Phase 10-12: کاربران و باشگاه
|
||||
- ✅ لیست کاربران — جستجو + فیلتر نقش
|
||||
- ✅ مدیریت عضویت باشگاه — فعال/غیرفعال
|
||||
- ✅ نمای درخت شبکه — نمایش باینری با سطوح
|
||||
- ✅ مدیریت کمیسیون — مشاهده Pool هفتگی
|
||||
|
||||
### Phase 13-15: محتوا و تنظیمات
|
||||
- ✅ مدیریت بلاگ — CRUD پستها با ادیتور HTML
|
||||
- ✅ مدیریت صفحات سایت — Shopify-style typed editors
|
||||
- ✅ HomePageEditor — ویرایش Hero, Featured, Promotion
|
||||
- ✅ AboutPageEditor — ویرایش متن دربارهما
|
||||
- ✅ ContactPageEditor — اطلاعات تماس
|
||||
- ✅ LicensesPageEditor — مجوزها
|
||||
- ✅ ادیتور SystemConstants — تنظیمات key-value
|
||||
|
||||
### Phase 16-17: موجودی و نهاییسازی
|
||||
- ✅ صفحه موجودی — با MudAutocomplete برای انتخاب محصول
|
||||
- ✅ ایجاد خودکار رکورد موجودی — هنگام ساخت محصول
|
||||
- ✅ Hangfire InventorySync — ایجاد رکوردهای گمشده
|
||||
- ⬜ Dark Mode — طراحی نشده (Phase آینده)
|
||||
|
||||
---
|
||||
|
||||
## ۲. FrontOffice — فازها (91% کامل)
|
||||
|
||||
### UI Modernization Phase 1-3
|
||||
- ✅ ارتقا به MudBlazor v8 — همه کامپوننتها
|
||||
- ✅ MainLayout جدید — Header + Footer + RTL
|
||||
- ✅ AuthLayout — صفحات Login/Register
|
||||
- ✅ Landing Page — Hero + Features + Counter + CTA
|
||||
- ✅ اصلاح انیمیشن Counter — linear interpolation
|
||||
|
||||
### فروشگاه (Phase 4-5)
|
||||
- ✅ Regular Store — لیست محصولات با Lazy Load (12/page)
|
||||
- ✅ Discount Store — لیست با Lazy Load + hybrid payment
|
||||
- ✅ ProductCard مشترک — تصویر مربعی + قیمت + دکمه
|
||||
- ✅ CategoryFilter — فیلتر دستهبندی sidebar
|
||||
- ✅ ProductDetail — جزئیات + تصویر بزرگ + سبد
|
||||
- ✅ سبد خرید — Regular + Discount جداگانه
|
||||
- ✅ Checkout — پرداخت ZarinPal + ترکیبی
|
||||
|
||||
### باشگاه (Phase 6)
|
||||
- ✅ داشبورد باشگاه — ۳ کیفپول + آمار
|
||||
- ✅ نمای درخت شبکه — باینری بصری
|
||||
- ✅ امضای قرارداد — OTP + scroll-to-bottom
|
||||
- ✅ صفحه Chatika — چت AI
|
||||
|
||||
### محتوا و ناوبری
|
||||
- ✅ بلاگ — لیست + جزئیات + pagination
|
||||
- ✅ صفحات سایت — About, Contact, FAQ, Terms, Privacy, Licenses
|
||||
- ✅ ناوبری Auth-Aware — مسیردهی بر اساس نقش
|
||||
- ✅ Home → Club Dashboard / Store بر اساس وضعیت
|
||||
- ⬜ Mobile Responsive — Phase 7 (برنامهریزیشده)
|
||||
- ⬜ PWA — نیاز به Service Worker
|
||||
- ⬜ Bottom Navigation (موبایل) — طراحی نشده
|
||||
|
||||
---
|
||||
|
||||
## ۳. CMS Core (93% کامل)
|
||||
|
||||
### ساختار و معماری
|
||||
- ✅ CQRS با MediatR — Commands + Queries + Handlers
|
||||
- ✅ gRPC Services — ۱۱ سرویس اصلی
|
||||
- ✅ EF Core 9 — Migrations + Seeding
|
||||
- ✅ Hangfire — ۴ Background Job
|
||||
- ✅ JWT Authentication — Claims-based
|
||||
- ✅ ICurrentUserService — جداسازی Admin/Customer
|
||||
|
||||
### محصولات و فروشگاه
|
||||
- ✅ Product CRUD — با auto-inventory
|
||||
- ✅ Category CRUD — درختی
|
||||
- ✅ Inventory management — auto-create + sync job
|
||||
- ✅ GetProductsPaged — با PaginationState
|
||||
- ✅ File upload/download — streaming gRPC
|
||||
|
||||
### مالی و پرداخت
|
||||
- ✅ ZarinPal Integration — IPG + Verify
|
||||
- ✅ PYMS Service — سرویس مرکزی پرداخت
|
||||
- ✅ ۳ Wallet System — Balance, Network, Discount
|
||||
- ✅ Transaction logging — همه تراکنشها
|
||||
|
||||
### باشگاه
|
||||
- ✅ Binary Tree — SP_GetNetworkTree
|
||||
- ✅ Weekly Balance Calculation — sp_CalculateWeeklyBalances
|
||||
- ✅ Commission Pool — sp_CalculateWeeklyCommissionPool
|
||||
- ✅ Contract System — OTP + acceptance
|
||||
- ✅ Club Features — activate/deactivate
|
||||
- ✅ DayaLoan Integration — Hangfire + Polly
|
||||
|
||||
### محتوا
|
||||
- ✅ Blog CRUD — با pagination
|
||||
- ✅ SitePage Settings — JSON typed
|
||||
- ✅ SystemConfigurations — key-value
|
||||
- ⬜ Product Bundle — طراحیشده، پیادهسازی نشده
|
||||
- ⬜ Manual Payment — طراحیشده، پیادهسازی نشده
|
||||
- ⬜ API Rate Limiting — برنامهریزیشده
|
||||
|
||||
---
|
||||
|
||||
## ۴. Deployment و زیرساخت (90% کامل)
|
||||
|
||||
- ✅ Docker Compose — تمام سرویسها
|
||||
- ✅ Dockerfile (CMS) — multi-stage build
|
||||
- ✅ K8s Manifests — Deployment + Service + Ingress
|
||||
- ✅ CI/CD Pipeline — Gitea Actions
|
||||
- ✅ Nexus Repository — NuGet + Docker proxy
|
||||
- ✅ Offline Deployment — کامل با اسکریپتها
|
||||
- ✅ Proto Package — NuGet packaging + distribution
|
||||
- ✅ Health Check scripts — K8s + service
|
||||
- ✅ Mirror Configuration — Docker + NuGet
|
||||
- ✅ Base Image Caching — pull + save + load
|
||||
- ⬜ Monitoring (Prometheus/Grafana) — برنامهریزیشده
|
||||
- ⬜ Log Aggregation (ELK/Seq) — برنامهریزیشده
|
||||
|
||||
---
|
||||
|
||||
## ۵. Migration (100% کامل)
|
||||
|
||||
- ✅ FrontOffice REST → gRPC — همه سرویسها migrate شدند
|
||||
- ✅ BackOffice REST → gRPC — همه سرویسها migrate شدند
|
||||
- ✅ BFF حذف — یک لایه کمتر در deployment
|
||||
- ✅ API Gateway (Ocelot) حذف — K8s Ingress جایگزین
|
||||
- ✅ Data Migration — Users, Products, Orders, Club
|
||||
- ✅ Geography Seeder — ۳۱ استان + ۱۲۰۰ شهر
|
||||
- ✅ SQL Scripts — ۱۴ اسکریپت مهاجرت اجرا شدند
|
||||
- ✅ Proto Package Unification — یک package مشترک
|
||||
- ✅ Binary Tree Reconstruction — از سیستم قدیم
|
||||
|
||||
---
|
||||
|
||||
## ۶. مستندات (100% کامل)
|
||||
|
||||
- ✅ ایجاد totalDoc repository — مخزن مرکزی docs
|
||||
- ✅ جمعآوری ۵۳ فایل از ۵ مخزن مختلف
|
||||
- ✅ تجمیع به ۱۵ فایل ساختارمند — Business + Technical + Overview
|
||||
- ✅ Index و Cross-reference — نقشه ارتباطات
|
||||
- ✅ واژهنامه و استانداردها
|
||||
- ✅ نقشه راه آینده
|
||||
|
||||
---
|
||||
|
||||
## ۷. Timeline (جدول زمانی)
|
||||
|
||||
| زمان | رویداد | درصد پروژه |
|
||||
|------|--------|-----------|
|
||||
| مهر ۱۴۰۳ | شروع پروژه، معماری CMS | 10% |
|
||||
| آبان ۱۴۰۳ | CQRS + gRPC + EF Core | 20% |
|
||||
| آذر ۱۴۰۳ | باشگاه + درخت باینری + کمیسیون | 35% |
|
||||
| دی ۱۴۰۳ | فروشگاه عادی + پرداخت ZarinPal | 45% |
|
||||
| بهمن ۱۴۰۳ | فروشگاه تخفیفی + وام دایا | 55% |
|
||||
| اسفند ۱۴۰۳ (هفته ۱) | UI Modernization Phase 1-3 | 65% |
|
||||
| اسفند ۱۴۰۳ (هفته ۲) | Site Pages + BackOffice audit | 75% |
|
||||
| اسفند ۱۴۰۳ (هفته ۳) | Inventory + Lazy Load + Images | 85% |
|
||||
| اسفند ۱۴۰۳ (هفته ۴) | مستندات + نهاییسازی | 95% |
|
||||
@@ -0,0 +1,230 @@
|
||||
# 📖 واژهنامه، استانداردها و قراردادهای کد
|
||||
|
||||
> **اصطلاحات فارسی/انگلیسی، الگوهای نامگذاری و استانداردهای حرفهای**
|
||||
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
|
||||
|
||||
---
|
||||
|
||||
## ۱. واژهنامه اصلی (فارسی ↔ انگلیسی)
|
||||
|
||||
### ۱.۱ مفاهیم بیزینسی
|
||||
|
||||
| فارسی | انگلیسی | توضیح |
|
||||
|-------|---------|--------|
|
||||
| کارا بازار سلامت | FourSat | نام تجاری پلتفرم |
|
||||
| باشگاه مشتریان | Club Membership | عضویت ویژه با پکیج طلایی |
|
||||
| پکیج طلایی | Golden Package | بسته ۵۶M تومان برای ورود به باشگاه |
|
||||
| درخت باینری | Binary Tree | ساختار شبکهای ۲ شاخهای |
|
||||
| پای چپ / راست | Left Leg / Right Leg | دو شاخه هر نود در درخت |
|
||||
| کمیسیون هفتگی | Weekly Commission | سهم از Pool بر اساس بالانس |
|
||||
| بالانس هفتگی | Weekly Balance | MIN(فروشچپ, فروشراست) |
|
||||
| سقف هفتگی | Weekly Cap | حداکثر ۳۰۰ واحد هر پا |
|
||||
| باقیمانده | Carryover | فروش مازاد قابلانتقال به هفته بعد |
|
||||
| Pool هفتگی | Weekly Commission Pool | مخزن کمیسیون قابلتوزیع |
|
||||
| هزینه فعالسازی | Activation Fee | ۲۵M تومان از Balance |
|
||||
| واریز هدیه | Gift Value | ۲۵.۲M واریز به Pool |
|
||||
| فروشگاه تخفیفی | Discount Store | فروشگاه ۳۰% تخفیف برای اعضا |
|
||||
| پرداخت ترکیبی | Hybrid Payment | DiscountBalance + IPG |
|
||||
| وام دایا | Daya Loan | وام آنلاین برای خرید پکیج |
|
||||
| کد معرف | Referral Code | کد یکتا هر عضو برای دعوت |
|
||||
| موجودی | Inventory | تعداد محصول در انبار |
|
||||
|
||||
### ۱.۲ مفاهیم فنی
|
||||
|
||||
| فارسی | انگلیسی | توضیح |
|
||||
|-------|---------|--------|
|
||||
| سامانه مدیریت محتوا | CMS Microservice | هسته اصلی backend |
|
||||
| پنل مدیریت | BackOffice | رابط ادمین (Blazor WASM) |
|
||||
| سایت کاربران | FrontOffice | رابط مشتری (Blazor Server) |
|
||||
| درگاه پرداخت | Payment Gateway (IPG) | ZarinPal |
|
||||
| سرویس پرداخت | PYMS | Payment Management Service |
|
||||
| کیفپول نقدی | Balance Wallet | موجودی قابلخرج |
|
||||
| کیفپول شبکهای | Network Balance | برای محاسبه کمیسیون |
|
||||
| کیفپول تخفیفی | Discount Balance | برای فروشگاه تخفیفی |
|
||||
| بارگذاری تنبل | Lazy Loading | لود محصولات ۱۲تایی |
|
||||
| صفحات سایت | Site Pages | صفحات قابلویرایش (Shopify-style) |
|
||||
| ثوابت سیستمی | System Constants | تنظیمات key-value |
|
||||
| پردازش پسزمینه | Background Job | Hangfire recurring/fire-and-forget |
|
||||
|
||||
---
|
||||
|
||||
## ۲. مخففها (Abbreviations)
|
||||
|
||||
| مخفف | کامل | توضیح |
|
||||
|------|------|--------|
|
||||
| **CMS** | Content Management System | مایکروسرویس اصلی |
|
||||
| **BO** | BackOffice | پنل مدیریت |
|
||||
| **FO** | FrontOffice | سایت کاربران |
|
||||
| **BFF** | Backend-for-Frontend | حذفشده |
|
||||
| **CQRS** | Command Query Responsibility Segregation | الگوی معماری |
|
||||
| **gRPC** | Google Remote Procedure Call | پروتکل ارتباطی |
|
||||
| **EF** | Entity Framework | ORM |
|
||||
| **JWT** | JSON Web Token | احراز هویت |
|
||||
| **IPG** | Internet Payment Gateway | درگاه پرداخت آنلاین |
|
||||
| **PYMS** | Payment Management Service | سرویس مالی |
|
||||
| **SP** | Stored Procedure | رویه ذخیرهشده SQL |
|
||||
| **OTP** | One-Time Password | رمز یکبار مصرف |
|
||||
| **K8s** | Kubernetes | ارکستراسیون کانتینر |
|
||||
| **CI/CD** | Continuous Integration/Deployment | خط لوله خودکار |
|
||||
| **RTL** | Right-to-Left | راستبهچپ (فارسی) |
|
||||
| **WASM** | WebAssembly | فرمت اجرایی مرورگر |
|
||||
| **PWA** | Progressive Web App | وباپ پیشرفته |
|
||||
|
||||
---
|
||||
|
||||
## ۳. استانداردهای نامگذاری
|
||||
|
||||
### ۳.۱ C# / .NET
|
||||
|
||||
| نوع | الگو | مثال |
|
||||
|-----|------|------|
|
||||
| **Class** | PascalCase | `ProductService`, `CreateProductCommand` |
|
||||
| **Interface** | I + PascalCase | `IProductService`, `ICurrentUserService` |
|
||||
| **Method** | PascalCase + Async | `GetProductsAsync()`, `CreateOrderAsync()` |
|
||||
| **Property** | PascalCase | `ProductName`, `IsActive` |
|
||||
| **Private field** | _camelCase | `_dbContext`, `_logger` |
|
||||
| **Parameter** | camelCase | `productId`, `userId` |
|
||||
| **Constant** | PascalCase | `MaxNetworkLevel`, `ActivationFee` |
|
||||
| **Enum** | PascalCase (singular) | `OrderStatus`, `PaymentType` |
|
||||
| **Namespace** | Company.Project.Feature | `CMSMicroservice.Features.Products` |
|
||||
|
||||
### ۳.۲ Protobuf
|
||||
|
||||
| نوع | الگو | مثال |
|
||||
|-----|------|------|
|
||||
| **Service** | PascalCase + Service | `ProductService` |
|
||||
| **Method** | PascalCase | `GetProducts`, `CreateOrder` |
|
||||
| **Message** | PascalCase + Message/Request/Response | `ProductMessage`, `GetProductsRequest` |
|
||||
| **Field** | snake_case | `product_name`, `is_active` |
|
||||
| **Enum** | PascalCase | `ORDER_STATUS_PENDING` |
|
||||
|
||||
### ۳.۳ Blazor / UI
|
||||
|
||||
| نوع | الگو | مثال |
|
||||
|-----|------|------|
|
||||
| **Page** | PascalCase.razor + .razor.cs | `Products.razor`, `Products.razor.cs` |
|
||||
| **Component** | PascalCase.razor | `AppImage.razor`, `ProductCard.razor` |
|
||||
| **Parameter** | [Parameter] PascalCase | `[Parameter] public string Title` |
|
||||
| **CSS class** | kebab-case | `product-card`, `hero-section` |
|
||||
|
||||
### ۳.۴ Database
|
||||
|
||||
| نوع | الگو | مثال |
|
||||
|-----|------|------|
|
||||
| **Table** | PascalCase (plural) | `Products`, `Users`, `Orders` |
|
||||
| **Column** | PascalCase | `ProductName`, `CreatedAt` |
|
||||
| **FK** | {Entity}Id | `ProductId`, `UserId` |
|
||||
| **SP** | SP_ / sp_ + PascalCase | `SP_GetNetworkTree` |
|
||||
| **Schema** | [CMS] | `[CMS].Products` |
|
||||
|
||||
---
|
||||
|
||||
## ۴. الگوهای معماری
|
||||
|
||||
### ۴.۱ CQRS Pattern
|
||||
|
||||
```
|
||||
Command (نوشتن):
|
||||
CreateProductCommand → CreateProductCommandHandler → DB Write
|
||||
|
||||
Query (خواندن):
|
||||
GetProductsQuery → GetProductsQueryHandler → DB Read
|
||||
|
||||
قوانین:
|
||||
✅ Command نباید data برگرداند (فقط Id یا void)
|
||||
✅ Query نباید state تغییر دهد
|
||||
✅ هر Handler فقط یک مسئولیت
|
||||
✅ Validation در Validator (FluentValidation)
|
||||
```
|
||||
|
||||
### ۴.۲ gRPC Client Pattern (FrontOffice/BackOffice)
|
||||
|
||||
```
|
||||
Service Layer:
|
||||
1. Inject GrpcClient via DI
|
||||
2. Map UI model → Proto Request
|
||||
3. Call gRPC method
|
||||
4. Map Proto Response → UI model
|
||||
5. Handle RpcException → user-friendly message
|
||||
```
|
||||
|
||||
### ۴.۳ Hangfire Job Pattern
|
||||
|
||||
```
|
||||
Recurring Job:
|
||||
1. Register in Startup: RecurringJob.AddOrUpdate<T>(...)
|
||||
2. Implement Execute() method
|
||||
3. Use Polly for retry
|
||||
4. Log start/end/error
|
||||
5. Idempotent — safe to re-run
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۵. Git Workflow
|
||||
|
||||
### ۵.۱ شاخهها
|
||||
|
||||
| شاخه | کاربرد | Deploy Target |
|
||||
|------|--------|--------------|
|
||||
| `kub-stage` | توسعه فعال | Staging server |
|
||||
| `production` | محیط نهایی | Production server |
|
||||
| `main` | مستندات (totalDoc) | — |
|
||||
|
||||
### ۵.۲ مخازن
|
||||
|
||||
| مخزن | Remote | شاخه اصلی |
|
||||
|------|--------|-----------|
|
||||
| CMS | `gitea` → git.se.kbs1.ir | `kub-stage` |
|
||||
| BackOffice | `kub-stage` → git.se.kbs1.ir | `kub-stage` |
|
||||
| FrontOffice | `kub-stage` → git.se.kbs1.ir | `kub-stage` |
|
||||
| Docs (totalDoc) | `foursatDocs` → git.se.kbs1.ir/admin/docs | `main` |
|
||||
|
||||
### ۵.۳ Commit Convention
|
||||
|
||||
```
|
||||
feat: add lazy loading for products
|
||||
fix: correct counter animation on landing
|
||||
docs: consolidate 53 files into 15
|
||||
refactor: remove BFF layer
|
||||
chore: update MudBlazor to v8
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۶. ساختار پروژه
|
||||
|
||||
```
|
||||
FourSat/ ← Root workspace
|
||||
├── CMS/ ← مایکروسرویس اصلی (.NET 9)
|
||||
│ ├── src/CMSMicroservice/ ← کد اصلی
|
||||
│ └── Dockerfile
|
||||
├── BackOffice/ ← پنل مدیریت (Blazor WASM)
|
||||
│ └── src/BackOffice/
|
||||
├── FrontOffice/ ← سایت کاربران (Blazor Server)
|
||||
│ └── src/FrontOffice/
|
||||
├── DataMigration/ ← ابزار مهاجرت داده
|
||||
├── deployment/ ← اسکریپتهای استقرار
|
||||
│ ├── k8s-manifests/
|
||||
│ └── docker-compose.yml
|
||||
├── dbbkup/ ← SQL scripts و backup
|
||||
├── totalDoc/ ← 📚 مستندات (15 فایل)
|
||||
│ ├── business/ ← بیزینسی (5 فایل)
|
||||
│ ├── technical/ ← فنی (5 فایل)
|
||||
│ └── overview/ ← کلان (5 فایل)
|
||||
└── nupkg/ ← Proto NuGet packages
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۷. Definition of Done (DoD)
|
||||
|
||||
هر فیچر قبل از merge باید:
|
||||
|
||||
- [ ] کد review شده باشد
|
||||
- [ ] بیلد موفق باشد (CI green)
|
||||
- [ ] خطای compile نداشته باشد
|
||||
- [ ] در Staging تست شده باشد
|
||||
- [ ] مستندات بروز شده باشد
|
||||
- [ ] RTL درست کار کند
|
||||
- [ ] Error handling مناسب داشته باشد
|
||||
@@ -0,0 +1,214 @@
|
||||
# 🗺️ نقشه راه، ریسکها و کارهای باقیمانده
|
||||
|
||||
> **Roadmap + Risk Register + Dependencies + Priorities**
|
||||
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
|
||||
|
||||
---
|
||||
|
||||
## ۱. وضعیت فعلی پروژه
|
||||
|
||||
```
|
||||
██████████████████████████████████████████████████ 95%
|
||||
|
||||
Core Platform ████████████████████████████████████████████████ 98%
|
||||
Club System █████████████████████████████████████████████░░░ 95%
|
||||
E-Commerce ████████████████████████████████████████████████ 98%
|
||||
Payment ██████████████████████████████████████░░░░░░░░░ 80%
|
||||
UI/UX ████████████████████████████████████████░░░░░░░ 85%
|
||||
Deployment ████████████████████████████████████████████░░░ 90%
|
||||
Documentation ████████████████████████████████████████████████ 100%
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۲. کارهای باقیمانده (Backlog)
|
||||
|
||||
### 🔴 اولویت بالا (High Priority)
|
||||
|
||||
| # | آیتم | حوزه | پیشنیاز | تخمین |
|
||||
|---|------|------|---------|-------|
|
||||
| H1 | Product Bundle | Business | Proto + Handler | ۳ روز |
|
||||
| H2 | Mobile Responsive (Phase 7) | UI/UX | — | ۵ روز |
|
||||
| H3 | API Rate Limiting | CMS | — | ۲ روز |
|
||||
| H4 | Error Boundary (Global) | FO/BO | — | ۱ روز |
|
||||
|
||||
### 🟡 اولویت متوسط (Medium Priority)
|
||||
|
||||
| # | آیتم | حوزه | پیشنیاز | تخمین |
|
||||
|---|------|------|---------|-------|
|
||||
| M1 | Manual Payment System | Business | تصمیم مدیریت | ۳ روز |
|
||||
| M2 | SignalR for Chatika | CMS | — | ۲ روز |
|
||||
| M3 | Dark Mode | UI/UX | — | ۲ روز |
|
||||
| M4 | SEO Meta Tags | FO | — | ۲ روز |
|
||||
| M5 | Order Notifications (SMS) | CMS | — | ۱ روز |
|
||||
| M6 | BackOffice Dashboard Charts | BO | — | ۳ روز |
|
||||
|
||||
### 🟢 اولویت پایین (Low Priority)
|
||||
|
||||
| # | آیتم | حوزه | پیشنیاز | تخمین |
|
||||
|---|------|------|---------|-------|
|
||||
| L1 | PWA Support | FO | Mobile first | ۳ روز |
|
||||
| L2 | API Versioning | CMS | — | ۲ روز |
|
||||
| L3 | Monitoring (Prometheus) | Infra | — | ۳ روز |
|
||||
| L4 | Log Aggregation (Seq/ELK) | Infra | — | ۳ روز |
|
||||
| L5 | Product Compare | FO | — | ۲ روز |
|
||||
| L6 | Wishlist | FO | — | ۲ روز |
|
||||
| L7 | Email Templates (HTML) | CMS | — | ۲ روز |
|
||||
| L8 | Refund System | CMS/PYMS | — | ۵ روز |
|
||||
|
||||
### ⛔ بلاکشده (Blocked)
|
||||
|
||||
| # | آیتم | بلاکر | اقدام لازم |
|
||||
|---|------|-------|-----------|
|
||||
| B1 | وام دایا (Production) | API دایا تکمیل نشده | پیگیری تیم دایا |
|
||||
| B2 | پرداخت دستی | تصمیمگیری مدیریت | جلسه با مدیر محصول |
|
||||
|
||||
---
|
||||
|
||||
## ۳. نقشه راه (Roadmap)
|
||||
|
||||
### Q1 1404 (فروردین-خرداد)
|
||||
|
||||
```
|
||||
Sprint 1 (فروردین):
|
||||
├── H2: Mobile Responsive
|
||||
├── H1: Product Bundle
|
||||
└── M4: SEO Meta Tags
|
||||
|
||||
Sprint 2 (اردیبهشت):
|
||||
├── M1: Manual Payment (if approved)
|
||||
├── M2: SignalR Chatika
|
||||
└── M6: Dashboard Charts
|
||||
|
||||
Sprint 3 (خرداد):
|
||||
├── M3: Dark Mode
|
||||
├── H3: Rate Limiting
|
||||
└── L1: PWA
|
||||
```
|
||||
|
||||
### Q2 1404 (تیر-شهریور)
|
||||
|
||||
```
|
||||
Sprint 4 (تیر):
|
||||
├── L3: Monitoring
|
||||
├── L4: Log Aggregation
|
||||
└── L2: API Versioning
|
||||
|
||||
Sprint 5 (مرداد):
|
||||
├── L5: Product Compare
|
||||
├── L6: Wishlist
|
||||
└── L7: Email Templates
|
||||
|
||||
Sprint 6 (شهریور):
|
||||
├── L8: Refund System
|
||||
├── Performance Optimization
|
||||
└── Security Audit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ۴. ریسکها (Risk Register)
|
||||
|
||||
### ۴.۱ ریسکهای فنی
|
||||
|
||||
| # | ریسک | احتمال | تأثیر | شدت | اقدام |
|
||||
|---|------|--------|------|-----|--------|
|
||||
| R1 | MSSQL 2022 عدم scalability | Medium | High | 🟡 | مانیتورینگ + index optimization |
|
||||
| R2 | gRPC breaking changes هنگام ارتقا proto | Low | High | 🟡 | Backward compatible changes |
|
||||
| R3 | Hangfire job failure (commission) | Low | Critical | 🔴 | Polly retry + alerting + manual trigger |
|
||||
| R4 | ZarinPal downtime | Medium | High | 🟡 | Fallback queue + manual payment |
|
||||
| R5 | Ingress-nginx CVE | Low | Critical | 🔴 | Regular updates + WAF |
|
||||
| R6 | Disk space (SQL backups) | Medium | Medium | 🟡 | Auto cleanup + offsite backup |
|
||||
|
||||
### ۴.۲ ریسکهای بیزینسی
|
||||
|
||||
| # | ریسک | احتمال | تأثیر | شدت | اقدام |
|
||||
|---|------|--------|------|-----|--------|
|
||||
| R7 | دایا Loan API تغییر | High | Medium | 🟡 | Mock mode + adapter pattern |
|
||||
| R8 | تغییر درصد تخفیف باشگاه | Low | Low | 🟢 | SystemConstants قابلتنظیم |
|
||||
| R9 | رشد سریع کاربران (>10K) | Low | High | 🟡 | Load test + horizontal scale |
|
||||
| R10 | تغییر قوانین مالیاتی | Medium | Medium | 🟡 | VAT configurable |
|
||||
|
||||
---
|
||||
|
||||
## ۵. وابستگیهای خارجی (External Dependencies)
|
||||
|
||||
| سرویس | وابستگی | وضعیت | SLA |
|
||||
|--------|---------|--------|-----|
|
||||
| **ZarinPal** | درگاه پرداخت IPG | ✅ فعال | 99.5% |
|
||||
| **Kavenegar** | ارسال SMS (OTP) | ✅ فعال | 99% |
|
||||
| **Daya Loan** | API وام | ⚠️ Mock mode | نامشخص |
|
||||
| **Chatika** | AI Chat | ✅ فعال | 95% |
|
||||
| **Docker Hub** | Base images | ✅ با mirror | — |
|
||||
| **NuGet.org** | .NET packages | ✅ با Nexus cache | — |
|
||||
| **Gitea** | Source control | ✅ Self-hosted | 99% |
|
||||
|
||||
---
|
||||
|
||||
## ۶. معیارهای کیفیت (Quality Metrics)
|
||||
|
||||
### ۶.۱ فعلی
|
||||
|
||||
| معیار | مقدار فعلی | هدف |
|
||||
|-------|-----------|------|
|
||||
| Build Success Rate | ~95% | 99% |
|
||||
| Average Response Time | ~200ms | <150ms |
|
||||
| gRPC Error Rate | ~2% | <1% |
|
||||
| Test Coverage | ~0% | >60% |
|
||||
| Uptime (Staging) | ~98% | 99% |
|
||||
| Documentation Coverage | 100% | 100% ✅ |
|
||||
|
||||
### ۶.۲ اقدامات بهبود
|
||||
|
||||
| اقدام | اولویت | تأثیر |
|
||||
|-------|---------|-------|
|
||||
| Unit Tests اضافه شود | High | Test Coverage +40% |
|
||||
| Integration Tests | Medium | Reliability +20% |
|
||||
| Load Testing (k6/JMeter) | Medium | Performance insight |
|
||||
| Structured Logging (Serilog) | Medium | Debug time -50% |
|
||||
| Health check endpoints | Done ✅ | Uptime monitoring |
|
||||
|
||||
---
|
||||
|
||||
## ۷. Definition of Done — Release Checklist
|
||||
|
||||
### Pre-Release (Staging)
|
||||
|
||||
- [ ] همه تستها پاس شوند
|
||||
- [ ] Review توسط حداقل ۱ نفر
|
||||
- [ ] Migration scripts اجرا شوند
|
||||
- [ ] Smoke test روی staging
|
||||
- [ ] مستندات بروز باشد
|
||||
|
||||
### Production Release
|
||||
|
||||
- [ ] Staging sign-off
|
||||
- [ ] Database backup
|
||||
- [ ] Docker images tagged
|
||||
- [ ] K8s rollout
|
||||
- [ ] Health check green
|
||||
- [ ] Post-deploy smoke test
|
||||
- [ ] Rollback plan ready
|
||||
|
||||
---
|
||||
|
||||
## ۸. خلاصه اولویتبندی
|
||||
|
||||
```
|
||||
NOW (این ماه):
|
||||
→ Documentation consolidation ✅ DONE
|
||||
|
||||
NEXT (فروردین):
|
||||
→ Mobile Responsive (H2)
|
||||
→ Product Bundle (H1)
|
||||
→ SEO (M4)
|
||||
|
||||
LATER (Q2):
|
||||
→ Monitoring + Logging (L3, L4)
|
||||
→ PWA (L1)
|
||||
→ Refund (L8)
|
||||
|
||||
BLOCKED:
|
||||
→ Daya Loan Production (B1) — waiting on Daya
|
||||
→ Manual Payment (B2) — waiting on decision
|
||||
```
|
||||
Reference in New Issue
Block a user