← Kembali ke proyek

STUDI KASUS / Aplikasi operasional

IT Inventory

Aplikasi pencatatan stok dan transaksi gudang dengan akses berdasarkan peran pengguna.

Halaman Stok IT Inventory dengan pencarian produk, filter tanggal, lokasi gudang, saldo, dan jumlah tersedia.
Halaman Stok pada aplikasi IT Inventory.
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.

STUDI KASUS BERIKUTNYAMUA Ranni ↗