4.9 KiB
4.9 KiB
سیستم گزارش خرابی (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.csMappings/BugReportLogMapping.csMappings/BugReportScreenshotMapping.csRepository/BugReportRepository.cs
API Controller
ServiceHost/Controllers/BugReportController.cs
Admin Pages
ServiceHost/Areas/AdminNew/Pages/BugReport/BugReportPageModel.cs- base modelIndex.cshtml.cs / Index.cshtml- لیست گزارشهاDetails.cshtml.cs / Details.cshtml- جزئیات کاملEdit.cshtml.cs / Edit.cshtml- ویرایش وضعیت/اولویتDelete.cshtml.cs / Delete.cshtml- حذف
روش استفاده
1. ثبت گزارش از موبایل
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
برای اعمال تغییرات دیتابیس:
Add-Migration AddBugReportTables
Update-Database
نکات مهم
- تصاویر: تصاویر به صورت Base64 encoded ذخیره میشوند
- لاگها: تمام لاگها به صورت جدا ذخیره میشوند
- وضعیت پیشفرض: وقتی گزارش ثبت میشود، وضعیت آن "Open" است
- تاریخ: تاریخ ایجاد و بروزرسانی خودکار ثبت میشود
Security
- API endpoints از
authenticationمحافظت میشوند - Admin pages تنها برای کاربرانی با دسترسی AdminArea قابل دسترس هستند
- حذف و ویرایش نیاز به تأیید دارد