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

Bast হলো একটি ওপেন-সোর্স ওয়েব অ্যানালিটিক্স অ্যাপ্লিকেশন যা ছোট সাইটগুলোর জন্য তৈরি করা হয়েছে, যাদের কুকিজ বা তৃতীয় পক্ষের ট্র্যাকিং পরিষেবা ছাড়াই ট্রাফিকের প্রাথমিক ধারণা প্রয়োজন। এর মূল লক্ষ্য হলো গোপনীয়তা এবং সরলতা: লেখক এটিকে ব্যক্তিগত ব্যবহারের জন্য তৈরি করেছিলেন এবং পরবর্তীতে শেয়ার করেন কারণ তার কয়েকজন বন্ধু এটিকে দরকারী মনে করেছিল। গুরুত্বপূর্ণ স্ট্যাটাস নোট: README-তে স্পষ্টভাবে উল্লেখ করা হয়েছে যে প্রজেক্টটি আর রক্ষণাবেক্ষণ করা হচ্ছে না। যারা এটি ব্যবহার করতে চান, তাদের উচিত এটিকে একটি রিড-অনলি কোডবেস, কোনো ফর্কের শুরুর বিন্দু অথবা একটি রেফারেন্স ইমপ্লিমেন্টেশন হিসেবে বিবেচনা করা, কোনো সমর্থিত পণ্য হিসেবে নয়। এটি যা পরিমাপ করে মেট্রিক্সগুলো দিন হিসেবে সময়ের সাথে সংরক্ষণ করা হয়। পেজভিউ বেনামী বা শনাক্ত করা ভিজিটরদের গণনা করে, তাই তিনজন ভিজিটর তিনটি পেজভিউ তৈরি করে; প্রতিটি পেজভিউ রেফারার এবং বর্তমান URL রেকর্ড করে। ইউজার হলো ইউনিক ভিজিটরের সংখ্যা, যা কুকিজ ছাড়াই নির্ণয় করা হয়: ভিজিটরের IP অ্যাড্রেস এবং ইউজার-এজেন্ট থেকে একটি আইডেন্টিফায়ার তৈরি করা হয়, যা হ্যাশ করে ডাটাবেসে সংরক্ষণ করা হয়। ৩০ মিনিটের নিষ্ক্রিয়তার পর একটি নতুন সেশন শুরু হয়, তাই ওই সময়ের মধ্যে বারবার ভিজিট করলে তা একটি সেশন হিসেবে গণ্য হয়। সাইটে কাটানো গড় সময় শুধুমাত্র তখনই রেকর্ড করা হয় যখন এটি প্রতি সেশনে ৫ সেকেন্ড থেকে ৩০ মিনিটের মধ্যে থাকে। ইউজার-এজেন্ট পার্সিং woothee লাইব্রেরি দ্বারা পরিচালিত হয়, যা ব্রাউজারের নাম, অপারেটিং সিস্টেম এবং সংশ্লিষ্ট বিবরণ প্রদান করে। জিওলোকেশন একটি কাঙ্ক্ষিত বৈশিষ্ট্য হিসেবে উল্লেখ করা হয়েছে তবে এটি এখনও বাস্তবায়িত হয়নি। আর্কিটেকচার এবং স্ট্যাক ব্যাকএন্ডটি Rust ভাষায় actix-web ফ্রেমওয়ার্ক এবং PostgreSQL ORM হিসেবে diesel ব্যবহার করে লেখা হয়েছে। ফ্রন্টএন্ডটি মূলত স্ট্যাটিক, যা React এবং Next.js দিয়ে তৈরি এবং ইন্টারফেসে chakra-ui এবং একটি কাস্টম-বিল্ট চার্ট ব্যবহার করা হয়েছে। এর জন্য একটি PostgreSQL ডাটাবেস প্রয়োজন। এটি চালানো README-তে বেশ কয়েকটি পথ নির্দেশ করা হয়েছে। Unix এবং OS/X-এ, postgres ফিচারসহ diesel CLI ইনস্টল করুন, একটি চলমান PostgreSQL ইনস্ট্যান্সের বিপরীতে diesel setup চালান, তারপর website ফোল্ডারের ভেতরে npm install দিয়ে ফ্রন্টএন্ড ডিপেন্ডেন্সি ইনস্টল করুন। একটি Docker রুটও বর্ণনা করা হয়েছে: docker-compose up, যেখানে docker-compose.yml-এ এনভায়রনমেন্ট ভেরিয়েবল কাস্টমাইজ করা যায়। ডেভেলপমেন্ট নির্দেশাবলীতে .env.sample থেকে একটি .env ফাইল তৈরি করা, এডিট করার সময় API রিলোড করতে ঐচ্ছিকভাবে cargo-watch ব্যবহার করা, অন্যথায় cargo run চালানো এবং npm run dev দিয়ে ফ্রন্টএন্ড শুরু করার কথা বলা হয়েছে। সহজ ডেপ্লয়মেন্ট বিকল্প হিসেবে একটি Heroku ডেপ্লয় বাটন প্রদান করা হয়েছে। README-তে অ্যাপ্লিকেশনটির লোকাল পোর্ট হিসেবে ৩৩৩৩ উল্লেখ করা হয়েছে। কন্ট্রিবিউশন এবং প্রেক্ষাপট README প্রশ্ন এবং পুল রিকোয়েস্ট করতে উৎসাহিত করে, স্পষ্টভাবে শিক্ষানবিশ এবং জুনিয়রদের স্বাগত জানায় এবং বিস্তারিত জানার জন্য CONTRIBUTING.md-এর কথা বলে। লেখক Fathom-কে একটি কোডবেস হিসেবে ক্রেডিট দিয়েছেন যা তিনি পড়েছিলেন এবং উল্লেখ করেছেন যে কুকি-মুক্ত ইউজার আইডেন্টিফিকেশন পদ্ধতিটি Ackee নামক একটি জাভাস্ক্রিপ্ট প্রজেক্ট দ্বারা অনুপ্রাণিত। শুধুমাত্র কোডিং ভাষার কারণে এখানে এর শ্রেণীবিন্যাস করা হয়নি: ব্যবহারকারীদের জন্য এর মূল্য হলো নিজস্ব ইনফ্রাস্ট্রাকচারে ডেপ্লয় করা একটি মালিকানাধীন ওয়েবসাইটের ট্রাফিক অ্যানালিটিক্স।