منصوبے کے بارے میں
## جائزہ
Hospital-Recruit-QA-Bot ایک QA نقطہ نظر سے تیار کردہ خودکار پائپ لائن ہے جو روزانہ صبح کوریا کے 42 بڑے ہسپتالوں کے بھرتی کے اشتہارات خودکار طور پر جمع کرتی ہے اور جمع شدہ ڈیٹا کی سالمیت کی تصدیق کرتی ہے۔ یہ صرف سادہ کرالنگ تک محدود نہیں ہے، بلکہ ایک ویریفیکیشن گیٹ وے کے ذریعے یہ یقینی بناتا ہے کہ صرف قابل اعتماد ڈیٹا ہی نتائج میں شامل ہو۔
## کلیدی خصوصیات
### 1. RaiT ویریفیکیشن گیٹ وے
- جمع شدہ خام ڈیٹا (raw data) میں موجود خالی جگہوں اور فارمیٹ کی غلطیوں کی RaiT (Responsible AI Testing) فریم ورک کی بنیاد پر ریئل ٹائم تصدیق کی جاتی ہے۔
- صرف وہی اشتہارات حتمی نتائج میں شامل کیے جاتے ہیں جو تصدیق (PASS) میں کامیاب ہوتے ہیں اور `seen_posts` میں رجسٹر کیے جاتے ہیں، تاکہ نامناسب ڈیٹا کو نتائج میں شامل ہونے سے روکا جا سکے۔
### 2. CI/CD پائپ لائن (GitHub Actions)
- یہ روزانہ صبح 9 بجے (KST) Ubuntu ورچوئل ماحول میں خودکار طور پر چلتا ہے۔
- کرالنگ کے بعد، بوٹ خود بخود اپ ڈیٹ شدہ `seen_posts.csv` کو کمٹ/پش کرتا ہے تاکہ ڈیٹا کی دوبارہ جمع آوری (duplication) کو مسلسل روکا جا سکے۔
### 3. ڈپلیکیٹ ڈیٹا فلٹرنگ
- لوکل اور کلاؤڈ ماحول ایک ہی ہسٹری DB (`seen_posts.csv`) شیئر کرتے ہیں، جس کے ذریعے پہلے سے دیکھے گئے اشتہارات کو نکال دیا جاتا ہے اور صرف نئے اشتہارات کی رپورٹ تیار کی جاتی ہے۔
## QA ویریفیکیشن سیناریو
README میں درج ٹیسٹ کیسز درج ذیل ہیں:
| ID | ٹیسٹ آئٹم | متوقع نتیجہ | حالت |
|---|---|---|---|
| TC-01 | RaiT ڈیٹا ویلیڈیشن | `verify_rait_compliance` لاجک کے ذریعے خالی جگہوں اور فارمیٹ کی غلطیوں کی خودکار شناخت | Pass |
| TC-02 | ڈیٹا انٹیگریٹی گارڈ | صرف PASS قرار دیے گئے نئے ڈیٹا کو ڈپلیکیٹ روکنے والی فہرست میں شامل کیا جائے | Pass |
| TC-03 | انٹیگریٹڈ رپورٹ اسٹوریج | مجموعی/نئے/RaiT_FAIL ڈیٹا کو الگ الگ شیٹس میں تقسیم کر کے ایکسل فائل بنانا | Pass |
| TC-04 | 42 ہسپتالوں تک رسائی | سیکیورٹی بلاک شدہ سائٹس کے علاوہ، ٹارگٹ سائٹس تک درست رسائی اور ڈیٹا پارسنگ کی تصدیق | Pass |
## ورک فلو
1. **ٹریگر:** روزانہ صبح 9 بجے (KST) GitHub Actions شیڈولر کے ذریعے خودکار آغاز
2. **جمع آوری:** Selenium کی بنیاد پر ہسپتالوں کے بھرتی کے صفحات سے متحرک ڈیٹا کی جمع آوری
3. **QA ویریفیکیشن:** RaiT لاجک کے ذریعے ڈیٹا کی سالمیت کی جانچ
4. **ڈپلیکیٹ خاتمہ:** `seen_posts.csv` کے موازنے سے دوہرے اشتہارات کی فلٹرنگ
5. **خودکار اپ ڈیٹ:** تصدیق شدہ نئے ڈیٹا کو ریپوزٹری میں خودکار طور پر کمٹ اور پش کرنا
6. **رپورٹ:** حتمی ایکسل نتائج اور ایرر لاگز کو GitHub Artifacts میں محفوظ کرنا
## ٹیکنالوجی اسٹیک
- **زبان:** Python 3.10
- **لائبریریز:** Selenium, Pandas, Openpyxl, Webdriver-manager
- **آٹومیشن:** GitHub Actions (CI/CD)
- **اسٹوریج:** CSV (`seen_posts.csv`) اور Excel آؤٹ پٹ
## پروجیکٹ ڈھانچہ
```text
.github/workflows/ # CI/CD پائپ لائن سیٹنگز (crawler.yml)
top-hospitals/
├── qa/ # ہسپتال کے لحاظ سے کرالنگ لاجک اور RaiT ویریفیکیشن ماڈیول
├── main.py # مین ایگزیکیوشن انجن (QA گیٹ وے اور ڈیٹا ہینڈلنگ)
└── seen_posts.csv # ڈپلیکیٹ روکنے کے لیے ہسٹری DB (خودکار اپ ڈیٹ)
```
## مسائل کا حل (Troubleshooting)
- **ماحول کے درمیان راستوں کی منتقلی:** لوکل اور GitHub Actions ورچوئل سرور کے راستوں (paths) میں فرق کی وجہ سے ایگزیکیوشن ایررز آئے، جسے `os.path` پر مبنی رشتہ دار راستوں (relative paths) کی متحرک تخلیق کے ذریعے حل کیا گیا تاکہ یہ ہر ماحول میں چل سکے۔
- **ڈیٹا کی درستگی اور ڈپلیکیٹ مینجمنٹ:** بار بار ڈیٹا جمع کرنے کے دوران پیدا ہونے والے ڈپلیکیٹ مسائل کو `seen_posts.csv` ہسٹری مینجمنٹ اور GitHub Actions کے خودکار کمٹ کے ذریعے حل کیا گیا۔
- **ماحول کی علیحدگی:** `.gitignore` کو بہتر بنا کر سورس کوڈ اور ڈیٹا آؤٹ پٹ کو الگ کیا گیا۔
## معلوم حدود (Constraints)
- Samsung Changwon Hospital کی سخت سیکیورٹی پالیسیوں کی وجہ سے GitHub Actions (Ubuntu/غیر ملکی IP) ماحول سے رسائی بلاک ہے۔ اگر اس ہسپتال کا ڈیٹا درکار ہو تو لوکل ماحول میں چلانے کی سفارش کی جاتی ہے، اور CI/CD پائپ لائن میں استحکام کے لیے اس ٹارگٹ کو خودکار طور پر اسکیپ (skip) کرنے کے لیے سیٹ کیا گیا ہے۔
## مستقبل کے منصوبے
- Pytest کے ذریعے یونٹ/انٹیگریٹڈ ٹیسٹنگ کی آٹومیشن
- سیاق و سباق کی غلطیوں اور ٹیکسٹ کی درستگی کی شناخت کے لیے کثیر جہتی ویریفیکیشن لاجک کی بہتری
- Slack/Email نوٹیفیکیشنز کے ذریعے نتائج اور RaiT FAIL رپورٹس کی خودکار ترسیل
## لائسنس اور ضروریات
یہ MIT لائسنس کے تحت ہے۔ README واضح کرتا ہے کہ یہ پروجیکٹ ذاتی تکنیکی مہارتوں کی بہتری اور پورٹ فولیو کے مقصد کے لیے ہے، اور جمع شدہ معلومات کے تجارتی استعمال کی ممانعت ہے۔ بھرتی کی معلومات کے کاپی رائٹ متعلقہ ہسپتالوں کے پاس ہیں، اور اصل مالکان کی درخواست پر ریپوزٹری کو پرائیویٹ کیا جا سکتا ہے۔ سرور پر بوجھ کم کرنے کے لیے تاخیر (delay time) کا اطلاق اور RaiT گیٹ وے کے ذریعے نقصان دہ ڈیٹا کی روک تھام کا ذکر کیا گیا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.