১. প্রাথমিক পর্যায় (শূন্য থেকে শুরু)
এই পর্যায়ে শিক্ষার্থীদের লারাভেল এবং পিএইচপি সম্পর্কে কোনো পূর্ব অভিজ্ঞতা নেই ধরে নেওয়া হবে।
- লারাভেল কী এবং কেন ব্যবহার করবেন?
- পিএইচপি এবং কম্পোজার ইনস্টলেশন।
- লারাভেল � Ascending order ইনস্টলেশন (কম্পোজার ব্যবহার করে)।
- ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ (যেমন: Homestead, Valet, বা Docker)।
- .env ফাইল কনফিগারেশন এবং বেসিক প্রজেক্ট স্ট্রাকচার বোঝা।
2. পিএইচপি বেসিকস (লারাভেলের জন্য প্রয়োজনীয়)
- পিএইচপি সিনট্যাক্স: ভেরিয়েবল, ফাংশন, অ্যারে, লুপ, কন্ডিশন।
- অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) বেসিক: ক্লাস, অবজেক্ট, ইনহেরিটেন্স।
- পিএইচপি দিয়ে সাধারণ CRUD (Create, Read, Update, Delete) অপারেশন।
3. লারাভেলের কোর কনসেপ্ট
- MVC আর্কিটেকচার (Model, View, Controller)।
- রাউটিং: বেসিক রাউট, নেমড রাউট, রাউট প্যারামিটার।
- ভিউ: Blade টেমপ্লেটিং ইঞ্জিন, লেআউট, সেকশন, ডিরেক্টিভ।
- কন্ট্রোলার: তৈরি, রিকোয়েস্ট হ্যান্ডলিং, রেসপন্স রিটার্ন।
4. ডাটাবেস বেসিক
- ডাটাবেস কনফিগারেশন এবং মাইগ্রেশন।
- Eloquent ORM পরিচিতি: মডেল তৈরি, ডাটাবেস কোয়েরি।
- CRUD অপারেশন Eloquent দিয়ে।
- ডাটাবেস রিলেশনশিপ: One-to-One, One-to-Many, Many-to-Many।
5. ফ্রন্ট-এন্ড ইন্টিগ্রেশন
- Blade টেমপ্লেটে ফর্ম তৈরি।
- CSS এবং JavaScript ইন্টিগ্রেশন (যেমন: Bootstrap, Vue.js)।
- CSRF সুরক্ষা এবং ফর্ম ভ্যালিডেশন।
২. ইন্টারমিডিয়েট পর্যায়
এই পর্যায়ে শিক্ষার্থীদের বেসিক ধারণা থাকবে এবং তারা লারাভেলের আরও গভীর কনসেপ্ট শিখবে।
বিষয়সমূহ:
1. অথেনটিকেশন ও অথরাইজেশন
- লারাভেলের বিল্ট-ইন অথেনটিকেশন সিস্টেম (Laravel Authentication)।
- ইউজার রেজিস্ট্রেশন, লগইন, লগআউট, পাসওয়ার্ড রিসেট।
- মিডলওয়্যার: Auth, Guest, Role-based access।
- গেট এবং পলিসি দিয়ে অথরাইজেশন।
2. ডাটাবেস অ্যাডভান্সড
- কোয়েরি বিল্ডার বনাম Eloquent: কখন কী ব্যবহার করবেন।
- ডাটাবেস মাইগ্রেশন এবং সিডিং।
- Eager Loading এবং Lazy Loading।
- ডাটাবেস ট্রানজেকশন এবং অপটিমাইজেশন।
3. লারাভেলের অ্যাডভান্সড ফিচার
- Service Container এবং Dependency Injection।
- Facades এবং Service Providers।
- Events এবং Listeners।
- Queues এবং Jobs (ব্যাকগ্রাউন্ড প্রসেসিং)।
4. API ডেভেলপমেন্ট
- লারাভেলে RESTful API তৈরি।
- API অথেনটিকেশন: API টোকেন, Laravel Passport (OAuth2)।
- রিসোর্স কন্ট্রোলার এবং API রাউটিং।
- Postman বা অন্য টুল দিয়ে API টেস্টিং।
5. টেস্টিং বেসিক
- PHPUnit এবং Laravel TestCase দিয়ে ইউনিট টেস্টিং।
- ফিচার টেস্টিং।
- Mocking এবং Test-Driven Development (TDD)।
৩. অ্যাডভান্সড পর্যায় (এক্সপার্ট লেভেল)
এই পর্যায়ে শিক্ষার্থীরা জটিল অ্যাপ্লিকেশন তৈরি এবং অপটিমাইজেশন শিখবে।
বিষয়সমূহ:
1. পারফরম্যান্স অপটিমাইজেশন
- ক্যাশিং: Database Query Caching, Route Caching, View Caching।
- Lazy Loading এবং Eager Loading অপটিমাইজেশন।
- ডাটাবেস ইনডেক্সিং এবং কোয়েরি অপটিমাইজেশন।
2. লারাভেল প্যাকেজ ডেভেলপমেন্ট
- নিজস্ব প্যাকেজ তৈরি এবং পাবলিশ।
- কম্পোজার দিয়ে প্যাকেজ ইন্টিগ্রেশন।
- Laravel প্যাকেজ স্ট্রাকচার এবং বেস্ট প্র্যাকটিস।
3. অ্যাডভান্সড API ডেভেলপমেন্ট
- Laravel Sanctum এবং JWT অথেনটিকেশন।
- API ভার্সনিং এবং ডকুমেন্টেশন।
- Rate Limiting এবং Throttling।
4. মাইক্রোসার্ভিস এবং স্কেলেবিলিটি
- Laravel দিয়ে মাইক্রোসার্ভিস আর্কিটেকচার।
- Laravel Horizon দিয়ে কিউ ম্যানেজমেন্ট।
- Load Balancing এবং Horizontal Scaling।
5. ডেপ্লয়মেন্ট
- লারাভেল অ্যাপ্লিকেশন ডেপ্লয়: Forge, Vapor, Heroku, AWS।
- CI/CD পাইপলাইন সেটআপ (GitHub Actions, GitLab CI)।
- এনভায়রনমেন্ট কনফিগারেশন এবং সিকিউরিটি।
6. রিয়েল-টাইম অ্যাপ্লিকেশন
- Laravel Echo এবং Pusher দিয়ে রিয়েল-টাইম ফিচার।
- WebSocket ইন্টিগ্রেশন।
- নোটিফিকেশন এবং ব্রডকাস্টিং।
৪. প্রজেক্ট-ভিত্তিক শিক্ষা
শিক্ষার্থীদের বাস্তব অভিজ্ঞতা দেওয়ার জন্য কিছু প্রজেক্ট তৈরি করা উচিত। উদাহরণ:
1. ই-কমার্স অ্যাপ্লিকেশন**: পণ্য তালিকা, কার্ট, পেমেন্ট গেটওয়ে (Stripe/PayPal)।
2. ব্লগ সিস্টেম**: পোস্ট, ক্যাটাগরি, ট্যাগ, কমেন্ট ফিচার।
3. টাস্ক ম্যানেজমেন্ট অ্যাপ**: টাস্ক তৈরি, অ্যাসাইনমেন্ট, নোটিফিকেশন।
4. API-ভিত্তিক অ্যাপ**: মোবাইল অ্যাপের জন্য ব্যাকএন্ড API।
৫. অতিরিক্ত বিষয় (এক্সপার্ট হওয়ার জন্য)**
1. লারাভেল ইকোসিস্টেম**: Laravel Nova, Laravel Spark, Laravel Cashier।
2. ডিজাইন প্যাটার্ন**: Repository Pattern, Service Pattern।
3. সিকিউরিটি**: SQL Injection, XSS, CSRF প্রতিরোধ।
4. ডকুমেন্টেশন**: API ডকুমেন্টেশন (Swagger/OpenAPI), কোড ডকুমেন্টেশন।
5. কমিউনিটি অবদান**: GitHub-এ ওপেন সোর্স প্রজেক্টে অংশগ্রহণ।
টিউটোরিয়াল ফরম্যাট ও টিপস
1. ধাপে ধাপে শেখানো: প্রতিটি বিষয়ে হাতেকলমে কোডিং এবং ব্যাখ্যা।
2. ভিডিও/লিখিত ফরম্যাট: ভিডিও টিউটোরিয়ালে কোডিং লাইভ দেখানো এবং লিখিত ডকুমেন্টেশন প্রদান।
3. হ্যান্ডস-অন প্রজেক্ট: প্রতিটি মডিউলের শেষে ছোট প্রজেক্ট বা অ্যাসাইনমেন্ট।
4. কোড রিপোজিটরি: GitHub-এ কোড শেয়ার করা।
5. কমিউনিটি সাপোর্ট: Discord/Slack গ্রুপে প্রশ্নোত্তর সেশন।
প্রস্তাবিত সময়সূচী
1. প্রাথমিক**: ২-৪ সপ্তাহ (১০-১৫ ঘণ্টা)।
2. ইন্টারমিডিয়েট**: ৪-৬ সপ্তাহ (২০-৩০ ঘণ্টা)।
3. অ্যাডভান্সড**: ৬-৮ সপ্তাহ (৩০-৪০ ঘণ্টা)।
4. প্রজেক্ট**: ৪-৬ সপ্তাহ (২০-৩০ ঘণ্টা)।
এই রূপরেখা অনুসরণ করে একটি সম্পূর্ণ টিউটোরিয়াল সিরিজ তৈরি করলে শিক্ষার্থীরা শূন্য থেকে শুরু করে লারাভেলে এক্সপার্ট হতে পারবে। প্রতিটি ধাপে ব্যবহারিক উদাহরণ এবং প্রজেক্ট ফোকাস করা গুরুত্বপূর্ণ।