Nexus ERP Suite - Multi-Tenant
Detail Proyek
Nexus ERP Suite — Multi-Tenant Enterprise Resource Planning
Platform ERP multi-tenant untuk Human Capital Management — manajemen user & role, lifecycle karyawan, kontrak kerja, cuti, hingga approval workflow dalam satu ekosistem API-first. Berkontribusi sebagai Fullstack Engineer dalam tim, berfokus pada modul HR Operations (onboarding, offboarding, contract, leave) dan stabilisasi kualitas produk secara keseluruhan.
Ringkasan Proyek
- Kategori: Personal Project
- Peran: Fullstack Engineer
- Tech Stack: Laravel 12, PHP 8.2+, PostgreSQL, Laravel Sanctum, Spatie Permission, React (TypeScript), Vite, Axios, React Router
Latar Belakang / Ide Awal
Proses operasional HR dan administrasi perusahaan kerap terhambat oleh penggunaan spreadsheet yang terpisah-pisah, rawan human error, sulit diaudit, serta tidak memiliki alur approval yang konsisten. Kondisi ini menyulitkan perusahaan saat harus melakukan ekspansi ke skala multi-cabang atau multi-entitas bisnis.
Nexus ERP Suite dikembangkan untuk menyatukan operasional tersebut dalam satu sistem terstandarisasi. Fokus kontribusi saya ditujukan pada penguatan modul operasional HR yang berinteraksi langsung dengan pengguna harian — meliputi siklus employee lifecycle (onboarding, offboarding, pengelolaan kontrak, dan pengajuan cuti) — sekaligus melakukan pembenahan kualitas sistem secara menyeluruh pada codebase yang sedang berjalan.
Kontribusi Saya (Fullstack Engineer)
- Implementasi & Perbaikan Modul Lifecycle Karyawan: Mengembangkan dan menyempurnakan alur operasional Onboarding Tasks, Offboarding Checklist, Contract Management, dan Leave Requests.
- Pembenahan Bug Kritikal Backend: Memperbaiki validasi request, mengonfigurasi penanganan UUID pada model Eloquent, memastikan isolasi
tenant_idpada mass-assignment, serta menyelaraskan format payload API. - Sinkronisasi Kontrak API Frontend-Backend: Memetakan ulang endpoint transaksi, memperbaiki parsing response data paginated, dan menyelaraskan alur aksi (submit/edit/delete/sign).
- Refactoring & Standardisasi UI/UX: Menyeragamkan penggunaan komponen modal global, layout tabel data, pola formulir, serta penanganan state (empty/loading/pagination) agar kohesif dengan sistem desain aplikasi.
- Penguatan Pengalaman Pengguna (UX Hardening): Menerapkan penanganan submit state yang lebih robust, menyediakan data fallback, dan merapikan komponen antarmuka agar dapat digunakan kembali (reusable).
Fitur Utama Produk
-
Multi-Tenant Identity & Access
Isolasi data multi-tenant berbasistenant_id, Role-Based Access Control (RBAC) dengan permissions granular, manajemen pengguna (create/edit/suspend/delete), dan pencatatan audit trail. -
Human Capital Management
Direktori dan profil karyawan, manajemen departemen/jabatan, pengajuan dan saldo cuti, sequential approval workflow engine, serta siklus karyawan (onboarding, offboarding, promotion, transfer, contract management & expiring alerts). -
Operational & System Tools
Manajemen menu dinamis, sandbox notifikasi (FCM) dan email, serta activity logs untuk pemantauan perubahan data.
Tech Stack & Arsitektur
Backend menggunakan Laravel 12 dengan basis data PostgreSQL, autentikasi berbasis Laravel Sanctum, serta Spatie Permission untuk pengelolaan RBAC. Sistem memanfaatkan Eloquent Global Tenant Scope, SoftDeletes, dan Activity Log untuk menjamin keamanan data. Frontend menggunakan React (TypeScript) berbasis Vite dengan arsitektur komponen modular (atoms, shared, layout). Seluruh sistem berarsitektur stateless API-first dengan isolasi data multi-tenant di tingkat baris (row-level isolation).
Tantangan Teknis & Solusi
- Kegagalan Penyimpanan Data pada Modul Operasional:
Penyebab: Penggunaan metode pengambilan validasi yang tidak tepat pada Form Request, belum aktifnya penanganan UUID pada model, serta variabeltenant_idyang belum terdaftar pada properti$fillable.
Solusi: Menstandarkan pemanggilan$validated = $request->validate(...), mengaktifkan traitHasUuids, dan melengkapi konfigurasi$fillablepada model terkait. - Data Tersimpan Namun Tidak Tampil pada Tabel List:
Penyebab: Kueri indeks halaman hanya mengambil data dengan status aktif secara kaku.
Solusi: Memperbarui struktur kueri listing agar menampilkan seluruh data secara lengkap dengan pengurutan data aktif di urutan teratas. - Inkonsistensi Endpoint & Struktur Data Frontend-Backend:
Penyebab: Pemanggilan endpoint sumber data karyawan yang kurang tepat pada modul kontrak serta parsing response paginated yang tidak seragam.
Solusi: Mengarahkan pemanggilan endpoint secara presisi (/employees) dan menormalisasi parser response (data.datadengan penanganan fallback). - Inkonsistensi Antarmuka antar Modul:
Penyebab: Pencampuran gaya visual lama dan baru pada komponen tabel serta modal.
Solusi: Melakukan refactoring antarmuka secara bertahap menuju pola desain terstandar (layout card, action bar, modal atom).
Pembelajaran & Catatan Teknis
- Memahami teknik debugging dan penelusuran masalah lintas layer (validasi backend, model data, hingga parsing response di frontend) pada codebase yang sedang berkembang.
- Menguasai teknik pembenahan dan standardisasi komponen UI pada aplikasi skala menengah-besar dengan banyak kontributor.
- Memahami implementasi arsitektur multi-tenant row-level isolation dan RBAC granular dalam menjaga integritas serta keamanan data enterprise.
Spesifikasi Proyek
Ingin Proyek Serupa?
Tim ahli kami siap membantu Anda merealisasikan inovasi sistem software terbaik.
Project Showcase
9 Tangkapan Layar





Proyek Lainnya
Jelajahi karya rekayasa perangkat lunak lainnya.

Koperasi Sedia
Cooperative core banking platform: automated savings, flat & annuity loans, daily cash register, proportional dividend allocation, and print-ready legal loan agreements.

SupportSense AI
Autonomous enterprise AI customer support engine fusing Hybrid RAG + KAG (PostgreSQL & ChromaDB) for zero-hallucination order tracking and cost-efficient sub-second routing.

Bizinsight AI
BizInsight AI adalah sistem Multi-Agent yang mengubah pertanyaan bisnis sehari-hari menjadi query database, grafik interaktif, dan wawasan bisnis otomatis tanpa perlu paham SQL.