{"id":34501568,"url":"https://github.com/farimah20/cctv-security-system","last_synced_at":"2026-04-09T21:03:28.911Z","repository":{"id":325651083,"uuid":"1101811340","full_name":"Farimah20/cctv-security-system","owner":"Farimah20","description":"AI-Powered CCTV Security Monitor with Theft Detection","archived":false,"fork":false,"pushed_at":"2025-11-22T14:29:37.000Z","size":337,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-22T16:25:08.922Z","etag":null,"topics":["ai","cctv","computer-vision","cross-platform","deep-learning","fastapi","flutter","jwt","machine-learning","mobile-app","object-detection","opencv","python-3","real-time","rest-api","security","sqlalchemy","surveillance","yolo"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Farimah20.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-22T09:31:38.000Z","updated_at":"2025-11-22T14:29:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Farimah20/cctv-security-system","commit_stats":null,"previous_names":["farimah20/cctv-security-system"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Farimah20/cctv-security-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farimah20%2Fcctv-security-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farimah20%2Fcctv-security-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farimah20%2Fcctv-security-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farimah20%2Fcctv-security-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Farimah20","download_url":"https://codeload.github.com/Farimah20/cctv-security-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farimah20%2Fcctv-security-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27992996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cctv","computer-vision","cross-platform","deep-learning","fastapi","flutter","jwt","machine-learning","mobile-app","object-detection","opencv","python-3","real-time","rest-api","security","sqlalchemy","surveillance","yolo"],"created_at":"2025-12-24T02:02:45.602Z","updated_at":"2025-12-24T02:02:59.984Z","avatar_url":"https://github.com/Farimah20.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎥 سیستم نظارت هوشمند دوربین مداربسته با تشخیص دزدی\n\n\u003cdiv dir=\"rtl\"\u003e\n\nیک سیستم نظارت پیشرفته با قابلیت تشخیص خودکار رفتارهای مشکوک و دزدی با استفاده از هوش مصنوعی (YOLO) و ارسال اعلان به اپلیکیشن موبایل.\n\n\u003c/div\u003e\n\n---\n\n## 📋 فهرست مطالب\n\n- [ویژگی‌های پروژه](#ویژگی‌های-پروژه)\n- [تکنولوژی‌های استفاده شده](#تکنولوژی‌های-استفاده-شده)\n- [ساختار پروژه](#ساختار-پروژه)\n- [نصب و راه‌اندازی](#نصب-و-راه‌اندازی)\n- [راهنمای استفاده](#راهنمای-استفاده)\n- [توضیحات فنی](#توضیحات-فنی)\n- [API Documentation](#api-documentation)\n- [Screenshots](#screenshots)\n- [مشارکت](#مشارکت)\n- [لایسنس](#لایسنس)\n\n---\n\n## 🌟 ویژگی‌های پروژه\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### Backend (سرور)\n- ✅ **تشخیص اشیا و افراد** با استفاده از YOLO v8\n- ✅ **تحلیل رفتار** و تشخیص موارد مشکوک:\n  - حرکت سریع (فرار احتمالی)\n  - توقف طولانی‌مدت (پارک مشکوک)\n  - حرکات نامنظم\n- ✅ **سیستم احراز هویت** کامل با JWT Token\n- ✅ **بازیابی رمز عبور** از طریق ایمیل\n- ✅ **ذخیره خودکار** تصاویر رویدادها\n- ✅ **API RESTful** کامل با FastAPI\n- ✅ **پایگاه داده** با SQLAlchemy\n- ✅ **سیستم اعلان** (Push Notification + Email)\n\n### Frontend (اپلیکیشن موبایل)\n- ✅ **رابط کاربری زیبا** با Flutter\n- ✅ **صفحه ورود و ثبت‌نام**\n- ✅ **داشبورد** با نمایش آمار\n- ✅ **لیست رویدادها** با قابلیت فیلتر\n- ✅ **نمایش جزئیات** هر رویداد\n- ✅ **مدیریت پروفایل** کاربر\n- ✅ **Pull to Refresh** برای به‌روزرسانی\n\n\u003c/div\u003e\n\n---\n\n## 🛠 تکنولوژی‌های استفاده شده\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### Backend\n- **Python 3.10+**\n- **FastAPI** - وب فریمورک مدرن و سریع\n- **YOLOv8 (Ultralytics)** - تشخیص اشیا با یادگیری عمیق\n- **OpenCV** - پردازش تصویر و ویدیو\n- **SQLAlchemy** - ORM برای مدیریت دیتابیس\n- **SQLite/PostgreSQL** - پایگاه داده\n- **PyTorch** - فریمورک یادگیری عمیق\n- **Pydantic** - اعتبارسنجی داده\n- **Passlib \u0026 python-jose** - امنیت و JWT\n\n### Frontend\n- **Flutter 3.x** - فریمورک UI کراس‌پلتفرم\n- **Dart** - زبان برنامه‌نویسی\n- **Provider** - مدیریت State\n- **HTTP** - ارتباط با API\n- **SharedPreferences** - ذخیره‌سازی محلی\n\n### Tools\n- **Anaconda** - مدیریت محیط‌های Python\n- **Git** - کنترل نسخه\n- **Docker** (اختیاری) - containerization\n\n\u003c/div\u003e\n\n---\n\n## 📁 ساختار پروژه\n\n```\ncctv_security_system/\n├── backend/                      # سرور Python\n│   ├── app/\n│   │   ├── api/                  # API Endpoints\n│   │   │   ├── __init__.py\n│   │   │   ├── auth.py          # Authentication APIs\n│   │   │   ├── events.py        # Event Management APIs\n│   │   │   ├── users.py         # User Management APIs\n│   │   │   └── files.py         # File Upload/Download APIs\n│   │   │\n│   │   ├── core/                 # تنظیمات اصلی\n│   │   │   ├── __init__.py\n│   │   │   ├── config.py        # تنظیمات برنامه\n│   │   │   ├── database.py      # اتصال به دیتابیس\n│   │   │   ├── security.py      # توابع امنیتی (JWT, Hash)\n│   │   │   └── dependencies.py  # Dependencies برای FastAPI\n│   │   │\n│   │   ├── models/               # مدل‌های دیتابیس\n│   │   │   ├── __init__.py\n│   │   │   ├── user.py          # مدل کاربر\n│   │   │   ├── event.py         # مدل رویداد\n│   │   │   └── password_reset.py # مدل بازیابی رمز\n│   │   │\n│   │   ├── schemas/              # Pydantic Schemas\n│   │   │   ├── __init__.py\n│   │   │   ├── user.py          # Schema های کاربر\n│   │   │   └── event.py         # Schema های رویداد\n│   │   │\n│   │   ├── services/             # Business Logic\n│   │   │   ├── __init__.py\n│   │   │   ├── auth_service.py        # سرویس احراز هویت\n│   │   │   ├── event_service.py       # سرویس مدیریت رویدادها\n│   │   │   └── notification_service.py # سرویس اعلان‌رسانی\n│   │   │\n│   │   ├── detection/            # سیستم تشخیص AI\n│   │   │   ├── __init__.py\n│   │   │   ├── object_detector.py      # تشخیص اشیا با YOLO\n│   │   │   ├── behavior_analyzer.py    # تحلیل رفتار\n│   │   │   ├── surveillance_system.py  # سیستم نظارت یکپارچه\n│   │   │   └── integrated_surveillance.py # یکپارچه‌سازی با DB\n│   │   │\n│   │   └── main.py               # نقطه شروع برنامه\n│   │\n│   ├── database/                 # فایل‌های دیتابیس\n│   │   └── cctv_security.db     # SQLite database\n│   │\n│   ├── uploads/                  # فایل‌های آپلود شده\n│   │   ├── detections/          # تصاویر رویدادهای تشخیص داده شده\n│   │   └── users/               # فایل‌های کاربران\n│   │\n│   ├── logs/                     # لاگ‌های سیستم\n│   │\n│   ├── requirements.txt          # وابستگی‌های Python\n│   ├── test_database.py          # تست پایگاه داده\n│   ├── test_auth.py              # تست احراز هویت\n│   ├── test_detection.py         # تست سیستم تشخیص\n│   └── test_api.py               # تست APIها\n│\n├── mobile_app/                   # اپلیکیشن موبایل Flutter\n│   ├── lib/\n│   │   ├── config/               # تنظیمات اپلیکیشن\n│   │   │   └── app_config.dart  # URL های API و ثابت‌ها\n│   │   │\n│   │   ├── models/               # مدل‌های داده\n│   │   │   └── event_model.dart # مدل رویداد\n│   │   │\n│   │   ├── providers/            # State Management\n│   │   │   ├── auth_provider.dart   # مدیریت احراز هویت\n│   │   │   └── event_provider.dart  # مدیریت رویدادها\n│   │   │\n│   │   ├── services/             # سرویس‌های اپلیکیشن\n│   │   │   ├── api_service.dart     # ارتباط با Backend API\n│   │   │   └── storage_service.dart # ذخیره‌سازی محلی\n│   │   │\n│   │   ├── screens/              # صفحات اپلیکیشن\n│   │   │   ├── login_screen.dart    # صفحه ورود\n│   │   │   ├── register_screen.dart # صفحه ثبت‌نام\n│   │   │   └── home_screen.dart     # صفحه اصلی/داشبورد\n│   │   │\n│   │   └── main.dart             # نقطه شروع اپلیکیشن\n│   │\n│   ├── android/                  # تنظیمات Android\n│   ├── ios/                      # تنظیمات iOS (اختیاری)\n│   ├── linux/                    # تنظیمات Linux Desktop\n│   ├── pubspec.yaml              # وابستگی‌های Flutter\n│   └── README.md\n│\n├── test_videos/                  # ویدیوهای تست\n│   └── people_test.mp4\n│\n├── .gitignore\n└── README.md                     # این فایل\n```\n\n---\n\n## 🚀 نصب و راه‌اندازی\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### پیش‌نیازها\n\n- Python 3.10 یا بالاتر\n- Anaconda\n- Flutter SDK 3.x\n- Git\n- (اختیاری) Android Studio برای Build کردن APK\n\n### مرحله ۱: کلون کردن پروژه\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/cctv-security-system.git\ncd cctv-security-system\n```\n\n### مرحله ۲: راه‌اندازی Backend\n\n```bash\n# ایجاد محیط مجازی Anaconda\nconda create -n cctv_monitor python=3.10 -y\nconda activate cctv_monitor\n\n# نصب وابستگی‌ها\ncd backend\npip install -r requirements.txt\n\n# ایجاد دیتابیس و تست\npython test_database.py\n\n# اجرای سرور\npython -m app.main\n```\n\nسرور روی `http://localhost:8000` اجرا می‌شود.\n\n**API Documentation:** `http://localhost:8000/docs`\n\n### مرحله ۳: راه‌اندازی اپلیکیشن موبایل\n\n```bash\ncd mobile_app\n\n# نصب وابستگی‌ها\nflutter pub get\n\n# تنظیم IP سرور\n# فایل lib/config/app_config.dart را ویرایش کنید\n# baseUrl را به IP کامپیوتر خود تغییر دهید\n\n# اجرا روی Linux Desktop\nflutter run -d linux\n\n# یا اجرا روی Chrome\nflutter run -d chrome\n\n# یا Build کردن APK\nflutter build apk --release\n```\n\n\u003c/div\u003e\n\n---\n\n## 📖 راهنمای استفاده\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### 1️⃣ ثبت‌نام و ورود\n\n#### از طریق اپلیکیشن موبایل:\n1. اپلیکیشن را باز کنید\n2. روی **Register** کلیک کنید\n3. اطلاعات خود را وارد کنید:\n   - Username: حداقل 3 کاراکتر\n   - Email: یک ایمیل معتبر\n   - Password: حداقل 8 کاراکتر (شامل حروف بزرگ، کوچک و عدد)\n4. **Create Account** را بزنید\n5. با اطلاعات وارد شوید\n\n#### از طریق API:\n```bash\ncurl -X POST \"http://localhost:8000/auth/register\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"username\": \"testuser\",\n    \"email\": \"test@example.com\",\n    \"password\": \"Test1234\"\n  }'\n```\n\n### 2️⃣ راه‌اندازی سیستم نظارت\n\n```bash\ncd backend\nconda activate cctv_monitor\n\n# اجرای سیستم نظارت با دوربین\npython app/detection/integrated_surveillance.py\n\n# یا با ویدیوی تست\npython app/detection/integrated_surveillance.py\n# وارد کنید: ../test_videos/people_test.mp4\n```\n\n**User ID:** ID کاربری که رویدادها به آن تخصیص داده می‌شود (پیش‌فرض: 1)\n\n### 3️⃣ مشاهده رویدادها\n\nدر اپلیکیشن موبایل:\n- داشبورد نمایش می‌دهد: تعداد کل رویدادها، رویدادهای خوانده نشده\n- روی هر رویداد کلیک کنید برای مشاهده جزئیات\n- **Mark as Read** برای علامت‌گذاری به عنوان خوانده شده\n- Pull to Refresh برای به‌روزرسانی\n\n### 4️⃣ بازیابی رمز عبور\n\n1. در صفحه Login روی **Forgot Password** کلیک کنید\n2. ایمیل خود را وارد کنید\n3. لینک بازیابی به ایمیل شما ارسال می‌شود\n4. روی لینک کلیک کنید و رمز جدید وارد کنید\n\n\u003c/div\u003e\n\n---\n\n## 🔧 توضیحات فنی\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### معماری سیستم\n\n```\n┌─────────────────┐\n│  Mobile App     │\n│  (Flutter)      │\n└────────┬────────┘\n         │ HTTP/REST\n         │\n┌────────▼────────┐      ┌──────────────┐\n│   FastAPI       │◄─────┤  Database    │\n│   Backend       │      │  (SQLite)    │\n└────────┬────────┘      └──────────────┘\n         │\n         │\n┌────────▼────────┐\n│  AI Detection   │\n│  (YOLO v8)      │\n└────────┬────────┘\n         │\n┌────────▼────────┐\n│   Camera/Video  │\n│   Input         │\n└─────────────────┘\n```\n\n### سیستم تشخیص\n\n#### 1. Object Detection (تشخیص اشیا)\n- مدل: YOLOv8 Nano (سبک و سریع)\n- کلاس‌های قابل تشخیص: 80 کلاس COCO Dataset\n- اصلی‌ترین کلاس‌ها: person, backpack, handbag, suitcase\n- Confidence Threshold: 0.5 (قابل تنظیم)\n\n#### 2. Object Tracking (ردیابی اشیا)\n- الگوریتم: Nearest Neighbor Matching\n- تاریخچه موقعیت: 30 فریم اخیر\n- محاسبه سرعت، جهت حرکت، فاصله طی شده\n\n#### 3. Behavior Analysis (تحلیل رفتار)\n\n**رفتارهای قابل تشخیص:**\n\n1. **Fast Movement (حرکت سریع)**\n   - شرط: سرعت \u003e 15 پیکسل در فریم\n   - کاربرد: تشخیص فرار بعد از دزدی\n\n2. **Loitering (توقف مشکوک)**\n   - شرط: ایستادن بیش از 150 فریم (5 ثانیه)\n   - کاربرد: شناسایی افراد مشکوک\n\n3. **Erratic Movement (حرکت نامنظم)**\n   - شرط: بیش از 5 تغییر جهت در 15 فریم\n   - کاربرد: رفتار غیرعادی\n\n#### 4. Event Storage (ذخیره رویداد)\n\nهر رویداد شامل:\n- نوع رویداد\n- توضیحات\n- میزان اطمینان (0-1)\n- تصویر رویداد\n- زمان وقوع\n- موقعیت مکانی (اختیاری)\n\n### سیستم احراز هویت\n\n#### JWT Token Structure:\n```json\n{\n  \"sub\": \"username\",\n  \"user_id\": 1,\n  \"email\": \"user@example.com\",\n  \"exp\": 1234567890\n}\n```\n\n#### Password Security:\n- Hash Algorithm: Bcrypt\n- Salt Rounds: خودکار\n- Password Requirements:\n  - حداقل 8 کاراکتر\n  - شامل حروف بزرگ و کوچک\n  - شامل عدد\n\n### Database Schema\n\n#### Users Table\n```sql\nCREATE TABLE users (\n    id INTEGER PRIMARY KEY,\n    username VARCHAR(50) UNIQUE NOT NULL,\n    email VARCHAR(100) UNIQUE NOT NULL,\n    hashed_password VARCHAR(255) NOT NULL,\n    is_active BOOLEAN DEFAULT TRUE,\n    is_superuser BOOLEAN DEFAULT FALSE,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP\n);\n```\n\n#### Events Table\n```sql\nCREATE TABLE events (\n    id INTEGER PRIMARY KEY,\n    user_id INTEGER REFERENCES users(id),\n    event_type VARCHAR(50) NOT NULL,\n    description TEXT,\n    image_path VARCHAR(500),\n    confidence FLOAT NOT NULL,\n    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    is_read BOOLEAN DEFAULT FALSE,\n    camera_id VARCHAR(50),\n    latitude FLOAT,\n    longitude FLOAT\n);\n```\n\n\u003c/div\u003e\n\n---\n\n## 🌐 API Documentation\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### Authentication Endpoints\n\n#### POST `/auth/register`\nثبت‌نام کاربر جدید\n\n**Request Body:**\n```json\n{\n  \"username\": \"string\",\n  \"email\": \"string\",\n  \"password\": \"string\"\n}\n```\n\n**Response: 201 Created**\n```json\n{\n  \"id\": 1,\n  \"username\": \"testuser\",\n  \"email\": \"test@example.com\",\n  \"is_active\": true,\n  \"created_at\": \"2024-01-01T12:00:00\"\n}\n```\n\n---\n\n#### POST `/auth/login`\nورود کاربر\n\n**Request Body:**\n```json\n{\n  \"username\": \"testuser\",\n  \"password\": \"Test1234\"\n}\n```\n\n**Response: 200 OK**\n```json\n{\n  \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"token_type\": \"bearer\"\n}\n```\n\n---\n\n### User Endpoints (نیاز به Authentication)\n\n#### GET `/users/me`\nدریافت اطلاعات کاربر فعلی\n\n**Headers:**\n```\nAuthorization: Bearer \u003ctoken\u003e\n```\n\n**Response: 200 OK**\n```json\n{\n  \"id\": 1,\n  \"username\": \"testuser\",\n  \"email\": \"test@example.com\",\n  \"is_active\": true\n}\n```\n\n---\n\n### Event Endpoints\n\n#### GET `/events/user/{user_id}`\nدریافت رویدادهای یک کاربر\n\n**Query Parameters:**\n- `page`: شماره صفحه (پیش‌فرض: 1)\n- `page_size`: تعداد آیتم در هر صفحه (پیش‌فرض: 20)\n- `unread_only`: فقط رویدادهای خوانده نشده (پیش‌فرض: false)\n\n**Response: 200 OK**\n```json\n{\n  \"total\": 100,\n  \"unread\": 5,\n  \"events\": [...],\n  \"page\": 1,\n  \"page_size\": 20\n}\n```\n\n---\n\n#### GET `/events/user/{user_id}/statistics`\nدریافت آمار رویدادها\n\n**Query Parameters:**\n- `days`: تعداد روزهای گذشته (پیش‌فرض: 7)\n\n**Response: 200 OK**\n```json\n{\n  \"total_events\": 50,\n  \"by_type\": {\n    \"fast_movement\": 20,\n    \"loitering\": 15,\n    \"erratic_movement\": 15\n  },\n  \"by_day\": {...},\n  \"average_confidence\": 0.75\n}\n```\n\n### مستندات کامل API:\n\nبعد از اجرای سرور، به آدرس زیر مراجعه کنید:\n- Swagger UI: `http://localhost:8000/docs`\n- ReDoc: `http://localhost:8000/redoc`\n\n\u003c/div\u003e\n\n---\n\n## 📸 Screenshots\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### صفحه ورود\n```\n┌─────────────────────────────┐\n│      🔒 Security Icon       │\n│  CCTV Security Monitor      │\n│                             │\n│  ┌─────────────────────┐   │\n│  │ Username/Email      │   │\n│  └─────────────────────┘   │\n│  ┌─────────────────────┐   │\n│  │ Password     👁️     │   │\n│  └─────────────────────┘   │\n│                             │\n│    [ Login ]                │\n│                             │\n│  Don't have account?        │\n│    Register | Forgot?       │\n└─────────────────────────────┘\n```\n\n### داشبورد\n```\n┌─────────────────────────────┐\n│ Welcome back, User    🔔 3  │\n│                             │\n│ ┌─────┐ ┌─────┐ ┌─────┐   │\n│ │ 50  │ │  3  │ │ 12  │   │\n│ │Total│ │Unrd │ │Week │   │\n│ └─────┘ └─────┘ └─────┘   │\n│                             │\n│ Recent Events               │\n│ ┌─────────────────────┐    │\n│ │ 🏃 Fast Movement    │    │\n│ │ 2 hours ago • 87%   │    │\n│ └─────────────────────┘    │\n└─────────────────────────────┘\n```\n\n\u003c/div\u003e\n\n---\n\n## 🧪 تست\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### تست Backend\n\n```bash\ncd backend\nconda activate cctv_monitor\n\n# تست پایگاه داده\npython test_database.py\n\n# تست احراز هویت\npython test_auth.py\n\n# تست سیستم تشخیص\npython test_detection.py\n\n# تست APIها\npython test_api.py\n```\n\n### تست اپلیکیشن موبایل\n\n```bash\ncd mobile_app\n\n# تست واحد\nflutter test\n\n# اجرا در حالت دیباگ\nflutter run -d linux --debug\n\n# بررسی کیفیت کد\nflutter analyze\n```\n\n\u003c/div\u003e\n\n---\n\n## 🐛 عیب‌یابی مشکلات رایج\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### مشکل: سرور اجرا نمی‌شود\n\n```bash\n# بررسی پورت 8000\nlsof -i :8000\n\n# Kill کردن پروسه قبلی\nkill -9 $(lsof -t -i:8000)\n\n# اجرای مجدد\npython -m app.main\n```\n\n### مشکل: دوربین کار نمی‌کند\n\n```bash\n# بررسی دوربین‌های موجود\nv4l2-ctl --list-devices\n\n# تست با OpenCV\npython -c \"import cv2; print(cv2.VideoCapture(0).isOpened())\"\n```\n\n### مشکل: YOLO مدل دانلود نمی‌شود\n\n```bash\n# دانلود دستی\nwget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt\n\n# قرار دادن در پوشه پروژه\nmv yolov8n.pt backend/\n```\n\n### مشکل: اپلیکیشن به Backend متصل نمی‌شود\n\n1. IP را بررسی کنید: `hostname -I`\n2. فایروال را غیرفعال کنید: `sudo ufw allow 8000`\n3. CORS را بررسی کنید در `main.py`\n\n\u003c/div\u003e\n\n---\n\n## 📈 بهبودهای آینده\n\n\u003cdiv dir=\"rtl\"\u003e\n\n- [ ] افزودن Firebase Push Notification\n- [ ] پشتیبانی از چند دوربین همزمان\n- [ ] تشخیص چهره (Face Recognition)\n- [ ] گزارش‌گیری و نمودارها\n- [ ] نقشه برای نمایش موقعیت دوربین‌ها\n- [ ] ضبط ویدیو در زمان رویداد\n- [ ] تنظیمات حساسیت تشخیص\n- [ ] پشتیبانی از Dark Mode\n- [ ] نسخه Web Panel\n- [ ] یکپارچگی با سیستم‌های اسمارت هوم\n\n\u003c/div\u003e\n\n---\n\n## 👨‍💻 توسعه‌دهنده\n\n\u003cdiv dir=\"rtl\"\u003e\n\n**نام:** [farimah]  \n**ایمیل:** [farimah001199@gmail.com]  \n**GitHub:** [@farimah20](https://github.com/farimah20)  \n**لینکدین:** [www.linkedin.com/in/fatemeh-dadkhah-ml\n\n]\n\u003c/div\u003e\n\n---\n\n## 🤝 مشارکت\n\n\u003cdiv dir=\"rtl\"\u003e\n\nمشارکت شما در بهبود این پروژه استقبال می‌شود!\n\n### نحوه مشارکت:\n\n1. Fork کنید\n2. Branch جدید بسازید (`git checkout -b feature/AmazingFeature`)\n3. تغییرات خود را Commit کنید (`git commit -m 'Add some AmazingFeature'`)\n4. Push کنید (`git push origin feature/AmazingFeature`)\n5. Pull Request باز کنید\n\n### گزارش باگ:\n\nاز طریق [Issues](https://github.com/farimah20/cctv-security-system/issues) گزارش دهید.\n\n\u003c/div\u003e\n\n---\n\n## 📄 لایسنس\n\n\u003cdiv dir=\"rtl\"\u003e\n\nاین پروژه تحت لایسنس MIT منتشر شده است - فایل [LICENSE](LICENSE) را برای جزئیات بیشتر مشاهده کنید.\n\n\u003c/div\u003e\n\n---\n\n## 🙏 تشکر و قدردانی\n\n\u003cdiv dir=\"rtl\"\u003e\n\n- [FastAPI](https://fastapi.tiangolo.com/) - فریمورک وب\n- [Ultralytics](https://ultralytics.com/) - YOLO مدل\n- [Flutter](https://flutter.dev/) - فریمورک موبایل\n- [OpenCV](https://opencv.org/) - کتابخانه پردازش تصویر\n\n\u003c/div\u003e\n\n---\n\n## 📞 پشتیبانی\n\n\u003cdiv dir=\"rtl\"\u003e\n\nاگر سوالی دارید یا به کمک نیاز دارید:\n\n- 📧 ایمیل: [farimah001199@gmail.com]\n\n- 🐛 Issues: [GitHub Issues](https://github.com/farimah20/cctv-security-system/issues)\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\" dir=\"rtl\"\u003e\n\n**⭐ اگر این پروژه به کار شما آمد، لطفاً یک ست\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarimah20%2Fcctv-security-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffarimah20%2Fcctv-security-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarimah20%2Fcctv-security-system/lists"}