স্প্রিং বুট (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)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d