Mbangun backend blog sing bisa diskalakake mbutuhake arsitektur sing terstruktur kanthi apik, sistem otentikasi, lan API sing didokumentasikake kanthi bener. NestJS MongoDB Blog API minangka cithakan backend sing siap produksi sing dirancang kanggo mbantu para pangembang kanthi cepet mbangun platform blog modern nggunakake dokumentasi NestJS, MongoDB, JWT authenticationlan Swagger .
Proyèk iki nyedhiyakaké RESTful API lengkap kalebu modul kanggo panganggo, kiriman, kategori, tag, komentar, otentikasi, lan kontrol akses berbasis peran .
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base
Apa kuwi NestJS MongoDB Blog API?
NestJS MongoDB Blog API kuwi cithakan backend sumber terbuka sing digawe nganggo NestJS 11 lan MongoDB sing nyedhiyakake REST API blog sing berfungsi kanthi lengkap.
Iki dirancang kanggo dadi pondasi kanggo mbangun:
Platform blog
Sistem CMS tanpa sirah
API penerbitan konten
Situs web dokumentasi
Blog portofolio pangembang
Proyèk iki nderek arsitektur modular sing direkomendasikaké déning NestJS, kanggo njamin skalabilitas lan perawatan.
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base
Fitur Utama
Otentikasi lan Otorisasi
API iki kalebu sistem otentikasi sing aman nggunakake token JWT.
Fitur otentikasi utama kalebu:
Token Akses lan Refresh JWT
Kontrol Akses Berbasis Peran(RBAC)
Hashing sandhi nganggo bcrypt
Rute API sing dilindhungi nggunakake Guards
Mekanisme penyegaran token
Ana telung peran panganggo standar sing didhukung:
Admin
Penulis
Pamaca
Iki nggampangake ngatur ijin ing macem-macem endpoint API.
Modul Blog Lengkap
Proyèk iki kalebu sawetara modul sing wis diimplementasikake kanthi lengkap sing nyakup kabeh fungsi inti blog.
Modul Otorisasi
Nangani otentikasi lan sesi panganggo.
Titik pungkasan kalebu:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Modul Panganggo
Ngatur akun lan profil panganggo.
Titik pungkasan:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Operasi nulis mbutuhake ijin Admin .
Modul Posting
Modul postingan ngatur isi blog.
Fitur-fitur kasebut kalebu:
Paginasi
Nyaring miturut kategori, tag, utawa panganggit
Ngurutake
Panelusuran teks lengkap
Kiriman unggulan
Titik pungkasan:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Modul Kategori
Ngatur postingan blog menyang kategori.
Titik pungkasan:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Modul Tag
Ngidini menehi tag fleksibel kanggo postingan blog.
Titik pungkasan:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Modul Komentar
Ndhukung utas komentar lan balesan sing disarangkan.
Titik pungkasan:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Kapabilitas API
Paginasi
Kabeh titik pungkasan dhaptar ndhukung pagination.
Tuladha:
GET /posts?page=1&limit=6
Nyaring
Kiriman bisa difilter miturut kategori, tag, utawa penulis.
Tuladha:
GET /posts?category=web-development
Panelusuran Teks Lengkap
Fungsi telusuran diterapake ing kiriman.
Tuladha:
GET /posts?search=nestjs+mongodb
Ngurutake
Tanggepan API bisa diurutake miturut kolom sing beda-beda.
Tuladha:
GET /posts?sortBy=createdAt&sortOrder=desc
Generasi Slug Otomatis
Nalika nggawe postingan, sistem bakal kanthi otomatis ngasilake slug sing ramah URL saka judhul nggunakake slugify .
Tuladha:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Pitungan Wektu Maca
API kasebut kanthi otomatis ngetung perkiraan wektu maca adhedhasar dawane konten kiriman.
Format Respon API sing Konsisten
Kabeh respon ngetutake struktur standar:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Iki nambah integrasi frontend lan debugging.
Tumpukan Teknologi
Backend iki digawe nggunakake tumpukan Node.js modern.
| Lapisan | Teknologi |
|---|---|
| Kerangka | NestJS 11 |
| Basa | TypeScript 5.7 |
| Basis data | MongoDB 8 |
| ODM | Luwak 8 |
| Otentikasi | Passport.js + JWT |
| Validasi | validator kelas |
| Dokumentasi API | OpenAPI Swagger |
| Keamanan Sandi | bcrypt |
| Generator Slug | nggawe slug |
| Tes | Guyon |
Struktur Proyek
Proyèk iki ngetutaké arsitèktur modular.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Komponen penting kalebu:
Validasi DTO
Skema luwak
Filter pengecualian global
Pencegat respon
Pengawal JWT
Para penghias peran
Struktur iki njaga basis kode supaya tetep teratur lan bisa diskalakake.
Cara Nginstal lan Mlaku Proyek
Prasyarat
Sadurunge nginstal, priksa manawa sampeyan duwe:
Node.js 18.17+
MongoDB 6+
npm, benang, utawa pnpm
Kloning Repositori
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Ketergantungan Instalasi
npm install
Konfigurasi Variabel Lingkungan
Salin file lingkungan conto:
cp .env.example .env
Anyari nilai-nilai ing ngisor iki:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Nyiptakake Database
Isi database nganggo data conto:
npm run seed
Kanggo ngreset lan reseed:
npm run seed:refresh
Miwiti Server Pangembangan
npm run start:dev
URL dhasar API:
http://localhost:3000/api/v1
Dokumentasi Swagger:
http://localhost:3000/api/docs
Data Seeded Baku
Skrip seed ngasilake data sampel kanggo pengujian.
| Entitas | Cacah |
|---|---|
| Panganggo | 5 |
| Kategori | 5 |
| Tag | 28 |
| Posting | 10 |
| Komentar | 6 |
Kredensial Login Baku
Sandi kanggo kabeh panganggo sing wis diunggulake:
admin123
Akun:
| Peran | |
|---|---|
| Admin | [email protected] |
| Penulis | [email protected] |
| Penulis | [email protected] |
| Penulis | [email protected] |
| Pamaca | [email protected] |
Dokumentasi API Swagger
Dokumentasi API interaktif kasedhiya ing:
http://localhost:3000/api/docs
Swagger nyedhiyakake:
Pengujian titik pungkasan interaktif
JWT authenticationdhukungan
Dokumentasi skema panjalukan lan tanggapan
Apa Sebab Nggunakake Repositori Iki
NestJS MongoDB Blog API minangka titik wiwitan sing kuat kanggo para pangembang sing mbangun backend blog modern.
Kauntungane kalebu:
Arsitektur modular NestJS sing resik
Otentikasi lan RBAC bawaan
Dokumentasi API Swagger sing wis siap digunakake
Integrasi MongoDB nggunakake Mongoose
Sistem penyemaian basis data
Struktur proyek sing siap produksi
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base



