STUDI KASUS / Aplikasi operasional
IT Inventory
Aplikasi pencatatan stok dan transaksi gudang dengan akses berdasarkan peran pengguna.

- Peran
- Full-Stack Developer
- Teknologi
- React · Next.js · Tailwind CSS · shadcn/ui · PostgreSQL · Drizzle ORM · Better Auth · Docker
- Tahun
- 2026
Ringkasan
IT Inventory adalah aplikasi web untuk mencatat stok dan transaksi gudang pada perusahaan kawasan berikat. Pengguna dapat melihat pergerakan barang dan saldo stok sesuai akses gudangnya.
Kebutuhan
Setiap pergerakan barang perlu dicatat berdasarkan produk, gudang, lokasi, dan lot atau nomor seri. Data dari gudang lain harus tetap dibatasi sesuai hak akses pengguna.
Transaksi yang ditangani meliputi penerimaan, pengiriman, perpindahan, retur, penyesuaian stok, stock opname, dan tutup periode.
Peran dan kontribusi
Di proyek ini, saya mengerjakan halaman React/Next.js, formulir transaksi, query database, serta validasi dan pemeriksaan akses di server.
- Menyusun halaman master data dan transaksi dengan TypeScript, Tailwind CSS, dan shadcn/ui.
- Mengerjakan akses data PostgreSQL melalui Drizzle ORM.
- Menerapkan autentikasi dan pembatasan akses berdasarkan peran serta gudang.
- Menyiapkan PostgreSQL lokal dengan Docker Compose.
Implementasi
Halaman dan formulir menggunakan Next.js App Router. Better Auth menangani autentikasi, sementara halaman dan transaksi memeriksa izin pengguna di server.
Saldo stok saat ini dibaca dari data saldo. Untuk tanggal tertentu, aplikasi menghitungnya dari ledger. Query menyertakan batas akses gudang dan menampilkan rincian produk, lokasi, lot, serta satuan.
Pengujian unit dan database menggunakan Vitest. Alur browser diuji dengan Playwright, dan PostgreSQL lokal dijalankan melalui Docker Compose.
Tantangan teknis
Perhitungan stok. Jenis pergerakan, lokasi, dan status dokumen memengaruhi perubahan stok. Saya menempatkan validasi transaksi dan pencatatan pergerakan di server dan database.
Hak akses gudang. Pembatasan akses harus tetap berlaku saat pengguna mencari data, mengubah filter, atau berpindah halaman daftar. Pemeriksaan akses diterapkan pada query stok dan daftar transaksi.
Saldo pada tanggal tertentu. Saldo saat ini dan saldo historis dihitung dari sumber yang berbeda. Hasil keduanya perlu memakai struktur data yang sama agar dapat ditampilkan pada halaman stok.
Hasil
Aplikasi menyediakan master data, transaksi inventory, pelacakan lot dan nomor seri, stock opname, serta pengaturan akses yang tersimpan di PostgreSQL.
Pengguna dapat menelusuri saldo menurut gudang dan tanggal. Data yang ditampilkan mengikuti hak akses pengguna, termasuk saat pencarian dan filter digunakan.