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

## সংক্ষিপ্ত বিবরণ Lytics হল একটি সেলফ-হোস্টেড ওয়েব অ্যানালিটিক্স সুইট যা ব্যবহারকারীদের গোপনীয়তার উপর ফোকাস করে। এটি স্ট্যান্ডার্ড ট্রাফিক মেট্রিক, কাস্টম SQL-ভিত্তিক কুয়েরিস এবং হিটম্যাপ প্রদান করে যা পৃষ্ঠাগুলিতে ব্যবহারকারীদের ইন্টারঅ্যাকশন দেখায়। প্রজেক্টটি বিভিন্ন মডিউলে বিভক্ত: - **lytics-ping** – জাভাস্ক্রিপ্ট ট্যাগ থেকে ট্র্যাকিং ডেটা গ্রহণের জন্য একটি হালকা HTTP এন্ডপয়েন্ট। - **lytics-app** – মূল Quarkus সার্ভিস যা ডেটা সংরক্ষণ, রিপোর্ট তৈরি এবং UI সার্ভ করে। - **lytics-query** – রিপোর্ট এবং হিটম্যাপ দ্বারা ব্যবহৃত SQL কুয়েরিগুলি ভ্যালিডেট এবং ট্রান্সপাইল করে। - **tag** – ওয়েবসাইট মালিকদের জন্য একটি ছোট জাভাস্ক্রিপ্ট স্নিপেট যা ping সার্ভিসে ইভেন্ট পাঠানোর জন্য এমবেড করা হয়। - **offsite** – একটি আলাদা ডোমেইন থেকে লোড হওয়া হিটম্যাপের জন্য জাভাস্ক্রিপ্ট এবং রেন্ডারিং লজিক। - **schemas** – MariaDB/MySQL এবং ClickHouse-এর জন্য ডেটাবেস স্কিমা ডিফিনিশন। ## আর্কিটেকচার প্ল্যাটফর্মটি উচ্চ-পারফরম্যান্স অ্যানালিটিক্সের জন্য ClickHouse-এ ক্রু ইভেন্ট সংরক্ষণ করে আর রিলেশনাল মেটাডেটা MariaDB/MySQL-এ থাকে। Quarkus-ভিত্তিক সার্ভিসগুলি HTTP মাধ্যমে যোগাযোগ করে এবং `application.properties` মাধ্যমে কনফিগারেশন শেয়ার করে। হিটম্যাপ রেন্ডারিং ক্লায়েন্ট-সাইডে off-site স্ক্রিপ্ট ব্যবহার করে সম্পন্ন হয়, যা npm দিয়ে তৈরি এবং Quarkus সার্ভার দ্বারা স্ট্যাটিক অ্যাসেট হিসাবে সার্ভ করা হয়। ## শুরু করার জন্য পদক্ষেপ 1. **ডেটাবেস সেটআপ** – MariaDB/MySQL ইনস্ট্যান্স এবং ClickHouse ক্লাস্টার প্রস্তুত করুন। `schemas` ডিরেক্টরিতে থাকা স্কিমা প্রয়োগ করুন। 2. **কনফিগারেশন** – `lytics-app/src/main/resources/application.properties` ফাইলটি সম্পাদন করে কানেকশন স্ট্রিং এবং চাওয়া অপশনগুলি যোগ করুন। 3. **বিল্ড** – সব মডিউল কম্পাইল করতে `mvn package` চালান। 4. **সার্ভিস চালু করুন**: ```bash java -Dquarkus.config.locations=application.properties -jar lytics-ping/target/lytics-ping-1.0.0-SNAPSHOT-runner.jar java -Dquarkus.config.locations=application.properties -jar lytics-app/target/lytics-app-1.0.0-SNAPSHOT-runner.jar ``` 5. **ডেভেলপমেন্ট** – IntelliJ-এ Quarkus প্লাগইন বা কমান্ড লাইনে `quarkus dev` ব্যবহার করুন। হিটম্যাপ স্ক্রিপ্ট পরিবর্তনের জন্য `offsite` ডিরেক্টরিতে `npm run watch` চালান; আউটপুটটি `lytics-app/src/main/resources/web/static/offsite/offsite.min.js` এ রাখা হয়। ## সমস্যা সমাধান যদি আপনি ডিপেন্ডেন্সি রিজোলিউশন বা IDE সমস্যার সম্মুখীন হন, তবে একটি ক্লিন রিইনস্টল সাহায্য করতে পারে: ```bash mvn clean install -U ``` ## ব্যবহার কেস - তৃতীয়-পক্ষ অ্যানালিটিক্স ব্যবহার করতে না পারে এমন ওয়েবসাইটের জন্য প্রাইভেসি-সংগত ভিজিটর ট্র্যাকিং। - ব্যবহারকারী ডেটা কম্প্রোমাইজ না করে ক্লিক এবং স্ক্রল আচরণ বুঝতে হিটম্যাপ। - অ্যাডভান্সড রিপোর্টিং এবং ডেটা এক্সপোর্টের জন্য কাস্টমাইজেবল SQL কুয়েরি। Lytics সম্পূর্ণ স্ট্যাক প্রদান করে যারা ডেটা সংগ্রহ এবং প্রসেসিংয়ের উপর নিয়ন্ত্রণ রাখতে চান।