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

ActiveAnalytics একটি Rails engine যা সরাসরি Ruby on Rails অ্যাপ্লিকেশনে mount করা যায় এবং সাধারণ প্রথম-পক্ষের ট্রাফিক অ্যানালিটিক্স প্রদান করে। এর নকশার লক্ষ্য হলো গোপনীয়তা: এটি কোনো কুকিজ সংগ্রহ করে না, কোনো জাভাস্ক্রিপ্ট পাঠায় না, কোনো তৃতীয়-পক্ষের সেবার ও নির্ভরশীল নয়। ড্যাশবোর্ডে যেসব তথ্য দেখা যায় - সোর্স: যে পেজ ও ডোমেইন থেকে অ্যাপ্লিকেশনে ট্রাফিক আসে। - পেজ ভিউ: কোন পেজগুলো সবচেয়ে বেশি দেখা হয়। - নেক্সট/প্রিভিয়াস পেজ: নির্দিষ্ট পেজের সাথে সংশ্লিষ্ট এন্ট্রি ও এক্সিট পেজ। - ব্রাউজার পরিসংখ্যান: কোন ব্রাউজার ও সংস্করণ ব্যবহারকারীরা সাইটে ভিজিট করে। README-তে জোর দেওয়া হয়েছে যে এই টুল কোনো ব্যক্তিগত ভিজিটর সম্পর্কে তথ্য প্রকাশ করে না। ইনস্টলেশন Gemfile-তে gem যোগ করুন, bundle চালান, ইনস্টল ও মাইগ্রেশন রান করুন, তারপর config/routes.rb-তে mounts করুন: gem 'active_analytics' bundle rails active_analytics:install:migrations rails db:migrate # config/routes.rb mount ActiveAnalytics::Engine, at: "analytics" ডিফল্টভাবে ড্যাশবোর্ড ActionController::Base এক্সটেন্ড করে। একটি কাস্টম বেস কন্ট্রোলার ইনিশিয়ালাইজারে ActiveAnalytics.base_controller_class ব্যবহার করে কনফিগার করা যেতে পারে। ট্রাফিক সংগ্রহ দুটি পদ্ধতি আনুষ্ঠানিকভাবে বর্ণিত আছে। সিঙ্ক্রোনাস অপশন ActiveAnalytics.record_request(request) কল করে, সাধারণত ApplicationController-এ after_action callback থেকে; সেটআপে সবচেয়ে সহজ তবে প্রতিটি অনুরোধে ডাটাবেসে লেখে। অ্যাসিঙ্ক্রোনাস অপশন ActiveAnalytics.queue_request(request) কল করে, ডাটা Redis-এ ঠেসে রাখে তাই প্রতিটি অনুরোধে ডাটাবেস লেখা হয় না; queued ডাটা পরে ActiveAnalytics.flush_queue কল করে স্থায়ী করা হয় cron টাস্ক বা ব্যাকগ্রাউন্ড জব থেকে। README নিয়মিত flush করার পরামর্শ দেয় এবং দিনের শেষে 23:59-তে শেষ flush করতে বলে যাতে দৈনিক সংখ্যা পরের দিনে স্থানান্তরিত না হয়। Redis ActiveAnalytics.redis_url অথবা একটি কাস্টম ActiveAnalytics.redis সংযোগ দিয়ে কনফিগার করা যেতে পারে। উদাহরণগুলো শুধুমাত্র HTML রেসপন্স রেকর্ড করতে, ক্যানোনিক্যাল ডোমেইনে ফিল্টার করতে, এবং bot-detection gem ব্যবহার করে crawler ছাড়তে বলে। পাসওয়ার্ড-রিসেট পেজের মতো সংবেদনশীল URL-গুলো skip_after_action দিয়ে বাদ দেওয়া যেতে পারে। অথেন্টিকেশন প্রতিটি অ্যাপ্লিকেশনের অথেন্টিকেশন ভিন্ন হওয়ায় engine কোনো স্কিম ধরে নেয় না। README ActiveAnalytics::ApplicationController-কে monkey patch করে before_action দেখায় যা非-admin-এর জন্য routing error ফেলে, যা config.after_initialize থেকে required হয় যাতে ডেভেলপমেন্টে রিলোড না হয়। Devise ব্যবহার করলে mount-কে routes.rb-তে authenticate ব্লক দিয়ে ঘেরা যায়। লাইসেন্স ও উৎপত্তি ActiveAnalytics MIT License অধীনে ওপেন সোর্স হিসেবে প্রকাশিত এবং Base Secrète তৈরি করেছে, যা RoRvsWild Rails মনিটরিং টুলও উন্নয়ন করে।