GoodGigs - Freelance Gig Marketplace Platform
Modern fullstack freelance gig marketplace platform with role-based auth, real-time messaging, and order tracking.
GoodGigs adalah platform marketplace freelance modern yang mempertemukan talenta digital dengan pemilik proyek. Platform ini menyediakan alur kerja terpadu mulai dari posting gig, pengajuan proposal, negosiasi real-time, hingga pelacakan milestone pekerjaan.
1. Tantangan & Kebutuhan Sistem
- Tantangan 1: Membangun interaksi antarmuka Single Page Application (SPA) yang cepat tanpa mengorbankan keamanan routing sisi server.
- Tantangan 2: Mengelola otentikasi berbasis multi-role (Client, Freelancer, Admin) dengan permission kontrol yang ketat.
- Tantangan 3: Menyediakan alur komunikasi real-time untuk diskusi proyek dan pertukaran berkas deliverables.
2. Keputusan Desain & Arsitektur Teknis
Mengadopsi stack Laravel 11 dengan React dan Inertia.js untuk menjembatani server-driven UI dengan dynamic client state:
// Contoh controller dispatch proposal submission via Inertia
export function submitProposal(gigId: string, payload: ProposalForm) {
return router.post(`/gigs/${gigId}/proposals`, payload, {
preserveScroll: true,
onSuccess: () => {
toast.success("Proposal berhasil diajukan ke klien!");
},
onError: (errors) => {
console.error("Gagal mengirim proposal:", errors);
}
});
}3. Hasil & Dampak Metrik (Key Results)
- Kecepatan Navigasi: Transisi halaman instan berkat SPA hydration via Inertia.js.
- Keamanan Alur Transaksi: Role-based access control (RBAC) pada level middleware Laravel.
- Efisiensi Kerja: Alur pengajuan dan review proposal lebih ringkas dengan live validation form.
4. Kesimpulan & Pelajaran Teknis
Penggunaan Inertia.js mempercepat siklus development fullstack secara signifikan dengan mempertahankan kesederhanaan arsitektur MVC Laravel tanpa perlu mengelola lapisan API REST terpisah.
UI components, state machine, and reactive client rendering layer.
Server endpoints, relational data layer, and database architecture.
Deployment pipelines, environment configuration, and support libraries.