একটি স্কেলেবল ব্লগ ব্যাকএন্ড তৈরির জন্য একটি সুগঠিত আর্কিটেকচার, প্রমাণীকরণ সিস্টেম এবং সঠিকভাবে নথিভুক্ত API প্রয়োজন। NestJS MongoDB ব্লগ API হল একটি প্রোডাকশন-রেডি ব্যাকএন্ড টেমপ্লেট যা ডেভেলপারদের NestJS, MongoDB, JWT authenticationএবং Swagger ডকুমেন্টেশন ব্যবহার করে দ্রুত আধুনিক ব্লগ প্ল্যাটফর্ম তৈরি করতে সহায়তা করার জন্য ডিজাইন করা হয়েছে ।
এই প্রকল্পটি ব্যবহারকারীদের জন্য মডিউল, পোস্ট, বিভাগ, ট্যাগ, মন্তব্য, প্রমাণীকরণ এবং ভূমিকা-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ সহ একটি সম্পূর্ণ RESTful API প্রদান করে ।
সংগ্রহস্থল: https://github.com/bfotool/nestjs-mongodb-blog-base
NestJS MongoDB ব্লগ API কী?
NestJS MongoDB ব্লগ API হল একটি ওপেন-সোর্স ব্যাকএন্ড টেমপ্লেট যা NestJS 11 এবং MongoDB দিয়ে তৈরি যা একটি সম্পূর্ণ কার্যকরী ব্লগ REST API প্রদান করে।
এটি নির্মাণের ভিত্তি হিসেবে কাজ করার জন্য ডিজাইন করা হয়েছে:
ব্লগ প্ল্যাটফর্ম
হেডলেস সিএমএস সিস্টেম
কন্টেন্ট প্রকাশনা API গুলি
ডকুমেন্টেশন ওয়েবসাইট
ডেভেলপার পোর্টফোলিও ব্লগ
প্রকল্পটি NestJS দ্বারা সুপারিশকৃত মডুলার আর্কিটেকচার অনুসরণ করে, স্কেলেবিলিটি এবং রক্ষণাবেক্ষণযোগ্যতা নিশ্চিত করে।
সংগ্রহস্থল: https://github.com/bfotool/nestjs-mongodb-blog-base
মূল বৈশিষ্ট্য
প্রমাণীকরণ এবং অনুমোদন
এপিআইতে JWT টোকেন ব্যবহার করে একটি নিরাপদ প্রমাণীকরণ ব্যবস্থা অন্তর্ভুক্ত রয়েছে।
প্রধান প্রমাণীকরণ বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
JWT অ্যাক্সেস এবং রিফ্রেশ টোকেন
ভূমিকা-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ(RBAC)
bcrypt দিয়ে পাসওয়ার্ড হ্যাশিং
গার্ড ব্যবহার করে সুরক্ষিত API রুট
টোকেন রিফ্রেশ প্রক্রিয়া
তিনটি ডিফল্ট ব্যবহারকারীর ভূমিকা সমর্থিত:
অ্যাডমিন
লেখক
পাঠক
এটি বিভিন্ন API এন্ডপয়েন্ট জুড়ে অনুমতি পরিচালনা করা সহজ করে তোলে।
সম্পূর্ণ ব্লগ মডিউল
এই প্রকল্পে বেশ কয়েকটি সম্পূর্ণ বাস্তবায়িত মডিউল রয়েছে যা ব্লগের সমস্ত মূল কার্যকারিতা কভার করে।
প্রমাণীকরণ মডিউল
প্রমাণীকরণ এবং ব্যবহারকারীর সেশন পরিচালনা করে।
শেষবিন্দুগুলির মধ্যে রয়েছে:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
ব্যবহারকারী মডিউল
ব্যবহারকারীর অ্যাকাউন্ট এবং প্রোফাইল পরিচালনা করে।
শেষবিন্দু:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
লেখার ক্রিয়াকলাপের জন্য প্রশাসকের অনুমতি প্রয়োজন ।
পোস্ট মডিউল
পোস্ট মডিউল ব্লগের বিষয়বস্তু পরিচালনা করে।
বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
পৃষ্ঠাঙ্কন
বিভাগ, ট্যাগ, অথবা লেখক অনুসারে ফিল্টার করা
বাছাই
পূর্ণ-পাঠ্য অনুসন্ধান
বৈশিষ্ট্যযুক্ত পোস্ট
শেষবিন্দু:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
বিভাগ মডিউল
ব্লগ পোস্টগুলিকে বিভাগগুলিতে সংগঠিত করে।
শেষবিন্দু:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
ট্যাগ মডিউল
ব্লগ পোস্টের জন্য নমনীয় ট্যাগিং এর সুবিধা প্রদান করে।
শেষবিন্দু:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
মন্তব্য মডিউল
মন্তব্য থ্রেড এবং নেস্টেড উত্তর সমর্থন করে।
শেষবিন্দু:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
API ক্ষমতা
পৃষ্ঠাঙ্কন
সমস্ত তালিকার শেষ বিন্দু পৃষ্ঠাঙ্কন সমর্থন করে।
উদাহরণ:
GET /posts?page=1&limit=6
ফিল্টারিং
পোস্টগুলি বিভাগ, ট্যাগ বা লেখক অনুসারে ফিল্টার করা যেতে পারে।
উদাহরণ:
GET /posts?category=web-development
পূর্ণ-পাঠ্য অনুসন্ধান
পোস্টগুলিতে অনুসন্ধান কার্যকারিতা বাস্তবায়িত হয়।
উদাহরণ:
GET /posts?search=nestjs+mongodb
বাছাই
API প্রতিক্রিয়াগুলি বিভিন্ন ক্ষেত্র অনুসারে সাজানো যেতে পারে।
উদাহরণ:
GET /posts?sortBy=createdAt&sortOrder=desc
স্বয়ংক্রিয় স্লাগ জেনারেশন
পোস্ট তৈরি করার সময়, সিস্টেমটি স্বয়ংক্রিয়ভাবে slugify ব্যবহার করে শিরোনাম থেকে একটি URL-বান্ধব স্লাগ তৈরি করে ।
উদাহরণ:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
পড়ার সময় গণনা
পোস্টের কন্টেন্টের দৈর্ঘ্যের উপর ভিত্তি করে API স্বয়ংক্রিয়ভাবে আনুমানিক পঠন সময় গণনা করে।
ধারাবাহিক API প্রতিক্রিয়া ফর্ম্যাট
সমস্ত প্রতিক্রিয়া একটি আদর্শ কাঠামো অনুসরণ করে:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
এটি ফ্রন্টএন্ড ইন্টিগ্রেশন এবং ডিবাগিং উন্নত করে।
প্রযুক্তি স্ট্যাক
ব্যাকএন্ডটি একটি আধুনিক Node.js স্ট্যাক ব্যবহার করে তৈরি করা হয়েছে।
| স্তর | প্রযুক্তি |
|---|---|
| কাঠামো | নেস্টজেএস ১১ |
| ভাষা | টাইপস্ক্রিপ্ট ৫.৭ |
| ডাটাবেস | মঙ্গোডিবি ৮ |
| ওডিএম | মঙ্গুস ৮ |
| প্রমাণীকরণ | পাসপোর্ট.জেএস + জেডব্লিউটি |
| বৈধতা | ক্লাস-ভ্যালিডেটর |
| এপিআই ডকুমেন্টেশন | Swagger OpenAPI সম্পর্কে |
| পাসওয়ার্ড সুরক্ষা | bcrypt সম্পর্কে |
| স্লাগ জেনারেটর | স্লাগিফাই করা |
| পরীক্ষামূলক | রসিকতা |
প্রকল্প কাঠামো
প্রকল্পটি একটি মডুলার স্থাপত্য অনুসরণ করে।
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
গুরুত্বপূর্ণ উপাদানগুলির মধ্যে রয়েছে:
ডিটিও বৈধতা
মঙ্গুজ স্কিমা
গ্লোবাল এক্সেপশন ফিল্টার
রেসপন্স ইন্টারসেপ্টর
JWT রক্ষীরা
ভূমিকা সজ্জাকারী
এই কাঠামোটি কোডবেসকে সুসংগঠিত এবং স্কেলেবল রাখে।
কিভাবে প্রকল্পটি ইনস্টল এবং চালাবেন
পূর্বশর্ত
ইনস্টল করার আগে, নিশ্চিত করুন যে আপনার কাছে আছে:
নোড.জেএস ১৮.১৭+
মঙ্গোডিবি ৬+
npm, সুতা, অথবা pnpm
রিপোজিটরি ক্লোন করুন
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
নির্ভরতা ইনস্টল করুন
npm install
পরিবেশ ভেরিয়েবল কনফিগার করুন
উদাহরণ পরিবেশ ফাইলটি অনুলিপি করুন:
cp .env.example .env
নিম্নলিখিত মানগুলি আপডেট করুন:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
ডাটাবেস তৈরি করুন
নমুনা তথ্য দিয়ে ডাটাবেস পূরণ করুন:
npm run seed
রিসেট এবং রিসিড করার জন্য:
npm run seed:refresh
ডেভেলপমেন্ট সার্ভার শুরু করুন
npm run start:dev
API বেস URL:
http://localhost:3000/api/v1
সোয়াগার ডকুমেন্টেশন:
http://localhost:3000/api/docs
ডিফল্ট বীজযুক্ত ডেটা
বীজ স্ক্রিপ্ট পরীক্ষার জন্য নমুনা তথ্য তৈরি করে।
| সত্তা | গণনা |
|---|---|
| ব্যবহারকারীরা | ৫ |
| বিভাগ | ৫ |
| ট্যাগ | ২৮ |
| পোস্টগুলি | ১০ |
| মন্তব্য | ৬ |
ডিফল্ট লগইন শংসাপত্র
সমস্ত সিডেড ব্যবহারকারীদের জন্য পাসওয়ার্ড:
admin123
হিসাব:
| ভূমিকা | ইমেইল |
|---|---|
| অ্যাডমিন | [email protected] সম্পর্কে |
| লেখক | [email protected] সম্পর্কে |
| লেখক | [email protected] সম্পর্কে |
| লেখক | অনুসরণ |
| পাঠক | [email protected] সম্পর্কে |
সোয়াগার এপিআই ডকুমেন্টেশন
ইন্টারেক্টিভ API ডকুমেন্টেশন এখানে পাওয়া যাবে:
http://localhost:3000/api/docs
সোয়াগার প্রদান করে:
ইন্টারেক্টিভ এন্ডপয়েন্ট টেস্টিং
JWT authenticationসমর্থন
অনুরোধ এবং প্রতিক্রিয়া স্কিমা ডকুমেন্টেশন
কেন এই সংগ্রহস্থলটি ব্যবহার করবেন
NestJS MongoDB ব্লগ API হল ডেভেলপারদের জন্য একটি শক্তিশালী সূচনা বিন্দু যারা একটি আধুনিক ব্লগ ব্যাকএন্ড তৈরি করে।
সুবিধার মধ্যে রয়েছে:
পরিষ্কার NestJS মডুলার আর্কিটেকচার
অন্তর্নির্মিত প্রমাণীকরণ এবং RBAC
ব্যবহারের জন্য প্রস্তুত Swagger API ডকুমেন্টেশন
মঙ্গুজ ব্যবহার করে মঙ্গোডিবি ইন্টিগ্রেশন
ডাটাবেস বীজ বপন ব্যবস্থা
উৎপাদন-প্রস্তুত প্রকল্প কাঠামো
সংগ্রহস্থল: https://github.com/bfotool/nestjs-mongodb-blog-base



