সরাসরি প্রধান সামগ্রীতে চলে যান

স্প্রিং বুট ব্যবহার করে কুইজ অ্যাপ তৈরি: মাইক্রোসার্ভিস টিউটোরিয়াল

স্প্রিং বুট (Spring Boot) ব্যবহার করে কীভাবে একটি কুইজ অ্যাপ্লিকেশন তৈরি করা যায়, এই ভিডিওটি মূলত সেই সিরিজের একটি অংশ। এখানে শেখানো হয়েছে কীভাবে একটি কুইজ তৈরির জন্য ব্যাকএন্ডে কন্ট্রোলার এবং সার্ভিস লেয়ার সেটআপ করতে হয়। বিশেষ করে মাইক্রোসার্ভিস আর্কিটেকচারের ধারণা ব্যবহার করে কীভাবে ডাটাবেস থেকে নির্দিষ্ট ক্যাটাগরির প্রশ্ন নিয়ে একটি কুইজ সাজানো যায়, তা এখানে বিস্তারিত দেখানো হয়েছে।


কুইজ অ্যাপ্লিকেশনের আইডিয়া (Introduction)

ভিডিওর শুরুতে কুইজ অ্যাপের মূল কনসেপ্ট নিয়ে আলোচনা করা হয়েছে। এখানে মূলত দুটি রোল বা ভূমিকা থাকে: ১. অ্যাডমিন (Admin): যিনি কুইজ তৈরি করবেন। যেমন একজন ট্রেইনার সেশন শেষে পরীক্ষা নেওয়ার জন্য কুইজ সেট করতে পারেন। ২. ইউজার (User): যারা সেই কুইজে অংশগ্রহণ করবেন এবং প্রশ্নগুলোর উত্তর দেবেন।

আমাদের মূল লক্ষ্য হলো ডাটাবেসে থাকা অনেকগুলো প্রশ্ন থেকে নির্দিষ্ট কিছু প্রশ্ন (যেমন: জাভা ক্যাটাগরির ৫টি প্রশ্ন) র‍্যান্ডমলি বা লটারির মতো বেছে নিয়ে একটি কুইজ তৈরি করা।


কুইজ কন্ট্রোলার তৈরি করা (Quiz Controller Setup)

যেকোনো ওয়েব অ্যাপ্লিকেশনের রিকোয়েস্ট হ্যান্ডেল করার জন্য কন্ট্রোলার লাগে। এখানে একটি নতুন QuizController তৈরি করা হয়েছে।

রেফারেন্স: [03:53] - ভিডিওতে QuizController ক্লাসটি তৈরি করা শুরু হয়।

বিস্তারিত ব্যাখ্যা: কন্ট্রোলার হলো এমন একটি জায়গা যা ইউজারের কাছ থেকে রিকোয়েস্ট গ্রহণ করে এবং সেই অনুযায়ী কাজ করে। এখানে আমরা @RestController এবং @RequestMapping("quiz") অ্যানোটেশন ব্যবহার করেছি। এর মানে হলো কুইজ সংক্রান্ত সব কাজের ইউআরএল (URL) শুরু হবে /quiz দিয়ে।

সহজ ভাষায় কিছু শব্দ:

  • Controller: এটি অনেকটা দোকানের ম্যানেজারের মতো, যে কাস্টমারের (ইউজার) অর্ডার নেয় এবং ভেতরে বাবুর্চিকে (সার্ভিস লেয়ার) কাজ করতে বলে।

  • Annotation (@): এটি জাভার একটি বিশেষ চিহ্ন যা কোডকে বলে দেয় ওই ক্লাস বা মেথডের কাজ কী।


কুইজ তৈরির মেথড এবং প্যারামিটার (Create Quiz Method)

অ্যাডমিন যখন কুইজ তৈরি করবেন, তাকে কিছু তথ্য দিতে হবে। যেমন: কোন বিষয়ের ওপর কুইজ হবে, কয়টি প্রশ্ন থাকবে এবং কুইজের নাম কী হবে।

রেফারেন্স: [04:30] - এখানে createQuiz মেথডটি ডিফাইন করা হয়েছে।

কোড স্নিপেট:

Java

