Product Requirement Document
Section Description
Title PHP / Fullstack Developer Test
Change History 25-08-2025
Objective Mengetahui Kemampuan Kandidat Developer
Success Metrics 1. Functional Completion
Semua fitur utama yang dijelaskan dalam User Stories berfungsi dengan baik
(Login, CRUD Makanan, List Meja, Open/Close Order, Detail Order, dsb).
Minimal 60% fitur utama selesai dan dapat digunakan sesuai kriteria
penerimaan.
2. Code Quality & Best Practices
Struktur project backend dan frontend yang baik (misalnya Pemisahan
Controller atau Module untuk Laravel, Pemisahan Page, Component, Utility,
etc). Commit history jelas, step-by-step, dan mencerminkan progres
pengerjaan.
3. Technical Soundness
API berjalan stabil, dapat diakses oleh frontend tanpa error. Error handling dan
validasi input tersedia di sisi backend & frontend. Database migration & seeder
dapat dijalankan tanpa masalah.
4. UI/UX & Usability
Tampilan frontend sesuai alur yang diminta (login → dashboard → pesanan →
pembayaran). Aplikasi dapat dipakai tanpa training panjang (intuitif).
5. Performance & Reliability
Respon API < 500ms untuk operasi standar (CRUD, login), Tidak ada query N+1.
6. Submission & Delivery
Repository Git public dan dapat di-clone tanpa masalah. [Link] tersedia
berisi langkah setup aplikasi (backend & frontend).
Timeline Paling lambat 5 Hari sejak email Diterima, Lebih cepat dianggap sebagai nilai
tambah
Sample Lihat Contoh
Others Tech Stack
- Backend : Laravel 12.x
- Frontend : React JS / Vue / Livewire / Blade (React JS lebih
direkomendasikan)
Tips :
Untuk React JS Anda bisa menggunakan Starter dari
MUI: A popular React UI framework atau turunan lainnya, bisa menjadi nilai
tambah, atau kamu bisa menggunakan template lain yang biasa kamu gunakan
Assessment Material Anda bisa memilih untuk menyelesaikan sebagian atau seluruh fitur yang
diminta.
Backend (API) :
- Login Multiple Role (Pelayan, Kasir)
- CRUD Makanan
- List Meja (Tidak Perlu CRUD, bisa ditambah dari Seeder, atau Config
Untuk Jumlah Meja Available)
- Open Order (Membuka Order baru ke meja yang masih kosong)
- Detail Order
- Tambah Makanan / Minuman kedalam Order
- Tutup Order
- List Order
- Generate Receipt PDF
Frontend (React / Vue / Livewire / Blade) :
- Login
- Dashboard / List Meja & Status Meja
- Master Makanan
- List Order
- Detail Order
Silahkan menambahkan Menu, Modul, atau Fitur yang dirasa perlu, bisa
menjadi nilai tambah.
Submit Method Masukkan progress pengerjaan anda ke dalam sebuah git repository. Jika
dibutuhkan anda dapat memisah backend dan frontend. Jangan lupa membuat
repository menjadi public. Jika pekerjaan tidak selesai silahkan sertakan
Screenshot dari progress pengerjaan di local kamu ke dalam folder ScreenShots
di git repository anda.
Kirim informasi hasil pengerjaan kamu ke hrd@[Link]
Tips: buat commit step by step dari pengerjaan kamu sesuai progress yang
kamu capai
User Stories & Kriteria Penerimaan
User Story Kriteria Penerimaan Pengguna
Sebagai Tamu, saya dapat melihat daftar Tanpa login, halaman utama menampilkan
meja yang kosong. daftar meja yang tersedia dan yang sedang
digunakan.
Sebagai Pelayan atau Kasir, saya dapat Berhasil login ke aplikasi.
login.
Sebagai Pelayan, saya dapat membuat Berdasarkan dashboard atau daftar meja,
pesanan / order baru di meja yang masih dapat membuka pesanan baru di meja yang
kosong. masih kosong.
Sebagai Pelayan, saya dapat menambah Dalam pesanan yang sudah terbuka, saya
makanan ke dalam pesanan. dapat menambahkan makanan atau
minuman.
Sebagai Pelayan, saya dapat menutup atau Dalam pesanan, saya dapat menutup atau
menyelesaikan pesanan. menyelesaikan pesanan.
Sebagai Pelayan, saya dapat Dalam menu Makanan, saya dapat
menambahkan data makanan atau menambah, mengubah, dan menghapus
minuman. data masakan atau minuman.
Sebagai Kasir, saya dapat menutup dan Dalam daftar pesanan, dapat menutup
menyelesaikan pesanan. pesanan dan mendapatkan hasil
perhitungan harga dari pesanan.
Example
Dashboard / Table List
Detail Pesanan / Order
Master Makanan
[Bring Your Creativity]
List Pesanan / Order
[Bring Your Creativity]
Login
[Bring Your Creativity]