NestJS MongoDB ব্লগ API টেমপ্লেট – ব্লগের জন্য সম্পূর্ণ বৈশিষ্ট্যযুক্ত REST ব্যাকএন্ড

একটি স্কেলেবল ব্লগ ব্যাকএন্ড তৈরির জন্য একটি সুগঠিত আর্কিটেকচার, প্রমাণীকরণ সিস্টেম এবং সঠিকভাবে নথিভুক্ত 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/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

ব্যবহারকারী মডিউল

ব্যবহারকারীর অ্যাকাউন্ট এবং প্রোফাইল পরিচালনা করে।

শেষবিন্দু:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

লেখার ক্রিয়াকলাপের জন্য প্রশাসকের অনুমতি প্রয়োজন ।

পোস্ট মডিউল

পোস্ট মডিউল ব্লগের বিষয়বস্তু পরিচালনা করে।

বৈশিষ্ট্যগুলির মধ্যে রয়েছে:

  • পৃষ্ঠাঙ্কন

  • বিভাগ, ট্যাগ, অথবা লেখক অনুসারে ফিল্টার করা

  • বাছাই

  • পূর্ণ-পাঠ্য অনুসন্ধান

  • বৈশিষ্ট্যযুক্ত পোস্ট

শেষবিন্দু:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

বিভাগ মডিউল

ব্লগ পোস্টগুলিকে বিভাগগুলিতে সংগঠিত করে।

শেষবিন্দু:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

ট্যাগ মডিউল

ব্লগ পোস্টের জন্য নমনীয় ট্যাগিং এর সুবিধা প্রদান করে।

শেষবিন্দু:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

মন্তব্য মডিউল

মন্তব্য থ্রেড এবং নেস্টেড উত্তর সমর্থন করে।

শেষবিন্দু:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /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