Course: লারাভেল - মাল্টি ভেন্ডর ইকমার্স ওয়েবসাইট তৈরি করুন
প্রস্তাবনা (সংক্ষেপ)
লারাভেল ব্যবহার করে মাল্টি-ভেন্ডর ইকমার্স ওয়েবসাইট তৈরি করা একটি প্রাসঙ্গিক এবং কার্যকর প্রকল্প। এই ধরনের প্ল্যাটফর্মে বিভিন্ন বিক্রেতা একসাথে তাদের পণ্য তালিকাভুক্ত করে গ্রাহকদের জন্য বিস্তৃত পছন্দ নিশ্চিত করে। লারাভেল একটি শক্তিশালী PHP ফ্রেমওয়ার্ক হিসেবে নিরাপত্তা, রাউটিং, মাইগ্রেশন ও আর্টিজান CLI ইত্যাদি সুবিধা দেয়। প্রকল্পে বিক্রেতা প্যানেল ও ক্রেতা প্যানেল থাকা অনিবার্য, যাতে প্রত্যেক ব্যবহারকারী নিজের কাজ সহজে পরিচালনা করতে পারে। প্রোডাক্ট ম্যানেজমেন্ট, অর্ডার ট্র্যাকিং ও স্টক নিয়ন্ত্রণ থাকলে ব্যবসায়িক চলাচল সুশৃঙ্খল হয়। পেমেন্ট গেটওয়ে ইন্টিগ্রেশনের মাধ্যমে নিরাপদ লেনদেন নিশ্চিত করা জরুরি। ব্যবহারকারীর অনুমতি ও ভূমিকা (roles & permissions) সঠিকভাবে স্থাপিত না হলে নিরাপত্তার ফাঁক বাড়ে; এজন্য স্প্যাটিয়ের মত প্যাকেজ ব্যবহার উপযোগী। স্থানীয় উন্নয়ন পরিবেশ সঠিকভাবে সেটআপ করলে উন্নয়ন ও টেস্টিং করা সহজ হয়। ডেটাবেস মাইগ্রেশন এবং সিডিং ব্যবহারে রিলায়েবল ডেটা স্ট্রাকচার বজায় রাখা যায়। এলোকোয়েন্ট ORM ব্যবহার করে CRUD অপারেশন দ্রুত ও পরিষ্কারভাবে সম্পন্ন করা যায়। টেমপ্লেটিং (Blade) ও ফ্রন্টএন্ড টেমপ্লেটগুলো UX উন্নত করে। ক্যাশে, সেশন ও ব্যাকগ্রাউন্ড কিউ ব্যবহারে পারফর্ম্যান্স বাড়ানো সম্ভব। নিয়মিত লারাভেল সংস্করণ আপডেট ও সিকিউরিটি প্যাচ প্রয়োগ করা আবশ্যক। এমনভাবে ধাপে ধাপে কাজ করলে পূর্ণাঙ্গ এবং স্থিতিশীল মাল্টি-ভেন্ডর ইকমার্স সাইট তৈরি করা যায়।
Lesson
Topic: লারাভেল ব্যবহার করে মাল্টি-ভেন্ডর ইকমার্স — প্রস্তাবনা ও মৌলিক ধারণা
Learning Outcomes
- লারাভেল ফ্রেমওয়ার্ক ব্যবহার করে মাল্টি-ভেন্ডর আর্কিটেকচার পরিকল্পনা করা শিখবে।
- বিক্রেতা ও ক্রেতা প্যানেল, প্রোডাক্ট ম্যানেজমেন্ট, পেমেন্ট ইন্টারগেশন ও সিকিউরিটি বিষয়গুলো সনাক্ত করতে পারবে।
- লোকাল ডেভেলপমেন্ট সেটআপ, মাইগ্রেশন, সিডিং এবং ডেপ্লয়মেন্ট সম্পর্কে প্রাথমিক জ্ঞান অর্জন করবে।
Conceptual Explanation
প্রকল্পের সারাংশ
মাল্টি-ভেন্ডর ইকমার্স হলো এমন একটি সিস্টেম যেখানে একাধিক ভেন্ডর পণ্য তালিকাভুক্ত করে বিক্রয় চালায়। লারাভেল এই ধরনের সাইট তৈরির জন্য উপযুক্ত কারণ এটি আর্টিজান CLI, এলোকোয়েন্ট ORM, মাইগ্রেশন, মিডলওয়্যার এবং প্যাকেজ ইকোসিস্টেম দেয়। পেমেন্ট গেটওয়ে, রোলস/পারমিশন এবং কুই/ব্যাকগ্রাউন্ড প্রসেসিং সিস্টেমের অপরিহার্য অংশ।
প্রধান প্রযুক্তি ও মডিউল (সংক্ষিপ্ত)
- PHP + Laravel (কোর), Composer প্যাকেজ ম্যানেজমেন্ট
- ডাটাবেস: MySQL/Postgres এবং মাইগ্রেশন/সিডিং
- ফ্রন্টএন্ড: Blade টেমপ্লেট, HTML/CSS/JS (Ajax, Datatables)
- প্যাকেজ: Spatie Permission (Role/Permission), Socialite (Social Login), ইত্যাদি
- পেমেন্ট: PayPal, Stripe, SSLCOMMERZ, Razorpay, Mollie, Instamojo ইত্যাদি ইন্টিগ্রেশন
- অপ্টিমাইজেশন: Cache, Sessions, Queue (Redis/Beanstalk)
স্ট্রাকচারাল প্ল্যান (সামগ্রীগত)
- ইউজার অথেনটিকেশন ও রোল-ম্যানেজমেন্ট
- ভেন্ডর রেজিস্ট্রেশন ও ভেন্ডর প্যানেল
- প্রোডাক্ট CRUD ও ইনভেন্টরি ম্যানেজমেন্ট
- চেকআউট ফ্লো ও পেমেন্ট গেটওয়ে ইন্টিগ্রেশন
- অর্ডার ম্যানেজমেন্ট, অ্যানালিটিক্স ও রিপোর্টিং
Important Notes
- আপডেটের আগে সর্বদা পুরো প্রকল্প ও ডেটাবেস ব্যাকআপ রাখুন।
- ডিপেন্ডেন্সি কনফ্লিক্ট এড়াতে composer.json সতর্কভাবে সংস্করণ পরিচালনা করুন।
- পেমেন্ট ও সিকিউরিটি বাস্তবায়নের সময় SSL এবং PCI-DSS প্র্যাকটিস মেনে চলুন।
- বড় ডেটাসেটে Datatables বা সার্ভার সাইড পেজিনেশন ব্যবহার করুন।
- কোড-ওয়াইজ টেস্ট এবং ফিচার টেস্ট লিখুন; ডেভ/স্টেজ/প্রোডাকশনে পৃথক ENV ব্যবহার করুন।
Exercises
True / False
| নং | বিবৃতি | উত্তর |
|---|---|---|
| ১ | Laravel এর আর্টিজান CLI দিয়ে মডেল তৈরি করা যায়। |
AnswerTrue — php artisan make:model Command ব্যবহার করা হয়। |
| ২ | Spatie Permission প্যাকেজ শুধুমাত্র OAuth লগইনের জন্য ব্যবহৃত হয়। |
AnswerFalse — Spatie permission রোল ও পারমিশন ম্যানেজমেন্টের জন্য ব্যবহৃত হয়; OAuth আলাদা ফাংশন (Socialite) দ্বারা পরিচালিত হয়। |
Fill in the Blanks
- Laravel এ ডেটাবেস কাঠামো সংরক্ষণের জন্য __________ ব্যবহার করা হয়।
Answer
মাইগ্রেশন (Migrations)
- ব্যাকগ্রাউন্ড টাস্ক চালানোর জন্য কিউ ড্রাইভার: __________।
Answer
Redis বা Beanstalkd (উদাহরণ)
Multiple Choice (MCQ)
- কোনটি Laravel এর ORM?
- A. Eloquent
- B. Doctrine
- C. ActiveRecord
Answer
Correct: A — Eloquent হলো Laravel-এর ORM।
- পেমেন্ট গেটওয়ে টেস্টিং পরিবেশকে কী বলা হয়?
- A. Live
- B. Sandbox
- C. Demo
Answer
Correct: B — Sandbox পরিবেশ টেস্টিং-এর জন্য ব্যবহার করা হয়।
Matching
| টপিক | প্যাকেজ/টুল |
|---|---|
| Role & Permission |
AnswerSpatie\Permission |
| Social Login |
AnswerLaravel Socialite |
Descriptive (Short)
Explain in 2–3 sentences why you should run migrations after updating composer packages.
Answer
মাইগ্রেশন ডেটাবেস স্কিমা পরিবর্তন করে; composer update করলে প্যাকেজগুলোর নতুন সংস্করণ মাইগ্রেশন বা নতুন ফিচার প্রত্যাশা করতে পারে। তাই মাইগ্রেশন চালিয়ে ডেটাবেসকে কোড-বেসের সাথে সঙ্গত রাখা জরুরি।
Creative
Design (brief) a minimal checkout flow steps list for a multi-vendor site (5 steps).
Answer
- কার্ট পর্যবেক্ষণ ও ভেন্ডর-বাই-বেন্ড সাবমিশন দেখানো
- শিপিং ঠিকানা/মাল্টি-অ্যাড্রেস নির্বাচন
- ডেলিভারি অপশন ও চার্জ নির্ধারণ
- পেমেন্ট মেথড নির্বাচন ও পেমেন্ট গেটওয়ে প্রসেসিং
- অর্ডার রিসিপ্ট/ট্র্যাকিং ও আলাদা ভেন্ডার নোটিফিকেশন
Activities, Vocabulary, Homework, Practice Task
Activities
- ল্যাব: স্থানীয় পরিবেশে Laravel প্রকল্প ইনস্টল করে একটি সিম্পল Vendor মডেল তৈরি করুন। (প্রায় 45–60 মিনিট)
- গ্রুপ আলোচনা: ভেন্ডর-পেয়ারিং কৌশল এবং রোল-ভিত্তিক অ্যাক্সেস কন্ট্রোল পরিকল্পনা করুন। (30 মিনিট)
Vocabulary
- মাইগ্রেশন — Database schema পরিবর্তনের স্ক্রিপ্ট
- সিডিং — প্রারম্ভিক বা টেস্ট ডেটা ইনসার্ট করা
- কিউ — ব্যাকগ্রাউন্ড টাস্ক ব্যবস্থাপনা
- আর্টিজান — Laravel CLI টুল
Homework
- প্রজেক্ট ডিরেক্টরি স্ট্রাকচার বিশ্লেষণ করে একটি ১-পৃষ্ঠার নোট তৈরি করুন যেখানে app, routes, resources, public, storage প্রতিটির ভূমিকা উল্লেখ থাকবে।
- একটি মিনি-রিপোর্ট লিখুন: কেন Spatie permission প্যাকেজ মাল্টি-ভেন্ডর সাইটে গুরুত্বপূর্ণ (২৫০–৩০০ শব্দ)।
Practice Task
Implement a simple Blade view that lists products with an "Add to Cart" button. Ensure the button triggers an AJAX call to a Laravel route that adds the product to session cart. (Estimated: 2–3 hours)
Answer
কথায় নির্দেশনা: Blade-এ টেবিল তৈরি করে প্রতিটি পণ্যের জন্য <button class="add-to-cart" data-id="..."> রাখুন; JS-এ fetch()/axios POST করে CSRF টোকেন প্রেরণ করুন; Laravel রুটে Controller::addToCart() মেথডে Session::push বা session()->put ব্যবহার করে কার্ট আপডেট করুন।
References & Next Steps
পরবর্তী পাঠে: আর্টিজান কমান্ড, মাইগ্রেশন-সিডিং ডেমো, এবং কিউ সেটআপ (Redis)। প্রস্তাবিত রিডিং: Laravel docs, Spatie Permission & Socialite ডকুমেন্টেশন, Datatables integration guide।