ਇੱਕ ਸਕੇਲੇਬਲ ਬਲੌਗ ਬੈਕਐਂਡ ਬਣਾਉਣ ਲਈ ਇੱਕ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸੰਗਠਿਤ ਆਰਕੀਟੈਕਚਰ, ਪ੍ਰਮਾਣੀਕਰਨ ਸਿਸਟਮ, ਅਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਦਸਤਾਵੇਜ਼ੀ 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/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 ਸਟੈਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਇਆ ਗਿਆ ਹੈ।
| ਪਰਤ | ਤਕਨਾਲੋਜੀ |
|---|---|
| ਫਰੇਮਵਰਕ | ਨੇਸਟਜੇਐਸ 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



