Back to selected workKembali ke karya terpilih
Workflow systemSistem workflow

Internal Request & Approval Management SystemSistem Manajemen Permintaan & Persetujuan Internal

A Laravel-based system that centralizes cross-department inventory requests, item-level review, fulfillment, warehouse stock, and receipt documents.Sistem berbasis Laravel yang memusatkan permintaan inventaris lintas divisi, review per barang, realisasi, stok gudang, dan dokumen tanda terima.

Project at a glanceRingkasan project

My rolePeran saya
Full-stack Laravel development and workflow designPengembangan Laravel full-stack dan perancangan workflow
UsersPengguna
Admin GA and one supervisor-held account per divisionAdmin GA dan satu akun per divisi yang dipegang SPV
Project statusStatus project
Administration workflow documentedWorkflow administrasi terdokumentasi
My contributionKontribusi pribadi
Workflow and data modeling, full-stack Laravel development, role-based access, inventory control, reporting, and document generation.Perancangan workflow dan data, pengembangan Laravel full-stack, akses berbasis peran, kontrol inventaris, pelaporan, dan pembuatan dokumen.
GA Request System banner showing administration dashboards, warehouse stock, reporting, and receipt documents

The administration dashboard makes periods, review queues, request values, inventory alerts, and participation visible in one interface.Dashboard administrasi menampilkan periode, antrean review, nilai permintaan, peringatan inventaris, dan partisipasi dalam satu antarmuka.

Jump to screenshotsLangsung ke screenshot bukti
AccessAkses
One controlled account per divisionSatu akun terkontrol per divisi
SubmissionPengajuan
Supervisors or designated staff submit requestsSPV atau petugas yang ditunjuk mengajukan permintaan
AdministrationAdministrasi
Admin GA controls review and fulfillmentAdmin GA mengelola review dan realisasi
TraceabilityKetertelusuran
Stock and handover records remain traceableStok dan dokumen serah terima dapat ditelusuri

The initial problemMasalah awal

Cross-department requests require more than a submission form. Admin GA needs to control request periods, review individual items, compare demand, manage warehouse stock, record actual fulfillment, and produce accountable handover documents.Permintaan lintas divisi membutuhkan lebih dari sekadar form pengajuan. Admin GA perlu mengatur periode, meninjau setiap barang, membandingkan kebutuhan, mengelola stok gudang, mencatat realisasi, dan menghasilkan dokumen serah terima yang dapat dipertanggungjawabkan.

Role and responsibilitiesPeran dan tanggung jawab

I designed the end-to-end workflow and relational data model, developed the Laravel application, separated business rules into services, implemented role-based access, and added stock control, Excel reporting, PDF receipts, and digital signatures.Saya merancang workflow end-to-end dan model data relasional, mengembangkan aplikasi Laravel, memisahkan business rule ke dalam service, menerapkan akses berbasis peran, serta menambahkan kontrol stok, laporan Excel, tanda terima PDF, dan tanda tangan digital.

Project constraintsBatasan project

  • Admin GA and division users require different data visibility and permitted actions within the same workflow.Admin GA dan pengguna divisi membutuhkan visibilitas data serta tindakan yang berbeda dalam workflow yang sama.
  • Inventory movements and realized quantities must remain consistent with review decisions and receipt documents.Pergerakan stok dan jumlah realisasi harus konsisten dengan keputusan review serta dokumen tanda terima.
  • Matrix reports, comparisons, Excel exports, and PDFs must use the same validated operational data.Laporan matrix, perbandingan, export Excel, dan PDF harus menggunakan data operasional tervalidasi yang sama.

How the system worksCara kerja sistem

A direct path from the first input to the operational result.Alur langsung dari input pertama hingga hasil operasional.

Open a request periodBuka periode permintaan

Admin GA creates an active submission window. Each division's supervisor, or a person they designate, then prepares and submits the division's inventory needs through its dedicated account.Admin GA membuat periode pengajuan aktif. SPV setiap divisi, atau petugas yang ditunjuk, kemudian menyiapkan dan mengirim kebutuhan inventaris melalui akun khusus divisinya.

Review each itemReview setiap barang

Admin GA approves, partially approves, or rejects each item and records supporting notes.Admin GA menyetujui, menyetujui sebagian, atau menolak setiap barang serta mencatat keterangannya.

Realize and update stockRealisasikan dan perbarui stok

Actual handover quantities are recorded against approved items and connected to warehouse inventory.Jumlah barang yang benar-benar diserahkan dicatat berdasarkan hasil persetujuan dan dihubungkan dengan inventaris gudang.

Report and document handoverLaporkan dan dokumentasikan serah terima

Recaps, period comparisons, Excel exports, and signed PDF receipts provide a consistent operational record.Rekap, perbandingan periode, export Excel, dan tanda terima PDF bertanda tangan menyediakan catatan operasional yang konsisten.

