176 lines
4.9 KiB
Markdown
176 lines
4.9 KiB
Markdown
# سیستم گزارش خرابی (Bug Report System)
|
|
|
|
## نمای کلی
|
|
|
|
این سیستم برای جمعآوری، ذخیره و مدیریت گزارشهای خرابی از تطبیق موبایلی طراحی شده است.
|
|
|
|
## ساختار فایلها
|
|
|
|
### Domain Layer
|
|
- `AccountManagement.Domain/BugReportAgg/`
|
|
- `BugReport.cs` - موجودیت اصلی
|
|
- `BugReportLog.cs` - لاگهای گزارش
|
|
- `BugReportScreenshot.cs` - تصاویر ضمیمه شده
|
|
|
|
### Application Contracts
|
|
- `AccountManagement.Application.Contracts/BugReport/`
|
|
- `IBugReportApplication.cs` - اینترفیس سرویس
|
|
- `CreateBugReportCommand.cs` - درخواست ایجاد
|
|
- `EditBugReportCommand.cs` - درخواست ویرایش
|
|
- `BugReportViewModel.cs` - نمایش لیست
|
|
- `BugReportDetailViewModel.cs` - نمایش جزئیات
|
|
- `IBugReportRepository.cs` - اینترفیس Repository
|
|
|
|
### Application Service
|
|
- `AccountManagement.Application/BugReportApplication.cs` - پیادهسازی سرویس
|
|
|
|
### Infrastructure
|
|
- `AccountMangement.Infrastructure.EFCore/`
|
|
- `Mappings/BugReportMapping.cs`
|
|
- `Mappings/BugReportLogMapping.cs`
|
|
- `Mappings/BugReportScreenshotMapping.cs`
|
|
- `Repository/BugReportRepository.cs`
|
|
|
|
### API Controller
|
|
- `ServiceHost/Controllers/BugReportController.cs`
|
|
|
|
### Admin Pages
|
|
- `ServiceHost/Areas/AdminNew/Pages/BugReport/`
|
|
- `BugReportPageModel.cs` - base model
|
|
- `Index.cshtml.cs / Index.cshtml` - لیست گزارشها
|
|
- `Details.cshtml.cs / Details.cshtml` - جزئیات کامل
|
|
- `Edit.cshtml.cs / Edit.cshtml` - ویرایش وضعیت/اولویت
|
|
- `Delete.cshtml.cs / Delete.cshtml` - حذف
|
|
|
|
## روش استفاده
|
|
|
|
### 1. ثبت گزارش از موبایل
|
|
|
|
```csharp
|
|
POST /api/bugreport/submit
|
|
|
|
{
|
|
"title": "برنامه هنگام ورود خراب میشود",
|
|
"description": "هنگام وارد کردن نام کاربری، برنامه کرش میکند",
|
|
"userEmail": "user@example.com",
|
|
"deviceModel": "Samsung Galaxy S21",
|
|
"osVersion": "Android 12",
|
|
"platform": "Android",
|
|
"manufacturer": "Samsung",
|
|
"deviceId": "device-unique-id",
|
|
"screenResolution": "1440x3200",
|
|
"memoryInMB": 8000,
|
|
"storageInMB": 256000,
|
|
"batteryLevel": 75,
|
|
"isCharging": false,
|
|
"networkType": "4G",
|
|
"appVersion": "1.0.0",
|
|
"buildNumber": "100",
|
|
"packageName": "com.example.app",
|
|
"installTime": "2024-01-01T10:00:00Z",
|
|
"lastUpdateTime": "2024-12-01T14:30:00Z",
|
|
"flavor": "production",
|
|
"type": 1, // Crash = 1
|
|
"priority": 2, // High = 2
|
|
"stackTrace": "...",
|
|
"logs": ["log1", "log2"],
|
|
"screenshots": ["base64-encoded-image-1"]
|
|
}
|
|
```
|
|
|
|
### 2. دسترسی به Admin Panel
|
|
|
|
```
|
|
https://yourdomain.com/AdminNew/BugReport
|
|
```
|
|
|
|
**صفحات موجود:**
|
|
- **Index** - لیست تمام گزارشها با فیلترها
|
|
- **Details** - نمایش جزئیات کامل شامل:
|
|
- معلومات کاربر و گزارش
|
|
- معلومات دستگاه
|
|
- معلومات برنامه
|
|
- لاگها
|
|
- تصاویر
|
|
- Stack Trace
|
|
- **Edit** - تغییر وضعیت و اولویت
|
|
- **Delete** - حذف گزارش
|
|
|
|
### 3. درخواستهای API
|
|
|
|
#### دریافت لیست
|
|
```
|
|
GET /api/bugreport/list?type=1&priority=2&status=1&searchTerm=crash&pageNumber=1&pageSize=10
|
|
```
|
|
|
|
#### دریافت جزئیات
|
|
```
|
|
GET /api/bugreport/{id}
|
|
```
|
|
|
|
#### ویرایش
|
|
```
|
|
PUT /api/bugreport/{id}
|
|
|
|
{
|
|
"id": 1,
|
|
"priority": 2,
|
|
"status": 3
|
|
}
|
|
```
|
|
|
|
#### حذف
|
|
```
|
|
DELETE /api/bugreport/{id}
|
|
```
|
|
|
|
## انواع (Enums)
|
|
|
|
### BugReportType
|
|
- `1` - Crash (کرش)
|
|
- `2` - UI (مشکل رابط)
|
|
- `3` - Performance (عملکرد)
|
|
- `4` - Feature (فیچر)
|
|
- `5` - Network (شبکه)
|
|
- `6` - Camera (دوربین)
|
|
- `7` - FaceRecognition (تشخیص چهره)
|
|
- `8` - Database (دیتابیس)
|
|
- `9` - Login (ورود)
|
|
- `10` - Other (سایر)
|
|
|
|
### BugPriority
|
|
- `1` - Critical (بحرانی)
|
|
- `2` - High (بالا)
|
|
- `3` - Medium (متوسط)
|
|
- `4` - Low (پایین)
|
|
|
|
### BugReportStatus
|
|
- `1` - Open (باز)
|
|
- `2` - InProgress (در حال بررسی)
|
|
- `3` - Fixed (رفع شده)
|
|
- `4` - Closed (بسته شده)
|
|
- `5` - Reopened (مجدداً باز)
|
|
|
|
## Migration
|
|
|
|
برای اعمال تغییرات دیتابیس:
|
|
|
|
```powershell
|
|
Add-Migration AddBugReportTables
|
|
Update-Database
|
|
```
|
|
|
|
## نکات مهم
|
|
|
|
1. **تصاویر**: تصاویر به صورت Base64 encoded ذخیره میشوند
|
|
2. **لاگها**: تمام لاگها به صورت جدا ذخیره میشوند
|
|
3. **وضعیت پیشفرض**: وقتی گزارش ثبت میشود، وضعیت آن "Open" است
|
|
4. **تاریخ**: تاریخ ایجاد و بروزرسانی خودکار ثبت میشود
|
|
|
|
## Security
|
|
|
|
- API endpoints از `authentication` محافظت میشوند
|
|
- Admin pages تنها برای کاربرانی با دسترسی AdminArea قابل دسترس هستند
|
|
- حذف و ویرایش نیاز به تأیید دارد
|
|
|