প্রকল্প সম্পর্কে

Flarelytics একটি ওপেন‑সোর্স ওয়েব‑বিশ্লেষণ প্রকল্প, যা একটি ওয়েবসাইটে দর্শকরা বিষয়বস্তু পড়তে যে সময় ব্যয় করে তা মাপার জন্য ডিজাইন করা হয়েছে। এটি প্রধানধারার বিশ্লেষণ সেবার তুলনায় গোপনীয়তা‑সম্মানজনক বিকল্প প্রদান করতে চায়, যেগুলি প্রায়ই বিশাল ব্যক্তিগত ডেটা সংগ্রহ করে বা সঠিক ডুয়েল‑টাইম মেট্রিক্সের অভাব থাকে। **Architecture** - **Browser script** (`analytics` ফোল্ডারে অবস্থিত) – একটি ছোট জাভাস্ক্রিপ্ট স্নিপেট যা ওয়েবসাইট মালিকরা তাদের পৃষ্ঠায় এম্বেড করেন। এটি প্রতিটি দর্শক সেশনের জন্য একটি UUID তৈরি করে এবং ব্যাকএন্ডে দুটি ইভেন্ট পাঠায়: পৃষ্ঠা লোড হলে একটি এবং পৃষ্ঠা লুকানো বা আনলোড হলে আরেকটি। - **Backend** (`src` এ) – একটি TypeScript অ্যাপ্লিকেশন যা ক্লাউডফ্লেয়ার ওয়ার্কার হিসেবে ডিপ্লয় করা হয়। এটি একটি সহজ HTTP API প্রকাশ করে, যা ইভেন্টগুলি গ্রহণ করে এবং সেগুলি PlanetScale MySQL‑সামঞ্জস্যপূর্ণ ডাটাবেসে সংরক্ষণ করে। ব্যাকএন্ড এছাড়াও কাঁচা ইভেন্টগুলোকে পৃষ্ঠা ভিত্তিক ডুয়েল‑টাইম পরিসংখ্যানের মধ্যে সংকলন করে, যা ড্যাশবোর্ডে দেখা যায়। **Key features** - Self‑hosted: আপনার নিজস্ব ক্লাউডফ্লেয়ার অ্যাকাউন্টে ওয়ার্কার চালান এবং ডেটা আপনার নিজস্ব PlanetScale ডাটাবেসে সংরক্ষণ করুন। - Privacy‑first: তৃতীয় পক্ষের ট্র্যাকিং কুকি নেই, IP লগিং নেই, এবং সব ডেটা আপনার নিয়ন্ত্রণে থাকে। - Single‑domain সমর্থন (ভবিষ্যৎ সংস্করণে মাল্টি‑ডোমেইন হ্যান্ডলিং যোগ হতে পারে)। - `wrangler` এবং `pnpm` ব্যবহার করে সহজ ডিপ্লয়মেন্ট ওয়ার্কফ্লো। **Development workflow** 1. ফ্রি ক্লাউডফ্লেয়ার এবং PlanetScale অ্যাকাউন্ট তৈরি করুন। 2. রিপো ক্লোন করুন এবং Node.js v18+, pnpm, এবং PlanetScale CLI ইনস্টল করুন। 3. `flarelytics` নামে একটি PlanetScale ডাটাবেস `main` এবং `dev` ব্রাঞ্চসহ সেটআপ করুন; লোকাল কাজের জন্য `dev` ব্রাঞ্চ ব্যবহার করুন। 4. একটি ক্লাউডফ্লেয়ার ওয়ার্কার (যেমন, `flarelytics-dev`) তৈরি করুন এবং ডাটাবেস ক্রেডেনশিয়ালগুলোকে সিক্রেট এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সংরক্ষণ করুন। 5. টেবিল তৈরি করতে `pnpm run setup-test-db` চালান, তারপর লোকাল ওয়ার্কার শুরু করতে `pnpm run dev` চালান। 6. টেস্ট এনভায়রনমেন্টের জন্য প্রস্তুত হলে `npm run deploy-dev` দিয়ে ডিপ্লয় করুন। **Contribution** প্রকল্পটি বুদাপেস্ট টেকনোলজি অ্যান্ড ইকোনমিক্স ইউনিভার্সিটির গুগল ডেভেলপার স্টুডেন্ট ক্লাব দ্বারা রক্ষণাবেক্ষণ করা হয়। অবদানকারীদের গিটহাব ট্র্যাকার থেকে ইস্যু বাছাই করতে, স্ট্যান্ডার্ড fork‑branch‑PR প্রবাহ অনুসরণ করতে এবং README-তে উল্লেখিত কন্ট্রিবিউশন গাইডলাইন মেনে চলতে উৎসাহিত করা হয়। **Status** Flarelytics সক্রিয়ভাবে উন্নয়নাধীন এবং এখনও প্রোডাকশন ব্যবহারের জন্য সুপারিশ করা হয় না। ভবিষ্যৎ পরিকল্পনায় মাল্টি‑ডোমেইন সমর্থন, আরও সমৃদ্ধ ড্যাশবোর্ড, এবং অ্যানালিটিক্স UI-র জন্য ঐচ্ছিক অথেনটিকেশন অন্তর্ভুক্ত রয়েছে।