Technical decisionsKeputusan teknis

The stack was selected around the workflow, deployment environment, and maintenance needs.Tech stack dipilih berdasarkan workflow, lingkungan deployment, dan kebutuhan pemeliharaan.

Laravel monolith with session authenticationMonolit Laravel dengan autentikasi session

Laravel 13, Blade, Breeze, and Alpine.js keep authentication, interface, and server workflow in one maintainable application.Laravel 13, Blade, Breeze, dan Alpine.js menyatukan autentikasi, antarmuka, serta workflow server dalam satu aplikasi yang mudah dipelihara.

Service-layer business rulesBusiness rule pada service layer

Inventory, realization, receipt, and import logic live in dedicated services instead of interface controllers.Logic inventaris, realisasi, tanda terima, dan import ditempatkan dalam service khusus, bukan pada controller antarmuka.

Role-based authorizationOtorisasi berbasis peran

Admin GA controls periods, reviews, fulfillment, and inventory. Each division has one account held by its supervisor and used by the supervisor or designated staff within that division's request scope.Admin GA mengatur periode, review, realisasi, dan inventaris. Setiap divisi memiliki satu akun yang dipegang SPV dan digunakan oleh SPV atau petugas yang ditunjuk dalam ruang lingkup permintaan divisinya.

Documents generated from operational dataDokumen dihasilkan dari data operasional

PhpSpreadsheet, DomPDF, and signature capture turn validated request data into reports and handover evidence.PhpSpreadsheet, DomPDF, dan perekaman tanda tangan mengubah data permintaan tervalidasi menjadi laporan serta bukti serah terima.

BackendBackend

PHP 8.3+ and Laravel 13

Provide the application foundation and server-side workflow.Menjadi fondasi aplikasi dan workflow sisi server.

Eloquent ORM and migrations

Model relational data and controlled schema changes.Memodelkan data relasional dan perubahan skema yang terkontrol.

Laravel Breeze

Handles session-based Blade authentication.Menangani autentikasi Blade berbasis session.

Service layer

Separates inventory, realization, receipt, and import rules from controllers.Memisahkan aturan inventaris, realisasi, tanda terima, dan import dari controller.

Role-based access

Separates Admin GA capabilities from division-user actions.Memisahkan kemampuan Admin GA dari tindakan pengguna divisi.

FrontendFrontend

Blade and Alpine.js

Build the server-rendered interface and lightweight interactions.Membangun antarmuka server-rendered dan interaksi ringan.

Tailwind CSS and @tailwindcss/forms

Provide the interface styling and consistent form controls.Menyediakan styling antarmuka dan kontrol form yang konsisten.

Chart.js

Visualizes dashboard and participation data.Memvisualisasikan data dashboard dan partisipasi.

Vite and Laravel Vite plugin

Build and serve frontend assets.Membangun dan menyajikan aset frontend.

Database and storageDatabase dan storage

MySQL

Stores production application data.Menyimpan data aplikasi production.

Database sessions and queues

Keep sessions and queued work within the database driver.Menangani session dan antrean kerja melalui database driver.

Local file storage

Stores receipt and import files.Menyimpan file tanda terima dan import.

Integrations and documentsIntegrasi dan dokumen

PhpSpreadsheet

Supports Excel import and export workflows.Mendukung workflow import dan export Excel.

DomPDF

Generates PDF handover receipts.Menghasilkan tanda terima serah terima dalam format PDF.

Digital signature pad

Captures handover signatures for receipt documents.Merekam tanda tangan serah terima untuk dokumen tanda terima.

Quality and toolingQuality dan tooling

PHPUnit

Covers feature and unit testing.Mencakup pengujian feature dan unit.

Laravel Pint

Maintains consistent PHP code style.Menjaga konsistensi gaya kode PHP.

Composer, npm, and Git

Manage dependencies, assets, and version control.Mengelola dependency, aset, dan version control.

Screens and evidenceScreenshot dan bukti

Each image documents a real part of the interface or delivery.Setiap gambar mendokumentasikan bagian nyata dari antarmuka atau proses delivery.

Open any image to inspect the full-size screen.Buka gambar untuk melihat tampilan dalam ukuran penuh.

Admin GAAdmin GA

Administration screens covering request periods, review, fulfillment, reporting, inventory, and handover documents.Tampilan administrasi yang mencakup periode permintaan, review, realisasi, pelaporan, inventaris, dan dokumen serah terima.

Admin GA inventory request dashboard

The dashboard highlights active periods, pending reviews, request values, stock alerts, and participation.Dashboard menampilkan periode aktif, antrean review, nilai permintaan, peringatan stok, dan partisipasi.

Inventory request period management

