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 ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।

ਇਸਨੂੰ ਇਮਾਰਤ ਦੀ ਨੀਂਹ ਵਜੋਂ ਕੰਮ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ:

  • ਬਲੌਗ ਪਲੇਟਫਾਰਮ

  • ਹੈੱਡਲੈੱਸ CMS ਸਿਸਟਮ

  • ਸਮੱਗਰੀ ਪ੍ਰਕਾਸ਼ਨ API

  • ਦਸਤਾਵੇਜ਼ ਵੈੱਬਸਾਈਟਾਂ

  • ਡਿਵੈਲਪਰ ਪੋਰਟਫੋਲੀਓ ਬਲੌਗ

ਇਹ ਪ੍ਰੋਜੈਕਟ NestJS ਦੁਆਰਾ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੇ ਮਾਡਿਊਲਰ ਆਰਕੀਟੈਕਚਰ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ, ਜੋ ਸਕੇਲੇਬਿਲਟੀ ਅਤੇ ਰੱਖ-ਰਖਾਅ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।

ਰਿਪੋਜ਼ਟਰੀ: https://github.com/bfotool/nestjs-mongodb-blog-base

ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ

ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਅਧਿਕਾਰ

API ਵਿੱਚ 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 ਸਟੈਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਇਆ ਗਿਆ ਹੈ।

ਪਰਤ ਤਕਨਾਲੋਜੀ
ਫਰੇਮਵਰਕ ਨੇਸਟਜੇਐਸ 11
ਭਾਸ਼ਾ ਟਾਈਪਸਕ੍ਰਿਪਟ 5.7
ਡਾਟਾਬੇਸ ਮੋਂਗੋਡੀਬੀ 8
ਓਡੀਐਮ ਮੂੰਗੂਸ 8
ਪ੍ਰਮਾਣਿਕਤਾ ਪਾਸਪੋਰਟ.ਜੇਐਸ + ਜੇਡਬਲਯੂਟੀ
ਪ੍ਰਮਾਣਿਕਤਾ ਕਲਾਸ-ਪ੍ਰਮਾਣਕ
API ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਸਵੈਗਰ ਓਪਨਏਪੀਆਈ
ਪਾਸਵਰਡ ਸੁਰੱਖਿਆ bcrypt
ਸਲੱਗ ਜਨਰੇਟਰ ਸਲੱਗਫਾਈ
ਟੈਸਟਿੰਗ ਮਜ਼ਾਕ

ਪ੍ਰੋਜੈਕਟ ਢਾਂਚਾ

ਇਹ ਪ੍ਰੋਜੈਕਟ ਇੱਕ ਮਾਡਿਊਲਰ ਆਰਕੀਟੈਕਚਰ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ।

src/ 
├── auth/ 
├── users/ 
├── posts/ 
├── categories/ 
├── tags/ 
├── comments/ 
├── common/ 
└── seed/ 

ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਿਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:

  • ਡੀਟੀਓ ਪ੍ਰਮਾਣਿਕਤਾ

  • ਮੂੰਗੂਜ਼ ਸਕੀਮਾਂ

  • ਗਲੋਬਲ ਅਪਵਾਦ ਫਿਲਟਰ

  • ਰਿਸਪਾਂਸ ਇੰਟਰਸੈਪਟਰ

  • JWT ਗਾਰਡ

  • ਭੂਮਿਕਾ ਸਜਾਵਟ ਕਰਨ ਵਾਲੇ

ਇਹ ਢਾਂਚਾ ਕੋਡਬੇਸ ਨੂੰ ਸੰਗਠਿਤ ਅਤੇ ਸਕੇਲੇਬਲ ਰੱਖਦਾ ਹੈ।

ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਕਿਵੇਂ ਇੰਸਟਾਲ ਅਤੇ ਚਲਾਉਣਾ ਹੈ

ਜ਼ਰੂਰੀ ਸ਼ਰਤਾਂ

ਇੰਸਟਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਹੈ:

  • ਨੋਡ.ਜੇਐਸ 18.17+

  • ਮੋਂਗੋਡੀਬੀ 6+

  • 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

ਡਿਫਾਲਟ ਸੀਡ ਡੇਟਾ

ਸੀਡ ਸਕ੍ਰਿਪਟ ਜਾਂਚ ਲਈ ਨਮੂਨਾ ਡੇਟਾ ਤਿਆਰ ਕਰਦੀ ਹੈ।

ਇਕਾਈ ਗਿਣਤੀ
ਉਪਭੋਗਤਾ 5
ਵਰਗ 5
ਟੈਗਸ 28
ਪੋਸਟਾਂ 10
ਟਿੱਪਣੀਆਂ 6

ਡਿਫਾਲਟ ਲੌਗਇਨ ਪ੍ਰਮਾਣ ਪੱਤਰ

ਸਾਰੇ ਸੀਡ ਕੀਤੇ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਪਾਸਵਰਡ:

admin123

ਖਾਤੇ:

ਭੂਮਿਕਾ ਈਮੇਲ
ਐਡਮਿਨ [email protected]
ਲੇਖਕ [email protected] ਵੱਲੋਂ ਹੋਰ
ਲੇਖਕ [email protected] ਵੱਲੋਂ ਹੋਰ
ਲੇਖਕ [email protected] ਵੱਲੋਂ ਹੋਰ
ਪਾਠਕ [email protected]

ਸਵੈਗਰ API ਦਸਤਾਵੇਜ਼ੀਕਰਨ

ਇੰਟਰਐਕਟਿਵ API ਦਸਤਾਵੇਜ਼ ਇੱਥੇ ਉਪਲਬਧ ਹਨ:

http://localhost:3000/api/docs

ਸਵੈਗਰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ:

  • ਇੰਟਰਐਕਟਿਵ ਐਂਡਪੁਆਇੰਟ ਟੈਸਟਿੰਗ

  • JWT authenticationਸਹਾਇਤਾ

  • ਬੇਨਤੀ ਅਤੇ ਜਵਾਬ ਸਕੀਮਾ ਦਸਤਾਵੇਜ਼

ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਦੀ ਵਰਤੋਂ ਕਿਉਂ ਕਰੀਏ

NestJS MongoDB ਬਲੌਗ API ਇੱਕ ਆਧੁਨਿਕ ਬਲੌਗ ਬੈਕਐਂਡ ਬਣਾਉਣ ਵਾਲੇ ਡਿਵੈਲਪਰਾਂ ਲਈ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ ਹੈ।

ਫਾਇਦਿਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:

  • ਸਾਫ਼ NestJS ਮਾਡਿਊਲਰ ਆਰਕੀਟੈਕਚਰ

  • ਬਿਲਟ-ਇਨ ਪ੍ਰਮਾਣੀਕਰਨ ਅਤੇ RBAC

  • ਵਰਤੋਂ ਲਈ ਤਿਆਰ ਸਵੈਗਰ API ਦਸਤਾਵੇਜ਼

  • ਮੋਂਗੋਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮੋਂਗੋਡੀਬੀ ਏਕੀਕਰਨ

  • ਡਾਟਾਬੇਸ ਸੀਡਿੰਗ ਸਿਸਟਮ

  • ਉਤਪਾਦਨ ਲਈ ਤਿਆਰ ਪ੍ਰੋਜੈਕਟ ਢਾਂਚਾ

ਰਿਪੋਜ਼ਟਰੀ: https://github.com/bfotool/nestjs-mongodb-blog-base