mesiji
সেটআপ প্রয়োজন

mesiji চালু করার আগে কনফিগ বসান

এই অ্যাপটি একটি single HTML ফাইল — চালানোর জন্য নিজের Firebase প্রজেক্ট আর Cloudinary আনসাইনড আপলোড প্রিসেট লাগবে। নিচের ধাপগুলো অনুসরণ করে ফাইলের একদম উপরের দিকের CONFIG অংশে বসিয়ে দিন।

  1. Firebase Console-এ নতুন প্রজেক্ট বানান।
  2. Build → Authentication → Sign-in method-এ গিয়ে Email/Password চালু করুন।
  3. Build → Firestore Database তৈরি করুন (production mode, তারপর নিচের rules বসান)।
  4. Project settings → General থেকে ওয়েব অ্যাপ যোগ করে firebaseConfig কপি করুন।
  5. Cloudinary-এ ফ্রি অ্যাকাউন্ট খুলে Settings → Upload → Upload presets-এ একটি Unsigned preset বানান।

Firestore Rules (উদাহরণ):

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow read: if request.auth != null;
      allow write: if request.auth.uid == uid;
    }
    match /chats/{chatId} {
      allow read, write: if request.auth != null &&
        request.auth.uid in chatId.split('_');
      match /messages/{msgId} {
        allow read, write: if request.auth != null &&
          request.auth.uid in chatId.split('_');
      }
    }
    match /calls/{callId} {
      allow read, write: if request.auth != null &&
        (request.auth.uid == resource.data.callerId ||
         request.auth.uid == resource.data.calleeId ||
         request.auth.uid == request.resource.data.callerId ||
         request.auth.uid == request.resource.data.calleeId);
      match /callerCandidates/{docId} {
        allow read, write: if request.auth != null;
      }
      match /calleeCandidates/{docId} {
        allow read, write: if request.auth != null;
      }
    }
  }
}

ফাইলে যেখানে বসাবেন (index.html-এর <script type="module"> অংশের একদম শুরুতে):

const firebaseConfig = {
  apiKey: "...",
  authDomain: "...",
  projectId: "...",
  storageBucket: "...",
  messagingSenderId: "...",
  appId: "..."
};
const CLOUDINARY_CLOUD_NAME = "your-cloud-name";
const CLOUDINARY_UPLOAD_PRESET = "your-unsigned-preset";

বসানো শেষে ফাইলটি রিফ্রেশ করুন বা Cloudflare Pages-এ ডিপ্লয় করুন (Framework preset: None, শুধু এই index.html ফাইলটাই আপলোড করলেই চলবে)।

অডিও কল সম্পর্কে: মাইক্রোফোন ব্যবহারের জন্য ব্রাউজার HTTPS লাগবে (Cloudflare Pages ডিফল্টভাবে HTTPS দেয়, তাই সমস্যা হবে না)। কল সিগন্যালিং Firestore-এর calls কালেকশন দিয়ে হয় এবং শুধু পাবলিক STUN সার্ভার ব্যবহার করা হয়েছে — বেশিরভাগ নেটওয়ার্কে কাজ করবে, তবে কিছু কড়া ফায়ারওয়াল/করপোরেট নেটওয়ার্কে TURN সার্ভার ছাড়া কল সংযুক্ত নাও হতে পারে।

"ভিডিও" ট্যাব সম্পর্কে (ঐচ্ছিক): এটা চালু করতে Google Cloud Console-এ গিয়ে YouTube Data API v3 চালু করে একটা API Key বানান, তারপর YOUTUBE_API_KEY-তে বসান। না বসালে বাকি অ্যাপ স্বাভাবিক চলবে, শুধু "ভিডিও" ট্যাবে একটা বার্তা দেখাবে।

কথোপকথন বেছে নিন

নিচের "মানুষ" ট্যাব থেকে যে কারো সাথে চ্যাট শুরু করুন — নতুন কেউ অ্যাকাউন্ট বানালেই এখানে দেখা যাবে।

ভিডিও
?
অডিও কল আসছে...
?
কল হচ্ছে...