منصوبے کے بارے میں

Flarelytics ایک اوپن سورس ویب اینالیٹکس پروجیکٹ ہے جسے یہ پیمائش کرنے کے لیے ڈیزائن کیا گیا ہے کہ وزیٹرز کسی ویب سائٹ پر مواد پڑھنے میں کتنا وقت صرف کرتے ہیں۔ اس کا مقصد مین اسٹریم اینالیٹکس سروسز کا ایک پرائیویسی کا احترام کرنے والا متبادل فراہم کرنا ہے، جو اکثر وسیع ذاتی ڈیٹا جمع کرتے ہیں یا جن میں درست dwell-time میٹرکس کی کمی ہوتی ہے۔ **آرکیٹیکچر** - **براؤزر اسکرپٹ** (`analytics` فولڈر میں واقع) – ایک چھوٹا JavaScript اسنیپٹ جسے ویب سائٹ مالکان اپنے صفحات میں شامل کرتے ہیں۔ یہ ہر وزیٹر سیشن کے لیے ایک UUID تیار کرتا ہے اور بیک اینڈ کو دو ایونٹس بھیجتا ہے: ایک جب صفحہ لوڈ ہوتا ہے اور دوسرا جب صفحہ چھپایا یا ان لوڈ کیا جاتا ہے۔ - **بیک اینڈ** (`src` میں) – ایک TypeScript ایپلی کیشن جسے Cloudflare Worker کے طور پر تعینات کیا گیا ہے۔ یہ ایک سادہ HTTP API فراہم کرتا ہے جو ایونٹس وصول کرتا ہے اور انہیں PlanetScale MySQL-compatible ڈیٹا بیس میں محفوظ کرتا ہے۔ بیک اینڈ خام ایونٹس کو فی صفحہ dwell-time اعداد و شمار میں بھی تبدیل کرتا ہے جنہیں ڈیش بورڈ پر دیکھا جا سکتا ہے۔ **اہم خصوصیات** - سیلف ہوسٹڈ: ورکر کو اپنے Cloudflare اکاؤنٹ پر چلائیں اور ڈیٹا کو اپنے PlanetScale ڈیٹا بیس میں محفوظ کریں۔ - پرائیویسی فرسٹ: کوئی تھرڈ پارٹی ٹریکنگ کوکیز نہیں، کوئی IP لاگنگ نہیں، اور تمام ڈیٹا آپ کے کنٹرول میں رہتا ہے۔ - سنگل ڈومین سپورٹ (مستقبل کے ورژن میں ملٹی ڈومین ہینڈلنگ شامل کی جا سکتی ہے)۔ - `wrangler` اور `pnpm` کا استعمال کرتے ہوئے سادہ تعیناتی ورک فلو۔ **ترقیاتی ورک فلو** 1. مفت Cloudflare اور PlanetScale اکاؤنٹس بنائیں۔ 2. ریپو کو کلون کریں اور Node.js v18+، pnpm، اور PlanetScale CLI انسٹال کریں۔ 3. `main` اور `dev` برانچز کے ساتھ `flarelytics` نام کا PlanetScale ڈیٹا بیس سیٹ اپ کریں؛ مقامی کام کے لیے `dev` برانچ استعمال کریں۔ 4. ایک Cloudflare Worker (مثلاً `flarelytics-dev`) بنائیں اور ڈیٹا بیس کی کریڈنشلز کو خفیہ ماحول کے متغیرات (secret environment variables) کے طور پر محفوظ کریں۔ 5. ٹیبلز بنانے کے لیے `pnpm run setup-test-db` چلائیں، پھر مقامی ورکر شروع کرنے کے لیے `pnpm run dev` چلائیں۔ 6. ٹیسٹ ماحول کے لیے تیار ہونے پر `npm run deploy-dev` کے ذریعے تعینات کریں۔ **تعاون (Contribution)** اس پروجیکٹ کی دیکھ بھال Budapest University of Technology and Economics میں Google Developer Student Club کر رہا ہے۔ معاونین کو GitHub ٹریکر سے ایشوز منتخب کرنے، معیاری fork-branch-PR فلو پر عمل کرنے، اور README میں بیان کردہ تعاون کے رہنما خطوط کی پیروی کرنے کی ترغیب دی جاتی ہے۔ **اسٹیٹس** Flarelytics فعال طور پر ترقی کے مراحل میں ہے اور ابھی اسے پروڈکشن استعمال کے لیے تجویز نہیں کیا جاتا۔ مستقبل کے منصوبوں میں ملٹی ڈومین سپورٹ، بہتر ڈیش بورڈز، اور اینالیٹکس UI کے لیے اختیاری تصدیق (authentication) شامل ہے۔