Your all-in-one platform for booking company resources.
Apply filters to see available resources
RM 10.00
RM 10.00
RM 135,000.00
RM 80.00
RM 3,100.00
RM 3,200.00
RM 30.00
RM 570.00
RM 125.00
RM 350.00
RM 100.00
Help us improve the system with your ideas and suggestions
Peranan: Staff Role: Staff
RD BookHub ialah sistem tempahan sumber yang membolehkan kakitangan menempah peralatan, kenderaan, bilik mesyuarat, dan sumber lain secara dalam talian.
Jadual 1.1: Fungsi Staff
| Bil. | Fungsi | Keterangan |
|---|---|---|
| 1 | Layari & Cari Sumber | Layari dan cari sumber yang tersedia |
| 2 | Buat Tempahan | Buat tempahan baru (individu atau kumpulan) |
| 3 | Urus Tempahan Sendiri | Lihat dan batalkan tempahan sendiri |
| 4 | Kutip Sumber | Kutip sumber yang telah diluluskan |
| 5 | Pulangkan Sumber | Pulangkan sumber yang telah dikutip |
| 6 | Beri Ulasan | Beri ulasan selepas pemulangan |
| 7 | Kemaskini Profil | Kemaskini maklumat peribadi |
| 8 | Eksport Tempahan | Eksport senarai tempahan ke Excel |
RD BookHub is a resource booking system that allows staff to book equipment, vehicles, meeting rooms, and other resources online.
Table 1.1: Staff Functions
| No. | Function | Description |
|---|---|---|
| 1 | Browse & Search Resources | Browse and search available resources |
| 2 | Create Bookings | Create new bookings (individual or group) |
| 3 | Manage Own Bookings | View and cancel your own bookings |
| 4 | Collect Resources | Collect approved resources |
| 5 | Return Resources | Return collected resources |
| 6 | Submit Reviews | Submit reviews after returning resources |
| 7 | Update Profile | Update personal information |
| 8 | Export Bookings | Export booking list to Excel |
Jika anda belum mempunyai akaun:
Jadual 2.1: Langkah Pendaftaran
| Langkah | Tindakan |
|---|---|
| 1 | Pergi ke halaman log masuk (/login) |
| 2 | Klik pautan "Register here" |
| 3 | Isi borang pendaftaran dalam modal |
| 4 | Klik "Register" |
| 5 | Semak e-mel untuk pautan pengesahan |
| 6 | Klik pautan pengesahan untuk mengaktifkan akaun |
| 7 | Log masuk dengan kelayakan anda |
Jadual 2.2: Medan Borang Pendaftaran
| Medan | Keterangan | Wajib? |
|---|---|---|
| Full Name | Nama penuh anda | Ya |
| IC Last 4 Digits | 4 digit terakhir nombor IC anda | Ya |
| Alamat e-mel aktif | Ya | |
| Phone Number | Nombor telefon | Ya |
| Department | Jabatan (pilih dari senarai) | Tidak |
| Password | Kata laluan (minimum 8 aksara) | Ya |
| Confirm Password | Ulang kata laluan | Ya |
Jadual 2.3: Ralat Pendaftaran
| Ralat | Punca |
|---|---|
| "Email already registered" | E-mel sudah digunakan oleh akaun lain |
| "IC already registered" | IC sudah digunakan |
| "Password must be at least 8 characters" | Kata laluan terlalu pendek |
| "Passwords do not match" | Kata laluan tidak sepadan |
Jadual 2.4: Langkah Log Masuk
| Langkah | Tindakan |
|---|---|
| 1 | Pergi ke /login |
| 2 | Masukkan IC Last 4 Digits dan Password |
| 3 | (Pilihan) Tandakan "Remember Me" |
| 4 | Klik "Sign In" |
Jadual 2.5: Situasi Khas Log Masuk
| Situasi | Apa Yang Berlaku |
|---|---|
| IC tidak dijumpai | Mesej ralat "No account found" + pilihan untuk mendaftar |
| Kata laluan salah | Mesej ralat "These credentials do not match" |
| E-mel belum disahkan | Diminta untuk mengesahkan e-mel terlebih dahulu |
| 2FA diaktifkan | Dialihkan ke halaman pengesahan dua faktor |
Jadual 2.6: Langkah Reset Kata Laluan
| Langkah | Tindakan |
|---|---|
| 1 | Di halaman log masuk, klik "Forgot your password?" |
| 2 | Masukkan alamat e-mel anda |
| 3 | Klik "Send Password Reset Link" |
| 4 | Semak e-mel untuk pautan reset |
| 5 | Klik pautan dan tetapkan kata laluan baru |
Jika 2FA diaktifkan pada akaun anda:
If you do not yet have an account:
Table 2.1: Registration Steps
| Step | Action |
|---|---|
| 1 | Go to the login page (/login) |
| 2 | Click the "Register here" link |
| 3 | Fill in the registration form in the modal |
| 4 | Click "Register" |
| 5 | Check your email for the verification link |
| 6 | Click the verification link to activate your account |
| 7 | Log in with your credentials |
Table 2.2: Registration Form Fields
| Field | Description | Required? |
|---|---|---|
| Full Name | Your full name | Yes |
| IC Last 4 Digits | Last 4 digits of your IC number | Yes |
| Active email address | Yes | |
| Phone Number | Phone number | Yes |
| Department | Department (select from list) | No |
| Password | Password (minimum 8 characters) | Yes |
| Confirm Password | Re-enter password | Yes |
Table 2.3: Registration Errors
| Error | Cause |
|---|---|
| "Email already registered" | Email is already in use by another account |
| "IC already registered" | IC is already in use |
| "Password must be at least 8 characters" | Password is too short |
| "Passwords do not match" | Passwords do not match |
Table 2.4: Login Steps
| Step | Action |
|---|---|
| 1 | Go to /login |
| 2 | Enter your IC Last 4 Digits and Password |
| 3 | (Optional) Check "Remember Me" |
| 4 | Click "Sign In" |
Table 2.5: Special Login Situations
| Situation | What Happens |
|---|---|
| IC not found | Error message "No account found" + option to register |
| Wrong password | Error message "These credentials do not match" |
| Email not verified | Prompted to verify email first |
| 2FA enabled | Redirected to two-factor authentication page |
Table 2.6: Password Reset Steps
| Step | Action |
|---|---|
| 1 | On the login page, click "Forgot your password?" |
| 2 | Enter your email address |
| 3 | Click "Send Password Reset Link" |
| 4 | Check your email for the reset link |
| 5 | Click the link and set a new password |
If 2FA is enabled on your account:
URL: /dashboard
Selepas log masuk, anda akan dibawa ke halaman Dashboard.
Jadual 3.1: Kad Statistik Dashboard Staff
| Kad | Keterangan |
|---|---|
| My Bookings | Jumlah semua tempahan anda |
| Pending Approval | Bilangan tempahan yang menunggu kelulusan admin |
| Total Bookings | Jumlah tempahan bulan ini. Sub-badge menunjukkan bilangan collected, overdue, missed dan completed |
Kalendar interaktif menunjukkan semua tempahan mengikut tarikh. Anda boleh:
Jadual menunjukkan 10 tempahan terkini anda dengan:
Klik "View All" untuk pergi ke halaman Tempahan Saya.
URL: /dashboard
After logging in, you will be taken to the Dashboard page.
Table 3.1: Staff Dashboard Statistics Cards
| Card | Description |
|---|---|
| My Bookings | Total number of all your bookings |
| Pending Approval | Number of bookings awaiting admin approval |
| Total Bookings | Total bookings this month. Sub-badges show collected, overdue, missed and completed counts |
An interactive calendar displays all your bookings by date. You can:
A table displays your 10 most recent bookings with:
Click "View All" to go to the My Bookings page.
URL: /resources
Jadual 4.1: Penapis Sumber
| Penapis | Keterangan |
|---|---|
| Search | Cari mengikut nama sumber |
| Start Date & Time | Tarikh dan masa mula |
| End Date & Time | Tarikh dan masa tamat |
| Category | Tapis mengikut kategori |
| Location | Tapis mengikut lokasi |
Klik "Apply" untuk menapis, atau "Reset" untuk bersihkan semua penapis.
Setiap sumber dipaparkan sebagai kad yang menunjukkan:
Jadual 4.2: Status Ketersediaan
| Status | Keterangan |
|---|---|
| Available | Boleh ditempah untuk tarikh yang dipilih |
| Unavailable | Sudah ditempah pada waktu tersebut |
URL: /resources
Table 4.1: Resource Filters
| Filter | Description |
|---|---|
| Search | Search by resource name |
| Start Date & Time | Start date and time |
| End Date & Time | End date and time |
| Category | Filter by category |
| Location | Filter by location |
Click "Apply" to filter, or "Reset" to clear all filters.
Each resource is displayed as a card showing:
Table 4.2: Availability Status
| Status | Description |
|---|---|
| Available | Can be booked for the selected dates |
| Unavailable | Already booked for the selected time |
Jadual 5.1: Langkah Tambah ke Troli
| Langkah | Tindakan |
|---|---|
| 1 | Dari halaman Browse Resources, pilih sumber yang tersedia |
| 2 | Klik "Add to Cart" atau "Book" |
| 3 | Sumber akan ditambah ke troli anda |
| 4 | Anda boleh menambah beberapa sumber sebelum checkout |
URL: /cart
Di halaman troli, anda boleh:
Jadual 5.2: Langkah Checkout
| Langkah | Tindakan |
|---|---|
| 1 | Di halaman troli, semak semua item |
| 2 | Klik "Checkout" — modal pengesahan akan muncul |
| 3 | Isi Tujuan Tempahan (wajib) |
| 4 | Tambah Peserta (pilihan) — taip nama dan tekan Enter |
| 5 | Masukkan IC 4 Digit Terakhir untuk pengesahan |
| 6 | Klik "Confirm & Checkout" |
Jadual 5.3: Semakan Semasa Checkout
| Semakan | Keterangan |
|---|---|
| Tarikh Akhir Tempahan | Tempahan mestilah dibuat sekurang-kurangnya X hari kerja sebelum tarikh mula |
| Konflik Masa | Sumber tidak boleh bertindih dengan tempahan lain yang masih aktif |
| Pengesahan IC | IC 4 digit terakhir mesti sepadan dengan rekod anda |
Jadual 5.4: Keputusan Selepas Checkout
| Situasi | Keputusan |
|---|---|
| Sumber tidak memerlukan kelulusan | Tempahan terus APPROVED |
| Sumber memerlukan kelulusan | Tempahan berstatus PENDING |
| Berbilang item | Dicipta sebagai Group Booking dengan nombor kumpulan unik |
Table 5.1: Add to Cart Steps
| Step | Action |
|---|---|
| 1 | From the Browse Resources page, select an available resource |
| 2 | Click "Add to Cart" or "Book" |
| 3 | The resource will be added to your cart |
| 4 | You can add multiple resources before checkout |
URL: /cart
On the cart page, you can:
Table 5.2: Checkout Steps
| Step | Action |
|---|---|
| 1 | On the cart page, review all items |
| 2 | Click "Checkout" — a confirmation modal will appear |
| 3 | Enter Purpose of Booking (required) |
| 4 | Add Participants (optional) — type a name and press Enter |
| 5 | Enter your IC Last 4 Digits for verification |
| 6 | Click "Confirm & Checkout" |
Table 5.3: Checkout Validation Checks
| Check | Description |
|---|---|
| Booking Deadline | Bookings must be made at least X working days before the start date |
| Time Conflict | Resources cannot overlap with other active bookings |
| IC Verification | IC last 4 digits must match your records |
Table 5.4: Post-Checkout Outcomes
| Situation | Outcome |
|---|---|
| Resource does not require approval | Booking is immediately APPROVED |
| Resource requires approval | Booking is set to PENDING |
| Multiple items | Created as a Group Booking with a unique group number |
URL: /bookings
Jadual 6.1: Penapis Tempahan Saya
| Penapis | Keterangan |
|---|---|
| Search | Cari mengikut nombor tempahan atau nama sumber |
| Status | Tapis: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed |
| Category | Tapis mengikut kategori sumber |
Butang: "Start New Booking", "Export", "Reset"
Jadual 6.2: Lajur Jadual Tempahan
| Lajur | Keterangan |
|---|---|
| Booking # | Nombor tempahan (badge "GROUP" jika tempahan kumpulan) |
| Resource | Nama sumber |
| Start Date & Time | Tarikh dan masa mula |
| End Date & Time | Tarikh dan masa tamat |
| Status | Badge status |
| Actions | Butang tindakan mengikut status |
Jadual 6.3: Butang Tindakan
| Butang | Bila Muncul | Fungsi |
|---|---|---|
| View | Sentiasa | Lihat butiran tempahan |
| Collect | Status = Approved, dalam tetingkap masa | Kutip sumber |
| Return | Status = Collected | Pulangkan sumber |
| Review | Status = Returned, belum beri ulasan | Beri ulasan |
| Cancel | Status = Pending/Approved | Batalkan tempahan |
| Extend | Status = Approved/Collected/Overdue | Lanjutkan tempoh tempahan |
URL: /bookings
Table 6.1: My Bookings Filters
| Filter | Description |
|---|---|
| Search | Search by booking number or resource name |
| Status | Filter: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed |
| Category | Filter by resource category |
Buttons: "Start New Booking", "Export", "Reset"
Table 6.2: Bookings Table Columns
| Column | Description |
|---|---|
| Booking # | Booking number ("GROUP" badge for group bookings) |
| Resource | Resource name |
| Start Date & Time | Start date and time |
| End Date & Time | End date and time |
| Status | Status badge |
| Actions | Action buttons based on status |
Table 6.3: Action Buttons
| Button | When Shown | Function |
|---|---|---|
| View | Always | View booking details |
| Collect | Status = Approved, within time window | Collect resource |
| Return | Status = Collected | Return resource |
| Review | Status = Returned, no review yet | Submit review |
| Cancel | Status = Pending/Approved | Cancel booking |
| Extend | Status = Approved/Collected/Overdue | Extend booking duration |
URL: /bookings/{id}
Jadual 7.1: Paparan Kad Status
| Status | Paparan |
|---|---|
| Pending | Kad kuning — "Tempahan anda sedang menunggu kelulusan admin" |
| Approved | Kad hijau — "Sedia untuk kutipan" dengan tarikh/masa kutipan |
| Rejected | Kad merah — "Tempahan anda tidak diluluskan" |
| Collected | Kad biru — "Sila pulangkan mengikut masa" |
| Overdue | Kad merah — "Sila pulangkan segera!" |
| Completed | Kad sian — "Tempahan selesai" (sumber tanpa kutipan fizikal, cth: bilik mesyuarat) |
| Missed | Kad oren — "Tempahan tamat tempoh — sumber tidak dikutip" (sumber memerlukan kutipan fizikal) |
| Returned | Kad ungu — "Berjaya dipulangkan" |
| Cancelled | Kad kelabu — "Tempahan dibatalkan" |
Jika sumber telah dikutip/dipulangkan, bahagian ini menunjukkan:
URL: /bookings/{id}
Table 7.1: Status Card Display
| Status | Display |
|---|---|
| Pending | Yellow card — "Your booking is awaiting admin approval" |
| Approved | Green card — "Ready for collection" with collection date/time |
| Rejected | Red card — "Your booking was not approved" |
| Collected | Blue card — "Please return on time" |
| Overdue | Red card — "Please return immediately!" |
| Completed | Cyan card — "Booking completed" (non-collection resources, e.g. meeting rooms) |
| Missed | Orange card — "Booking expired — resource not collected" (collection-required resources) |
| Returned | Purple card — "Successfully returned" |
| Cancelled | Grey card — "Booking cancelled" |
If the resource has been collected/returned, this section shows:
Anda boleh mengutip sumber apabila:
Jadual 8.1: Langkah Kutipan
| Langkah | Tindakan |
|---|---|
| 1 | Dari My Bookings atau Booking Details, klik butang "Collect" |
| 2 | Modal kutipan akan muncul |
| 3 | Tandakan checkbox sumber yang diterima |
| 4 | Isi nota keadaan (pilihan) |
| 5 | Muat naik sekurang-kurangnya 1 gambar keadaan sumber |
| 6 | Klik "Confirm Collection" |
Jadual 8.2: Medan Modal Kutipan
| Medan | Keterangan | Wajib? |
|---|---|---|
| Resource Status | Checkbox — tandakan jika sumber diterima | Ya |
| Condition Notes | Nota keadaan sumber semasa kutipan | Tidak |
| Photos | Gambar keadaan sumber (minimum 1) | Ya |
Untuk tempahan kumpulan:
You can collect a resource when:
Table 8.1: Collection Steps
| Step | Action |
|---|---|
| 1 | From My Bookings or Booking Details, click the "Collect" button |
| 2 | A collection modal will appear |
| 3 | Check the checkbox for the received resource |
| 4 | Fill in condition notes (optional) |
| 5 | Upload at least 1 photo of the resource condition |
| 6 | Click "Confirm Collection" |
Table 8.2: Collection Modal Fields
| Field | Description | Required? |
|---|---|---|
| Resource Status | Checkbox — check if resource is received | Yes |
| Condition Notes | Notes on resource condition at collection | No |
| Photos | Photos of resource condition (minimum 1) | Yes |
For group bookings:
Jadual 9.1: Langkah Pemulangan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang "Return" dari My Bookings atau Booking Details |
| 2 | Modal pemulangan muncul |
| 3 | Tetapkan status setiap sumber (Returned / Missing) |
| 4 | Isi nota pemulangan (wajib jika ada item Missing) |
| 5 | Muat naik sekurang-kurangnya 1 gambar |
| 6 | Klik "Confirm Return" |
Jadual 9.2: Status Toggle Pemulangan
| Status | Keterangan |
|---|---|
| Returned | Sumber dipulangkan — biarkan checkbox ditandakan |
| Missing | Sumber hilang — nyahtanda checkbox |
Jika ada sumber ditandakan sebagai Missing:
is_available = false)Table 9.1: Return Steps
| Step | Action |
|---|---|
| 1 | Click the "Return" button from My Bookings or Booking Details |
| 2 | A return modal will appear |
| 3 | Set the status for each resource (Returned / Missing) |
| 4 | Fill in return notes (mandatory if any item is Missing) |
| 5 | Upload at least 1 photo |
| 6 | Click "Confirm Return" |
Table 9.2: Return Status Toggle
| Status | Description |
|---|---|
| Returned | Resource returned — leave checkbox checked |
| Missing | Resource missing — uncheck the checkbox |
If any resource is marked as Missing:
is_available = false)Jadual 10.1: Langkah Ulasan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang "Review" dari My Bookings atau Booking Details |
| 2 | Modal ulasan muncul |
| 3 | Pilih penilaian bintang (1–5) |
| 4 | Tulis komen (pilihan) |
| 5 | Klik "Submit Review" |
Jadual 10.2: Medan Modal Ulasan
| Medan | Keterangan | Wajib? |
|---|---|---|
| Rating | Penilaian bintang 1–5 | Ya |
| Comment | Komen terperinci | Tidak |
Table 10.1: Review Steps
| Step | Action |
|---|---|
| 1 | Click the "Review" button from My Bookings or Booking Details |
| 2 | A review modal will appear |
| 3 | Select a star rating (1–5) |
| 4 | Write a comment (optional) |
| 5 | Click "Submit Review" |
Table 10.2: Review Modal Fields
| Field | Description | Required? |
|---|---|---|
| Rating | Star rating 1–5 | Yes |
| Comment | Detailed comment | No |
Jadual 11.1: Langkah Pembatalan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang "Cancel" dari My Bookings atau Booking Details |
| 2 | Modal pengesahan muncul (nama sumber, nombor tempahan) |
| 3 | Klik "Yes, Cancel" untuk mengesahkan |
| 4 | Status tempahan bertukar kepada CANCELLED |
Table 11.1: Cancellation Steps
| Step | Action |
|---|---|
| 1 | Click the "Cancel" button from My Bookings or Booking Details |
| 2 | A confirmation modal appears (resource name, booking number) |
| 3 | Click "Yes, Cancel" to confirm |
| 4 | Booking status changes to CANCELLED |
Fungsi ini membolehkan anda melanjutkan tempoh tempahan sedia ada tanpa perlu membuat tempahan baru. Sistem akan menyemak ketersediaan sumber secara automatik.
Jadual 12.1: Langkah Pelanjutan Tempahan Individu
| Langkah | Tindakan |
|---|---|
| 1 | Dari My Bookings atau Booking Details, klik butang Extend (ikon jam) |
| 2 | Modal muncul menunjukkan tarikh/masa tamat semasa |
| 3 | Pilih tarikh tamat baru dan masa tamat baru |
| 4 | Klik "Extend Booking" untuk mengesahkan |
| 5 | Sistem menyemak ketersediaan dan melanjutkan tempahan |
Untuk tempahan kumpulan, anda boleh memilih mana-mana tempahan dalam kumpulan untuk dilanjutkan:
Jadual 12.2: Langkah Pelanjutan Tempahan Kumpulan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang Extend pada baris kumpulan |
| 2 | Modal muncul dengan senarai tempahan yang boleh dilanjutkan |
| 3 | Pilih tempahan yang ingin dilanjutkan (guna checkbox, boleh pilih semua) |
| 4 | Pilih tarikh tamat baru dan masa tamat baru |
| 5 | Klik "Extend Selected" untuk mengesahkan |
This feature allows you to extend the duration of an existing booking without creating a new one. The system will automatically check resource availability.
Table 12.1: Individual Extend Steps
| Step | Action |
|---|---|
| 1 | From My Bookings or Booking Details, click the Extend button (clock icon) |
| 2 | A modal appears showing the current end date/time |
| 3 | Select a new end date and new end time |
| 4 | Click "Extend Booking" to confirm |
| 5 | System checks availability and extends the booking |
For group bookings, you can select which bookings within the group to extend:
Table 12.2: Group Extend Steps
| Step | Action |
|---|---|
| 1 | Click the Extend button on the group row |
| 2 | A modal appears listing all extendable bookings in the group |
| 3 | Select bookings to extend (use checkboxes, select all available) |
| 4 | Select a new end date and new end time |
| 5 | Click "Extend Selected" to confirm |
Fungsi ini membolehkan kakitangan menghantar permohonan untuk membeli item. Permohonan akan disemak oleh Account dan diluluskan oleh Admin.
URL: /purchase-requests
Halaman ini memaparkan semua permohonan pembelian anda dengan penapis berikut:
Jadual 13.1: Penapis Permohonan
| Penapis | Keterangan |
|---|---|
| Search | Cari mengikut nombor permohonan, nama vendor, item |
| Status | Tapis mengikut status permohonan |
| Priority | Tapis mengikut keutamaan |
URL: /purchase-requests/create
Borang permohonan terdiri daripada 5 bahagian:
Bahagian 1: Maklumat Permohonan (auto-isi)
Bahagian 2: Maklumat Vendor / Syarikat
Jadual 13.2a: Medan Vendor
| Medan | Keterangan | Wajib? |
|---|---|---|
| Vendor / Company Name | Nama vendor atau syarikat | Tidak |
| Address | Alamat termasuk bandar, poskod | Tidak |
| Telephone | Nombor telefon vendor | Tidak |
| TIN No | Nombor Pengenalan Cukai | Tidak |
| Emel vendor | Tidak |
Bahagian 3: Item Yang Ingin Dibeli
Jadual dinamik — boleh tambah/buang baris item.
Jadual 13.2b: Medan Item
| Medan | Keterangan | Wajib? |
|---|---|---|
| Quantity | Bilangan unit | Ya |
| Item Number | SKU / Kod item | Tidak |
| Item To Be Purchased | Penerangan item | Ya |
| Unit Price (RM) | Harga seunit | Ya |
| Discount (%) | Diskaun dalam peratus (0-100) | Tidak |
Total per item dikira automatik: Qty × Unit Price × (1 - Discount/100)
Shipping Fees — yuran penghantaran (jika ada). Grand Total = Subtotal + Shipping Fees.
Bahagian 4: Nota / Catatan
Bahagian 5: Lampiran
Jadual 13.3: Senarai Status Permohonan
| Status | Warna | Keterangan |
|---|---|---|
| Submitted | Kuning | Permohonan dihantar, menunggu semakan Account |
| Account Reviewed | Cyan | Disemak oleh Account, menunggu kelulusan Admin |
| Approved | Hijau | Diluluskan oleh Admin |
| Rejected | Merah | Ditolak oleh Account atau Admin |
| Pending Purchase | Oren | Diluluskan, menunggu pembelian |
| Purchased | Biru | Item telah dibeli |
Staff hantar → Account semak (pilih kaedah penghantaran & pembayaran) → Admin luluskan/tolak → Pembelian
Klik pada permohonan untuk melihat butiran penuh termasuk maklumat vendor, senarai item, lampiran, dan komen semakan.
URL: /purchase-requests/{id}/edit
Anda kini boleh mengubah suai permohonan pembelian sendiri dalam keadaan tertentu sahaja.
Jadual 13.6: Syarat Ubah Suai
| Syarat | Keterangan |
|---|---|
| Pemilik | Hanya pemohon asal boleh ubah permohonan sendiri |
| Status | Status mesti Submitted sahaja. Setelah Account/Admin mula semak, ubah suai tidak lagi dibenarkan |
Cara Ubah Suai:
This feature allows staff to submit requests to purchase items. Requests will be reviewed by Account and approved by Admin.
URL: /purchase-requests
This page displays all your purchase requests with the following filters:
Table 13.1: Request Filters
| Filter | Description |
|---|---|
| Search | Search by request number, vendor name, items |
| Status | Filter by request status |
| Priority | Filter by priority level |
URL: /purchase-requests/create
The form consists of 5 sections:
Section 1: Request Information (auto-filled)
Section 2: Vendor / Company Information
Table 13.2a: Vendor Fields
| Field | Description | Required? |
|---|---|---|
| Vendor / Company Name | Name of vendor or company | No |
| Address | Full address including city, postcode | No |
| Telephone | Vendor phone number | No |
| TIN No | Tax Identification Number | No |
| Vendor email | No |
Section 3: Items To Be Purchased
Dynamic table — add/remove item rows.
Table 13.2b: Item Fields
| Field | Description | Required? |
|---|---|---|
| Quantity | Number of units | Yes |
| Item Number | SKU / Item code | No |
| Item To Be Purchased | Item description | Yes |
| Unit Price (RM) | Price per unit | Yes |
| Discount (%) | Discount in percentage (0-100) | No |
Total per item is auto-calculated: Qty × Unit Price × (1 - Discount/100)
Shipping Fees — delivery charges (if applicable). Grand Total = Subtotal + Shipping Fees.
Section 4: Notes / Remarks
Section 5: Attachments
Table 13.3: Request Status List
| Status | Colour | Description |
|---|---|---|
| Submitted | Yellow | Request submitted, awaiting Account review |
| Account Reviewed | Cyan | Reviewed by Account, awaiting Admin approval |
| Approved | Green | Approved by Admin |
| Rejected | Red | Rejected by Account or Admin |
| Pending Purchase | Orange | Approved, awaiting purchase |
| Purchased | Blue | Item has been purchased |
Staff submit → Account review (select shipping & payment method) → Admin approve/reject → Purchase
Click on a request to view full details including vendor info, item list, attachments, and review comments.
URL: /purchase-requests/{id}/edit
You can now edit your own purchase request, but only under specific conditions.
Table 13.6: Edit Conditions
| Condition | Description |
|---|---|
| Owner | Only the original requester can edit their own request |
| Status | Status must be Submitted. Once Account/Admin begins reviewing, editing is no longer allowed |
How to Edit:
Sistem maklum balas membolehkan anda menghantar cadangan penambahbaikan, laporan pepijat, permintaan ciri baru, atau maklum balas umum kepada pentadbir.
Jadual 13.5.1: Medan Borang Maklum Balas
| Medan | Keterangan | Wajib? |
|---|---|---|
| Category | General, Improvement, Bug Report, Feature Request | Ya |
| Title | Tajuk ringkas | Ya |
| Description | Penerangan terperinci | Ya |
| Images | Sehingga 3 gambar (JPG/PNG/WebP, maks 5MB). Baru: Tampal (Ctrl+V) atau seret & lepas disokong | Tidak |
Jadual 13.5.3: Status Maklum Balas
| Status | Keterangan |
|---|---|
| Submitted | Baru dihantar |
| In Review | Sedang disemak |
| In Progress | Sedang dilaksanakan |
| Completed | Selesai |
| Rejected | Tidak diterima |
Anda juga boleh menghantar maklum balas melalui halaman awam (/) → tab "Feedback". Masukkan 4 digit terakhir IC untuk pengesahan.
The feedback system allows you to submit improvement suggestions, bug reports, feature requests, or general feedback to administrators.
Table 13.5.1: Feedback Form Fields
| Field | Description | Required? |
|---|---|---|
| Category | General, Improvement, Bug Report, Feature Request | Yes |
| Title | Brief summary | Yes |
| Description | Detailed description | Yes |
| Images | Up to 3 images (JPG/PNG/WebP, max 5MB each). New: Paste (Ctrl+V) or drag & drop supported | No |
Table 13.5.3: Feedback Status
| Status | Description |
|---|---|
| Submitted | Newly submitted |
| In Review | Under review |
| In Progress | Being implemented |
| Completed | Done |
| Rejected | Not accepted |
You can also submit feedback from the public page (/) → "Feedback" tab. Enter your IC last 4 digits for verification.
URL: /profile
Jadual 13.1: Medan Profil
| Medan | Keterangan |
|---|---|
| Profile Photo | Muat naik gambar (maks 5MB, format JPG/PNG/GIF) |
| Full Name | Nama penuh |
| IC Number | Nombor IC (4 digit terakhir) |
| Alamat e-mel | |
| Phone Number | Nombor telefon |
| Department | Jabatan (pilih dari senarai) |
Jadual 13.2: Medan Tukar Kata Laluan
| Medan | Keterangan |
|---|---|
| Current Password | Kata laluan semasa |
| New Password | Kata laluan baru (minimum 8 aksara) |
| Confirm New Password | Ulang kata laluan baru |
Klik "Update Profile" untuk menyimpan. Biarkan medan kata laluan kosong jika tidak mahu menukar.
URL: /profile
Table 13.1: Profile Fields
| Field | Description |
|---|---|
| Profile Photo | Upload photo (max 5MB, JPG/PNG/GIF) |
| Full Name | Full name |
| IC Number | IC number (last 4 digits) |
| Email address | |
| Phone Number | Phone number |
| Department | Department (select from list) |
Table 13.2: Password Change Fields
| Field | Description |
|---|---|
| Current Password | Your current password |
| New Password | New password (minimum 8 characters) |
| Confirm New Password | Re-enter new password |
Click "Update Profile" to save. Leave the password fields empty if you do not wish to change your password.
URL: /notifications
Staff menerima notifikasi melalui e-mel dan/atau WhatsApp bergantung kepada konfigurasi yang ditetapkan oleh Superadmin. Berikut ialah senarai lengkap jenis notifikasi mengikut kategori:
Jadual 15.1: Notifikasi Tempahan Individu
| Jenis | Keterangan |
|---|---|
| New Booking Created | Tempahan baru telah dicipta |
| Booking Submitted for Approval | Tempahan dihantar untuk kelulusan admin |
| Booking Approved | Tempahan anda telah diluluskan |
| Booking Rejected | Tempahan anda telah ditolak |
| Booking Cancelled | Tempahan telah dibatalkan |
| Resource Collected | Sumber telah dikutip |
| Resource Returned | Sumber telah dipulangkan |
| Booking Reminder | Peringatan 24 jam sebelum tempahan |
| Collection Reminder | Peringatan untuk mengutip sumber apabila tempahan bermula |
| Return Reminder | Peringatan 1 jam sebelum masa pemulangan |
| Overdue Return | Sumber lewat dipulangkan |
Jadual 15.2: Notifikasi Tempahan Kumpulan
| Jenis | Keterangan |
|---|---|
| Group Booking Created | Tempahan kumpulan baru dicipta |
| Group Booking Approved | Tempahan kumpulan diluluskan |
| Group Booking Rejected | Tempahan kumpulan ditolak |
| Group Booking Cancelled | Tempahan kumpulan dibatalkan |
| Group Resource Collected | Sumber kumpulan dikutip |
| Group Resource Returned | Sumber kumpulan dipulangkan |
Jadual 15.3: Notifikasi Permintaan Pembelian
| Jenis | Keterangan |
|---|---|
| Purchase Request Submitted | Permintaan pembelian baru dihantar |
| Purchase Request Edited Baru | Pemohon telah mengubah suai permohonan berstatus Submitted (Admin & Account dimaklumkan) |
| Purchase Request Account Reviewed | Permintaan pembelian disemak oleh Account, menunggu kelulusan Admin |
| Purchase Request Approved | Permintaan pembelian diluluskan oleh Admin |
| Purchase Request Rejected | Permintaan pembelian ditolak |
| Purchase Request Pending Purchase | Permintaan pembelian sedang diproses untuk pembelian |
| Purchase Request Purchased | Item permintaan pembelian telah dibeli |
Jadual 15.4: Notifikasi Lain
| Jenis | Keterangan |
|---|---|
| Review Submitted | Ulasan baru diberikan |
URL: /notifications
Staff receive notifications via email and/or WhatsApp depending on the configuration set by the Superadmin. Below is the full list of notification types by category:
Table 15.1: Individual Booking Notifications
| Type | Description |
|---|---|
| New Booking Created | A new booking has been created |
| Booking Submitted for Approval | Booking submitted for admin approval |
| Booking Approved | Your booking has been approved |
| Booking Rejected | Your booking has been rejected |
| Booking Cancelled | A booking has been cancelled |
| Resource Collected | A resource has been collected |
| Resource Returned | A resource has been returned |
| Booking Reminder | Reminder sent 24 hours before booking |
| Collection Reminder | Reminder to collect resource when booking starts |
| Return Reminder | Reminder sent 1 hour before return time |
| Overdue Return | Resource return is overdue |
Table 15.2: Group Booking Notifications
| Type | Description |
|---|---|
| Group Booking Created | A new group booking has been created |
| Group Booking Approved | A group booking has been approved |
| Group Booking Rejected | A group booking has been rejected |
| Group Booking Cancelled | A group booking has been cancelled |
| Group Resource Collected | Group resources have been collected |
| Group Resource Returned | Group resources have been returned |
Table 15.3: Purchase Request Notifications
| Type | Description |
|---|---|
| Purchase Request Submitted | A new purchase request has been submitted |
| Purchase Request Edited New | The requester edited a Submitted request (Admin & Account are notified) |
| Purchase Request Account Reviewed | A purchase request has been reviewed by Account, pending Admin approval |
| Purchase Request Approved | A purchase request has been approved by Admin |
| Purchase Request Rejected | A purchase request has been rejected |
| Purchase Request Pending Purchase | A purchase request is being processed for purchase |
| Purchase Request Purchased | A purchase request item has been purchased |
Table 15.4: Other Notifications
| Type | Description |
|---|---|
| Review Submitted | A new review has been submitted |
Jadual 16.1: Langkah Eksport
| Langkah | Tindakan |
|---|---|
| 1 | Pergi ke My Bookings (/bookings) |
| 2 | Klik butang "Export" |
| 3 | Fail Excel akan dimuat turun dengan senarai tempahan anda |
Jadual 16.2: Lajur Fail Eksport
| Lajur | Keterangan |
|---|---|
| No | Nombor baris |
| Group Number | Nombor kumpulan (jika tempahan kumpulan) |
| Booking Number | Nombor tempahan |
| Resource | Nama sumber |
| Start Date | Tarikh/masa mula |
| End Date | Tarikh/masa tamat |
| Original End Date | Tarikh/masa tamat asal sebelum pelanjutan (jika ada) |
| Extended By | Nama dan tarikh siapa yang melanjutkan (jika ada) |
| Purpose | Tujuan tempahan |
| Status | Status tempahan (termasuk Overdue) |
| Created At | Tarikh tempahan dibuat |
Jadual 16.3: Langkah Cetak
| Langkah | Tindakan |
|---|---|
| 1 | Pergi ke Booking Details (/bookings/{id}) |
| 2 | Klik butang "Print" |
| 3 | Tetingkap cetak pelayar akan muncul |
| 4 | Pilih pencetak dan klik "Print" |
Table 16.1: Export Steps
| Step | Action |
|---|---|
| 1 | Go to My Bookings (/bookings) |
| 2 | Click the "Export" button |
| 3 | An Excel file will be downloaded with your booking list |
Table 16.2: Export File Columns
| Column | Description |
|---|---|
| No | Row number |
| Group Number | Group number (if group booking) |
| Booking Number | Booking number |
| Resource | Resource name |
| Start Date | Start date/time |
| End Date | End date/time |
| Original End Date | Original end date/time before extension (if extended) |
| Extended By | Name and date of who extended (if extended) |
| Purpose | Booking purpose |
| Status | Booking status (including Overdue) |
| Created At | Booking creation date |
Table 16.3: Print Steps
| Step | Action |
|---|---|
| 1 | Go to Booking Details (/bookings/{id}) |
| 2 | Click the "Print" button |
| 3 | The browser print dialog will appear |
| 4 | Select your printer and click "Print" |
Selain menggunakan sistem melalui log masuk, anda juga boleh mengakses beberapa fungsi melalui halaman awam (/) — tanpa perlu log masuk.
URL: /
Halaman utama memaparkan:
Halaman awam mempunyai 3 tab utama:
| Tab | Keterangan |
|---|---|
| Calendar | Kalendar interaktif memaparkan semua tempahan mengikut bulan |
| Book Resources | Layari dan tempah sumber, serta akses fungsi Collect, Return, Extend dan Cancel |
| User Manual | Manual pengguna lengkap untuk rujukan |
Fungsi layari sumber di halaman awam serupa dengan halaman /resources selepas log masuk.
Jadual 17.1: Penapis Sumber Awam
| Penapis | Keterangan |
|---|---|
| Search Resource | Cari mengikut nama sumber (live search) |
| Category | Tapis mengikut kategori |
| Start Date / End Date | Tarikh mula dan tamat |
| Start Time / End Time | Masa mula dan tamat |
Jadual 17.2: Petunjuk Status Penapis
| Badge | Keterangan |
|---|---|
| Filters applied... | Penapis telah digunakan — sumber tersedia ditunjukkan dahulu |
| Apply filters... | Sila gunakan penapis untuk melihat ketersediaan |
Anda boleh membuat tempahan tanpa log masuk melalui halaman awam.
Jadual 17.3: Langkah Tempahan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Di halaman awam, tetapkan tarikh dan masa menggunakan penapis (Start Date, Start Time, End Date, End Time) dan klik "Apply Filters" |
| 2 | Sistem akan menunjukkan sumber yang Available dan Unavailable untuk masa tersebut |
| 3 | Klik butang "Book" pada sumber yang tersedia |
| 4 | Borang tempahan muncul dengan tarikh/masa dipra-isi dan dikunci |
| 5 | Pilih "Add to Cart" untuk menambah lagi sumber, atau "Book Now" untuk terus ke troli |
| 6 | Di halaman troli (/public-cart), semak item dan klik "Checkout" |
| 7 | Modal pengesahan muncul — isi Tujuan (wajib), Peserta (pilihan), dan IC 4 Digit Terakhir |
| 8 | Klik "Confirm & Checkout" — tempahan dicipta secara automatik |
Jadual 17.4: Medan Checkout Tempahan Awam
| Medan | Keterangan | Wajib? |
|---|---|---|
| Resource | Sumber yang dipilih (dipra-isi dan dikunci) | Ya (auto) |
| Start Date & Time | Tarikh dan masa mula (dipra-isi dan dikunci dari penapis) | Ya (auto) |
| End Date & Time | Tarikh dan masa tamat (dipra-isi dan dikunci dari penapis) | Ya (auto) |
| Purpose | Tujuan tempahan (diisi semasa checkout) | Ya |
| Participants | Senarai peserta (diisi semasa checkout, auto-complete) | Tidak |
| IC Last 4 Digits | Pengesahan identiti (diisi semasa checkout) | Ya |
Kalendar interaktif di halaman awam menunjukkan semua tempahan:
Jadual 17.7: Langkah Kutipan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Collect" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan yang hendak dikutip |
| 5 | Isi nota keadaan dan muat naik gambar (minimum 1, maks 3) |
| 6 | Klik "Confirm Collection" |
Jadual 17.8: Langkah Pemulangan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Return" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan dan tetapkan status setiap sumber (Returned / Missing) |
| 5 | Isi nota pemulangan (wajib jika Missing) dan muat naik gambar |
| 6 | Klik "Confirm Return" |
Jadual 17.9: Keputusan Pemulangan
| Keputusan | Ikon | Keterangan |
|---|---|---|
| Semua dipulangkan | Hijau | "Returned!" |
| Ada item hilang | Kuning | "Returned with Missing Items" |
| Sebahagian gagal | Merah | "Partial Success" |
Jadual 17.10: Langkah Pelanjutan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Extend" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan yang hendak dilanjutkan (boleh pilih semua atau sebahagian) |
| 5 | Tetapkan tarikh dan masa tamat baharu |
| 6 | Klik "Extend Booking" atau "Extend Selected" |
Jadual 17.11: Langkah Pembatalan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Cancel" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan yang hendak dibatalkan (boleh pilih semua atau sebahagian) |
| 5 | Masukkan sebab pembatalan (wajib) |
| 6 | Klik "Cancel Booking" atau "Cancel Selected" |
Besides using the system through login, you can also access some functions via the public page (/) — without logging in.
URL: /
The welcome page displays:
The public page has 3 main tabs:
| Tab | Description |
|---|---|
| Calendar | Interactive calendar displaying all bookings by month |
| Book Resources | Browse and book resources, plus access Collect, Return, Extend and Cancel functions |
| User Manual | Complete user manual for reference |
The public resource browsing functions similarly to the /resources page after login.
Table 17.1: Public Resource Filters
| Filter | Description |
|---|---|
| Search Resource | Search by resource name (live search) |
| Category | Filter by category |
| Start Date / End Date | Start and end dates |
| Start Time / End Time | Start and end times |
Table 17.2: Filter Status Indicators
| Badge | Description |
|---|---|
| Filters applied... | Filters have been applied — available resources shown first |
| Apply filters... | Please apply filters to see availability |
You can create bookings without logging in via the public page.
Table 17.3: Public Booking Steps
| Step | Action |
|---|---|
| 1 | On the public page, set the date and time using the filters (Start Date, Start Time, End Date, End Time) and click "Apply Filters" |
| 2 | The system will show resources that are Available and Unavailable for that time |
| 3 | Click the "Book" button on an available resource |
| 4 | The booking form appears with date/time pre-filled and locked |
| 5 | Choose "Add to Cart" to add more resources, or "Book Now" to go directly to the cart |
| 6 | On the cart page (/public-cart), review items and click "Checkout" |
| 7 | A confirmation modal appears — enter Purpose (required), Participants (optional), and IC Last 4 Digits |
| 8 | Click "Confirm & Checkout" — bookings are created automatically |
Table 17.4: Public Booking Checkout Fields
| Field | Description | Required? |
|---|---|---|
| Resource | Selected resource (pre-filled and locked) | Yes (auto) |
| Start Date & Time | Start date and time (pre-filled and locked from filters) | Yes (auto) |
| End Date & Time | End date and time (pre-filled and locked from filters) | Yes (auto) |
| Purpose | Booking purpose (entered at checkout) | Yes |
| Participants | Participant list (entered at checkout, auto-complete) | No |
| IC Last 4 Digits | Identity verification (entered at checkout) | Yes |
An interactive calendar on the public page displays all bookings:
Table 17.7: Public Collection Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Collect" button |
| 3 | Enter your IC Last 4 Digits |
| 4 | Select the booking to collect |
| 5 | Fill in condition notes and upload photos (min 1, max 3) |
| 6 | Click "Confirm Collection" |
Table 17.8: Public Return Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Return" button |
| 3 | Enter your IC Last 4 Digits |
| 4 | Select the booking and set each resource status (Returned / Missing) |
| 5 | Fill in return notes (mandatory if Missing) and upload photos |
| 6 | Click "Confirm Return" |
Table 17.9: Return Results
| Result | Icon | Description |
|---|---|---|
| All returned | Green | "Returned!" |
| Missing items | Yellow | "Returned with Missing Items" |
| Partial failure | Red | "Partial Success" |
Table 17.10: Public Extend Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Extend" button |
| 3 | Enter your IC Last 4 Digits |
| 4 | Select bookings to extend (select all or individual) |
| 5 | Set a new end date and time |
| 6 | Click "Extend Booking" or "Extend Selected" |
Table 17.11: Public Cancel Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Cancel" button |
| 3 | Enter your IC Last 4 Digits |
| 4 | Select bookings to cancel (select all or individual) |
| 5 | Enter a cancellation reason (required) |
| 6 | Click "Cancel Booking" or "Cancel Selected" |
Berikut ialah senarai status tempahan yang digunakan dalam sistem RD BookHub.
Jadual 18.1: Senarai Status Tempahan
Below is the list of booking statuses used in the RD BookHub system.
Table 18.1: Booking Status List
| Status | WarnaColour | KeteranganDescription |
|---|---|---|
| Pending | KuningYellow | Menunggu kelulusan adminAwaiting admin approval |
| Approved | HijauGreen | Diluluskan, sedia untuk kutipanApproved, ready for collection |
| Rejected | MerahRed | Tidak diluluskanNot approved |
| Collected | Biru mudaLight Blue | Sumber telah dikutipResource has been collected |
| Overdue | Merah mudaLight Red | Lewat dipulangkan (tarikh tamat sudah lepas)Past the return deadline |
| Completed | SianCyan | Tempahan selesai — sumber tanpa kutipan fizikal (cth: bilik mesyuarat) selepas tarikh tamatBooking completed — non-collection resource (e.g. meeting room) past end date |
| Missed | OrenOrange | Diluluskan tetapi tidak dikutip (tarikh tamat sudah lepas) — sumber memerlukan kutipan fizikalApproved but not collected (past end date) — resource requires physical collection |
| Returned | BiruBlue | Sumber telah dipulangkanResource has been returned |
| Cancelled | KelabuGrey | Tempahan dibatalkanBooking cancelled |
Peranan: Admin Role: Admin
Sebagai Admin, anda mempunyai semua keupayaan Staff ditambah dengan kuasa pentadbiran untuk mengurus sistem RD BookHub.
Jadual 1.1: Fungsi Tambahan Admin
| Bil. | Fungsi | Keterangan |
|---|---|---|
| 1 | Meluluskan / Menolak Tempahan | Meluluskan atau menolak tempahan kakitangan |
| 2 | Melihat Semua Tempahan | Melihat semua tempahan dari semua kakitangan |
| 3 | Tempahan Bagi Pihak Staff | Membuat tempahan bagi pihak kakitangan lain |
| 4 | Pengurusan Sumber (CRUD) | Cipta, baca, kemaskini, dan padam sumber |
| 5 | Pengurusan Pengguna | Mengurus akaun pengguna, peranan, dan jabatan |
| 6 | Pengurusan Kategori & Jabatan | Mengurus kategori sumber dan jabatan organisasi |
| 7 | Penjejakan Kutipan & Pemulangan | Menjejak kutipan dan pemulangan untuk semua tempahan |
| 8 | Pengurusan Ulasan | Mengurus ulasan yang diberikan oleh kakitangan |
As an Admin, you have all Staff capabilities plus administrative powers to manage the RD BookHub system.
Table 1.1: Additional Admin Functions
| No. | Function | Description |
|---|---|---|
| 1 | Approve / Reject Bookings | Approve or reject staff booking requests |
| 2 | View All Bookings | View all bookings from all staff members |
| 3 | Book on Behalf of Staff | Create bookings on behalf of other staff members |
| 4 | Resource Management (CRUD) | Create, read, update, and delete resources |
| 5 | User Management | Manage user accounts, roles, and departments |
| 6 | Category & Department Management | Manage resource categories and organisation departments |
| 7 | Collection & Return Tracking | Track collections and returns for all bookings |
| 8 | Review Management | Manage reviews submitted by staff members |
Proses log masuk adalah sama seperti yang diterangkan dalam Manual Staff — gunakan IC Last 4 Digits dan Password di halaman /login.
URL: /dashboard
Jadual 2.1: Kad Statistik Dashboard Admin
| Kad | Keterangan |
|---|---|
| Pending Approvals | Bilangan tempahan yang menunggu kelulusan anda (status = pending, requires_approval = true) |
| Approved Today | Bilangan tempahan yang diluluskan hari ini |
| Total Bookings | Jumlah tempahan bulan ini. Sub-badge menunjukkan bilangan pending, approved, collected, overdue, missed dan completed |
| Total Processed | Jumlah keseluruhan tempahan yang telah diluluskan/ditolak |
Kalendar interaktif menunjukkan semua tempahan. Klik pada tempahan untuk melihat butiran.
Menunjukkan 5 tempahan terkini yang menunggu kelulusan:
Jadual 2.2: Butang Tindakan Pending Approvals
| Butang | Tindakan |
|---|---|
| View | Lihat butiran penuh tempahan |
| Approve | Luluskan tempahan |
| Reject | Tolak tempahan |
Menunjukkan 8 tempahan terkini yang telah diproses (diluluskan/ditolak) dengan status badge.
The login process is the same as described in the Staff Manual — use your IC Last 4 Digits and Password at the /login page.
URL: /dashboard
Table 2.1: Admin Dashboard Statistics Cards
| Card | Description |
|---|---|
| Pending Approvals | Number of bookings awaiting your approval (status = pending, requires_approval = true) |
| Approved Today | Number of bookings approved today |
| Total Bookings | Total bookings this month. Sub-badges show pending, approved, collected, overdue, missed and completed counts |
| Total Processed | Total number of bookings that have been approved/rejected |
An interactive calendar displays all bookings. Click on a booking to view its details.
Displays the 5 most recent bookings awaiting approval:
Table 2.2: Pending Approvals Action Buttons
| Button | Action |
|---|---|
| View | View full booking details |
| Approve | Approve the booking |
| Reject | Reject the booking |
Displays the 8 most recently processed bookings (approved/rejected) with status badges.
Admin boleh bertukar antara 2 mod paparan di halaman /bookings.
Jadual 3.1: Mod Paparan Admin
| Mod | Keterangan |
|---|---|
| Admin Mode (lalai) | Lihat semua tempahan dari semua kakitangan |
| Personal Mode | Lihat hanya tempahan peribadi anda — fungsi sama seperti yang diterangkan dalam Manual Staff sepenuhnya |
Cara tukar: Klik butang tukar mod di halaman /bookings.
Dalam Personal Mode, anda boleh:
Admins can switch between 2 view modes on the /bookings page.
Table 3.1: Admin View Modes
| Mode | Description |
|---|---|
| Admin Mode (default) | View all bookings from all staff members |
| Personal Mode | View only your personal bookings — functions exactly as described in the Staff Manual |
How to switch: Click the mode toggle button on the /bookings page.
In Personal Mode, you can:
URL: /bookings (dalam Admin Mode)
Komponen: AllBookingsList
Jadual 4.1: Penapis Semua Tempahan
| Penapis | Keterangan |
|---|---|
| Search | Cari mengikut nombor tempahan, nama sumber, nama pengguna, atau e-mel |
| Status | Tapis: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed |
| Category | Tapis mengikut kategori sumber |
Sama seperti jadual My Bookings dalam Manual Staff, tetapi menunjukkan tempahan semua kakitangan dengan lajur tambahan:
Jadual 4.2: Tindakan Semua Tempahan
| Butang | Tindakan |
|---|---|
| View | Lihat butiran tempahan |
| Approve | Luluskan tempahan pending |
| Reject | Tolak tempahan pending |
| Collect | Kutip sumber (jika status Approved) |
| Return | Pulangkan sumber (jika status Collected) |
| Cancel | Batalkan tempahan |
| Extend | Lanjutkan tempoh tempahan (jika status Approved/Collected/Overdue) |
| Delete | Padam tempahan (soft delete — boleh dipulihkan) |
Klik "Export" untuk memuat turun senarai tempahan dalam format Excel.
Jadual 4.3: Lajur Fail Eksport
| Lajur | Keterangan |
|---|---|
| No | Nombor baris |
| Group Number | Nombor kumpulan (jika tempahan kumpulan) |
| Booking Number | Nombor tempahan |
| Booked By | Nama pengguna yang membuat tempahan |
| Resource | Nama sumber |
| Start Date | Tarikh/masa mula |
| End Date | Tarikh/masa tamat |
| Original End Date | Tarikh/masa tamat asal sebelum pelanjutan (jika ada) |
| Extended By | Nama dan tarikh siapa yang melanjutkan (jika ada) |
| Purpose | Tujuan tempahan |
| Status | Status tempahan (termasuk Overdue) |
| Created At | Tarikh tempahan dibuat |
URL: /bookings (in Admin Mode)
Component: AllBookingsList
Table 4.1: All Bookings Filters
| Filter | Description |
|---|---|
| Search | Search by booking number, resource name, user name, or email |
| Status | Filter: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed |
| Category | Filter by resource category |
Same as the My Bookings table described in the Staff Manual, but displays bookings from all staff members with an additional column:
Table 4.2: All Bookings Actions
| Button | Action |
|---|---|
| View | View booking details |
| Approve | Approve a pending booking |
| Reject | Reject a pending booking |
| Collect | Collect resources (if status is Approved) |
| Return | Return resources (if status is Collected) |
| Cancel | Cancel the booking |
| Extend | Extend booking duration (if status is Approved/Collected/Overdue) |
| Delete | Delete the booking (soft delete — can be recovered) |
Click "Export" to download the booking list in Excel format.
Table 4.3: Export File Columns
| Column | Description |
|---|---|
| No | Row number |
| Group Number | Group number (if group booking) |
| Booking Number | Booking number |
| Booked By | Name of user who made the booking |
| Resource | Resource name |
| Start Date | Start date/time |
| End Date | End date/time |
| Original End Date | Original end date/time before extension (if extended) |
| Extended By | Name and date of who extended (if extended) |
| Purpose | Booking purpose |
| Status | Booking status (including Overdue) |
| Created At | Booking creation date |
Admin boleh membuat tempahan bagi pihak kakitangan lain.
Jadual 5.1: Langkah Tempahan Bagi Pihak Staff
| Langkah | Tindakan |
|---|---|
| 1 | Pergi ke Browse Resources (/resources) dan pilih sumber yang dikehendaki |
| 2 | Di borang tempahan, cari kakitangan di bahagian "Book for Staff" menggunakan carian nama (auto-complete) |
| 3 | Pilih kakitangan dari senarai yang dipaparkan — nama akan dipaparkan sebagai badge |
| 4 | Tetapkan tarikh/masa |
| 5 | Klik "Book Now" atau "Add to Cart" — modal pengesahan akan muncul untuk isi tujuan dan peserta |
Jadual 5.2: Perbezaan Tempahan Admin vs Staff
| Aspek | Staff | Admin (bagi pihak) |
|---|---|---|
| Pengesahan IC | Wajib | Tidak diperlukan |
| Had tempoh tempahan awal (cth: mesti tempah 2 hari awal) | Wajib dipatuhi | Tidak dikenakan — boleh tempah pada bila-bila masa |
| Pemilihan kakitangan | Tidak berkaitan | Wajib |
Admins can create bookings on behalf of other staff members.
Table 5.1: Steps to Book on Behalf of Staff
| Step | Action |
|---|---|
| 1 | Go to Browse Resources (/resources) and select the desired resource |
| 2 | In the booking form, search for a staff member in the "Book for Staff" section using name search (auto-complete) |
| 3 | Select the staff member from the displayed list — their name will appear as a badge |
| 4 | Set date/time |
| 5 | Click "Book Now" or "Add to Cart" — a confirmation modal will appear to enter purpose and participants |
Table 5.2: Admin vs Staff Booking Differences
| Aspect | Staff | Admin (on behalf) |
|---|---|---|
| IC Verification | Required | Not required |
| Advance booking requirement (e.g. must book 2 days ahead) | Must be followed | Not enforced — can book anytime |
| Staff Selection | Not applicable | Mandatory |
URL: /approvals
Jadual 6.1: Langkah Kelulusan Tempahan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang Approve pada tempahan pending (dari Dashboard, All Bookings, atau Booking Details) |
| 2 | Modal SweetAlert2 muncul dengan medan berikut: |
Jadual 6.2: Medan Modal Kelulusan
| Medan | Keterangan | Wajib? |
|---|---|---|
| Comments | Komen kelulusan | Tidak |
| Langkah | Tindakan |
|---|---|
| 3 | Klik "Confirm Approval" |
| 4 | Status tempahan bertukar kepada APPROVED |
| 5 | Kakitangan akan menerima notifikasi |
Jadual 6.3: Langkah Penolakan Tempahan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang Reject pada tempahan pending |
| 2 | Modal SweetAlert2 muncul dengan medan berikut: |
Jadual 6.4: Medan Modal Penolakan
| Medan | Keterangan | Wajib? |
|---|---|---|
| Rejection Reason | Sebab penolakan | Ya |
| Langkah | Tindakan |
|---|---|
| 3 | Klik "Confirm Rejection" |
| 4 | Status tempahan bertukar kepada REJECTED |
| 5 | Kakitangan akan menerima notifikasi dengan sebab penolakan |
Jadual 6.5: Laluan Kelulusan
| Laluan | Keterangan |
|---|---|
| Direct Approval | Admin meluluskan/menolak terus dari All Bookings atau Booking Details |
| Workflow Approval | Melalui halaman Approvals (/approvals) dengan rekod Approval berasingan |
Admin boleh memadam tempahan dari halaman Approvals melalui butang padam. Pemadaman menggunakan soft delete.
URL: /approvals
Table 6.1: Booking Approval Steps
| Step | Action |
|---|---|
| 1 | Click the Approve button on a pending booking (from Dashboard, All Bookings, or Booking Details) |
| 2 | A SweetAlert2 modal appears with the following field: |
Table 6.2: Approval Modal Fields
| Field | Description | Required? |
|---|---|---|
| Comments | Approval comments | No |
| Step | Action |
|---|---|
| 3 | Click "Confirm Approval" |
| 4 | Booking status changes to APPROVED |
| 5 | The staff member will receive a notification |
Table 6.3: Booking Rejection Steps
| Step | Action |
|---|---|
| 1 | Click the Reject button on a pending booking |
| 2 | A SweetAlert2 modal appears with the following field: |
Table 6.4: Rejection Modal Fields
| Field | Description | Required? |
|---|---|---|
| Rejection Reason | Reason for rejection | Yes |
| Step | Action |
|---|---|
| 3 | Click "Confirm Rejection" |
| 4 | Booking status changes to REJECTED |
| 5 | The staff member will receive a notification with the rejection reason |
Table 6.5: Approval Paths
| Path | Description |
|---|---|
| Direct Approval | Admin approves/rejects directly from All Bookings or Booking Details |
| Workflow Approval | Through the Approvals page (/approvals) with a separate Approval record |
Admins can delete bookings from the Approvals page via the delete button. Deletion uses soft delete.
Proses kutipan dan pemulangan adalah sama seperti yang diterangkan dalam Manual Staff, tetapi Admin boleh melakukannya untuk semua tempahan, bukan hanya tempahan sendiri.
Jadual 7.1: Status Toggle Pemulangan
| Status | Keterangan |
|---|---|
| Returned | Sumber dipulangkan |
| Missing | Sumber hilang |
Dalam Booking Details, jika tempahan kumpulan dikutip dan dipulangkan pada masa yang sama:
The collection and return process is the same as described in the Staff Manual, but Admins can perform it for all bookings, not just their own.
Table 7.1: Return Status Toggle
| Status | Description |
|---|---|
| Returned | Resource has been returned |
| Missing | Resource is missing |
In Booking Details, when a group booking is collected and returned at the same time:
Admin boleh membatalkan tempahan sendiri dan melihat tempahan yang telah dibatalkan oleh kakitangan lain.
Jadual 8.1: Langkah Pembatalan
| Langkah | Tindakan |
|---|---|
| 1 | Dari tab My Bookings atau Booking Details, klik butang "Cancel" |
| 2 | Modal pengesahan muncul (nama sumber, nombor tempahan) |
| 3 | Masukkan sebab pembatalan (wajib) |
| 4 | Klik "Yes, Cancel" untuk mengesahkan |
| 5 | Status tempahan bertukar kepada CANCELLED |
Untuk melihat tempahan yang telah dibatalkan oleh mana-mana kakitangan:
Admins can cancel their own bookings and view bookings that have been cancelled by other staff members.
Table 8.1: Cancellation Steps
| Step | Action |
|---|---|
| 1 | From the My Bookings tab or Booking Details, click the "Cancel" button |
| 2 | A confirmation modal appears (resource name, booking number) |
| 3 | Enter a cancellation reason (required) |
| 4 | Click "Yes, Cancel" to confirm |
| 5 | Booking status changes to CANCELLED |
To view bookings that have been cancelled by any staff member:
Admin boleh melanjutkan tempoh mana-mana tempahan kakitangan. Sistem menyemak ketersediaan sumber secara automatik sebelum melanjutkan.
Jadual 9.1: Langkah Pelanjutan Tempahan Individu
| Langkah | Tindakan |
|---|---|
| 1 | Dari tab All Bookings, My Bookings atau Booking Details, klik butang Extend (ikon jam) |
| 2 | Modal muncul menunjukkan tarikh/masa tamat semasa |
| 3 | Pilih tarikh tamat baru dan masa tamat baru |
| 4 | Klik "Extend Booking" untuk mengesahkan |
| 5 | Sistem menyemak ketersediaan dan melanjutkan tempahan |
Untuk tempahan kumpulan, anda boleh memilih mana-mana tempahan dalam kumpulan untuk dilanjutkan:
Jadual 9.2: Langkah Pelanjutan Tempahan Kumpulan
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang Extend pada baris kumpulan |
| 2 | Modal muncul dengan senarai tempahan yang boleh dilanjutkan |
| 3 | Pilih tempahan yang ingin dilanjutkan (guna checkbox, boleh pilih semua) |
| 4 | Pilih tarikh tamat baru dan masa tamat baru |
| 5 | Klik "Extend Selected" untuk mengesahkan |
Admins can extend the duration of any staff booking. The system automatically checks resource availability before extending.
Table 9.1: Individual Extend Steps
| Step | Action |
|---|---|
| 1 | From the All Bookings tab, My Bookings or Booking Details, click the Extend button (clock icon) |
| 2 | A modal appears showing the current end date/time |
| 3 | Select a new end date and new end time |
| 4 | Click "Extend Booking" to confirm |
| 5 | System checks availability and extends the booking |
For group bookings, you can select which bookings within the group to extend:
Table 9.2: Group Extend Steps
| Step | Action |
|---|---|
| 1 | Click the Extend button on the group row |
| 2 | A modal appears listing all extendable bookings in the group |
| 3 | Select bookings to extend (use checkboxes, select all available) |
| 4 | Select a new end date and new end time |
| 5 | Click "Extend Selected" to confirm |
URL: /admin/resources/manage
Halaman pengurusan memaparkan:
URL: /admin/resources/create
Jadual 10.1: Borang Cipta Sumber
| Bahagian | Medan | Keterangan |
|---|---|---|
| Maklumat Asas | Item Name | Nama sumber (wajib) |
| Category | Kategori dari senarai (wajib) | |
| Parent Item | Jika ini sub-item sumber lain (pilihan) | |
| Butiran | Quantity | Bilangan unit (lalai: 1) |
| Price | Harga dalam RM (pilihan) | |
| Aset & Keadaan | Asset Code | Kod aset (cth: CAM-001) |
| Condition | Keadaan: Good, Damaged, Under Maintenance, Missing | |
| Remarks | Catatan tambahan | |
| Tetapan | Is Available? | Adakah boleh ditempah? |
| Requires Approval? | Adakah perlu kelulusan admin? | |
| Requires Collection? | Adakah perlu kutipan fizikal? (Bilik mesyuarat = Tidak) | |
| Gambar | Resource Image | Muat naik gambar (maks 5MB, JPG/PNG/GIF) |
Klik "Create Resource" untuk menyimpan.
URL: /admin/resources/{id}/edit
Sama seperti borang cipta, tetapi dengan nilai sedia ada. Klik "Update Resource" untuk menyimpan.
Jadual 10.2: Langkah Padam Sumber
| Langkah | Tindakan |
|---|---|
| 1 | Klik butang Delete pada sumber |
| 2 | Modal pengesahan muncul |
| 3 | Klik "Yes, delete it!" untuk mengesahkan |
Klik butang togol pada sumber untuk menukar status ketersediaan antara Available dan Unavailable tanpa perlu edit penuh.
URL: /admin/resources/manage
The management page displays:
URL: /admin/resources/create
Table 10.1: Create Resource Form
| Section | Field | Description |
|---|---|---|
| Basic Information | Item Name | Resource name (required) |
| Category | Category from the list (required) | |
| Parent Item | If this is a sub-item of another resource (optional) | |
| Details | Quantity | Number of units (default: 1) |
| Price | Price in RM (optional) | |
| Asset & Condition | Asset Code | Asset code (e.g., CAM-001) |
| Condition | Condition: Good, Damaged, Under Maintenance, Missing | |
| Remarks | Additional remarks | |
| Settings | Is Available? | Can the resource be booked? |
| Requires Approval? | Does it require admin approval? | |
| Requires Collection? | Does it require physical collection? (Meeting rooms = No) | |
| Image | Resource Image | Upload image (max 5MB, JPG/PNG/GIF) |
Click "Create Resource" to save.
URL: /admin/resources/{id}/edit
Same as the create form, but with pre-filled values. Click "Update Resource" to save.
Table 10.2: Delete Resource Steps
| Step | Action |
|---|---|
| 1 | Click the Delete button on the resource |
| 2 | A confirmation modal appears |
| 3 | Click "Yes, delete it!" to confirm |
Click the toggle button on a resource to switch its availability status between Available and Unavailable without opening the full edit form.
URL: /admin/users
URL: /admin/users/create
Jadual 11.1: Borang Cipta Pengguna
| Medan | Keterangan | Wajib? |
|---|---|---|
| Full Name | Nama penuh | Ya |
| IC Number | Nombor IC (12 digit) | Ya |
| Alamat e-mel (unik) | Ya | |
| Phone Number | Nombor telefon | Ya |
| Department | Jabatan | Tidak |
| Role | Peranan: Staff, Admin, Account, Superadmin | Ya |
| Password | Kata laluan (min 8 aksara) | Ya |
| Profile Photo | Gambar profil (maks 5MB) | Tidak |
URL: /admin/users
URL: /admin/users/create
Table 11.1: Create User Form
| Field | Description | Required? |
|---|---|---|
| Full Name | Full name | Yes |
| IC Number | IC number (12 digits) | Yes |
| Email address (unique) | Yes | |
| Phone Number | Phone number | Yes |
| Department | Department | No |
| Role | Role: Staff, Admin, Account, Superadmin | Yes |
| Password | Password (min 8 characters) | Yes |
| Profile Photo | Profile photo (max 5MB) | No |
URL: /admin/categories
Jadual 12.1: Borang Cipta Kategori
| Medan | Keterangan | Wajib? |
|---|---|---|
| Name | Nama kategori (huruf kecil, cth: "equipment") | Ya |
| Label | Label paparan (cth: "Equipment") | Ya |
| Badge Color | Warna lencana kategori. Pilih warna menggunakan pemilih warna — pratonton lencana akan dipaparkan secara langsung | Tidak |
Tukar nama, label, warna lencana, dan status aktif kategori sedia ada.
URL: /admin/categories
Table 12.1: Create Category Form
| Field | Description | Required? |
|---|---|---|
| Name | Category name (lowercase, e.g., "equipment") | Yes |
| Label | Display label (e.g., "Equipment") | Yes |
| Badge Color | Category badge color. Pick a color using the color picker — a live badge preview is shown | No |
Change the name, label, badge color, and active status of an existing category.
URL: /admin/departments
Jadual 13.1: Operasi Pengurusan Jabatan
| Tindakan | Keterangan |
|---|---|
| Cipta | Tambah jabatan baru (nama, penerangan, status) |
| Kemaskini | Tukar nama, penerangan, atau status |
| Padam | Padam jabatan (tidak boleh jika ada kakitangan) |
URL: /admin/departments
Table 13.1: Department Management Operations
| Action | Description |
|---|---|
| Create | Add a new department (name, description, status) |
| Update | Change name, description, or status |
| Delete | Delete a department (cannot delete if staff are assigned) |
URL: /collection-return
Jadual 14.1: Lajur Jadual Kutipan & Pemulangan
| Lajur | Keterangan |
|---|---|
| Booking # | Nombor tempahan |
| User | Nama dan e-mel pengguna |
| Resource | Nama sumber dan kategori |
| Collected | Tarikh/masa kutipan, siapa yang mengutip |
| Returned | Tarikh/masa pemulangan, siapa yang memulangkan (atau "-") |
| Status | Collected / Returned |
| Actions | Lihat butiran tempahan |
URL: /collection-return
Table 14.1: Collection & Return Table Columns
| Column | Description |
|---|---|
| Booking # | Booking number |
| User | User name and email |
| Resource | Resource name and category |
| Collected | Collection date/time, who collected it |
| Returned | Return date/time, who returned it (or "-") |
| Status | Collected / Returned |
| Actions | View booking details |
URL: /admin/reviews
Jadual 15.1: Kad Statistik Ulasan
| Statistik | Keterangan |
|---|---|
| Total Reviews | Jumlah keseluruhan ulasan |
| Average Rating | Purata penilaian keseluruhan |
| High Rated | Ulasan dengan penilaian 4 dan ke atas |
| Low Rated | Ulasan dengan penilaian kurang dari 3 |
Penapis: Tapis mengikut penilaian, sumber, atau cari teks komen.
Jadual 15.2: Operasi Pengurusan Ulasan
| Tindakan | Keterangan |
|---|---|
| Lihat | Lihat ulasan penuh (penilaian, komen, tarikh, butiran tempahan) |
| Padam | Padam ulasan (dengan pengesahan) |
| Per-Sumber | Lihat semua ulasan untuk sumber tertentu |
URL: /admin/reviews
Table 15.1: Review Statistics Cards
| Statistic | Description |
|---|---|
| Total Reviews | Total number of reviews |
| Average Rating | Overall average rating |
| High Rated | Reviews with a rating of 4 and above |
| Low Rated | Reviews with a rating below 3 |
Filters: Filter by rating, resource, or search comment text.
Table 15.2: Review Management Operations
| Action | Description |
|---|---|
| View | View full review (rating, comment, date, booking details) |
| Delete | Delete a review (with confirmation) |
| Per-Resource | View all reviews for a specific resource |
Admin bertanggungjawab menyemak, meluluskan atau menolak permohonan pembelian yang dihantar oleh Staff. Dalam mod peribadi, Admin juga boleh menghantar permohonan sendiri.
URL: /purchase-requests
Dalam mod admin, halaman ini memaparkan semua permohonan daripada semua Staff.
Jadual 16.1: Lajur Senarai Permohonan
| Lajur | Keterangan |
|---|---|
| # | Nombor permohonan (cth: PR-20260227-ABC123) dan tarikh |
| Item | Nama item dan jenama/model (jika ada) |
| Requested By | Nama dan jabatan Staff yang membuat permohonan |
| Category | Kategori permohonan — dari senarai kategori aktif. Setiap kategori mempunyai warna lencana tersendiri yang ditetapkan oleh pentadbir |
| Price | Anggaran harga seunit (RM) dan jumlah jika kuantiti lebih dari 1 |
| Priority | Keutamaan: Low Medium High Urgent |
| Status | Status semasa permohonan |
Jadual 16.2: Penapis Senarai
| Penapis | Keterangan |
|---|---|
| Search | Cari mengikut nama item, nombor permohonan, jenama |
| Status | Tapis mengikut status (Submitted, Approved, Rejected, dll.) |
| Priority | Tapis mengikut keutamaan |
Klik pada permohonan untuk melihat butiran penuh. Untuk permohonan dengan status Submitted, Admin boleh:
Jadual 16.3: Tindakan Semakan
| Tindakan | Keterangan |
|---|---|
| Approve | Luluskan permohonan. Komen pilihan boleh ditambah. |
| Reject | Tolak permohonan. Sebab penolakan wajib diberikan. |
Selepas diluluskan, Admin boleh mengemaskini status permohonan melalui butang "Update Status":
Jadual 16.4: Aliran Status
| Status Semasa | Boleh Tukar Ke |
|---|---|
| Submitted | Approved atau Rejected |
| Approved | Pending Purchase atau Purchased |
| Pending Purchase | Purchased |
URL: /purchase-requests/{id}
Halaman butiran memaparkan maklumat lengkap termasuk:
Admin boleh memadam permohonan pembelian melalui butang padam di senarai permohonan. Pemadaman menggunakan soft delete — data tidak dipadam secara kekal.
Staff kini boleh mengubah suai permohonan pembelian mereka sendiri — tetapi hanya ketika status masih Submitted. Setelah anda (Admin) atau Account mula semak, butang Edit akan hilang secara automatik.
edit_count), tarikh terakhir (edited_at), dan siapa yang mengubah (edited_by)Dalam mod peribadi, Admin bertindak seperti Staff biasa:
/purchase-requests/createAdmins are responsible for reviewing, approving, or rejecting purchase requests submitted by Staff. In personal mode, Admins can also submit their own requests.
URL: /purchase-requests
In admin mode, this page displays all purchase requests from all Staff.
Table 16.1: Request List Columns
| Column | Description |
|---|---|
| # | Request number (e.g. PR-20260227-ABC123) and date |
| Item | Item name and brand/model (if any) |
| Requested By | Name and department of the Staff who made the request |
| Category | Request category — from the list of active categories. Each category has its own badge color set by the admin |
| Price | Estimated price per unit (RM) and total if quantity exceeds 1 |
| Priority | Priority: Low Medium High Urgent |
| Status | Current request status |
Table 16.2: List Filters
| Filter | Description |
|---|---|
| Search | Search by item name, request number, brand |
| Status | Filter by status (Submitted, Approved, Rejected, etc.) |
| Priority | Filter by priority level |
Click on a request to view full details. For requests with status Submitted, Admin can:
Table 16.3: Review Actions
| Action | Description |
|---|---|
| Approve | Approve the request. Optional comments can be added. |
| Reject | Reject the request. Rejection reason is mandatory. |
After approval, Admin can update the request status via the "Update Status" button:
Table 16.4: Status Flow
| Current Status | Can Change To |
|---|---|
| Submitted | Approved or Rejected |
| Approved | Pending Purchase or Purchased |
| Pending Purchase | Purchased |
URL: /purchase-requests/{id}
The details page displays complete information including:
Admins can delete purchase requests via the delete button on the request list. Deletion uses soft delete — data is not permanently removed.
Staff can now edit their own purchase requests — but only while the status is still Submitted. Once you (Admin) or Account begin reviewing, the Edit button disappears automatically.
edit_count), last edit timestamp (edited_at), and who edited it (edited_by)In personal mode, Admin functions like a regular Staff member:
/purchase-requests/createProses kemaskini profil adalah sama seperti yang diterangkan dalam Manual Staff — kemaskini maklumat peribadi di /profile.
URL: /notifications
Admin menerima notifikasi melalui e-mel dan/atau WhatsApp bergantung kepada konfigurasi yang ditetapkan oleh Superadmin. Berikut ialah senarai lengkap jenis notifikasi mengikut kategori:
Jadual 17.1: Notifikasi Tempahan Individu
| Jenis | Keterangan |
|---|---|
| New Booking Created | Tempahan baru telah dicipta |
| Booking Submitted for Approval | Tempahan baru menunggu kelulusan admin |
| Booking Approved | Tempahan telah diluluskan |
| Booking Rejected | Tempahan telah ditolak |
| Booking Cancelled | Tempahan telah dibatalkan oleh pengguna |
| Resource Collected | Sumber telah dikutip oleh pengguna |
| Resource Returned | Sumber telah dipulangkan oleh pengguna |
| Booking Reminder | Peringatan 24 jam sebelum tempahan |
| Collection Reminder | Peringatan untuk mengutip sumber apabila tempahan bermula |
| Return Reminder | Peringatan 1 jam sebelum masa pemulangan |
| Overdue Return | Sumber lewat dipulangkan |
Jadual 17.2: Notifikasi Tempahan Kumpulan
| Jenis | Keterangan |
|---|---|
| Group Booking Created | Tempahan kumpulan baru dicipta |
| Group Booking Approved | Tempahan kumpulan diluluskan |
| Group Booking Rejected | Tempahan kumpulan ditolak |
| Group Booking Cancelled | Tempahan kumpulan dibatalkan |
| Group Resource Collected | Sumber kumpulan dikutip |
| Group Resource Returned | Sumber kumpulan dipulangkan |
Jadual 17.3: Notifikasi Permintaan Pembelian
| Jenis | Keterangan |
|---|---|
| Purchase Request Submitted | Permintaan pembelian baru dihantar |
| Purchase Request Edited Baru | Pemohon mengubah suai permohonan berstatus Submitted — semak semula sebelum luluskan |
| Purchase Request Approved | Permintaan pembelian diluluskan |
| Purchase Request Rejected | Permintaan pembelian ditolak |
| Purchase Request Pending Purchase | Permintaan pembelian menunggu pembelian |
| Purchase Request Purchased | Permintaan pembelian telah dibeli |
Jadual 17.4: Notifikasi Lain
| Jenis | Keterangan |
|---|---|
| Review Submitted | Ulasan baru diberikan oleh pengguna |
The profile update process is the same as described in the Staff Manual — update personal information at /profile.
URL: /notifications
Admins receive notifications via email and/or WhatsApp depending on the configuration set by the Superadmin. Below is the full list of notification types by category:
Table 17.1: Individual Booking Notifications
| Type | Description |
|---|---|
| New Booking Created | A new booking has been created |
| Booking Submitted for Approval | A new booking is awaiting admin approval |
| Booking Approved | A booking has been approved |
| Booking Rejected | A booking has been rejected |
| Booking Cancelled | A booking has been cancelled by user |
| Resource Collected | A resource has been collected by user |
| Resource Returned | A resource has been returned by user |
| Booking Reminder | Reminder sent 24 hours before booking |
| Collection Reminder | Reminder to collect resource when booking starts |
| Return Reminder | Reminder sent 1 hour before return time |
| Overdue Return | Resource return is overdue |
Table 17.2: Group Booking Notifications
| Type | Description |
|---|---|
| Group Booking Created | A new group booking has been created |
| Group Booking Approved | A group booking has been approved |
| Group Booking Rejected | A group booking has been rejected |
| Group Booking Cancelled | A group booking has been cancelled |
| Group Resource Collected | Group resources have been collected |
| Group Resource Returned | Group resources have been returned |
Table 17.3: Purchase Request Notifications
| Type | Description |
|---|---|
| Purchase Request Submitted | A new purchase request has been submitted |
| Purchase Request Edited New | The requester edited a Submitted request — re-check before approving |
| Purchase Request Approved | A purchase request has been approved |
| Purchase Request Rejected | A purchase request has been rejected |
| Purchase Request Pending Purchase | A purchase request is pending purchase |
| Purchase Request Purchased | A purchase request has been purchased |
Table 17.4: Other Notifications
| Type | Description |
|---|---|
| Review Submitted | A new review has been submitted by a user |
Selain menggunakan sistem melalui log masuk, pengguna juga boleh mengakses beberapa fungsi melalui halaman awam (/) — tanpa perlu log masuk.
URL: /
Halaman utama memaparkan:
Halaman awam mempunyai 3 tab utama:
| Tab | Keterangan |
|---|---|
| Calendar | Kalendar interaktif memaparkan semua tempahan mengikut bulan |
| Book Resources | Layari dan tempah sumber, serta akses fungsi Collect, Return, Extend dan Cancel |
| User Manual | Manual pengguna lengkap untuk rujukan |
Fungsi layari sumber di halaman awam serupa dengan halaman /resources selepas log masuk.
Jadual 18.1: Penapis Sumber Awam
| Penapis | Keterangan |
|---|---|
| Search Resource | Cari mengikut nama sumber (live search) |
| Category | Tapis mengikut kategori |
| Start Date / End Date | Tarikh mula dan tamat |
| Start Time / End Time | Masa mula dan tamat |
Jadual 18.2: Petunjuk Status Penapis
| Badge | Keterangan |
|---|---|
| Filters applied... | Penapis telah digunakan — sumber tersedia ditunjukkan dahulu |
| Apply filters... | Sila gunakan penapis untuk melihat ketersediaan |
Pengguna boleh membuat tempahan tanpa log masuk melalui halaman awam.
Jadual 18.3: Langkah Tempahan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Di halaman awam, tetapkan tarikh dan masa menggunakan penapis (Start Date, Start Time, End Date, End Time) dan klik "Apply Filters" |
| 2 | Sistem akan menunjukkan sumber yang Available dan Unavailable untuk masa tersebut |
| 3 | Klik butang "Book" pada sumber yang tersedia |
| 4 | Borang tempahan muncul dengan tarikh/masa dipra-isi dan dikunci |
| 5 | Pilih "Add to Cart" untuk menambah lagi sumber, atau "Book Now" untuk terus ke troli |
| 6 | Di halaman troli (/public-cart), semak item dan klik "Checkout" |
| 7 | Modal pengesahan muncul — isi Tujuan (wajib), Peserta (pilihan), dan IC 4 Digit Terakhir |
| 8 | Klik "Confirm & Checkout" — tempahan dicipta secara automatik |
Jadual 18.4: Medan Checkout Tempahan Awam
| Medan | Keterangan | Wajib? |
|---|---|---|
| Resource | Sumber yang dipilih (dipra-isi dan dikunci) | Ya (auto) |
| Start Date & Time | Tarikh dan masa mula (dipra-isi dan dikunci dari penapis) | Ya (auto) |
| End Date & Time | Tarikh dan masa tamat (dipra-isi dan dikunci dari penapis) | Ya (auto) |
| Purpose | Tujuan tempahan (diisi semasa checkout) | Ya |
| Participants | Senarai peserta (diisi semasa checkout, auto-complete) | Tidak |
| IC Last 4 Digits | Pengesahan identiti (diisi semasa checkout) | Ya |
Kalendar interaktif di halaman awam menunjukkan semua tempahan:
Jadual 18.5: Langkah Kutipan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Collect" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan yang hendak dikutip |
| 5 | Isi nota keadaan dan muat naik gambar (minimum 1, maks 3) |
| 6 | Klik "Confirm Collection" |
Jadual 18.6: Langkah Pemulangan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Return" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan dan tetapkan status setiap sumber (Returned / Missing) |
| 5 | Isi nota pemulangan (wajib jika Missing) dan muat naik gambar |
| 6 | Klik "Confirm Return" |
Jadual 18.7: Keputusan Pemulangan
| Keputusan | Ikon | Keterangan |
|---|---|---|
| Semua dipulangkan | Hijau | "Returned!" |
| Ada item hilang | Kuning | "Returned with Missing Items" |
| Sebahagian gagal | Merah | "Partial Success" |
Jadual 18.8: Langkah Pelanjutan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Extend" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan yang hendak dilanjutkan (boleh pilih semua atau sebahagian) |
| 5 | Tetapkan tarikh dan masa tamat baharu |
| 6 | Klik "Extend Booking" atau "Extend Selected" |
Jadual 18.9: Langkah Pembatalan Awam
| Langkah | Tindakan |
|---|---|
| 1 | Klik tab "Book Resources" di halaman utama |
| 2 | Klik butang "Cancel" |
| 3 | Masukkan IC Last 4 Digits |
| 4 | Pilih tempahan yang hendak dibatalkan (boleh pilih semua atau sebahagian) |
| 5 | Masukkan sebab pembatalan (wajib) |
| 6 | Klik "Cancel Booking" atau "Cancel Selected" |
Besides using the system through login, users can also access some functions via the public page (/) — without logging in.
URL: /
The welcome page displays:
The public page has 3 main tabs:
| Tab | Description |
|---|---|
| Calendar | Interactive calendar displaying all bookings by month |
| Book Resources | Browse and book resources, plus access Collect, Return, Extend and Cancel functions |
| User Manual | Complete user manual for reference |
The public resource browsing functions similarly to the /resources page after login.
Table 18.1: Public Resource Filters
| Filter | Description |
|---|---|
| Search Resource | Search by resource name (live search) |
| Category | Filter by category |
| Start Date / End Date | Start and end dates |
| Start Time / End Time | Start and end times |
Table 18.2: Filter Status Indicators
| Badge | Description |
|---|---|
| Filters applied... | Filters have been applied — available resources shown first |
| Apply filters... | Please apply filters to see availability |
Users can create bookings without logging in via the public page.
Table 18.3: Public Booking Steps
| Step | Action |
|---|---|
| 1 | On the public page, set the date and time using the filters (Start Date, Start Time, End Date, End Time) and click "Apply Filters" |
| 2 | The system will show resources that are Available and Unavailable for that time |
| 3 | Click the "Book" button on an available resource |
| 4 | The booking form appears with date/time pre-filled and locked |
| 5 | Choose "Add to Cart" to add more resources, or "Book Now" to go directly to the cart |
| 6 | On the cart page (/public-cart), review items and click "Checkout" |
| 7 | A confirmation modal appears — enter Purpose (required), Participants (optional), and IC Last 4 Digits |
| 8 | Click "Confirm & Checkout" — bookings are created automatically |
Table 18.4: Public Booking Checkout Fields
| Field | Description | Required? |
|---|---|---|
| Resource | Selected resource (pre-filled and locked) | Yes (auto) |
| Start Date & Time | Start date and time (pre-filled and locked from filters) | Yes (auto) |
| End Date & Time | End date and time (pre-filled and locked from filters) | Yes (auto) |
| Purpose | Booking purpose (entered at checkout) | Yes |
| Participants | Participant list (entered at checkout, auto-complete) | No |
| IC Last 4 Digits | Identity verification (entered at checkout) | Yes |
An interactive calendar on the public page displays all bookings:
Table 18.5: Public Collection Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Collect" button |
| 3 | Enter IC Last 4 Digits |
| 4 | Select the booking to collect |
| 5 | Fill in condition notes and upload photos (min 1, max 3) |
| 6 | Click "Confirm Collection" |
Table 18.6: Public Return Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Return" button |
| 3 | Enter IC Last 4 Digits |
| 4 | Select the booking and set each resource status (Returned / Missing) |
| 5 | Fill in return notes (mandatory if Missing) and upload photos |
| 6 | Click "Confirm Return" |
Table 18.7: Return Results
| Result | Icon | Description |
|---|---|---|
| All returned | Green | "Returned!" |
| Missing items | Yellow | "Returned with Missing Items" |
| Partial failure | Red | "Partial Success" |
Table 18.8: Public Extend Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Extend" button |
| 3 | Enter IC Last 4 Digits |
| 4 | Select bookings to extend (select all or individual) |
| 5 | Set a new end date and time |
| 6 | Click "Extend Booking" or "Extend Selected" |
Table 18.9: Public Cancel Steps
| Step | Action |
|---|---|
| 1 | Click the "Book Resources" tab on the welcome page |
| 2 | Click the "Cancel" button |
| 3 | Enter IC Last 4 Digits |
| 4 | Select bookings to cancel (select all or individual) |
| 5 | Enter a cancellation reason (required) |
| 6 | Click "Cancel Booking" or "Cancel Selected" |
URL: /admin/reports
Halaman Laporan menyediakan analitik dan statistik tempahan secara menyeluruh. Akses melalui menu Analytics > Reports di sidebar.
Gunakan penapis di bahagian atas untuk menapis data laporan:
Klik Reset untuk menetapkan semula semua penapis.
Empat kad statistik dipaparkan di bahagian atas:
Tiga carta interaktif dipaparkan:
Carta dikemaskini secara automatik apabila penapis diubah.
Empat jadual dipaparkan dalam dua lajur:
Dua pilihan eksport tersedia:
.xlsx dengan semua data laporan dalam satu helaian.pdf (landskap A4) dengan logo RD, semua statistik dan jadualURL: /admin/reports
The Reports page provides comprehensive booking analytics and statistics. Access it via Analytics > Reports in the sidebar.
Use the filters at the top to narrow down report data:
Click Reset to clear all filters.
Four statistics cards are displayed at the top:
Three interactive charts are displayed:
Charts update automatically when filters are changed.
Four tables are displayed in a two-column layout:
Two export options are available:
.xlsx file with all report data in a single sheet.pdf file (landscape A4) with RD logo, all statistics and tablesURL: /admin/feedback
Modul pengurusan maklum balas membolehkan anda melihat, membalas, mengemas kini status, dan memadam maklum balas daripada kakitangan dan pengguna awam.
Tukar status maklum balas mengikut keperluan:
Jadual 19.5.2: Status Maklum Balas
| Status | Keterangan |
|---|---|
| Submitted | Baru dihantar |
| In Review | Sedang disemak |
| In Progress | Sedang dilaksanakan |
| Completed | Selesai |
| Rejected | Tidak diterima |
Klik butang "Delete" untuk memadam maklum balas. Tindakan ini tidak boleh dibatalkan.
URL: /admin/feedback
The feedback management module allows you to view, reply, update status, and delete feedback from staff and public users.
Change the feedback status as needed:
Table 19.5.2: Feedback Status
| Status | Description |
|---|---|
| Submitted | Newly submitted |
| In Review | Under review |
| In Progress | Being implemented |
| Completed | Done |
| Rejected | Not accepted |
Click the "Delete" button to remove feedback. This action cannot be undone.
Berikut ialah senarai status tempahan yang digunakan dalam sistem RD BookHub.
Jadual 20.1: Senarai Status Tempahan
Below is the list of booking statuses used in the RD BookHub system.
Table 20.1: Booking Status List
| Status | WarnaColour | KeteranganDescription |
|---|---|---|
| Pending | KuningYellow | Menunggu kelulusan adminAwaiting admin approval |
| Approved | HijauGreen | Diluluskan, sedia untuk kutipanApproved, ready for collection |
| Rejected | MerahRed | Tidak diluluskanNot approved |
| Collected | Biru mudaLight Blue | Sumber telah dikutipResource has been collected |
| Overdue | Merah mudaLight Red | Lewat dipulangkan (tarikh tamat sudah lepas)Past the return deadline |
| Completed | SianCyan | Tempahan selesai — sumber tanpa kutipan fizikal (cth: bilik mesyuarat) selepas tarikh tamatBooking completed — non-collection resource (e.g. meeting room) past end date |
| Missed | OrenOrange | Diluluskan tetapi tidak dikutip (tarikh tamat sudah lepas) — sumber memerlukan kutipan fizikalApproved but not collected (past end date) — resource requires physical collection |
| Returned | BiruBlue | Sumber telah dipulangkanResource has been returned |
| Cancelled | KelabuGrey | Tempahan dibatalkanBooking cancelled |
Peranan: Account Role: Account
RD BookHub ialah sistem tempahan sumber yang juga merangkumi modul Permohonan Pembelian. Sebagai Account, anda bertanggungjawab mengurus semua permohonan pembelian yang berkaitan kewangan.
Jadual 1.1: Fungsi Account
| Bil. | Fungsi | Keterangan |
|---|---|---|
| 1 | Melihat Semua Permohonan Pembelian | Melihat semua permohonan dari semua kakitangan |
| 2 | Meluluskan / Menolak Permohonan | Meluluskan atau menolak permohonan pembelian |
| 3 | Kemaskini Status Permohonan | Mengemaskini status permohonan (Pending Purchase, Purchased) |
| 4 | Padam Permohonan | Memadam permohonan pembelian yang tidak diperlukan |
| 5 | Menghantar Permohonan Sendiri | Menghantar permohonan pembelian sendiri (mod peribadi) |
| 6 | Tempahan Sumber | Menempah sumber seperti Staff (mod peribadi) |
RD BookHub is a resource booking system that also includes a Purchase Request module. As an Account user, you are responsible for managing all finance-related purchase requests.
Table 1.1: Account Functions
| No. | Function | Description |
|---|---|---|
| 1 | View All Purchase Requests | View all purchase requests from all staff |
| 2 | Approve / Reject Requests | Approve or reject purchase requests |
| 3 | Update Request Status | Update request status (Pending Purchase, Purchased) |
| 4 | Delete Requests | Delete purchase requests that are no longer needed |
| 5 | Submit Own Requests | Submit your own purchase requests (personal mode) |
| 6 | Book Resources | Book resources like Staff (personal mode) |
URL: /login
Masukkan e-mel dan kata laluan anda. Selepas log masuk berjaya, anda akan dibawa ke Dashboard Account.
URL: /dashboard
Dashboard memaparkan ringkasan statistik permohonan pembelian:
Jadual 2.1: Kad Statistik Dashboard
| Kad | Keterangan |
|---|---|
| Total Requests | Jumlah keseluruhan permohonan pembelian |
| Pending Review | Bilangan permohonan yang menunggu semakan |
| Approved | Bilangan permohonan yang telah diluluskan |
| Approved Cost (RM) | Jumlah kos permohonan yang diluluskan |
Di bawah kad statistik, terdapat jadual Permohonan Terkini yang memaparkan 5 permohonan terbaru dengan pautan ke halaman butiran.
URL: /login
Enter your email and password. After successful login, you will be directed to the Account Dashboard.
URL: /dashboard
The dashboard displays a summary of purchase request statistics:
Table 2.1: Dashboard Stat Cards
| Card | Description |
|---|---|
| Total Requests | Total number of purchase requests |
| Pending Review | Number of requests awaiting review |
| Approved | Number of approved requests |
| Approved Cost (RM) | Total cost of approved requests |
Below the stat cards, a Recent Purchase Requests table shows the 5 most recent requests with links to their details page.
Account mempunyai dua mod paparan yang boleh ditukar melalui butang di sidebar:
Jadual 3.1: Mod Paparan
| Mod | Keterangan |
|---|---|
| Mod Account | Melihat dan mengurus semua permohonan pembelian daripada semua kakitangan. Dashboard memaparkan statistik keseluruhan. |
| Mod Peribadi | Berfungsi seperti Staff biasa. Melihat hanya permohonan dan tempahan sendiri. Boleh membuat tempahan dan menghantar permohonan pembelian baru. |
Account users have two view modes that can be toggled via the sidebar button:
Table 3.1: View Modes
| Mode | Description |
|---|---|
| Account Mode | View and manage all purchase requests from all staff. Dashboard shows overall statistics. |
| Personal Mode | Functions like a regular Staff user. View only your own requests and bookings. Can create bookings and submit new purchase requests. |
URL: /purchase-requests
Dalam mod account, halaman ini memaparkan semua permohonan pembelian daripada semua kakitangan.
Jadual 4.1: Lajur Senarai Permohonan
| Lajur | Keterangan |
|---|---|
| Request # | Nombor permohonan (cth: PR-20260327-ABC123) dan tarikh |
| Vendor | Nama vendor / syarikat |
| Requested By | Nama dan jabatan kakitangan yang membuat permohonan |
| Items | Bilangan item dan penerangan item pertama |
| Total (RM) | Jumlah keseluruhan (Grand Total) |
| Priority | Keutamaan: Low Medium High Urgent |
| Status | Status semasa permohonan |
| Actions | Butang untuk melihat butiran dan memadam |
URL: /purchase-requests
In account mode, this page displays all purchase requests from all staff.
Table 4.1: Request List Columns
| Column | Description |
|---|---|
| Request # | Request number (e.g. PR-20260327-ABC123) and date |
| Vendor | Vendor / company name |
| Requested By | Name and department of the requesting staff |
| Items | Item count and first item description |
| Total (RM) | Grand total amount |
| Priority | Priority: Low Medium High Urgent |
| Status | Current request status |
| Actions | Buttons to view details and delete |
Klik pada permohonan untuk melihat butiran penuh. Untuk permohonan dengan status Submitted, Account boleh menyemak melalui bahagian "FOR ACCOUNT USE ONLY":
Di bahagian "FOR ACCOUNT USE ONLY", Account perlu:
Jadual 5.1: Medan Semakan
| Medan | Keterangan | Wajib? |
|---|---|---|
| Shipping Method | Kaedah penghantaran: Delivery / Pick-Up / Sea Shipping | Ya |
| Payment Method | Kaedah pembayaran: Cash / Credit / Online Banking / Shopee Pay / Shopee Pay Later / Cards | Ya |
| Comments | Komen atau nota tambahan | Tidak |
Klik "Submit Account Review" untuk menghantar semakan. Status berubah ke Account Reviewed dan Admin akan dimaklumkan.
Account juga boleh menolak permohonan yang belum disemak. Klik butang "Reject" dan berikan sebab penolakan (wajib).
Selepas tindakan, notifikasi dihantar melalui:
Staff kini boleh mengubah suai permohonan pembelian mereka sendiri selagi status masih Submitted. Apabila permohonan diubah suai:
edit_count, edited_at, dan edited_byClick on a request to view full details. For requests with status Submitted, Account can review via the "FOR ACCOUNT USE ONLY" section:
In the "FOR ACCOUNT USE ONLY" section, Account must fill in:
Table 5.1: Review Fields
| Field | Description | Required? |
|---|---|---|
| Shipping Method | Delivery method: Delivery / Pick-Up / Sea Shipping | Yes |
| Payment Method | Payment method: Cash / Credit / Online Banking / Shopee Pay / Shopee Pay Later / Cards | Yes |
| Comments | Optional comments or notes | No |
Click "Submit Account Review" to submit the review. Status changes to Account Reviewed and Admin will be notified.
Account can also reject unreviewed requests. Click the "Reject" button and provide a rejection reason (mandatory).
After the action, notifications are sent via:
Staff can now edit their own purchase requests as long as the status is still Submitted. When a request is edited:
edit_count, edited_at, and edited_bySelepas permohonan diluluskan oleh Admin, Account boleh mengemaskini status dan mengisi bahagian "FOR OFFICE USE ONLY":
Klik butang "Update Status" di halaman butiran untuk menukar status:
Jadual 6.1: Aliran Status
| Status Semasa | Boleh Tukar Ke |
|---|---|
| Approved | Pending Purchase atau Purchased |
| Pending Purchase | Purchased |
Selepas permohonan diluluskan, bahagian "FOR OFFICE USE ONLY" boleh diisi:
Jadual 6.2: Medan Office Use
| Medan | Keterangan |
|---|---|
| Date Request Received | Tarikh permohonan diterima |
| Date Ordered | Tarikh pesanan dibuat |
| Confirmation | Nombor pengesahan pesanan |
| Buyer | Orang yang membuat pesanan |
| How Ordered | Kaedah pesanan: Vendor / Shopee / PO# / Others |
After a request is approved by Admin, Account can update the status and fill in the "FOR OFFICE USE ONLY" section:
Click the "Update Status" button on the details page to change status:
Table 6.1: Status Flow
| Current Status | Can Change To |
|---|---|
| Approved | Pending Purchase or Purchased |
| Pending Purchase | Purchased |
After a request is approved, the "FOR OFFICE USE ONLY" section can be filled in:
Table 6.2: Office Use Fields
| Field | Description |
|---|---|
| Date Request Received | Date the request was received |
| Date Ordered | Date the order was placed |
| Confirmation | Order confirmation number |
| Buyer | Person who placed the order |
| How Ordered | Order method: Vendor / Shopee / PO# / Others |
URL: /purchase-requests/{id}
Halaman butiran memaparkan maklumat lengkap termasuk:
Jadual 7.1: Bahagian Butiran
| Bahagian | Keterangan |
|---|---|
| Request Information | Nombor permohonan, tarikh, status, dan keutamaan |
| Item Details | Nama item, jenama/model, kategori, kuantiti, harga anggaran |
| Justification | Sebab permohonan yang diberikan oleh pemohon |
| Product Link | Pautan ke produk (jika ada) |
| Attachments | Gambar/fail yang dilampirkan oleh pemohon |
| Review Information | Nama penyemak, tarikh semakan, komen (selepas disemak) |
URL: /purchase-requests/{id}
The details page displays complete information including:
Table 7.1: Detail Sections
| Section | Description |
|---|---|
| Request Information | Request number, date, status, and priority |
| Item Details | Item name, brand/model, category, quantity, estimated price |
| Justification | Reason for the request provided by the requester |
| Product Link | Link to product (if provided) |
| Attachments | Images/files attached by the requester |
| Review Information | Reviewer name, review date, comments (after review) |
Account boleh memadam permohonan pembelian melalui butang padam di senarai permohonan.
Account users can delete purchase requests via the delete button on the request list.
Dalam mod peribadi, Account bertindak seperti Staff biasa:
/purchase-requests/create/purchase-requests/{id}/edit)/bookings/createDalam mod peribadi, sidebar menunjukkan navigasi seperti Staff:
Jadual 9.1: Menu Mod Peribadi
| Menu | Keterangan |
|---|---|
| Dashboard | Dashboard peribadi dengan ringkasan tempahan |
| Browse Resources | Layari sumber yang tersedia |
| My Bookings | Senarai tempahan anda |
| Purchase Requests | Permohonan pembelian anda sahaja |
In personal mode, Account functions like a regular Staff user:
/purchase-requests/create/purchase-requests/{id}/edit)/bookings/createIn personal mode, the sidebar shows Staff-like navigation:
Table 9.1: Personal Mode Menu
| Menu | Description |
|---|---|
| Dashboard | Personal dashboard with booking summary |
| Browse Resources | Browse available resources |
| My Bookings | List of your bookings |
| Purchase Requests | Your purchase requests only |
URL: /profile
Anda boleh mengemaskini maklumat profil termasuk:
Account menerima notifikasi untuk:
Jadual 10.1: Jenis Notifikasi
| Peristiwa | Keterangan |
|---|---|
| Purchase Request Submitted | Notifikasi apabila kakitangan menghantar permohonan pembelian baru |
| Purchase Request Approved | Notifikasi apabila permohonan anda (mod peribadi) diluluskan |
| Purchase Request Rejected | Notifikasi apabila permohonan anda (mod peribadi) ditolak |
| Purchase Request Pending Purchase | Notifikasi apabila permohonan sedang diproses untuk pembelian |
| Purchase Request Purchased | Notifikasi apabila item permohonan telah dibeli |
Notifikasi dipaparkan melalui ikon loceng di bahagian atas halaman. Klik ikon untuk melihat senarai notifikasi.
URL: /profile
You can update your profile information including:
Account users receive notifications for:
Table 10.1: Notification Types
| Event | Description |
|---|---|
| Purchase Request Submitted | Notification when a staff member submits a new purchase request |
| Purchase Request Approved | Notification when your own request (personal mode) is approved |
| Purchase Request Rejected | Notification when your own request (personal mode) is rejected |
| Purchase Request Pending Purchase | Notification when a request is being processed for purchase |
| Purchase Request Purchased | Notification when a request item has been purchased |
Notifications are displayed via the bell icon at the top of the page. Click the icon to view the notification list.
Sistem maklum balas membolehkan anda menghantar cadangan penambahbaikan, laporan pepijat, permintaan ciri baru, atau maklum balas umum kepada pentadbir.
Jadual 10.5.1: Medan Borang Maklum Balas
| Medan | Keterangan | Wajib? |
|---|---|---|
| Category | General, Improvement, Bug Report, Feature Request | Ya |
| Title | Tajuk ringkas | Ya |
| Description | Penerangan terperinci | Ya |
| Images | Sehingga 3 gambar (JPG/PNG/WebP, maks 5MB) | Tidak |
Jadual 10.5.3: Status Maklum Balas
| Status | Keterangan |
|---|---|
| Submitted | Baru dihantar |
| In Review | Sedang disemak |
| In Progress | Sedang dilaksanakan |
| Completed | Selesai |
| Rejected | Tidak diterima |
Anda juga boleh menghantar maklum balas melalui halaman awam (/) → tab "Feedback". Masukkan 4 digit terakhir IC untuk pengesahan.
The feedback system allows you to submit improvement suggestions, bug reports, feature requests, or general feedback to administrators.
Table 10.5.1: Feedback Form Fields
| Field | Description | Required? |
|---|---|---|
| Category | General, Improvement, Bug Report, Feature Request | Yes |
| Title | Brief summary | Yes |
| Description | Detailed description | Yes |
| Images | Up to 3 images (JPG/PNG/WebP, max 5MB each) | No |
Table 10.5.3: Feedback Status
| Status | Description |
|---|---|
| Submitted | Newly submitted |
| In Review | Under review |
| In Progress | Being implemented |
| Completed | Done |
| Rejected | Not accepted |
You can also submit feedback from the public page (/) → "Feedback" tab. Enter your IC last 4 digits for verification.
Jadual 11.1: Senarai Status Permohonan
| Status | Warna | Keterangan |
|---|---|---|
| Submitted | Kuning | Permohonan dihantar, menunggu semakan |
| Approved | Hijau | Permohonan diluluskan |
| Rejected | Merah | Permohonan ditolak (status akhir) |
| Pending Purchase | Oren | Menunggu pembelian |
| Purchased | Biru | Item telah dibeli (status akhir) |
Jadual 11.2: Tahap Keutamaan
| Keutamaan | Warna | Keterangan |
|---|---|---|
| Low | Kelabu | Keperluan tidak mendesak |
| Medium | Biru | Keperluan sederhana |
| High | Oren | Keperluan penting |
| Urgent | Merah | Keperluan segera |
Table 11.1: Request Status List
| Status | Colour | Description |
|---|---|---|
| Submitted | Yellow | Request submitted, awaiting review |
| Approved | Green | Request approved |
| Rejected | Red | Request rejected (terminal) |
| Pending Purchase | Orange | Awaiting purchase |
| Purchased | Blue | Item has been purchased (terminal) |
Table 11.2: Priority Levels
| Priority | Colour | Description |
|---|---|---|
| Low | Grey | Non-urgent requirement |
| Medium | Blue | Moderate requirement |
| High | Orange | Important requirement |
| Urgent | Red | Immediate requirement |
Peranan: Superadmin Role: Superadmin
Superadmin ialah peranan tertinggi dalam sistem RD BookHub. Superadmin bertanggungjawab untuk konfigurasi sistem, pengurusan pengguna, dan pemantauan keseluruhan.
| Bil. | Fungsi |
|---|---|
| 1 | Melihat semua tempahan (paparan sahaja) |
| 2 | Mengurus semua sumber (CRUD penuh) |
| 3 | Mengurus semua pengguna (termasuk cipta Admin/Superadmin lain) |
| 4 | Mengurus kategori dan jabatan |
| 5 | Melihat log audit dan aktiviti pengguna |
| 6 | Mengkonfigurasi tetapan tempahan |
| 7 | Mengkonfigurasi e-mel (SMTP) dan WhatsApp |
| 8 | Mengurus template notifikasi |
| 9 | Menjalankan operasi sistem (cache, backup, optimize) |
| Bil. | Sekatan | Catatan |
|---|---|---|
| 1 | Meluluskan atau menolak tempahan | Ini hanya untuk Admin |
| 2 | Mengutip atau memulangkan sumber | Ini untuk Staff/Admin sahaja |
| 3 | Membuat tempahan | Superadmin tidak boleh menempah sumber |
| 4 | Memberi ulasan | Ulasan hanya untuk pengguna yang telah menempah |
Superadmin is the highest role in the RD BookHub system. The Superadmin is responsible for system configuration, user management, and overall monitoring.
| No. | Function |
|---|---|
| 1 | View all bookings (view-only) |
| 2 | Manage all resources (full CRUD) |
| 3 | Manage all users (including creating other Admin/Superadmin accounts) |
| 4 | Manage categories and departments |
| 5 | View audit logs and user activity |
| 6 | Configure booking settings |
| 7 | Configure email (SMTP) and WhatsApp |
| 8 | Manage notification templates |
| 9 | Run system operations (cache, backup, optimize) |
| No. | Restriction | Remark |
|---|---|---|
| 1 | Approve or reject bookings | This is for Admin only |
| 2 | Collect or return resources | This is for Staff/Admin only |
| 3 | Make bookings | Superadmin cannot book resources |
| 4 | Leave reviews | Reviews are only for users who have made bookings |
Gunakan IC Last 4 Digits dan Password di halaman /login.
URL: /dashboard
Jadual 2.1: Kad Gambaran Keseluruhan
| Kad | Keterangan |
|---|---|
| Total Users | Jumlah semua pengguna. Badge menunjukkan pecahan: SA (Superadmin), Admin, Staff |
| Total Bookings | Jumlah semua tempahan. Badge: Pending, Active (Collected), Overdue, Missed |
| Audit Logs (Today) | Bilangan log audit hari ini |
4 kad menunjukkan inventori sumber:
Jadual 2.2: Kad Statistik Sumber
| Kad | Keterangan |
|---|---|
| Aset Marketing | Jumlah sumber marketing (total & available) |
| Aset Management | Jumlah sumber management |
| Aset Project | Jumlah sumber project |
| Aset SkellUp | Jumlah sumber SkellUp |
Jadual 2.3: Kad Konfigurasi Sistem
| Kad | Keterangan |
|---|---|
| Email Configuration | Status: Active/Inactive, SMTP Host, From Address |
| WhatsApp Configuration | Status: Active/Pending Setup, API Endpoint, API Key |
Menunjukkan tempahan terkini dari semua pengguna:
Use your IC Last 4 Digits and Password on the /login page.
URL: /dashboard
Table 2.1: Overview Cards
| Card | Description |
|---|---|
| Total Users | Total number of all users. Badge shows breakdown: SA (Superadmin), Admin, Staff |
| Total Bookings | Total number of all bookings. Badge: Pending, Active (Collected), Overdue, Missed |
| Audit Logs (Today) | Number of audit log entries for today |
4 cards showing resource inventory:
Table 2.2: Resource Statistics Cards
| Card | Description |
|---|---|
| Marketing Assets | Total marketing resources (total & available) |
| Management Assets | Total management resources |
| Project Assets | Total project resources |
| SkellUp Assets | Total SkellUp resources |
Table 2.3: System Configuration Cards
| Card | Description |
|---|---|
| Email Configuration | Status: Active/Inactive, SMTP Host, From Address |
| WhatsApp Configuration | Status: Active/Pending Setup, API Endpoint, API Key |
Displays recent bookings from all users:
URL: /bookings
Superadmin boleh melihat semua tempahan tetapi tidak boleh meluluskan atau menolak.
Jadual 3.1: Penapis Tempahan
| Penapis | Keterangan |
|---|---|
| Search | Cari mengikut nombor tempahan, nama sumber, nama pengguna |
| Status | Tapis mengikut status |
| Category | Tapis mengikut kategori |
Jadual 3.2: Tindakan Yang Tersedia
| Tindakan | Tersedia? |
|---|---|
| View Details | Ya |
| Approve | Tidak |
| Reject | Tidak |
| Collect | Tidak |
| Return | Tidak |
Klik "Export" untuk memuat turun senarai tempahan dalam format Excel.
URL: /bookings
The Superadmin can view all bookings but cannot approve or reject them.
Table 3.1: Booking Filters
| Filter | Description |
|---|---|
| Search | Search by booking number, resource name, user name |
| Status | Filter by status |
| Category | Filter by category |
Table 3.2: Available Actions
| Action | Available? |
|---|---|
| View Details | Yes |
| Approve | No |
| Reject | No |
| Collect | No |
| Return | No |
Click "Export" to download the booking list in Excel format.
URL: /superadmin/resources/manage
Fungsi pengurusan sumber untuk Superadmin adalah sama seperti yang diterangkan dalam Manual Admin.
Jadual 4.1: Operasi Sumber
| Tindakan | URL | Keterangan |
|---|---|---|
| Senarai | /superadmin/resources/manage | Lihat semua sumber dengan penapis |
| Cipta | /superadmin/resources/create | Tambah sumber baru |
| Lihat | /superadmin/resources/{id} | Butiran sumber, statistik tempahan, ulasan |
| Kemaskini | /superadmin/resources/{id}/edit | Ubah maklumat sumber |
| Padam | DELETE /superadmin/resources/{id} | Padam sumber (dengan pengesahan) |
| Togol | PATCH /superadmin/resources/{id}/toggle-availability | Tukar ketersediaan |
Jadual 4.2: Medan Borang Sumber
| Medan | Keterangan |
|---|---|
| Item Name | Nama sumber (wajib) |
| Category | Kategori (wajib) |
| Parent Item | Sumber induk jika sub-item |
| Quantity | Bilangan unit |
| Price | Harga (RM) |
| Asset Code | Kod aset |
| Condition | Keadaan: Good, Damaged, Under Maintenance, Missing |
| Remarks | Catatan |
| Is Available | Boleh ditempah? |
| Requires Approval | Perlu kelulusan? |
| Requires Collection | Perlu kutipan fizikal? |
| Image | Gambar (maks 5MB) |
URL: /superadmin/resources/manage
The resource management functionality for Superadmin is the same as described in the Admin Manual.
Table 4.1: Resource Operations
| Action | URL | Description |
|---|---|---|
| List | /superadmin/resources/manage | View all resources with filters |
| Create | /superadmin/resources/create | Add a new resource |
| View | /superadmin/resources/{id} | Resource details, booking statistics, reviews |
| Update | /superadmin/resources/{id}/edit | Edit resource information |
| Delete | DELETE /superadmin/resources/{id} | Delete resource (with confirmation) |
| Toggle | PATCH /superadmin/resources/{id}/toggle-availability | Toggle availability |
Table 4.2: Resource Form Fields
| Field | Description |
|---|---|
| Item Name | Resource name (required) |
| Category | Category (required) |
| Parent Item | Parent resource if sub-item |
| Quantity | Number of units |
| Price | Price (RM) |
| Asset Code | Asset code |
| Condition | Condition: Good, Damaged, Under Maintenance, Missing |
| Remarks | Notes |
| Is Available | Can it be booked? |
| Requires Approval | Does it require approval? |
| Requires Collection | Does it require physical collection? |
| Image | Image (max 5MB) |
URL: /superadmin/users
URL: /superadmin/users/create
Jadual 5.1: Medan Borang Cipta Pengguna
| Medan | Keterangan | Wajib? |
|---|---|---|
| Full Name | Nama penuh | Ya |
| IC Number | Nombor IC penuh (12 digit) | Ya |
| E-mel (unik) | Ya | |
| Phone | Nombor telefon | Ya |
| Department | Jabatan | Tidak |
| Role | Staff / Admin / Account / Superadmin | Ya |
| Password | Minimum 8 aksara | Ya |
| Profile Photo | Gambar (maks 5MB) | Tidak |
URL: /superadmin/users
URL: /superadmin/users/create
Table 5.1: Create User Form Fields
| Field | Description | Required? |
|---|---|---|
| Full Name | Full name | Yes |
| IC Number | Full IC number (12 digits) | Yes |
| Email (unique) | Yes | |
| Phone | Phone number | Yes |
| Department | Department | No |
| Role | Staff / Admin / Account / Superadmin | Yes |
| Password | Minimum 8 characters | Yes |
| Profile Photo | Image (max 5MB) | No |
URL: /superadmin/categories
Jadual 6.1: Operasi Kategori
| Tindakan | Keterangan |
|---|---|
| Cipta | Tambah kategori baru (Name + Label + Badge Color) |
| Kemaskini | Ubah nama, label, warna lencana, status aktif |
| Padam | Padam kategori |
Jadual 6.2: Medan Borang Kategori
| Medan | Keterangan | Wajib? |
|---|---|---|
| Name | Nama teknikal (huruf kecil, cth: "equipment") | Ya |
| Label | Nama paparan (cth: "Equipment") | Ya |
| Badge Color | Warna lencana kategori. Pilih warna menggunakan pemilih warna — pratonton lencana akan dipaparkan secara langsung | Tidak |
| Is Active | Status aktif | Ya |
URL: /superadmin/categories
Table 6.1: Category Operations
| Action | Description |
|---|---|
| Create | Add a new category (Name + Label + Badge Color) |
| Update | Edit name, label, badge color, active status |
| Delete | Delete category |
Table 6.2: Category Form Fields
| Field | Description | Required? |
|---|---|---|
| Name | Technical name (lowercase, e.g. "equipment") | Yes |
| Label | Display name (e.g. "Equipment") | Yes |
| Badge Color | Category badge color. Pick a color using the color picker — a live badge preview is shown | No |
| Is Active | Active status | Yes |
URL: /superadmin/departments
Jadual 7.1: Operasi Jabatan
| Tindakan | Keterangan |
|---|---|
| Cipta | Tambah jabatan (nama, penerangan, status) |
| Kemaskini | Ubah maklumat jabatan |
| Padam | Padam jabatan |
URL: /superadmin/departments
Table 7.1: Department Operations
| Action | Description |
|---|---|
| Create | Add department (name, description, status) |
| Update | Edit department information |
| Delete | Delete department |
URL: /superadmin/audit-logs
Senarai semua aktiviti sistem termasuk:
Jadual 8.1: Penapis Log Audit
| Penapis | Keterangan |
|---|---|
| User | Tapis mengikut pengguna |
| Action | Tapis: Create, Update, Delete |
| Date Range | Tapis mengikut julat tarikh |
| Search | Cari mengikut nama sumber |
Klik pada log untuk melihat:
URL: /superadmin/audit-logs
List of all system activities including:
Table 8.1: Audit Log Filters
| Filter | Description |
|---|---|
| User | Filter by user |
| Action | Filter: Create, Update, Delete |
| Date Range | Filter by date range |
| Search | Search by resource name |
Click on a log entry to view:
URL: /superadmin/user-activity
URL: /superadmin/user-activity
URL: /superadmin/booking-settings
Jadual 10.1: Tetapan Tempahan
| Tetapan | Keterangan |
|---|---|
| Booking Deadline (Days) | Berapa hari sebelum tarikh mula tempahan mesti dibuat. Cth: 2 hari bermaksud kakitangan perlu menempah sekurang-kurangnya 2 hari kerja lebih awal |
| Default Approval | Tetapan kelulusan lalai untuk sumber baru |
| Default Collection | Tetapan kutipan lalai untuk sumber baru |
URL: /superadmin/booking-settings
Table 10.1: Booking Settings
| Setting | Description |
|---|---|
| Booking Deadline (Days) | How many days before the start date a booking must be made. E.g. 2 days means staff must book at least 2 working days in advance |
| Default Approval | Default approval setting for new resources |
| Default Collection | Default collection setting for new resources |
URL: /superadmin/notifications/configuration
Jadual 11.1: Tetapan E-mel SMTP
| Tetapan | Keterangan |
|---|---|
| SMTP Host | Pelayan e-mel (cth: smtp.gmail.com) |
| SMTP Port | Port (cth: 587) |
| SMTP Username | Nama pengguna e-mel |
| SMTP Password | Kata laluan e-mel |
| From Address | Alamat penghantar |
| From Name | Nama penghantar |
URL: /superadmin/whatsapp/configuration
Jadual 11.2: Tetapan WhatsApp
| Tetapan | Keterangan |
|---|---|
| API Endpoint | URL Wabot.my |
| API Key | Kunci API untuk pengesahan |
| Status | Active / Inactive |
URL E-mel: /superadmin/notifications/templates/email
URL WhatsApp: /superadmin/notifications/templates/whatsapp
Urus template untuk pelbagai jenis notifikasi:
URL: /superadmin/notifications/configuration (Tab: Events)
Aktifkan atau nyahaktifkan setiap jenis notifikasi. Berikut ialah senarai acara notifikasi yang tersedia:
Jadual 11.3: Acara Notifikasi Tempahan Individu
| Acara | Keterangan |
|---|---|
| Booking Created | Tempahan baru dicipta |
| Submitted for Approval | Tempahan dihantar untuk kelulusan |
| Booking Approved | Tempahan diluluskan |
| Booking Rejected | Tempahan ditolak |
| Booking Cancelled | Tempahan dibatalkan |
| Resource Collected | Sumber dikutip |
| Resource Returned | Sumber dipulangkan |
| Booking Extended | Tempahan dilanjutkan |
| Booking Reminder | Peringatan 24 jam sebelum tempahan |
| Collection Reminder | Peringatan untuk mengutip sumber apabila tempahan bermula |
| Return Reminder | Peringatan 1 jam sebelum masa pemulangan |
| Overdue Return | Sumber lewat dipulangkan |
Jadual 11.4: Acara Notifikasi Tempahan Kumpulan
| Acara | Keterangan |
|---|---|
| Group Booking Created | Tempahan kumpulan dicipta |
| Group Booking Approved | Tempahan kumpulan diluluskan |
| Group Booking Rejected | Tempahan kumpulan ditolak |
| Group Booking Cancelled | Tempahan kumpulan dibatalkan |
| Group Resource Collected | Sumber kumpulan dikutip |
| Group Resource Returned | Sumber kumpulan dipulangkan |
| Group Booking Extended | Tempahan kumpulan dilanjutkan |
Jadual 11.5: Acara Notifikasi Lain
| Acara | Keterangan |
|---|---|
| Purchase Request Submitted | Permintaan pembelian dihantar |
| Purchase Request Edited Baru | Pemohon mengubah suai permohonan berstatus Submitted — dihantar kepada Admin & Account |
| Purchase Request Account Reviewed | Permintaan pembelian disemak oleh Account |
| Purchase Request Approved | Permintaan pembelian diluluskan oleh Admin |
| Purchase Request Rejected | Permintaan pembelian ditolak |
| Purchase Request Pending Purchase | Permintaan pembelian menunggu pembelian |
| Purchase Request Purchased | Permintaan pembelian telah dibeli |
| Review Submitted | Ulasan baru dihantar |
URL: /superadmin/notifications/configuration
Table 11.1: SMTP Email Settings
| Setting | Description |
|---|---|
| SMTP Host | Email server (e.g. smtp.gmail.com) |
| SMTP Port | Port (e.g. 587) |
| SMTP Username | Email username |
| SMTP Password | Email password |
| From Address | Sender address |
| From Name | Sender name |
URL: /superadmin/whatsapp/configuration
Table 11.2: WhatsApp Settings
| Setting | Description |
|---|---|
| API Endpoint | Wabot.my URL |
| API Key | API key for authentication |
| Status | Active / Inactive |
Email URL: /superadmin/notifications/templates/email
WhatsApp URL: /superadmin/notifications/templates/whatsapp
Manage templates for various notification types:
URL: /superadmin/notifications/configuration (Tab: Events)
Enable or disable each notification type. Below is the list of available notification events:
Table 11.3: Individual Booking Notification Events
| Event | Description |
|---|---|
| Booking Created | A new booking is created |
| Submitted for Approval | Booking submitted for admin approval |
| Booking Approved | Booking has been approved |
| Booking Rejected | Booking has been rejected |
| Booking Cancelled | Booking has been cancelled |
| Resource Collected | Resource has been collected |
| Resource Returned | Resource has been returned |
| Booking Extended | Booking end time has been extended |
| Booking Reminder | Reminder sent 24 hours before booking |
| Collection Reminder | Reminder to collect resource when booking starts |
| Return Reminder | Reminder sent 1 hour before return time |
| Overdue Return | Resource return is overdue |
Table 11.4: Group Booking Notification Events
| Event | Description |
|---|---|
| Group Booking Created | A group booking is created |
| Group Booking Approved | A group booking has been approved |
| Group Booking Rejected | A group booking has been rejected |
| Group Booking Cancelled | A group booking has been cancelled |
| Group Resource Collected | Group resources have been collected |
| Group Resource Returned | Group resources have been returned |
| Group Booking Extended | A group booking has been extended |
Table 11.5: Other Notification Events
| Event | Description |
|---|---|
| Purchase Request Submitted | A purchase request has been submitted |
| Purchase Request Edited New | Requester edited a Submitted request — sent to Admin & Account |
| Purchase Request Account Reviewed | A purchase request has been reviewed by Account |
| Purchase Request Approved | A purchase request has been approved by Admin |
| Purchase Request Rejected | A purchase request has been rejected |
| Purchase Request Pending Purchase | A purchase request is pending purchase |
| Purchase Request Purchased | A purchase request has been purchased |
| Review Submitted | A new review has been submitted |
Butang operasi tersedia di Dashboard atau halaman sistem:
Jadual 12.1: Operasi Sistem
| Operasi | Keterangan |
|---|---|
| Clear Cache | Bersihkan cache aplikasi |
| Optimize | Optimumkan pangkalan data dan cache |
| Backup Database | Cipta salinan sandaran pangkalan data |
| Run Scheduler | Jalankan tugas berjadual secara manual |
| Health Check | Semak status kesihatan sistem |
Operation buttons are available on the Dashboard or system page:
Table 12.1: System Operations
| Operation | Description |
|---|---|
| Clear Cache | Clear the application cache |
| Optimize | Optimize the database and cache |
| Backup Database | Create a database backup |
| Run Scheduler | Run scheduled tasks manually |
| Health Check | Check system health status |
URL: /profile
Kemaskini maklumat peribadi sama seperti peranan lain:
URL: /notifications
Jenis notifikasi untuk Superadmin:
Jadual 13.1: Jenis Notifikasi Superadmin
| Jenis | Keterangan |
|---|---|
| System Alerts | Amaran sistem (kegagalan e-mel, isu pangkalan data) |
| User Registration | Pendaftaran pengguna baru |
| Missing Items | Sumber dilaporkan hilang |
| Audit Alerts | Aktiviti mencurigakan |
URL: /profile
Update personal information, same as other roles:
URL: /notifications
Notification types for Superadmin:
Table 13.1: Superadmin Notification Types
| Type | Description |
|---|---|
| System Alerts | System warnings (email failures, database issues) |
| User Registration | New user registrations |
| Missing Items | Resources reported as missing |
| Audit Alerts | Suspicious activity |
Berikut ialah senarai status tempahan yang digunakan dalam sistem RD BookHub.
Jadual 14.1: Senarai Status Tempahan
Below is the list of booking statuses used in the RD BookHub system.
Table 14.1: Booking Status List
| Status | WarnaColour | KeteranganDescription |
|---|---|---|
| Pending | KuningYellow | Menunggu kelulusan adminAwaiting admin approval |
| Approved | HijauGreen | Diluluskan, sedia untuk kutipanApproved, ready for collection |
| Rejected | MerahRed | Tidak diluluskanNot approved |
| Collected | Biru mudaLight Blue | Sumber telah dikutipResource has been collected |
| Overdue | Merah mudaLight Red | Lewat dipulangkan (tarikh tamat sudah lepas)Past the return deadline |
| Completed | SianCyan | Tempahan selesai — sumber tanpa kutipan fizikal (cth: bilik mesyuarat) selepas tarikh tamatBooking completed — non-collection resource (e.g. meeting room) past end date |
| Missed | OrenOrange | Diluluskan tetapi tidak dikutip (tarikh tamat sudah lepas) — sumber memerlukan kutipan fizikalApproved but not collected (past end date) — resource requires physical collection |
| Returned | BiruBlue | Sumber telah dipulangkanResource has been returned |
| Cancelled | KelabuGrey | Tempahan dibatalkanBooking cancelled |