সম্প্রদায়গুলি কঠিন। এগুলি নির্মাণ করা কঠিন, রক্ষণাবেক্ষণ করা কঠিন এবং বৃদ্ধি করা কঠিন। কিন্তু, সম্প্রদায় তৈরি করা আমার কর্মজীবনের সবচেয়ে ফলপ্রসূ জিনিসগুলির মধ্যে একটি, কারণ আমি অনেক আশ্চর্যজনক লোকের সাথে দেখা করেছি এবং আমার আরামদায়ক অঞ্চলের বাইরে কিছু শিখতে এবং করতে বাধ্য হয়েছি।
আমার মনে আছে 10 বছরেরও বেশি আগে আমি বার্লিনে আমার প্রথম ছোট প্রযুক্তি সম্মেলনে যোগ দিয়েছিলাম - CouchConf. ভাগ্যক্রমে একই সময়ে একটি বার্লিনজেএস মিটআপ হয়েছিল এবং আমি সম্প্রদায় এবং লোকেদের দ্বারা উড়িয়ে দিয়েছিলাম। তাদের ওয়েবসাইটের জন্য একটি GitHub সংগ্রহস্থল সেট আপ করা আছে এবং আলোচনাগুলি GitHub সমস্যা হিসাবে জমা দেওয়া হয়। আমি প্রক্রিয়াটির সরলতা এবং স্বচ্ছতা দেখে বিস্মিত হয়েছিলাম, তাই আমি রেপোকে কাঁটা দিয়েছিলাম এবং কয়েক সপ্তাহ পরে বার্সেলোনাজেএস প্রতিষ্ঠা করি। এটি ছিল আমার নিজের সংগঠকদের যাত্রা শুরু।
একটি নিয়মিত এবং খুব হতাশাজনক অভিজ্ঞতার একটি ছোট উপাখ্যান: আপনি একটি দুর্দান্ত ইভেন্টকে একত্রিত করার জন্য প্রস্তুতি, যোগাযোগ, স্পিকার খুঁজে পেতে এবং আমন্ত্রণ জানাতে, একটি তারিখ এবং স্থান খুঁজে বের করতে এবং সুরক্ষিত করতে, খাবার এবং পানীয়ের জন্য স্পনসরদের সাথে কথা বলতে কয়েক ঘন্টা ব্যয় করেছেন৷ এবং যখন সময় আসে তখন আপনি সেখানে একা বসে থাকবেন বা এমন লোকদের একটি ভগ্নাংশের সাথে যাকে আপনি আসবেন বলে ভেবেছিলেন, কারণ মিটআপ বলে "150 জন হ্যাঁ উত্তর দিয়েছেন"। এবং একটি বিরল অনুষ্ঠানে যা আবহাওয়ার সাথে খারাপ ভাগ্য ছিল, তবে প্রায়শই যখন আমি পরে লোকেদের সাথে কথা বলি তখন আমি এটি শুনেছি:
এটা আশ্চর্যজনক, আমি যদি সেখানে থাকতাম, কিন্তু আমি জানতাম না!
এই শব্দগুচ্ছটি আমার জন্য একটি সম্প্রদায়ের সরঞ্জাম হিসাবে গিটহাবকে অন্বেষণ করা শুরু করার অনুপ্রেরণা ছিল কারণ গিটহাব হল অটোমেশনের জন্য সবচেয়ে আশ্চর্যজনক প্ল্যাটফর্মগুলির মধ্যে একটি এবং এটিই আপনাকে একজন সংগঠক হিসাবে করতে হবে: ইভেন্টব্রাইটে ইভেন্টটি প্রকাশ করার জন্য সমস্ত কিছুকে স্বয়ংক্রিয় করুন, মিটআপ, টুইটার, ফেসবুক, টেলিগ্রাম গ্রুপ, হোয়াটসঅ্যাপ, ইমেল, ক্যালেন্ডার, ইত্যাদি ইত্যাদি ইত্যাদি এবং এটি করুন 2 সপ্তাহ আগে, 1 সপ্তাহ আগে, 3 দিন আগে, 1 দিন আগে, ইভেন্টের 1 ঘন্টা আগে যাতে কেউ পরে বলতে না পারে : "আমি এই সম্পর্কে জানতাম না"। কারণ শেষ পর্যন্ত, আপনি এটি নিজের জন্য নয়, সম্প্রদায়ের জন্য করছেন।
আমার ভ্রমণের সময়, আমি হাজার হাজার সদস্যের সাথে Meetup-এ Node.js এবং JavaScript সম্প্রদায়গুলি দেখেছি, কিন্তু একটি আসন্ন বা সাম্প্রতিক ইভেন্ট নয়। এটি অনেক কারণে ঘটতে পারে, তবে এটি প্রায়শই হয় কারণ আয়োজকদের সময় নেই বা অন্য জিনিসগুলিতে চলে গেছে এবং জিনিসগুলি চালিয়ে যাওয়ার জন্য উত্তরসূরি খুঁজে পাওয়া কঠিন। মিটআপ এবং অন্যান্য প্ল্যাটফর্মগুলি সম্প্রদায় এবং ইভেন্টগুলি আবিষ্কারের জন্য দুর্দান্ত, তবে কোনও সংগঠক আর সক্রিয় না থাকলে এবং সম্প্রদায়টিকে গ্রহণ / পুনরুজ্জীবিত করার ক্ষেত্রে সদস্যদের পক্ষে সম্প্রদায়ের কাছে পৌঁছানো কঠিন করে তোলে।
একজন বিকাশকারী হিসাবে, আমি গিটহাবে অনেক সময় ব্যয় করি এবং সরঞ্জাম এবং কর্মপ্রবাহের সাথে পরিচিত, তাই আমি গিটহাবকে একটি সম্প্রদায় প্ল্যাটফর্ম হিসাবে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে অন্বেষণ শুরু করি।
প্রথম এবং সবচেয়ে সুস্পষ্ট সুবিধা হল GitHub-এ পাবলিক রিপোজিটরিগুলি হল ওপেন সোর্স। এর অর্থ হল সমস্ত বিষয়বস্তু, সমস্যা এবং আলোচনা সর্বজনীন এবং যে কেউ কাঁটাচামচ, অনুলিপি এবং পুনরায় ব্যবহার করতে পারে। এটি সম্প্রদায়ের জন্য দুর্দান্ত কারণ এর অর্থ হল যদি সম্প্রদায়টি পরিত্যক্ত হয় তবে যে কেউ এটিকে কাঁটাচামচ করতে পারে এবং কাজ চালিয়ে যেতে পারে। এর মানে হল যে আপনি যদি একটি নতুন সম্প্রদায় শুরু করতে চান তবে আপনি বিদ্যমান একটিকে কাঁটাচামচ করতে পারেন এবং এটিকে আপনার প্রয়োজনের সাথে মানিয়ে নিতে পারেন।
GitHub-এ ব্যবহারকারী/টিম/সংস্থা ব্যবস্থাপনা অন্তর্নির্মিত রয়েছে, তাই আপনাকে নিজের কিছু তৈরি করতে হবে না। সংগঠনে কাউকে আমন্ত্রণ জানানো বা প্রতিষ্ঠানের বিভিন্ন অনুমতি নিয়ে দল যোগ করা সহজ।
আমাদের মধ্যে বেশিরভাগই জানেন কিভাবে GitHub ব্যবহার করতে হয় এবং প্রতিদিন সাইটটি পরিদর্শন করতে হয়, তাই ডাটাবেস প্রশাসন, বিষয়বস্তু পরিচালনা বা অন্যান্য সরঞ্জামগুলির জন্য অতিরিক্ত সাইট বুকমার্ক করার প্রয়োজন নেই। GitHub অ্যাকশনের সাহায্যে, আমরা একটি সময়সূচীতে বা চাহিদা অনুযায়ী স্বয়ংক্রিয় কাজগুলি চালাতে পারি এবং GitHub পৃষ্ঠাগুলির সাহায্যে আমরা বিনামূল্যে আমাদের কমিউনিটি ওয়েবসাইট হোস্ট করতে পারি।
আমার জন্য, GitHub-এ একটি সম্প্রদায় তৈরি করার সবচেয়ে গুরুত্বপূর্ণ সুবিধাগুলির মধ্যে একটি হল সম্পূর্ণ স্বচ্ছতা এবং উন্মুক্ত যোগাযোগ। সবকিছুই [1] সর্বজনীন, তাই কার কী অ্যাক্সেস আছে তা নিয়ে চিন্তা করার দরকার নেই। এর মানে হল যে কেউ সম্প্রদায়ে অবদান রাখতে পারে, এবং যে কেউ কী ঘটছে তা দেখতে পারে। এটি আস্থা তৈরির জন্য এবং এমন একটি সম্প্রদায় গড়ে তোলার জন্য যা সকলকে অন্তর্ভুক্ত করে এবং স্বাগত জানায়।
বার্সেলোনাজেএস, সিডিসি প্রভৃতি সম্প্রদায়ের সাথে আমার লক্ষ্য ছিল/হল বিকাশকারীদের ভাগ করে নেওয়ার এবং সংযোগ করার জন্য বিনামূল্যে এবং খোলা জায়গা তৈরি করা। এবং "ফ্রি" হল যেখানে স্বচ্ছতা আসে৷ অতীতে, আমি সবসময় আর্থিক অবদান থেকে আমার হাত বন্ধ রাখতাম৷ যদি একটি কোম্পানি স্পনসর করতে চায়, তারা সরাসরি অনুষ্ঠানস্থলে খাবার বা পানীয় অর্ডার করতে পারে, কিন্তু আমি সুবিধা দেব না। ওপেন কালেকটিভকে ধন্যবাদ, এটি অনেক সহজ হয়ে গেছে এবং আমরা এখন আর্থিক অবদান গ্রহণ করতে এবং সম্প্রদায়ের কাছে তাদের স্বচ্ছ করতে সক্ষম হয়েছি। এগুলি ব্যবহার করা হয় উদাহরণস্বরূপ ডোমেনের জন্য অর্থ প্রদান করতে, খাবার এবং পানীয় পেতে, বিজ্ঞাপন প্রচার চালানো ইত্যাদি।
[1] অবশ্যই, আপনি অভ্যন্তরীণ সংগঠকদের আলোচনা ইত্যাদির জন্য একটি ব্যক্তিগত রেপোও তৈরি করতে পারেন।
GitHub মিটআপের মতো একটি সম্প্রদায়/ইভেন্ট প্ল্যাটফর্ম নয়, তাই কিছু সতর্কতা রয়েছে। আমি ইস্যুগুলিকে "ইভেন্ট" বা "টক প্রপোজাল" এবং গিটহাব ইস্যু ফর্ম হিসাবে জমা দেওয়ার জন্য ব্যবহার করতে অভ্যস্ত হয়েছি। কিন্তু এটা আদর্শ নয় এবং নতুনদের বুঝতে সময় লাগে "একটি আলোচনা জমা দেওয়ার জন্য একটি সমস্যা তৈরি করুন"। একটি তারিখ, একটি মানচিত্রে অবস্থান, ইত্যাদি বাছাই করার এবং শত শত লোকের কাছে একটি সাধারণ ইমেল বিজ্ঞপ্তি ট্রিগার করার জন্য কোনও "আরাম বৈশিষ্ট্য" নেই৷
এই সম্পূর্ণ ধারণাটি প্রাথমিকভাবে বিকাশকারী এবং প্রকৌশলীদের উপর ফোকাস করছে, কারণ এটি গিটহাব এবং ইস্যুঅপস এর চারপাশে বিকশিত হয়েছে। আমার পূর্বের অভিজ্ঞতা সম্পর্কে ধারণা দেওয়ার জন্য, এখানে কয়েকটি সম্প্রদায় এবং সম্মেলন রয়েছে যা আমি তৈরি করতে সাহায্য করেছি:
এগুলি তৈরি করার সময়, আমি সংগঠকদের জীবনকে আরও সহজ করতে সরঞ্জাম, ওয়ার্কফ্লো এবং অটোমেশনের একটি সেটে ক্রমাগত কাজ করেছি, কারণ এটি এমন একটি কঠিন এবং প্রায়শই অকৃতজ্ঞ কাজ। তাই আমি কিভাবে GitHub-এ একটি পাবলিক কমিউনিটি তৈরি করব তার আমার ওপেন কমিউনিটি কনসেপ্ট এখানে।
প্রথম ধাপ হল একটি GitHub সংস্থা সেট আপ করা এবং দুটি সংগ্রহস্থল তৈরি করা:
নামগুলি সুস্পষ্ট: ইভেন্ট রিপোজিটরিতে নতুন ইভেন্ট তৈরির জন্য টেমপ্লেট থাকে এবং টক রিপোজিটরিতে আলোচনার প্রস্তাব জমা দেওয়ার জন্য টেমপ্লেট থাকে। আলোচনাগুলিকে একটি এজেন্ডা তৈরি করার জন্য ইভেন্টগুলির সাথে লিঙ্ক করা যেতে পারে এবং, আপনি যদি সম্প্রদায়ের সাথে যুক্ত হতে পরিচালনা করেন (মনে রাখবেন: এটি কঠিন!), মন্তব্য এবং প্রতিক্রিয়া যেমন 👍 বা ❤️ আলোচনায় ভোট দেওয়ার জন্য ব্যবহার করা যেতে পারে৷
আপনি প্রস্তাব, সময়সূচী এবং ঘোষণা পর্যায়গুলির মাধ্যমে ইভেন্টের জীবনচক্র পরিচালনা করতে একটি GitHub প্রকল্প ব্যবহার করতে পারেন:
সাইপ্রাসে, আমরা দ্বীপের বিভিন্ন অঞ্চলের জন্য লেবেল যোগ করেছি, কিন্তু সবচেয়ে গুরুত্বপূর্ণভাবে একটি "অনুমোদিত" লেবেল প্রয়োজন৷ সমস্ত নতুন সমস্যা "ইভেন্ট" লেবেল দিয়ে তৈরি করা হয়েছে, কিন্তু শুধুমাত্র "ট্রাইজে" অনুমতি আছে এমন কেউ (আয়োজক দল) ইভেন্টটিকে "অনুমোদন" করতে পারে। স্প্যাম এড়াতে এবং ইভেন্টটি প্রাসঙ্গিক তা নিশ্চিত করতে এটি গুরুত্বপূর্ণ।
এখন যেহেতু একটি সংস্থা আছে, কিছু সমস্যা সহ কিছু রেপো এবং কিছু কাঠামো রয়েছে, এটি স্বয়ংক্রিয় করার সময়।
GitHub-এ GitEvents / GitEvents অনেক পিছনে চলে গেছে (2014) এবং লন্ডন নোড ইউজার গ্রুপ (LNUG) এবং Barccelona Node.js গ্রুপের মধ্যে একটি সহযোগিতা "হ্যাক উইকএন্ড" হিসাবে gitup
নাম দিয়ে শুরু করেছে। তখন, GitHub অ্যাকশনের অস্তিত্ব ছিল না এবং আমরা Meetup.com ডেটার উপর ভিত্তি করে GitHub হোস্ট করা ওয়েবসাইটগুলির জন্য কাঠামোগত ডেটা তৈরি করতে সমস্যাগুলির জন্য Webhooks ব্যবহার করার চেষ্টা করেছি। সেটআপটি জটিল ছিল এবং প্রকল্পটি কিছু সময়ের জন্য পরিত্যক্ত হয়েছিল।
আজ, GitEvents হল GitHub অ্যাকশনগুলির একটি সাধারণ সেট যাতে সমস্যা ওয়ার্কফ্লোগুলি স্বয়ংক্রিয় হয়৷ মিটআপ এবং ইভেন্টের জন্য "Git Ops"। যা দরকার তা হল একটি গিটহাব সংস্থা এবং একটি গিটহাব অ্যাপ৷ কিছু বৈশিষ্ট্য হল:
iCal
হল ক্যালেন্ডার ইভেন্টের জন্য একটি আদর্শ। সম্প্রদায়ের ইভেন্টগুলির সাথে আপ টু ডেট রাখতে লোকেরা এটিকে তাদের ক্যালেন্ডারে সদস্যতা হিসাবে যোগ করতে পারে৷ আমরা গিথুব ফাইলে একটি পুনঃনির্দেশ তৈরি করেছি, যাতে লোকেরা একটি সাধারণ লিঙ্ক সহ ক্যালেন্ডারে সদস্যতা নিতে পারে: https://calendar.cdc.cy ।
সবকিছুই "প্লাগ অ্যান্ড প্লে" যাতে আপনি আপনার পছন্দের অ্যাকশনগুলি বেছে নিতে পারেন এবং সেগুলিকে একটি ওয়ার্কফ্লোতে রচনা করা তুলনামূলকভাবে সহজ৷ উদাহরণের জন্য, সাইপ্রাস ডেভেলপার কমিউনিটি ওয়ার্কফ্লো দেখুন।
আপনি যদি GitEvents এর সাথে শুরু করতে চান এবং কিছু সাহায্যের প্রয়োজন হয়, অনুগ্রহ করে আমাদের ডিসকর্ড সার্ভারের সাথে যোগাযোগ করুন GitEvents একটি কাজ চলছে এবং বিশেষ করে অন্যান্য প্ল্যাটফর্মে ইন্টিগ্রেশন ইত্যাদির ক্ষেত্রে সবসময় অনেক কিছু করার আছে। আপনি যদি সাহায্য করতে চান, অনুগ্রহ করে যোগাযোগ করা
ইস্যু ফর্মগুলি এখনও গিটহাবে তুলনামূলকভাবে স্বল্প পরিচিত বৈশিষ্ট্য। একটি নিয়মিত মার্কডাউন টেমপ্লেটের পরিবর্তে, একটি YAML ফাইল একটি ফর্ম কনফিগারেশন সহ প্রদান করা যেতে পারে ।
স্ট্রাকচার্ড ইনপুট পাওয়ার জন্য এটি বেশ চমৎকার, কিন্তু একবার "ইস্যু" হিসাবে সংরক্ষণ করা হলে ডেটা শব্দার্থগতভাবে অকেজো কারণ এটি শুধুমাত্র মার্কডাউন। আমি মাইলস্টোন, মার্কডাউন শিরোনাম, লেবেল ইত্যাদির সাথে একটি সমস্যায় তারিখ, অবস্থান ইত্যাদি শব্দার্থিক তথ্য যোগ করার জন্য পরীক্ষা করেছি, কিন্তু কিছুই ভাল কাজ করেনি। তাই আমি গিটহাব ইস্যু ফর্ম বডি পার্সার তৈরি করা শুরু করেছি। এটি তারিখ, লিঙ্ক, ছবি, তালিকা ইত্যাদি বের করতে এবং সেগুলিকে স্ট্রাকচার্ড JSON ডেটাতে রূপান্তর করার জন্য একটি ফর্মের মাধ্যমে তৈরি করা সমস্যাকে পার্স করতে সাহায্য করে। এটি সরাসরি ডিসকর্ড, ইভেন্টব্রাইট, মিটআপ ইত্যাদির মতো অন্যান্য প্ল্যাটফর্মে প্রেরণ করা যেতে পারে বা মেলিং, টুইট ইত্যাদিতে ব্যবহার করা যেতে পারে।
যেকোন মার্কডাউন টেক্সট পার্স করার জন্য লাইব্রেরি হিসাবে ইস্যু ফর্ম বডি পার্সার npm
এ উপলব্ধ । শুধুমাত্র সম্প্রতি আমি বুঝতে পেরেছি যে একটি ওয়েবসাইটের জন্য ডেটা গঠনের জন্য সম্পূর্ণ README.md
ফাইলগুলি পার্স করা যেতে পারে:
query ($organization: String!, $repository: String!) { repository(owner: $organization, name: $repository) { id name object(expression: "main:README.md") { ... on Blob { text } } } }
এটি একটি সংগ্রহস্থলের main
শাখা থেকে ফাইল সামগ্রী পুনরুদ্ধার করার জন্য কোয়েরি, এবং আপনি এটি "বডি পার্সার"-এ পাস করতে পারেন:
const structuredData = await bodyParser(readmeFile()?.repository.object.text)
আপনার সম্প্রদায়ের বিবরণের আরেকটি অনুলিপি রাখার পরিবর্তে, আপনি এখন README.md
ফাইল থেকে About
বিভাগটি আনতে পারেন এবং এটি আপনার ওয়েবসাইটে ব্যবহার করতে পারেন।
সর্বশেষ https://cdc.cy ওয়েবসাইটের মাধ্যমে আমি ইস্যু, README.md
ফাইল এবং স্ট্রাকচার্ড JSON ডেটার সাথে যা সম্ভব তার সীমানা অন্বেষণ করতে এবং পুশ করতে চেয়েছিলাম এবং আমি ফলাফলের সাথে মোটামুটি সন্তুষ্ট:
README.md
বা .json
ফাইল থেকে আনা হয়; প্রত্যেকে সম্পাদনা করতে পারে, কোন CMS বা অ্যাকাউন্ট ইত্যাদির প্রয়োজন নেইevents
রেপোতে ইভেন্ট-লেবেলযুক্ত সমস্যা)
এই সমস্ত বৈশিষ্ট্যগুলি GraphQL API এর মাধ্যমে এবং বডি পার্সারের সাথে মার্কডাউন ফাইলগুলিকে পার্স করার মাধ্যমে সম্ভব হয়েছিল।
আমি কিছুক্ষণের জন্য এই ধারণার উপর কাজ করছি এবং এটি এখনও প্রতি একবারে আকৃতি পরিবর্তন করছে। কিন্তু বার্লিনজেএস থেকে আমি যে মৌলিক ধারণাগুলি গ্রহণ করেছি তা পরিবর্তিত হয়নি:
এই সব তৈরি করতে অনেক সময় এবং শক্তি লেগেছে এবং এখনও অনেক কিছু অনুপস্থিত রয়েছে যার জন্য আমার কাছে সময় নেই:
আপনি যদি মনে করেন এটি আপনাকে এবং আপনার সম্প্রদায়কে সাহায্য করতে পারে এবং একসাথে ধাঁধাটি তৈরিতে জড়িত হতে চান, তাহলে অনুগ্রহ করে গিটভেন্টস ডিসকর্ড সার্ভারে , গিটহাব আলোচনায় বা সরাসরি গিটহাব ইস্যুগুলির একটিতে যোগাযোগ করুন৷
আপনি যদি সাইপ্রাস বা বার্সেলোনায় থাকেন, অনুগ্রহ করে স্থানীয় বিকাশকারী গোষ্ঠীগুলিতে যোগ দিন এবং সমর্থন করুন৷