Nusacodes
Kembali ke Showcase
30 September 2026 Rico Kumala

Inventory Management API: Final Project Bootcamp NodeJS Backend

Bootcamp Backend NodeJS

Inventory Management API: Final Project Bootcamp NodeJS Backend
Kunjungi

Pengelolaan inventori membutuhkan data produk, kategori, stok, dan transaksi yang saling terhubung. Kebutuhan tersebut menjadi studi kasus dalam Inventory Management API, final project peserta Bootcamp NodeJS Backend.

Melalui proyek ini, peserta menyusun backend untuk mengelola informasi produk, mengunggah gambar, menangani autentikasi pengguna, serta mengembangkan logika checkout dan pembayaran. Sebagai penyelenggara, kami melihat proyek ini sebagai latihan menghubungkan operasi database dengan aturan bisnis dan pengaturan akses API.

Studi Kasus: Pengelolaan Produk dan Inventori

Proyek berfokus pada pencatatan produk yang memiliki nama, harga, jumlah stok, gambar, dan kategori. Pengelompokan melalui kategori membantu menyusun informasi produk, sementara catatan transaksi menyediakan hubungan antara produk dan aktivitas pembelian.

Dalam implementasinya, daftar produk diambil melalui penggabungan tabel produk dan kategori. Respons API dapat memuat informasi produk sekaligus nama kategorinya, sehingga aplikasi klien tidak perlu mengambil kedua data tersebut secara terpisah.

Kode juga memuat pengembangan alur checkout yang memeriksa ketersediaan stok dan menghitung total harga berdasarkan jumlah barang yang diminta.

Apa yang Dikerjakan Peserta?

Peserta membagi kode ke dalam konfigurasi database, routes, controllers, dan middleware. Pembagian tersebut memisahkan pengaturan endpoint, logika pemrosesan data, autentikasi, serta penanganan unggahan.

Pekerjaan yang tercakup meliputi:

  • Pengembangan registrasi, login, dan pengambilan profil pengguna.
  • Pengelolaan kategori melalui operasi penambahan, pembacaan, pembaruan, dan penghapusan.
  • Pengelolaan produk beserta harga, stok, kategori, dan gambar.
  • Pengambilan daftar transaksi dengan informasi produk terkait.
  • Penyusunan logika checkout, pemeriksaan stok, dan perhitungan harga.
  • Penyusunan logika pembayaran berdasarkan kepemilikan transaksi, nominal, dan batas waktu.

Peserta juga menyediakan README yang menjelaskan instalasi, konfigurasi lingkungan, serta contoh penggunaan API. Dokumentasi ini menjadi dasar untuk memahami tujuan proyek, meskipun beberapa bagian masih perlu diselaraskan dengan kode terbaru.

Teknologi dan Tools yang Digunakan

Node.js digunakan sebagai runtime JavaScript di sisi server, sementara Express.js menangani endpoint dan middleware.

MySQL menjadi penyimpanan data, dengan mysql2 sebagai penghubung aplikasi ke database. Kode menggunakan query berparameter untuk berbagai operasi, seperti menambahkan produk, memperbarui kategori, dan mengambil transaksi.

Untuk autentikasi, proyek menggunakan bcrypt dan JSON Web Tokens melalui library jsonwebtoken. Multer menangani unggahan gambar produk, sedangkan dotenv membaca konfigurasi dari variabel lingkungan.

Morgan digunakan untuk mencatat request HTTP selama aplikasi berjalan. Kombinasi teknologi ini memberi peserta pengalaman menyusun komponen backend yang memiliki fungsi berbeda tetapi harus bekerja bersama.

Pengelolaan Gambar Produk

Fitur unggahan menjadi salah satu bagian yang memperluas praktik peserta di luar pemrosesan JSON. Endpoint produk menggunakan multipart/form-data untuk menerima data produk bersama file gambar.

Middleware Multer menyimpan file ke folder unggahan dengan nama yang dibentuk dari waktu dan angka acak. Konfigurasinya membatasi ukuran file hingga 2 MB serta memeriksa ekstensi JPG, JPEG, PNG, dan WEBP.

Alamat relatif gambar kemudian dicatat pada data produk. Alur ini memperkenalkan hubungan antara penyimpanan file dan penyimpanan metadata di database. Pemeriksaan ekstensi yang digunakan masih merupakan penyaringan dasar, sehingga tidak dapat dianggap sebagai verifikasi menyeluruh terhadap isi file.

Logika Checkout dan Pembayaran

Pada bagian checkout, peserta menulis proses pengambilan produk menggunakan FOR UPDATE, pemeriksaan stok, dan perhitungan total harga. Kode juga memuat transaksi database dengan mekanisme commit dan rollback.

Bagian pembayaran mencakup pemeriksaan bahwa transaksi terkait dengan pengguna yang sedang login. Nominal pembayaran dibandingkan dengan total harga, dan terdapat aturan batas waktu pembayaran selama lima menit sejak transaksi dibuat.

Fitur tersebut masih berupa logika pencatatan internal. Kode yang tersedia tidak menunjukkan integrasi dengan payment gateway atau layanan pemrosesan pembayaran eksternal.

Insight dari Implementasi

Studi kasus ini memperlihatkan bahwa stok, transaksi, dan pembayaran membutuhkan aturan yang konsisten. Ketika status transaksi berubah, perubahan stok harus mengikuti alur yang jelas agar jumlah barang tetap sesuai.

Kode juga menjadi bahan pembelajaran tentang konsistensi penggunaan koneksi transaksi. Operasi yang harus berhasil atau dibatalkan bersama perlu dijalankan melalui koneksi transaksi yang sama.

Pada pengaturan akses, middleware administrator saat ini memeriksa keberadaan kata “admin” dalam email. Implementasi tersebut memberikan contoh konkret mengapa otorisasi perlu menggunakan atribut peran yang dikelola secara eksplisit.

Bagian yang Masih Perlu Diselesaikan

Versi proyek yang tersedia masih membutuhkan perbaikan sebelum alur checkout dan pembayaran dapat digunakan secara utuh. Fungsi pada kedua controller belum diekspor sesuai kebutuhan route, dan query penyimpanan checkout memiliki jumlah placeholder yang tidak sesuai dengan kolomnya.

Pengelolaan koneksi, pembaruan stok, serta query perubahan status pembayaran juga perlu dirapikan. Selain itu, README menjelaskan transaksi barang masuk dan keluar, sementara fungsi tersebut sudah dikomentari pada controller transaksi.

Temuan ini menunjukkan pentingnya memeriksa kesesuaian dokumentasi, routing, dan implementasi sebelum menyatakan API siap digunakan.

Manfaat Pembelajaran

Melalui Inventory Management API, peserta berlatih menyusun endpoint, menghubungkan tabel, menangani unggahan file, menerapkan autentikasi, dan menerjemahkan aturan transaksi ke dalam kode.

Bagi kami sebagai penyelenggara Bootcamp NodeJS Backend, proyek ini menyediakan hasil kerja yang dapat ditinjau sekaligus arah pengembangan yang konkret. Penyelesaian integrasi checkout, perbaikan otorisasi, dan pengujian konsistensi stok menjadi langkah berikutnya untuk menyatukan komponen yang telah dibuat.