Admin GA controls the submission window for each request period.Admin GA mengatur rentang waktu pengajuan untuk setiap periode permintaan.

Inventory request review queue

The review queue supports filtering and bulk decisions across division submissions.Antrean review mendukung filter dan keputusan massal untuk pengajuan divisi.

Item-level inventory request review

Each requested item can be approved, partially approved, or rejected with an administrative note.Setiap barang dapat disetujui, disetujui sebagian, atau ditolak beserta catatan administratif.

Inventory request realization workflow

The realization view connects review results, actual handover quantities, and receipt documents.Tampilan realisasi menghubungkan hasil review, jumlah barang yang diserahkan, dan dokumen tanda terima.

Cross-division inventory recap matrix

A matrix summarizes quantities and values by item and division with multiple export options.Matrix merangkum jumlah dan nilai berdasarkan barang serta divisi dengan beberapa pilihan export.

Inventory request period comparison

Period comparison makes changes in requested and approved values visible by division.Perbandingan periode memperlihatkan perubahan nilai permintaan dan persetujuan per divisi.

GA warehouse stock management

Warehouse stock, incoming stock, adjustments, and low-stock states are managed from one screen.Stok gudang, barang masuk, penyesuaian, dan status stok rendah dikelola dari satu layar.

Digital proof of inventory realization

The system generates a printable PDF handover receipt with realization details and three digital signature fields.Sistem menghasilkan tanda terima PDF siap cetak berisi detail realisasi dan tiga area tanda tangan digital.

Division UserPengguna Divisi

Division-user screens covering active periods, request preparation, submission confirmation, receipt documents, and request history.Tampilan pengguna divisi yang mencakup periode aktif, penyusunan permintaan, konfirmasi pengajuan, dokumen tanda terima, dan riwayat permintaan.

Division user inventory request dashboard

The dashboard summarizes the active period, remaining time, submission status, request value, realization, and recent history.Dashboard merangkum periode aktif, sisa waktu, status pengajuan, nilai permintaan, realisasi, dan riwayat terbaru.

Division inventory request form

Users select quantities from the GA item master, search the catalog, and can copy a previous period as a starting point.Pengguna memilih jumlah dari master barang GA, mencari katalog, dan dapat menyalin periode sebelumnya sebagai titik awal.

Inventory request submission confirmation

A confirmation step presents the selected items and estimated total before the request is submitted.Tahap konfirmasi menampilkan barang terpilih dan estimasi total sebelum permintaan dikirim.

Inventory request submission receipt

The system generates proof of submission with item details, status, value, and signature fields for the handover process.Sistem menghasilkan bukti pengajuan berisi detail barang, status, nilai, dan area tanda tangan untuk proses serah terima.

Division inventory request history

Request history keeps pending, approved, and completed periods visible with submission and review dates.Riwayat menjaga periode menunggu, disetujui, dan selesai tetap terlihat beserta tanggal pengajuan dan review.

Back to case studyKembali ke studi kasus

Results and outcomesHasil dan dampak

The system connects controlled division accounts with Admin GA's review, stock-aware fulfillment, reporting, and signed handover process in one traceable workflow.Sistem menghubungkan akun divisi yang terkontrol dengan proses review Admin GA, realisasi berbasis stok, pelaporan, dan serah terima bertanda tangan dalam satu workflow yang dapat ditelusuri.

AccessAkses

One controlled account per divisionSatu akun terkontrol per divisi

SubmissionPengajuan

Supervisors or designated staff submit requestsSPV atau petugas yang ditunjuk mengajukan permintaan

AdministrationAdministrasi

Admin GA controls review and fulfillmentAdmin GA mengelola review dan realisasi

TraceabilityKetertelusuran

Stock and handover records remain traceableStok dan dokumen serah terima dapat ditelusuri

What I learnedHal yang dipelajari

Item-level decisions need an explicit relationship between requested, approved, and realized quantities.Keputusan per barang membutuhkan relasi yang jelas antara jumlah diminta, disetujui, dan direalisasikan.

Stock management becomes more reliable when fulfillment uses the same inventory rules and data source.Pengelolaan stok menjadi lebih andal ketika realisasi menggunakan aturan inventaris dan sumber data yang sama.

Operational documents are strongest when generated from validated records rather than retyped manually.Dokumen operasional lebih kuat ketika dihasilkan dari data tervalidasi, bukan diketik ulang secara manual.

Need software that fits your business?Membutuhkan software yang sesuai dengan bisnis Anda?

Tell me about the workflow, inventory process, reporting task, web application, or customer-facing website you need to improve.Ceritakan workflow, proses inventaris, pekerjaan laporan, aplikasi web, atau website untuk pelanggan yang ingin Anda perbaiki.

Discuss your software projectDiskusikan project software Anda