@PostMapping("create")
public ResponseEntity<String> createQuiz(
    @RequestParam String category, 
    @RequestParam int numQ, 
    @RequestParam String title) {
    
    return new ResponseEntity<>("I am here", HttpStatus.OK);
} 

কোড ব্যাখ্যা:

  • @PostMapping("create"): নতুন কিছু তৈরি করার জন্য আমরা POST মেথড ব্যবহার করি। এর পূর্ণ ইউআরএল হবে /quiz/create

  • @RequestParam: ব্রাউজারের ইউআরএল থেকে ডাটা নেওয়ার জন্য এটি ব্যবহৃত হয়। যেমন: category=Java হলে এটি category ভেরিয়েবলে জাভাকে জমা রাখবে।

  • ResponseEntity: এটি ইউজারকে একটি পরিষ্কার মেসেজ এবং স্ট্যাটাস কোড (যেমন: ২০০ বা OK) ফেরত পাঠাতে সাহায্য করে।


পোস্টম্যান দিয়ে টেস্ট করা (Testing with Postman)

কোড ঠিকমতো কাজ করছে কি না তা দেখার জন্য 'Postman' নামক টুল ব্যবহার করা হয়েছে।

রেফারেন্স: [06:24] - ভিডিওর শেষে পোস্টম্যান দিয়ে আউটপুট চেক করা হয়।

সহজ ভাষায়: পোস্টম্যান হলো এমন একটি সফটওয়্যার যা দিয়ে আপনি আপনার তৈরি করা এপিআই (API) পরীক্ষা করতে পারেন। ভিডিওতে দেখা গেছে যে যখন /quiz/create এ রিকোয়েস্ট পাঠানো হয়, তখন সেটি সঠিকভাবে "I am here" মেসেজটি দেখাচ্ছে। তার মানে আমাদের কন্ট্রোলার ঠিকঠাক কাজ করছে।


বিশ্লেষণ ও আমার মতামত (Analysis & Thinking)

মূল উদ্দেশ্য: এই ভিডিওর মাধ্যমে কনটেন্ট ক্রিয়েটর বোঝাতে চেয়েছেন যে, একটি বড় প্রজেক্টকে ছোট ছোট অংশে ভাগ করে কীভাবে কাজ শুরু করতে হয়। এখানে ডাটাবেস থেকে লজিক্যালি প্রশ্ন ফিল্টার করার প্রাথমিক ধাপগুলো দেখানো হয়েছে।

বাস্তবতা ও সম্ভাবনা: ১. রোল ম্যানেজমেন্ট: ভিডিওতে বলা হয়েছে এখানে অ্যাডমিন ও ইউজার রোল আপাতত যোগ করা হয়নি। কিন্তু বাস্তব জীবনে Spring Security ব্যবহার করে এটি করা জরুরি। ২. র‍্যান্ডম সিলেকশন: ডাটাবেস থেকে প্রশ্ন নেওয়ার সময় ORDER BY RANDOM() বা এই জাতীয় কুয়েরি ব্যবহার করলে কুইজটি আরও উন্নত হবে, যা পরবর্তী ভিডিওগুলোতে হয়তো দেখানো হবে। ৩. বিকল্প উপায়: বর্তমানে মাইক্রোসার্ভিসের যুগে 'Feign Client' ব্যবহার করে এক সার্ভিস থেকে অন্য সার্ভিসে ডাটা আদান-প্রদান করা আরও সহজ হতে পারে।

পরামর্শ: আপনি যদি নতুন হয়ে থাকেন, তবে সরাসরি কোড কপি না করে আগে বুঝুন কেন @RequestParam ব্যবহার করা হলো। কুইজ তৈরির সময় ক্যাটাগরিগুলো ড্রপডাউন মেনু থেকে সিলেক্ট করার ব্যবস্থা রাখলে ইউজারের ভুল করার সম্ভাবনা কমে যাবে।


সবশেষে বলা যায়, এই টিউটোরিয়ালটি স্প্রিং বুট ব্যবহার করে যারা ব্যাকএন্ড শিখছেন তাদের জন্য একটি শক্ত ভিত্তি তৈরি করে দেয়।

[

Quiz App Using Spring Boot #5 | Microservices Tutorial

Telusko · 32K views

](http://www.youtube.com/watch?v=u9CIKvkfE1M)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...