منصوبے کے بارے میں
UniPlateTracker ایک خود-ہوسٹڈ، نجی ڈیش بورڈ ہے جو UniFi Protect کیمروں کے ذریعے کیپچر کی گئی لائسنس پلیٹوں کو ٹریک کرتا ہے۔ یہ UniFi NVR سے ویب ہکس کے ذریعے آنے والے شناخت کے واقعات کو وصول کرتا ہے، انہیں PostgreSQL ڈیٹا بیس میں ریکارڈ کرتا ہے، اور انہیں دیکھنے، تلاش کرنے اور گاڑی کی سرگرمی کا تجزیہ کرنے کے لیے ایک ویب انٹرفیس کے ذریعے پیش کرتا ہے۔ تھمب نیلز اور ویڈیو فائلیں صارف کے اپنے سرور پر رہتی ہیں، جس میں UK DVLA تلاش کو واحد بیرونی ڈیٹا سورس کے طور پر بیان کیا گیا ہے۔
یہ کیا کرتا ہے
- ریئل-ٹائم ایونٹ پروسیسنگ: لائسنس پلیٹ کی شناختیں UniFi Protect ویب ہکس سے آتی ہیں اور جیسے ہی وہ آتی ہیں، پروسیس کی جاتی ہیں۔
- آن-ڈیمانڈ ویڈیو کیپچر: ایک آزاد Node.js ورکر ہر شناخت کے لیے کیمرے کے RTSP اسٹریم سے ایک مختصر کلپ ریکارڈ کرتا ہے، جس میں ایک الگ بفر مینیجر پروسیس کے ذریعے ایونٹ سے پہلے اور بعد کے بفرنگ کو ہینڈل کیا جاتا ہے۔
- اختیاری DVLA انٹیگریشن (UK): گاڑی کی تفصیلات جیسے کہ میک، رنگ، ٹیکس اور MOT کی حیثیت حاصل کرتا ہے۔ ایک بین الاقوامی موڈ UK-specific خصوصیات کو غیر فعال کر دیتا ہے تاکہ ایپ دوسرے خطوں میں چل سکے، حالانکہ غیر-UK پلیٹیں "Unknown" دکھائیں گی جب تک کہ ENABLE_INTERNATIONAL_API کو کنفیگر نہ کیا جائے۔
- ایڈمن ڈیش بورڈ: چارٹس اور استعمال کے اعداد و شمار کے ساتھ ایک محفوظ ایڈمن ایریا، نیز درجہ بندی والے ایڈمن اکاؤنٹس جہاں ابتدائی ایڈمن دوسرے ایڈمنز کے لیے رسائی دے یا منسوخ کر سکتا ہے؛ ان اقدامات کا جائزہ لینے کے لیے ایک آڈٹ ٹریل میں لکھا جاتا ہے۔
- Detections ٹیبل: گھنا اور قابلِ ترتیب، تیزی سے پڑھنے کے لیے بنایا گیا ہے۔ ترتیب اور فلٹرنگ ڈیٹا بیس میں چلتی ہیں، لہذا ترتیب صرف موجودہ صفحے کے لیے نہیں بلکہ پورے نتیجہ سیٹ کے لیے لاگو ہوتی ہے، اور ٹیبل تنگ اسکرینوں پر کارڈ کی فہرست میں تبدیل ہو جاتا ہے۔
- اسٹیٹس ہائی لائٹنگ: ٹیکس شدہ گاڑیوں کے ساتھ ایک درست MOT بصری طور پر خاموش رہتی ہیں، جبکہ ختم شدہ، غیر ٹیکس شدہ اور SORN گاڑیوں کو ہائی لائٹ کیا جاتا ہے؛ "no DVVLA record" کو ایک الگ کھوکھلی، ڈیشڈ چپ کے طور پر دکھایا جاتا ہے تاکہ گمشدہ معلومات کبھی بھی صاف نتیجہ کے طور پر نہ پڑھیں۔
- قابلِ رسائی: لیبل والے کنٹرولز، کی بورڈ سے چلنے والی ترتیب اور پیجنگ، ٹیبل پر aria-sort، اور prefers-reduced-motion سپورٹ۔ پروجیکٹ کا کہنا ہے کہ اس کا آڈٹ کیا گیا اور صفر کی خلاف ورزی پائی گئی۔ لائٹ اور ڈارک موڈ سسٹم کی ترجیحات کی پیروی کرتے ہیں۔
ٹیک اسٹیک
Next.js 16 (App Router) with TypeScript, React 19, Tailwind CSS v4 اور shadcn/ui; Next.js API routes کے ساتھ ایک آزاد Node.js ورکر/بفر مینیجر; PostgreSQL for storage; FFmpeg for video processing; UniFi Protect webhooks اور DVLA API کے ساتھ انٹیگریشنز۔ چونکہ Tailwind v4 اپنا تھیم CSS سے لیتا ہے، اس لیے کوئی tailwind.config.ts نہیں ہے — ڈیزائن ٹوکنز، پلیٹ اور اسٹیٹس اسٹائل src/app/globals.css کے @theme بلاک میں رہتے ہیں۔
پلاٹمنٹ
دستاویز شدہ بیس لائن Debian 12 کے ساتھ ایک UVC-AI-Pro کیمرہ (ڈیوائس ورژن 5.1.57) اور UniFi Protect 9.4.19 ہے، جس میں یہ نوٹ ہے کہ دیگر کنفیگریشنز بھی کام کرنے کی توقع ہے۔ دو طریقے بیان کیے گئے ہیں:
- دستی انسٹالیشن: Node.js 20+، PostgreSQL اور FFmpeg انسٹال کریں؛ مثال کے ماحول کی فائل کو .env.local میں کاپی کریں اور اقدار کو بھریں جیسے کہ POSTGRES_URL اور SESSION_SECRET; اگر ویڈیو کیپچر فعال ہے تو بفر اور فائنل کیپچر ڈائریکٹریز بنائیں؛ ایپ اور ورکر دونوں کے لیے انحصار انسٹال کریں؛ ٹیبلز بنانے اور پہلے ایڈمن ای میل کو رجسٹر کرنے کے لیے npm run db:init چلائیں؛ ایپ کو بلڈ کریں اور شروع کریں، اختیاری طور پر اسے PM2 کے ساتھ مستقل رکھیں。
- Docker: کمپوز فائل اور ماحول کا ٹیمپلیٹ ڈاؤن لوڈ کریں، اسے .env.local میں تبدیل کریں، POSTGRES_URL، SESSION_SECRET اور NEXTAUTH_URL (سرور کے نیٹ ورک IP کا استعمال کرتے ہوئے، localhost کے بجائے) فراہم کریں، ڈیٹا بیس کو شروع کرنے اور پہلے ایڈمن کو بنانے کے لیے ایک ون-آف کنٹینر چلائیں، پھر Docker Compose کے ساتھ کھینچیں اور شروع کریں۔ ویب انٹرفیس پورٹ 3000 پر اور ویب ہک اینڈ پوائنٹ پورٹ 4000 پر دستاویزی ہے۔
UniFi Protect میں، ایک الارم Settings > System > Other Settings > Alarm Manager کے تحت بنایا جاتا ہے، جو ID > LPR کے لیے نامعلوم اور معلوم گاڑیوں پر ٹرگر ہوتا ہے، LPR کیمروں تک محدود ہوتا ہے، اور تھمب نیلز کے ساتھ ایپ کے /webhook URL کی طرف اشارہ کرتا ہے۔
خرابیوں کا سراغ لگانے کے نوٹس README سے
Detections "No clip" دکھا سکتے ہیں کیونکہ شناخت اور کیپچر الگ الگ راستے ہیں: ویب ہک قطار لکھتا ہے جبکہ ورکر RTSP سے ریکارڈ کرتا ہے، لہذا کیپچر ناکام ہو سکتا ہے جبکہ شناختیں آتی رہتی ہیں۔ تجویز کردہ چیکس میں VIDEO_FINAL_CAPTURE_PATH میں تازہ ترین فائل کی تاریخ، یہ کہ آیا FFmpeg اب بھی انسٹال ہے اور اپنے متوقع راستے پر ہے، یہ کہ آیا کیمرے کے اسناد یا RTSP URL اب بھی درست ہیں، یہ کہ آیا دونوں بیک گراؤنڈ پروسیسز زندہ ہیں، اور یہ کہ آیا ایپ کو چلانے والا صارف کیپچر ڈائریکٹری کو پڑھ سکتا ہے۔ ایک ڈیشڈ "No clip" ٹائل کا مطلب ہے کہ ایک کلپ کی توقع تھی لیکن وہ گمشدہ تھا، جبکہ ایک سادہ کیمرہ آئیکن کا مطلب ہے کہ شناخت نے کبھی بھی اس کا حوالہ نہیں دیا۔ ویڈیو اور تھمب نیل کی درخواستیں 404 واپس کرتی ہیں جب تک کہ فائل ناموں میں صرف حروف، اعداد، ڈاٹ، ہائفن اور انڈر سکور .mp4 یا .jpg ایکسٹینشنز کے ساتھ نہ ہوں، اور کوئی بھی راستہ جو نارملائز ہونے پر بدلتا ہے، اسے مسترد کر دیا جاتا ہے، لہذا ڈائریکٹری ٹریورسل کیپچر ڈائریکٹری سے باہر نکلنے کے بجائے ناکام ہو جاتی ہے۔ گاڑی کی تفصیلات جو "Unknown" دکھاتی ہیں، اس کا مطلب ہے کہ DVLA کے پاس اس رجسٹریشن کے لیے کوئی ریکارڈ نہیں ہے یا تلاش ناکام ہو گئی ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.