ফেজ ৬ – চূড়ান্ত প্রকল্প (চলমান)
প্রকল্প ১: সম্পূর্ণ CRUD সহ অথেনটিকেশন
- উদ্দেশ্য: নিরাপদ অথেনটিকেশন এবং টেস্টিং সহ একটি শক্তিশালী RESTful API তৈরি।
- টেকনোলজি: Spring Boot, Spring Data JPA (PostgreSQL), Spring Security (JWT), JUnit 5, Testcontainers.
- ফিচার: এনটিটি (যেমন, টাস্ক, ইউজার) এর জন্য CRUD, roles (ADMIN, USER) সহ অথেনটিকেশন, Swagger দিয়ে ডকুমেন্টেশন।
- ঐচ্ছিক: টাস্ক দেখতে/পরিচালনার জন্য Thymeleaf ইন্টারফেস যোগ করা।
- উদাহরণ: প্রোজেক্ট পরিচালনার জন্য API (এনটিটি:
Project
, Task
, User
) সুরক্ষিত endpoints সহ।
প্রকল্প ২: ফাইল আপলোড
- উদ্দেশ্য: প্রকল্প ১-এর API-তে ফাইল আপলোড ফাংশনালিটি যোগ করা।
- টেকনোলজি: Spring Boot (
MultipartFile
), Amazon S3 বা লোকাল স্টোরেজ, ফাইল ভ্যালিডেশন।
- ফিচার: টাস্কের সাথে সম্পর্কিত ইমেজ/ডকুমেন্ট আপলোড, টাইপ/সাইজ ভ্যালিডেশন।
- উদাহরণ: API-তে টাস্কের জন্য অ্যাটাচমেন্ট (যেমন, PDF, PNG) আপলোডের অনুমতি দেওয়া।
প্রকল্প ৩: ক্লাউড ডিপ্লয়মেন্ট
- উদ্দেশ্য: CI/CD সহ ক্লাউড প্ল্যাটফর্মে API ডিপ্লয় করা।
- টেকনোলজি: Railway, Heroku, বা AWS (Elastic Beanstalk), GitHub Actions, Docker.
- ফিচার: JAR/Docker হিসেবে প্যাকেজিং, এনভায়রনমেন্ট ভেরিয়েবল কনফিগার, অটোমেটেড ডিপ্লয়মেন্ট।
- ঐচ্ছিক: ঘন ঘন কোয়েরি অপটিমাইজ করতে Redis দিয়ে ক্যাশিং বাস্তবায়ন।
- উদাহরণ: PostgreSQL এবং CI/CD সহ Railway-তে প্রকল্প API ডিপ্লয়।
প্রকল্প ৪: মাইক্রোসার্ভিস
- উদ্দেশ্য: প্রকল্প ১-এর API-কে অর্কেস্ট্রেটেড মাইক্রোসার্ভিসে বিভক্ত করা।
- টেকনোলজি: Spring Cloud (Eureka, Gateway), Docker Compose, REST কমিউনিকেশন।
- ফিচার:
Tasks
এবং Users
-এর জন্য মাইক্রোসার্ভিস, সার্ভিস ডিসকভারি সহ।
- ঐচ্ছিক: মাইক্রোসার্ভিসগুলোর মধ্যে অ্যাসিনক্রোনাস কমিউনিকেশনের জন্য RabbitMQ ব্যবহার।
- উদাহরণ: টাস্ক এবং ইউজার লজিক দুটি সার্ভিসে বিভক্ত করা, Docker দিয়ে অর্কেস্ট্রেটেড।
প্রকল্প ৫: এক্সটার্নাল API ইন্টিগ্রেশন
- উদ্দেশ্য: ফাংশনালিটি উন্নত করতে এক্সটার্নাল API ব্যবহার।
- টেকনোলজি: Spring RestTemplate বা WebClient, API অথেনটিকেশন (যেমন, OAuth2).
- ফিচার: পাবলিক API-এর সাথে ইন্টিগ্রেশন (যেমন, SendGrid দিয়ে ইমেল নোটিফিকেশন পাঠানো)।
- ঐচ্ছিক: টাস্ক/ইউজার পুনরুদ্ধারের জন্য GraphQL query যোগ করা এবং MongoDB-তে মেটাডেটা সংরক্ষণ।
- উদাহরণ: টাস্ক সম্পন্ন হওয়ার জন্য ইমেল নোটিফিকেশন যোগ করা।
পোর্টফোলিওর সর্বোত্তম অনুশীলন
- Git: প্রতিটি ফিচারের জন্য commit (যেমন,
feature/crud
, feature/upload
), স্পষ্ট ব্রাঞ্চ।
- ডকুমেন্টেশন: বর্ণনা, সেটআপ, endpoints, ডিপ্লয়মেন্ট, এবং স্ক্রিনশট সহ README।
- প্রকাশ: ওপেন-সোর্স লাইসেন্স (যেমন, MIT) সহ GitHub-এ হোস্টিং।
রিসোর্স