এই টিউটোরিয়ালে দেখানো হয়েছে কীভাবে একটি গুগল চ্যাট অ্যাপ তৈরি করতে হয়, যা একটি দল রিয়েল টাইমে প্রজেক্ট পরিচালনা করার জন্য ব্যবহার করতে পারে। এই চ্যাট অ্যাপটি ভার্টেক্স এআই (Vertex AI) ব্যবহার করে দলগুলোকে ইউজার স্টোরি (user stories) লিখতে সাহায্য করে (যা একটি সফটওয়্যার সিস্টেমের ফিচারগুলোকে ব্যবহারকারীর দৃষ্টিকোণ থেকে উপস্থাপন করে, যাতে দলটি সেগুলো ডেভেলপ করতে পারে) এবং স্টোরিগুলোকে একটি ফায়ারস্টোর (Firestore) ডেটাবেসে সংরক্ষণ করে।

চিত্র ১. চার্লি তার দলের সাথে একটি চ্যাট স্পেসে ফিচার ডেভেলপমেন্ট নিয়ে আলোচনা করছেন। প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপটির কথা উল্লেখ করায়, অ্যাপটি সাহায্যের প্রস্তাব দেয়। 
চিত্র ২। /createUserStoryস্ল্যাশ কমান্ডটি ব্যবহার করে চার্লি একটি স্টোরি তৈরি করে।
চিত্র ৩। প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপটি ভার্টেক্স এআই ব্যবহার করে স্টোরির বিবরণ লেখে, তারপর সেই স্টোরিটি স্পেসে শেয়ার করে। 
চিত্র ৪। স্টোরির বিবরণ চূড়ান্ত করতে চার্লি 'এডিট' বাটনে ক্লিক করে। এআই-এর দেওয়া বিবরণটি সঠিক, কিন্তু চার্লি আরও বিস্তারিত তথ্য চায়, তাই স্টোরির বিবরণে ভার্টেক্স এআই-কে দিয়ে প্রয়োজনীয় শর্তাবলী যোগ করানোর জন্য চার্লি ' এক্সপ্যান্ড' বাটনে ক্লিক করে। চার্লি স্টোরিটি নিজেকে অ্যাসাইন করে, স্ট্যাটাস 'স্টার্টেড' হিসেবে সেট করে, একটি উপযুক্ত প্রায়োরিটি ও সাইজ নির্বাচন করে, এবং তারপর ' সেভ' বাটনে ক্লিক করে। 
চিত্র ৫। চার্লি যেকোনো সময় /manageUserStoriesস্ল্যাশ কমান্ডের মাধ্যমে টিমের সমস্ত ইউজার স্টোরি দেখতে ও পরিচালনা করতে পারে।
পূর্বশর্ত
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
নিম্নলিখিত কাজগুলো করার জন্য গুগল ক্লাউড পরিষেবাগুলিতে অ্যাক্সেস:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন।
- ক্লাউড প্রজেক্টের সাথে একটি গুগল ক্লাউড বিলিং অ্যাকাউন্ট লিঙ্ক করুন। আপনার অ্যাক্সেস আছে কিনা তা জানতে, বিলিং সক্ষম করার জন্য প্রয়োজনীয় অনুমতিসমূহ দেখুন।
প্রমাণীকরণবিহীন গুগল ক্লাউড ফাংশন আহ্বান ব্যবহার করুন, যা আপনি আপনার গুগল ক্লাউড সংস্থা ডোমেইন সীমাবদ্ধ শেয়ারিং ব্যবহার করে কিনা তা নির্ধারণ করে যাচাই করতে পারেন।
প্রয়োজনে আপনার গুগল ক্লাউড অ্যাডমিনিস্ট্রেটরের কাছে অ্যাক্সেস বা অনুমতির জন্য অনুরোধ করুন।
গুগল ক্লাউড সিএলআই ব্যবহার করলে, gcloud CLI-এর সাথে কাজ করার জন্য একটি Node.js ডেভেলপমেন্ট এনভায়রনমেন্ট কনফিগার করতে হবে। Node.js ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা দেখুন।
উদ্দেশ্য
- একটি চ্যাট অ্যাপ তৈরি করুন যা অ্যাজাইল সফটওয়্যার প্রজেক্টগুলো পরিচালনা করে।
- Vertex AI দ্বারা চালিত জেনারেটিভ ও এআই-সহায়তাযুক্ত স্টোরি রাইটিং টুলের সাহায্যে ব্যবহারকারীদের ইউজার স্টোরি লিখতে সাহায্য করুন:
- গল্পের বিবরণ তৈরি ও পুনর্নির্মাণ করুন।
- শর্তগুলো পূরণ করতে নোট থেকে গল্পের বিবরণ বিস্তারিত করুন।
- বানান ভুল সংশোধন করতে ব্যাকরণ ঠিক করুন।
- ফায়ারস্টোর ডাটাবেসে লেখা এবং পড়ার মাধ্যমে কাজকে হালনাগাদ রাখুন।
- ব্যবহারকারীদের সরাসরি কথোপকথন থেকেই স্টোরি তৈরি, সম্পাদনা, অ্যাসাইন এবং শুরু করার সুযোগ দিয়ে চ্যাট স্পেসে পারস্পরিক সহযোগিতা সহজ করুন।
ব্যবহৃত পণ্য
প্রজেক্ট ম্যানেজমেন্ট অ্যাপটি নিম্নলিখিত গুগল ওয়ার্কস্পেস এবং গুগল ক্লাউড প্রোডাক্টগুলো ব্যবহার করে:
- চ্যাট এপিআই : গুগল চ্যাট অ্যাপ তৈরির জন্য একটি এপিআই, যা মেসেজের মতো চ্যাট ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ ও তার উত্তর দেয়। প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি চ্যাট এপিআই ব্যবহার করে চ্যাট দ্বারা প্রেরিত ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ ও তার উত্তর দিতে এবং চ্যাটে এটি কীভাবে প্রদর্শিত হবে তা নির্ধারণকারী অ্যাট্রিবিউট, যেমন নাম ও অ্যাভাটার ইমেজ, কনফিগার করতে।
- ভার্টেক্স এআই এপিআই : একটি জেনারেটিভ এআই প্ল্যাটফর্ম। প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি ইউজার স্টোরির শিরোনাম এবং বিবরণ লেখার জন্য ভার্টেক্স এআই এপিআই ব্যবহার করে।
- ফায়ারস্টোর : একটি সার্ভারবিহীন ডকুমেন্ট ডেটাবেস। প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি ইউজার স্টোরি সম্পর্কিত ডেটা সংরক্ষণের জন্য ফায়ারবেস ব্যবহার করে।
ক্লাউড ফাংশনস : একটি হালকা ও সার্ভারবিহীন কম্পিউট পরিষেবা যা আপনাকে একক-উদ্দেশ্যমূলক, স্বতন্ত্র ফাংশন তৈরি করতে দেয়, যা কোনো সার্ভার বা রানটাইম পরিবেশ পরিচালনার প্রয়োজন ছাড়াই চ্যাট ইন্টারঅ্যাকশন ইভেন্টগুলিতে সাড়া দিতে পারে। প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি ক্লাউড ফাংশনস ব্যবহার করে সেই HTTP এন্ডপয়েন্টটি হোস্ট করতে যেখানে চ্যাট ইন্টারঅ্যাকশন ইভেন্ট পাঠায় এবং এই ইভেন্টগুলি প্রসেস ও সেগুলিতে সাড়া দেওয়ার লজিক চালানোর জন্য একটি কম্পিউট প্ল্যাটফর্ম হিসাবেও এটি ব্যবহৃত হয়।
ক্লাউড ফাংশনস ইন্টারঅ্যাকশন ইভেন্ট তৈরি, প্রক্রিয়াকরণ এবং কম্পিউট রিসোর্স হোস্ট করার জন্য নিম্নলিখিত গুগল ক্লাউড পণ্যগুলি ব্যবহার করে:
- ক্লাউড বিল্ড : একটি সম্পূর্ণভাবে পরিচালিত কন্টিনিউয়াস ইন্টিগ্রেশন, ডেলিভারি এবং ডিপ্লয়মেন্ট প্ল্যাটফর্ম যা স্বয়ংক্রিয় বিল্ড পরিচালনা করে।
- পাব/সাব : একটি অ্যাসিঙ্ক্রোনাস এবং স্কেলেবল মেসেজিং পরিষেবা যা বার্তা উৎপাদনকারী পরিষেবাগুলোকে সেই বার্তাগুলো প্রক্রিয়াকারী পরিষেবাগুলো থেকে বিচ্ছিন্ন করে।
- ক্লাউড রান অ্যাডমিন এপিআই : কন্টেইনারাইজড অ্যাপ চালানোর জন্য একটি সম্পূর্ণভাবে পরিচালিত পরিবেশ।
স্থাপত্য
প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপ আর্কিটেকচারটি একটি HTTP এন্ডপয়েন্টে চ্যাট ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ ও প্রসেস করে, ইউজার স্টোরি লিখতে সাহায্য করার জন্য Vertex AI ব্যবহার করে এবং একটি Firestore ডেটাবেসে ইউজার স্টোরির বিস্তারিত তথ্য সংরক্ষণ করে। নিম্নলিখিত ডায়াগ্রামটি ব্যবহৃত গুগল ওয়ার্কস্পেস এবং গুগল ক্লাউড রিসোর্সগুলোর আর্কিটেকচার দেখায়।
প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি এইভাবে কাজ করে:
একজন ব্যবহারকারী চ্যাটে একটি বার্তা পাঠানোর পর সরাসরি বার্তা পাঠিয়ে, কোনো স্পেসে উল্লেখ করে, অথবা একটি স্ল্যাশ কমান্ড লিখে প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি চালু করেন।
চ্যাট ক্লাউড ফাংশনের HTTP এন্ডপয়েন্টে একটি সিনক্রোনাস HTTP অনুরোধ পাঠায়।
প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপটি HTTP অনুরোধটি প্রসেস করে:
ভার্টেক্স এআই ইউজার স্টোরি লিখতে বা আপডেট করতে সাহায্য করে।
ফায়ারস্টোর ডেটাবেস ইউজার স্টোরি ডেটা সংরক্ষণ, পুনরুদ্ধার, আপডেট বা মুছে ফেলে।
ক্লাউড ফাংশন চ্যাট-এ একটি HTTP প্রতিক্রিয়া ফেরত পাঠায়, যা ব্যবহারকারীর কাছে একটি বার্তা বা ডায়ালগ হিসাবে প্রদর্শিত হয়।
পরিবেশ প্রস্তুত করুন
এই অংশে চ্যাট অ্যাপের জন্য কীভাবে একটি গুগল ক্লাউড প্রজেক্ট তৈরি ও কনফিগার করতে হয়, তা দেখানো হয়েছে।
একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন
গুগল এপিআই কনসোল
- Google API Console-এ, > IAM & Admin > Create a Project-এ যান।
- 'প্রজেক্ট নেম' ফিল্ডে আপনার প্রজেক্টের জন্য একটি বর্ণনামূলক নাম লিখুন।
ঐচ্ছিক: প্রজেক্ট আইডি সম্পাদনা করতে, 'সম্পাদনা' (Edit) বোতামে ক্লিক করুন। প্রজেক্ট তৈরি হয়ে গেলে তা আর পরিবর্তন করা যায় না, তাই এমন একটি আইডি বেছে নিন যা প্রজেক্টটির পুরো জীবনকাল জুড়ে আপনার প্রয়োজন মেটাবে।
- লোকেশন ফিল্ডে, আপনার প্রোজেক্টের জন্য সম্ভাব্য লোকেশনগুলো দেখতে ব্রাউজ-এ ক্লিক করুন। এরপর, সিলেক্ট-এ ক্লিক করুন।
- Create-এ ক্লিক করুন। Google API Console আপনাকে ড্যাশবোর্ড পৃষ্ঠায় নিয়ে যাবে এবং কয়েক মিনিটের মধ্যেই আপনার প্রজেক্টটি তৈরি হয়ে যাবে।
gcloud CLI
নিম্নলিখিত ডেভেলপমেন্ট এনভায়রনমেন্টগুলির মধ্যে যেকোনো একটিতে Google Cloud CLI ( gcloud ) অ্যাক্সেস করুন:
- ক্লাউড শেল : আগে থেকে সেট আপ করা gcloud CLI সহ একটি অনলাইন টার্মিনাল ব্যবহার করতে, ক্লাউড শেল সক্রিয় করুন।
ক্লাউড শেল সক্রিয় করুন - লোকাল শেল : স্থানীয় উন্নয়ন পরিবেশ ব্যবহার করতে, gcloud CLI ইনস্টল ও চালু করুন ।
একটি ক্লাউড প্রজেক্ট তৈরি করতে,gcloud projects createকমান্ডটি ব্যবহার করুন: আপনি যে প্রজেক্টটি তৈরি করতে চান, তার আইডি দিয়ে PROJECT_ID প্রতিস্থাপন করুন।gcloud projects create PROJECT_ID
ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করুন
গুগল এপিআই কনসোল
- Google API কনসোলে, বিলিং- এ যান। মেনু > বিলিং > আমার প্রজেক্টস- ক্লিক করুন।
- 'একটি সংস্থা নির্বাচন করুন' -এ, আপনার গুগল ক্লাউড প্রকল্পের সাথে যুক্ত সংস্থাটি বেছে নিন।
- প্রজেক্ট রো-তে, অ্যাকশনস মেনু ( ) খুলুন, চেঞ্জ বিলিং-এ ক্লিক করুন এবং ক্লাউড বিলিং অ্যাকাউন্টটি বেছে নিন।
- অ্যাকাউন্ট সেট করুন -এ ক্লিক করুন।
gcloud CLI
- উপলব্ধ বিলিং অ্যাকাউন্টগুলির তালিকা পেতে, চালান:
gcloud billing accounts list - একটি গুগল ক্লাউড প্রজেক্টের সাথে বিলিং অ্যাকাউন্ট লিঙ্ক করুন:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_IDনিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
PROJECT_IDহলো সেই ক্লাউড প্রজেক্টের প্রজেক্ট আইডি , যার জন্য আপনি বিলিং চালু করতে চান। -
BILLING_ACCOUNT_IDহলো গুগল ক্লাউড প্রজেক্টের সাথে লিঙ্ক করার জন্য বিলিং অ্যাকাউন্ট আইডি ।
-
এপিআইগুলি সক্রিয় করুন
গুগল এপিআই কনসোল
Google API কনসোলে, Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, এবং Cloud Run Admin API সক্রিয় করুন।
আপনি সঠিক ক্লাউড প্রজেক্টে এপিআইগুলো সক্রিয় করছেন কিনা তা নিশ্চিত করুন, তারপর 'Next' বাটনে ক্লিক করুন।
আপনি সঠিক API-গুলো সক্রিয় করছেন কিনা তা নিশ্চিত করুন, তারপর 'Enable'-এ ক্লিক করুন।
gcloud CLI
প্রয়োজনে,
gcloud config set projectকমান্ড ব্যবহার করে আপনার তৈরি করা প্রজেক্টটিকে বর্তমান ক্লাউড প্রজেক্ট হিসেবে সেট করুন:gcloud config set project PROJECT_IDPROJECT_ID জায়গায় আপনার তৈরি করা ক্লাউড প্রজেক্টের প্রজেক্ট আইডিটি বসান।
gcloud services enableকমান্ড ব্যবহার করে Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, এবং Cloud Run Admin API সক্রিয় করুন।gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ run.googleapis.comক্লাউড ফাংশন ব্যবহারের জন্য ক্লাউড বিল্ড, পাব/সাব এবং ক্লাউড রান অ্যাডমিন এপিআইগুলো পূর্বশর্ত।
প্রমাণীকরণ এবং অনুমোদন
এই টিউটোরিয়ালটি অনুসরণ করার জন্য কোনো প্রমাণীকরণ এবং অনুমোদন কনফিগারেশনের প্রয়োজন নেই।
Firestore এবং Vertex AI API-গুলো কল করার জন্য, এই টিউটোরিয়ালটিতে ক্লাউড ফাংশনের সাথে সংযুক্ত ডিফল্ট সার্ভিস অ্যাকাউন্টসহ অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করা হয়েছে, যা আপনাকে সেট আপ করার প্রয়োজন নেই। প্রোডাকশন এনভায়রনমেন্টের ক্ষেত্রে, এর পরিবর্তে আপনি সাধারণত ক্লাউড ফাংশনের জন্য একটি সার্ভিস অ্যাকাউন্ট তৈরি করে সংযুক্ত করবেন ।
গুগল চ্যাট অ্যাপ তৈরি এবং স্থাপন করুন
এখন যেহেতু আপনার গুগল ক্লাউড প্রজেক্ট তৈরি এবং কনফিগার করা হয়ে গেছে, আপনি গুগল চ্যাট অ্যাপটি বিল্ড এবং ডিপ্লয় করার জন্য প্রস্তুত। এই অংশে, আপনি নিম্নলিখিত কাজগুলো করবেন:
- ইউজার স্টোরি সংরক্ষণ ও পুনরুদ্ধার করার জন্য একটি ফায়ারস্টোর ডেটাবেস তৈরি করুন।
- ঐচ্ছিকভাবে, নমুনা কোডটি পর্যালোচনা করুন।
- চ্যাট থেকে HTTP অনুরোধ হিসাবে প্রাপ্ত ইভেন্টের প্রতিক্রিয়া হিসাবে চ্যাট অ্যাপের কোড হোস্ট ও রান করার জন্য একটি ক্লাউড ফাংশন তৈরি করুন।
- Google Chat API কনফিগারেশন পেজে একটি Google Chat অ্যাপ তৈরি ও স্থাপন করুন।
ফায়ারস্টোর ডাটাবেস তৈরি করুন
এই অংশে, আপনি ইউজার স্টোরি সংরক্ষণ ও পুনরুদ্ধার করার জন্য একটি ফায়ারস্টোর ডেটাবেস তৈরি করেন, কিন্তু ডেটা মডেলটি সংজ্ঞায়িত করেন না। স্যাম্পল কোডে model/user-story.js এবং model/user.js ফাইলগুলোর মাধ্যমে ডেটা মডেলটি পরোক্ষভাবে সেট করা থাকে।
প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপের ডাটাবেসটি কালেকশনে সংগঠিত ডকুমেন্টের উপর ভিত্তি করে একটি NoSQL ডেটা মডেল ব্যবহার করে। আরও জানতে, `Firestore data model` দেখুন।
নিম্নলিখিত ডায়াগ্রামটি প্রজেক্ট ম্যানেজমেন্ট গুগল চ্যাট অ্যাপের ডেটা মডেলের একটি সংক্ষিপ্ত বিবরণ:
মূল কালেকশনটি হলো spaces , যেখানে প্রতিটি ডকুমেন্ট এমন একটি স্পেসকে প্রতিনিধিত্ব করে যেখানে চ্যাট অ্যাপটি স্টোরি তৈরি করেছে। প্রতিটি ইউজার স্টোরি userStories সাবকালেকশনের একটি ডকুমেন্ট দ্বারা এবং প্রতিটি ইউজার users সাবকালেকশনের একটি ডকুমেন্ট দ্বারা প্রতিনিধিত্ব করা হয়।
সংগ্রহ, নথি এবং ক্ষেত্রের সংজ্ঞা দেখুন
spaces
যেসব স্পেসে চ্যাট অ্যাপটি স্টোরি তৈরি করত।
| ক্ষেত্র | |
|---|---|
Document ID | Stringযে নির্দিষ্ট স্পেসে স্টোরি তৈরি করা হয়, তার অনন্য আইডি। এটি চ্যাট এপিআই-তে থাকা স্পেসটির রিসোর্স নামের সাথে সঙ্গতিপূর্ণ। |
userStories | Subcollection of Documents ( চ্যাট অ্যাপ এবং এর ব্যবহারকারীদের দ্বারা তৈরি স্টোরি। এটি ফায়ারবেসে থাকা কোনো userStories Document ID সাথে সঙ্গতিপূর্ণ। |
users | Subcollection of Documents ( user )যেসব ব্যবহারকারী স্টোরি তৈরি করেছেন বা যাঁদেরকে স্টোরি বরাদ্দ করা হয়েছে। |
displayName | Stringচ্যাট এপিআই-তে স্পেসটির প্রদর্শিত নাম। ব্যবহারকারীদের সাথে সরাসরি বার্তা আদান-প্রদানের জন্য এটি সেট করা নেই। |
userStories
চ্যাট অ্যাপ এবং এর ব্যবহারকারীদের তৈরি করা গল্প।
| ক্ষেত্র | |
|---|---|
Document ID | Stringচ্যাট অ্যাপ এবং এর ব্যবহারকারীদের দ্বারা তৈরি একটি নির্দিষ্ট ইউজার স্টোরির অনন্য আইডি। |
assignee | Document ( user )গল্পটি সম্পূর্ণ করার জন্য নির্ধারিত ব্যবহারকারীর রিসোর্স নাম। এটি users ডকুমেন্টের Document ID এবং চ্যাট এপিআই-তে থাকা ব্যবহারকারীর রিসোর্স নামের সাথে সঙ্গতিপূর্ণ। |
description | Stringব্যবহারকারীর দৃষ্টিকোণ থেকে সফটওয়্যার ফিচারটির বর্ণনা। |
priority | Enumকাজটি সম্পন্ন করার তাগিদ। সম্ভাব্য মানগুলো হলো Low , Medium বা High । |
size | Enumকাজের পরিমাণ। সম্ভাব্য মানগুলো হলো Small , Medium বা Large । |
status | Enumকাজের পর্যায়। সম্ভাব্য মানগুলো হলো OPEN , STARTED বা COMPLETED । |
title | Stringগল্পের শিরোনাম; একটি সংক্ষিপ্ত সারাংশ। |
users
যেসব ব্যবহারকারী স্টোরি তৈরি করেছেন বা যাঁদেরকে স্টোরি বরাদ্দ করা হয়েছে।
| ক্ষেত্র | |
|---|---|
Document ID | Stringএকজন নির্দিষ্ট ব্যবহারকারীর অনন্য আইডি। এটি Firebase-এ userStories এর assignee এবং Chat API-তে ব্যবহারকারীর রিসোর্স নামের সাথে সঙ্গতিপূর্ণ। |
avatarUrl | Stringযে URL-টিতে ব্যবহারকারীর চ্যাট অ্যাভাটার ছবিটি রয়েছে। |
displayName | Stringব্যবহারকারীর চ্যাটে প্রদর্শিত নাম। |
ফায়ারস্টোর ডাটাবেস তৈরি করার পদ্ধতি নিচে দেওয়া হলো:
গুগল এপিআই কনসোল
Google API Console-এ, Firestore-এ যান। Menu > Firestore-এ করুন।
ডাটাবেস তৈরি করুন -এ ক্লিক করুন।
আপনার ফায়ারস্টোর মোড নির্বাচন করুন থেকে, নেটিভ মোডে ক্লিক করুন।
চালিয়ে যান-এ ক্লিক করুন।
ডাটাবেস কনফিগার করুন:
আপনার ডেটাবেসের নাম দেওয়ার ক্ষেত্রে, ডেটাবেস আইডি
(default)হিসাবেই রাখুন।লোকেশন টাইপ- এ, আপনার ডেটাবেসের জন্য একটি অঞ্চল নির্দিষ্ট করুন, যেমন
us-central1। সর্বোত্তম পারফরম্যান্সের জন্য, চ্যাট অ্যাপের ক্লাউড ফাংশনের মতো একই বা কাছাকাছি অবস্থান নির্বাচন করুন।
ডাটাবেস তৈরি করুন -এ ক্লিক করুন।
gcloud CLI
gcloud firestore databases createকমান্ড ব্যবহার করে নেটিভ মোডে একটি ফায়ারস্টোর ডাটাবেস তৈরি করুন:gcloud firestore databases create \ --location=LOCATION \ --type=firestore-nativeLOCATION জায়গায় একটি Firestore অঞ্চলের নাম বসান, যেমন
us-central1।
নমুনা কোডটি পর্যালোচনা করুন।
ঐচ্ছিকভাবে, ক্লাউড ফাংশন তৈরি করার আগে, গিটহাবে হোস্ট করা নমুনা কোডটি পর্যালোচনা করে ভালোভাবে দেখে নিন।
এখানে প্রতিটি ফাইলের একটি সংক্ষিপ্ত বিবরণ দেওয়া হলো:
-
env.js - একটি নির্দিষ্ট গুগল ক্লাউড প্রজেক্ট এবং অঞ্চলে চ্যাট অ্যাপটি স্থাপন করার জন্য পরিবেশ কনফিগারেশন ভেরিয়েবল। আপনাকে অবশ্যই এই ফাইলে কনফিগারেশন ভেরিয়েবলগুলো আপডেট করতে হবে।
-
package.jsonএবংpackage-lock.json - Node.js প্রজেক্টের সেটিংস এবং ডিপেন্ডেন্সিসমূহ।
-
index.js - চ্যাট অ্যাপের ক্লাউড ফাংশনের এন্ট্রি পয়েন্ট। এটি HTTP রিকোয়েস্ট থেকে চ্যাট ইভেন্টটি পড়ে, অ্যাপ হ্যান্ডলারকে কল করে এবং HTTP রেসপন্সটিকে একটি JSON অবজেক্ট হিসেবে পোস্ট করে।
-
controllers/app.js - মূল অ্যাপ্লিকেশন লজিক। এটি চ্যাট অ্যাপ মেনশন এবং স্ল্যাশ কমান্ড হ্যান্ডেল করার মাধ্যমে ইন্টারঅ্যাকশন ইভেন্টগুলো প্রসেস করে। কার্ড ক্লিকে সাড়া দেওয়ার জন্য, এটি
app-action-handler.jsকল করে। -
controllers/app-action-handler.js - কার্ড ক্লিক চ্যাট ইন্টারঅ্যাকশন ইভেন্টগুলো পরিচালনা করার জন্য অ্যাপ্লিকেশন লজিক।
-
services/space-service.js,services/user-service.js, এবংservices/user-story-service.js - এই ফাইলগুলোতে অ্যাপ্লিকেশন লজিকের সেই অংশগুলো থাকে যা চ্যাট স্পেস, ব্যবহারকারী এবং ইউজার স্টোরি নিয়ে কাজ করার জন্য নির্দিষ্ট। এই ফাইলগুলোর ফাংশনগুলোকে
app.jsঅথবাapp-action-handler.jsদ্বারা কল করা হয়। ডাটাবেস অপারেশন সম্পাদন করার জন্য, এই ফাইলগুলোর ফাংশনগুলোfirestore-service.jsএর ফাংশনগুলোকে কল করে। -
services/firestore-service.js - ডাটাবেস অপারেশন পরিচালনা করে। এই ফাইলের ফাংশনগুলোকে
services/space-service.js,services/user-service.jsএবংservices/user-story-service.jsদ্বারা কল করা হয়। -
services/aip-service.js - জেনারেটিভ এআই টেক্সট প্রেডিকশনের জন্য ভার্টেক্স এআই এপিআই-কে কল করা হয়।
-
model/*.js - এই ফাইলগুলিতে ক্লাস এবং এনামের সংজ্ঞা রয়েছে, যা অ্যাপ্লিকেশন পরিষেবাগুলি ফাংশনগুলির মধ্যে ডেটা সংরক্ষণ এবং আদান-প্রদান করতে ব্যবহার করে। এগুলি ফায়ারস্টোর ডাটাবেসের জন্য ডেটা মডেল নির্ধারণ করে।
-
views/*.js - এই ডিরেক্টরির প্রতিটি ফাইল একটি কার্ড অবজেক্ট তৈরি করে, যা চ্যাট অ্যাপটি পরবর্তীতে একটি কার্ড বার্তা অথবা একটি ডায়ালগ অ্যাকশন প্রতিক্রিয়া হিসেবে চ্যাটে ফেরত পাঠায়।
-
views/widgets/*.js - প্রতিটি ফাইল এক ধরনের উইজেট অবজেক্ট তৈরি করে, যা অ্যাপটি
views/ডিরেক্টরিতে কার্ডগুলো তৈরি করতে ব্যবহার করে। -
test/**/*.test.js - এই ডিরেক্টরি এবং এর সাবডিরেক্টরিগুলোর প্রতিটি ফাইলে সংশ্লিষ্ট ফাংশন, কন্ট্রোলার, সার্ভিস, ভিউ বা উইজেটের ইউনিট টেস্টগুলো থাকে। প্রজেক্টের রুট ডিরেক্টরিতে থাকাকালীন
npm run testচালিয়ে আপনি সমস্ত ইউনিট টেস্টগুলো চালাতে পারেন।
ক্লাউড ফাংশন তৈরি এবং স্থাপন করুন
এই অংশে, আপনি একটি ক্লাউড ফাংশন তৈরি এবং স্থাপন করবেন, যেটিতে প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপের অ্যাপ্লিকেশন লজিক অন্তর্ভুক্ত থাকবে।
চ্যাট থেকে আসা একটি HTTP অনুরোধের জবাবে ক্লাউড ফাংশনটি চলে, যেটিতে একটি চ্যাট ইন্টারঅ্যাকশন ইভেন্ট থাকে। চলার পর, ক্লাউড ফাংশনের কোডটি ইভেন্টটি প্রসেস করে এবং চ্যাটকে একটি প্রতিক্রিয়া ফেরত পাঠায়, যা চ্যাট একটি বার্তা, ডায়ালগ বা অন্য কোনো ধরনের ব্যবহারকারী ইন্টারঅ্যাকশন হিসেবে প্রদর্শন করে। প্রযোজ্য ক্ষেত্রে, ক্লাউড ফাংশনটি ফায়ারস্টোর ডেটাবেস থেকে ডেটা পড়ে বা তাতে লেখেও।
ক্লাউড ফাংশন তৈরি করার পদ্ধতি নিচে দেওয়া হলো:
গুগল এপিআই কনসোল
গিটহাব থেকে কোডটি একটি জিপ ফাইল হিসেবে ডাউনলোড করুন।
ডাউনলোড করা জিপ ফাইলটি এক্সট্র্যাক্ট করুন।
এক্সট্র্যাক্ট করা ফোল্ডারটিতে সম্পূর্ণ গুগল ওয়ার্কস্পেস স্যাম্পল রিপোজিটরিটি রয়েছে।
এক্সট্র্যাক্ট করা ফোল্ডারে,
add-ons-samples-main/node/chat/project-management-app/-এ যান, তারপরproject-management-appফোল্ডারটিকে একটি zip ফাইলে কম্প্রেস করুন।জিপ ফাইলের রুট ডিরেক্টরিতে অবশ্যই নিম্নলিখিত ফাইল এবং ফোল্ডারগুলো থাকতে হবে:
-
env.js -
README.md -
gcloudignore.text -
package-lock.json -
package.json -
index.js -
model/ -
controllers/ -
views/ -
services/
-
Google API Console-এ, Cloud Functions পৃষ্ঠায় যান:
আপনার চ্যাট অ্যাপের জন্য গুগল ক্লাউড প্রজেক্টটি নির্বাচিত আছে কিনা, তা নিশ্চিত করুন।
ফাংশন তৈরি করতে ক্লিক করুন।
ফাংশন তৈরি করার পৃষ্ঠায়, আপনার ফাংশনটি সেট আপ করুন:
- এনভায়রনমেন্ট- এ, ক্লাউড রান ফাংশন নির্বাচন করুন।
- Function name- এর জায়গায়
project-management-tutorialলিখুন। - Region- এ, একটি অঞ্চল নির্বাচন করুন।
- Authentication-এর অধীনে, Allow unauthenticated invocations নির্বাচন করুন।
- পরবর্তী ধাপে যান।
রানটাইমে , Node.js 20 নির্বাচন করুন।
এন্ট্রি পয়েন্টে , ডিফল্ট টেক্সটটি মুছে দিয়ে
projectManagementChatAppলিখুন।সোর্স কোডে , জিপ আপলোড নির্বাচন করুন।
গন্তব্য বাকেটে , একটি বাকেট তৈরি করুন বা নির্বাচন করুন:
- ব্রাউজ-এ ক্লিক করুন।
- একটি বালতি বেছে নিন।
- নির্বাচন করুন- এ ক্লিক করুন।
গুগল ক্লাউড জিপ ফাইলটি এই বাকেটে আপলোড করে এবং এর উপাদান ফাইলগুলো এক্সট্র্যাক্ট করে। এরপর ক্লাউড ফাংশনস উপাদান ফাইলগুলোকে ক্লাউড ফাংশনের মধ্যে কপি করে।
Zip file অংশে, GitHub থেকে ডাউনলোড করা, এক্সট্র্যাক্ট করা এবং পুনরায় কম্প্রেস করা zip ফাইলটি আপলোড করুন:
- ব্রাউজ-এ ক্লিক করুন।
- জিপ ফাইলটিতে যান এবং সেটি নির্বাচন করুন।
- খুলুন- এ ক্লিক করুন।
ডিপ্লয়-এ ক্লিক করুন।
ক্লাউড ফাংশন ডিটেইল পেজটি খোলে এবং আপনার ফাংশনটি দুটি অগ্রগতি সূচক সহ প্রদর্শিত হয়: একটি বিল্ডের জন্য এবং অন্যটি সার্ভিসের জন্য। যখন উভয় অগ্রগতি সূচক অদৃশ্য হয়ে যায় এবং একটি টিক চিহ্ন দ্বারা প্রতিস্থাপিত হয়, তখন আপনার ফাংশনটি ডেপ্লয় করা এবং ব্যবহারের জন্য প্রস্তুত হয়ে যায়।
ধ্রুবকগুলো সেট করতে নমুনা কোডটি সম্পাদনা করুন:
- ক্লাউড ফাংশন বিস্তারিত পৃষ্ঠায়, সম্পাদনা (Edit ) বোতামে ক্লিক করুন।
- পরবর্তী ধাপে যান।
- সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।
- ইনলাইন এডিটরে
env.jsফাইলটি খুলুন। - project-id এর জায়গায় আপনার ক্লাউড প্রজেক্ট আইডি বসান।
- ঐচ্ছিক: আপনার ক্লাউড ফাংশনের জন্য একটি সমর্থিত অবস্থান দিয়ে us-central1 আপডেট করুন।
ডিপ্লয়-এ ক্লিক করুন।
ফাংশনটি ডেপ্লয় করা শেষ হলে, ট্রিগার URL-টি কপি করুন:
- ফাংশন বিবরণ পৃষ্ঠায়, ট্রিগার-এ ক্লিক করুন।
- ইউআরএলটি কপি করুন। পরবর্তী অংশে চ্যাট অ্যাপটি কনফিগার করার জন্য এটি আপনার প্রয়োজন হবে।
gcloud CLI
গিটহাব থেকে কোডটি ক্লোন করুন:
git clone https://github.com/googleworkspace/add-ons-samples.gitএই প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপটির কোড যে ডিরেক্টরিতে রয়েছে সেখানে যান:
cd add-ons-samples/node/chat/project-management-appএনভায়রনমেন্ট ভেরিয়েবল সেট করতে
env.jsফাইলটি সম্পাদনা করুন:- project-id এর জায়গায় আপনার গুগল ক্লাউড প্রজেক্ট আইডি বসান।
- us-central1 জায়গায় আপনার গুগল ক্লাউড প্রজেক্টের অবস্থান লিখুন।
গুগল ক্লাউডে ক্লাউড ফাংশনটি স্থাপন করুন:
gcloud functions deploy project-management-tutorial \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=projectManagementChatApp \ --trigger-http \ --allow-unauthenticatedREGION পরিবর্তে ক্লাউড ফাংশনের এমন একটি অবস্থান লিখুন যেখানে এর পরিকাঠামো হোস্ট করা আছে, যেমন
us-central1।
- ফাংশনটি ডেপ্লয় করা শেষ হলে, রেসপন্স থেকে
urlপ্রপার্টিটি কপি করুন। এটিই হলো ট্রিগার ইউআরএল, যা আপনি পরবর্তী অংশে গুগল চ্যাট অ্যাপ কনফিগার করার জন্য ব্যবহার করবেন।
Google API কনসোলে Google চ্যাট অ্যাপটি কনফিগার করুন।
এই বিভাগে দেখানো হয়েছে কীভাবে আপনার চ্যাট অ্যাপ সম্পর্কিত তথ্য, যেমন—চ্যাটল অ্যাপের নাম, সমর্থিত স্ল্যাশ কমান্ড এবং চ্যাট অ্যাপের ক্লাউড ফাংশনের ট্রিগার ইউআরএল (যেখানে এটি চ্যাট ইন্টারঅ্যাকশন ইভেন্ট পাঠায়) ব্যবহার করে গুগল এপিআই কনসোলে চ্যাট এপিআই কনফিগার করতে হয়।
Google API কনসোলে, মেনু এপিআই ও পরিষেবা > সক্রিয় এপিআই ও পরিষেবা > গুগল চ্যাট এপিআই > কনফিগারেশন- এ ক্লিক করুন ।
অ্যাপের নামে ,
Project Managerটাইপ করুন।Avatar URL- এ
https://developers.google.com/add-ons/samples/images/quickstart-app-avatar.pngটাইপ করুন।Description- এ টাইপ করুন,
Manages projects with user stories.ইন্টারেক্টিভ ফিচার সক্ষম করুন টগলটি অন অবস্থানে ক্লিক করুন।
Functionality-এর অধীনে, Join spaces and group conversations নির্বাচন করুন।
সংযোগ সেটিংস-এর অধীনে, HTTP এন্ডপয়েন্ট URL নির্বাচন করুন।
সার্ভিস অ্যাকাউন্টের ইমেলটি কপি করুন। আপনার অ্যাড-অনকে ফাংশনটি চালু করার অনুমোদন দেওয়ার জন্য এই ইমেলটি প্রয়োজন হবে।
ট্রিগার-এর অধীনে, সমস্ত ট্রিগারের জন্য একটি সাধারণ HTTP এন্ডপয়েন্ট URL ব্যবহার করুন বিকল্পটি নির্বাচন করুন।
HTTP এন্ডপয়েন্ট URL- এ, ক্লাউড ফাংশনের ট্রিগার URL-টি
https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorialফরম্যাটে পেস্ট করুন। যদি আপনি gcloud CLI দিয়ে ক্লাউড ফাংশনটি ডেপ্লয় করে থাকেন, তাহলে এটিই হলোurlপ্রপার্টি।চ্যাট অ্যাপের স্ল্যাশ কমান্ডগুলো রেজিস্টার করুন। একটি স্ল্যাশ কমান্ড রেজিস্টার করতে:
- Commands-এর অধীনে, Add a command-এ ক্লিক করুন।
নিচের সারণীতে বিস্তারিত প্রতিটি কমান্ডের জন্য, কমান্ড আইডি লিখুন, বিবরণ লিখুন, কমান্ড টাইপের অধীনে স্ল্যাশ কমান্ড নির্বাচন করুন, স্ল্যাশ কমান্ডের নাম লিখুন, ডায়ালগ নির্বাচন করুন এবং তারপরে সম্পন্ন (Done) ক্লিক করুন:
কমান্ড আইডি বর্ণনা স্ল্যাশ কমান্ডের নাম সংলাপ ১ নির্দিষ্ট শিরোনাম দিয়ে একটি গল্প তৈরি করুন। /createUserStoryনির্বাচিত নয় ২ ব্যবহারকারীকে বরাদ্দ করা সমস্ত স্টোরির তালিকা দেখায়। /myUserStoriesনির্বাচিত নয় ৩ নির্দিষ্ট স্টোরিটির বর্তমান অবস্থা প্রদর্শন করে। /userStoryনির্বাচিত নয় ৪ একটি ডায়ালগ বক্স খোলে যেখানে স্টোরিগুলো সম্পাদনা করা যায়। /manageUserStoriesনির্বাচিত ৫ স্থানটির সমস্ত গল্প মুছে দেয়। /cleanupUserStoriesনির্বাচিত নয়
‘Visibility’- এর অধীনে, ‘Make this Google Chat app available to specific people and groups in your Workspace domain’ বিকল্পটি নির্বাচন করুন এবং আপনার ইমেল ঠিকানা লিখুন।
ঐচ্ছিকভাবে, Logs-এর অধীনে, Log errors to Logging নির্বাচন করুন।
সংরক্ষণ করুন- এ ক্লিক করুন। কনফিগারেশন সংরক্ষিত হয়েছে এমন একটি বার্তা প্রদর্শিত হবে।
চ্যাট অ্যাপটি চ্যাটে বার্তা গ্রহণ ও উত্তর দেওয়ার জন্য প্রস্তুত।
চ্যাট অ্যাপটি পরীক্ষা করুন
প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপটিতে মেসেজ পাঠিয়ে এবং এর স্ল্যাশ কমান্ড ব্যবহার করে ইউজার স্টোরি তৈরি, সম্পাদনা ও মুছে ফেলার মাধ্যমে এটি পরীক্ষা করুন।
বিশ্বস্ত পরীক্ষক হিসেবে নিজেকে যুক্ত করার সময় আপনি যে Google Workspace অ্যাকাউন্টটি দিয়েছিলেন, সেটি ব্যবহার করে Google Chat খুলুন।
- নতুন চ্যাট -এ ক্লিক করুন।
- ‘এক বা একাধিক ব্যক্তি যোগ করুন’ ফিল্ডে আপনার চ্যাট অ্যাপের নামটি টাইপ করুন।
ফলাফল থেকে আপনার চ্যাট অ্যাপটি বেছে নিন। একটি সরাসরি বার্তা খুলে যাবে।
- অ্যাপের নতুন ডাইরেক্ট মেসেজে,
Helloটাইপ করেenterচাপুন। প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপটি একটি হেল্প মেনু দেখিয়ে সাড়া দেবে, যেখানে এটি কী কী করতে পারে তার বিস্তারিত বিবরণ থাকবে। - একটি স্টোরি তৈরি করতে, মেসেজ বারে
/createUserStory Test storyটাইপ করে পাঠিয়ে দিন। প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপটি ভার্টেক্স এআই (Vertex AI)-এর জেনারেটিভ এআই ব্যবহার করে আপনার জন্য তৈরি করা ইউজার স্টোরিটির বিস্তারিত বিবরণসহ একটি কার্ড মেসেজের মাধ্যমে উত্তর দেয়। এপিআই কনসোলে, ফায়ারস্টোর ডাটাবেস চেক করে সেই রেকর্ডগুলো পর্যালোচনা করুন যা আপনি চ্যাট অ্যাপটি যোগ করা স্পেস, সেটির সাথে ইন্টারঅ্যাক্ট করা ব্যবহারকারী এবং আপনার তৈরি করা ইউজার স্টোরি সম্পর্কে তৈরি করেছেন।
গুগল চ্যাটে ফিরে যান।
- ঐচ্ছিকভাবে, গল্পটি সম্পাদনা করতে ' সম্পাদনা' বোতামে ক্লিক করুন। গল্পটি আপনার পছন্দ হলে, 'সংরক্ষণ' বোতামে ক্লিক করুন।
- অ্যাপটি দ্বারা সমর্থিত প্রতিটি স্ল্যাশ কমান্ড পরীক্ষা করে দেখুন। সেগুলি দেখতে,
/টাইপ করুন অথবা চ্যাট অ্যাপটির কথা উল্লেখ করুন। -
/cleanupUserStoriesস্ল্যাশ কমান্ডটি ব্যবহার করে টেস্ট ইউজার স্টোরিটি মুছে ফেলুন। বিকল্পভাবে, অ্যাপটি রিমুভ বা আনইনস্টল করুন । রিমুভ করা হলে, অ্যাপটি ওই স্পেসে তৈরি করা সমস্ত ইউজার স্টোরি মুছে দেয়।
সমস্যা সমাধান
যখন কোনো গুগল চ্যাট অ্যাপ বা কার্ডে ত্রুটি দেখা দেয়, তখন চ্যাট ইন্টারফেসে "কিছু একটা ভুল হয়েছে" বা "আপনার অনুরোধটি প্রক্রিয়া করা সম্ভব হয়নি" লেখা একটি বার্তা প্রদর্শিত হয়। কখনও কখনও চ্যাট UI কোনো ত্রুটির বার্তা প্রদর্শন করে না, কিন্তু চ্যাট অ্যাপ বা কার্ডটি একটি অপ্রত্যাশিত ফলাফল দেয়; উদাহরণস্বরূপ, কার্ডের বার্তাটি হয়তো দেখা যায় না।
যদিও চ্যাট UI-তে কোনো ত্রুটির বার্তা প্রদর্শিত নাও হতে পারে, চ্যাট অ্যাপের জন্য ত্রুটি লগিং চালু থাকলে, ত্রুটিগুলি সমাধান করতে সাহায্য করার জন্য বর্ণনামূলক ত্রুটির বার্তা এবং লগ ডেটা উপলব্ধ থাকে। ত্রুটি দেখা, ডিবাগ করা এবং সমাধান করার জন্য, "গুগল চ্যাটের ত্রুটি সমাধান ও প্রতিকার" দেখুন।
পরিষ্কার করা
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে কোনো চার্জ হওয়া এড়াতে, আমরা আপনাকে ক্লাউড প্রজেক্টটি ডিলিট করে দেওয়ার পরামর্শ দিচ্ছি।
- Google API Console-এ, Manage resources পেজে যান। Menu > IAM & Admin > Manage Resources-এ করুন।
- প্রজেক্ট তালিকা থেকে আপনি যে প্রজেক্টটি মুছতে চান সেটি নির্বাচন করুন এবং তারপর 'মুছে ফেলুন বোতামে ক্লিক করুন।
- ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।
সম্পর্কিত বিষয়
- গুগল ওয়ার্কস্পেস জুড়ে অ্যাক্সেসযোগ্য একটি এআই এজেন্টের সাহায্যে ভ্রমণের পরিকল্পনা করুন।
- জেমিনি এআই চ্যাট অ্যাপের চ্যাট কথোপকথনের উপর ভিত্তি করে প্রশ্নের উত্তর দিন।
- গুগল চ্যাট, ভার্টেক্স এআই, অ্যাপস স্ক্রিপ্ট এবং ব্যবহারকারী প্রমাণীকরণের মাধ্যমে ঘটনাগুলোর প্রতিক্রিয়া জানান।
- একটি ADK AI এজেন্ট এবং জেমিনি মডেলের সাহায্যে বিবৃতিগুলোর তথ্য যাচাই করুন
- চ্যাট অ্যাপে এআই-এর মৌলিক ধারণাগুলি অন্তর্ভুক্ত করুন
- অ্যাপস স্ক্রিপ্ট ব্যবহার করে গুগল ওয়ার্কস্পেস অ্যাড-অন হিসেবে একটি চ্যাট অ্যাপ তৈরি করুন।