← Semua track🟢
Node.js & Express
REST API, auth, dan keamanan — jalur startup & kerja remote.
±70 jam · 0/65 selesai (0%)
💡 Saran (bukan syarat): sebaiknya selesaikan dulu JavaScript, TypeScript, Git & GitHub. Tapi semua materi tetap terbuka — kamu yang menentukan.
Modul 1: Node.js Runtime & npm
JavaScript keluar dari browser: file system, module, dan ekosistem npm.
7 bab dalam modul ini
- 1.1Apa itu Node.js & bedanya dengan browser
- 1.2Module system: ESM di Node
- 1.3npm: package.json, scripts, dependencies vs devDependencies
- 1.4File system (fs/promises) & path
- 1.5Environment variable & dotenv
- 1.6Event emitter & stream (pengenalan)
- 1.7nodemon/tsx untuk development
- ‹›Apa itu Node.js?Praktek
- ‹›ES Module System (import/export)Praktek
- ‹›npm: package.json & DependenciesPraktek
- ‹›File System Promises API (fs/promises)Praktek
- ‹›Environment Variables (process.env & dotenv)Praktek
- ‹›EventEmitter DasarPraktek
- ‹›Development Runner: tsx & watch modePraktek
- ?Kuis: Node.js RuntimeKuis
Modul 2: Express Dasar
Server HTTP pertamamu: route, middleware, dan siklus request-response.
7 bab dalam modul ini
- 2.1Setup Express + TypeScript
- 2.2Route: method, path, handler
- 2.3Request: params, query, body (express.json)
- 2.4Response: status, json, header
- 2.5Middleware: konsep next() & urutan eksekusi
- 2.6Router untuk memecah endpoint
- 2.7Static file & 404 handler
- ‹›Inisialisasi Server Express + TypeScriptPraktek
- ‹›Express Route: GET, POST, PUT, DELETEPraktek
- ‹›Membaca req.params, req.query, dan req.bodyPraktek
- ‹›Response Status Code & HeadersPraktek
- ‹›Konsep Middleware & fungsi next()Praktek
- ‹›Pemisahan Route dengan express.Router()Praktek
- ‹›Handler 404 & Static FilesPraktek
- ?Kuis: Express DasarKuis
Modul 3: Desain REST API
Konvensi yang membuat API-mu mudah dipakai tim lain — skill diskusi arsitektur.
7 bab dalam modul ini
- 3.1Resource & penamaan endpoint yang benar
- 3.2HTTP method semantik: GET/POST/PUT/PATCH/DELETE
- 3.3Status code yang tepat (bukan 200 untuk semuanya)
- 3.4Struktur response konsisten: data, error, meta
- 3.5Versioning API
- 3.6Pagination, filtering, sorting
- 3.7Idempotency & kenapa penting
- ‹›Konvensi Penamaan Resource Noun JamakPraktek
- ‹›HTTP Method Semantik: PUT vs PATCHPraktek
- ‹›Status Code HTTP SemantikPraktek
- ‹›Struktur Respon JSON KonsistenPraktek
- ‹›Versioning API (/api/v1)Praktek
- ‹›Pagination & Filtering via Query StringPraktek
- ‹›Idempotency di REST APIPraktek
- ?Kuis: Desain REST APIKuis
Modul 4: Database dengan Prisma
Menghubungkan API ke PostgreSQL dengan type-safety penuh.
6 bab dalam modul ini
- 4.1Prisma schema & migrate
- 4.2CRUD dengan Prisma Client
- 4.3Relasi & nested query
- 4.4Transaction
- 4.5Seeding & Prisma Studio
- 4.6Pola repository: memisahkan akses data dari route
Modul 5: Autentikasi & Otorisasi
JWT vs session dengan jujur: trade-off, bukan dogma.
6 bab dalam modul ini
- 5.1Hash password dengan bcrypt/argon2 (jangan pernah plain text)
- 5.2JWT: sign, verify, expiry, refresh token
- 5.3Session + cookie sebagai alternatif
- 5.4Middleware auth & role-based access
- 5.5httpOnly cookie vs localStorage untuk token
- 5.6Logout & token revocation
Modul 6: Validasi & Error Handling
API production tidak pernah percaya input — dan tidak pernah bocorkan stack trace.
6 bab dalam modul ini
- 6.1Validasi body/params dengan Zod
- 6.2Error handler terpusat di Express
- 6.3Custom error class (NotFoundError, ValidationError)
- 6.4async error & pola wrapper
- 6.5Logging terstruktur (pino)
- 6.6Pesan error untuk user vs untuk developer
Modul 7: File Upload & Email
Dua kebutuhan yang muncul di hampir setiap proyek nyata.
5 bab dalam modul ini
- 7.1Upload dengan multer & validasi file
- 7.2Menyimpan ke disk vs object storage (S3-compatible)
- 7.3Kirim email (nodemailer) & template
- 7.4Background job sederhana untuk tugas lambat
- 7.5Serving file dengan aman
Modul 8: Testing API
Integration test dengan supertest: kontrak API yang terjaga.
5 bab dalam modul ini
- 8.1Unit vs integration test untuk API
- 8.2supertest: request & assert response
- 8.3Test database terpisah & cleanup
- 8.4Menguji auth flow lengkap
- 8.5Coverage yang bermakna (bukan angka 100%)
Modul 9: Keamanan Dasar
OWASP untuk pemula: lubang yang paling sering menghancurkan aplikasi junior.
7 bab dalam modul ini
- 9.1SQL injection & kenapa ORM/parameterized query menyelamatkan
- 9.2XSS & sanitasi output
- 9.3CORS: paham betulan, bukan copy-paste
- 9.4Rate limiting & brute force protection
- 9.5helmet & security header
- 9.6Secrets management: jangan commit .env
- 9.7Checklist keamanan sebelum deploy
- ‹›Mencegah SQL InjectionPraktek
- ‹›Mencegah XSS (Cross-Site Scripting)Praktek
- ‹›Konfigurasi CORS (Cross-Origin Resource Sharing)Praktek
- ‹›Rate Limiting dengan express-rate-limitPraktek
- ‹›Pengamanan Security Headers dengan HelmetPraktek
- ‹›Manajemen Kunci Rahasia (.gitignore)Praktek
- ‹›Checklist Keamanan Pre-DeployPraktek
- ?Kuis: Keamanan Dasar Node.jsKuis