Stars-947 -decensored- Pemilik Penginapan Yg Ta... Apr 2026

| Metric | Target | |--------|--------| | New Owner Registrations | ≥ 250 | | Listings Created (live) | ≥ 200 | | Average Time to First Payout | ≤ 3 days | | Owner NPS (post‑onboarding survey) | ≥ 8 / 10 | | System Uptime (owner portal) | 99.9 % | Title: STARS‑947 – Pemilik Penginapan Owner Portal (Bahasa Indonesia)

Scenario: Owner views upcoming reservations Given the owner has at least one active listing with confirmed bookings When they navigate to the "Reservasi" tab Then they see a chronological list of reservations with guest name, dates, total amount, and status And can click each reservation to see full details and contact the guest

Description: Implement a self‑service portal for property owners to register, manage listings, view reservations, and request payouts. The portal must be fully localized to Bahasa Indonesia, mobile‑first, and integrate with existing payment & authentication services.

Scenario: Owner registers and verifies identity Given the owner lands on the "Daftar Pemilik" page When they fill out the registration form (name, email, phone, KTP photo, bank account) And click "Kirim Verifikasi" Then the system creates a pending owner profile And sends a verification email + SMS And notifies the Ops team for manual KTP validation STARS-947 -DECENSORED- Pemilik Penginapan Yg Ta...

The spec follows a modern, Agile‑friendly format (title, description, user‑story, acceptance criteria, UI/UX mock‑up notes, data model, technical considerations, and rollout plan). Feel free to adjust the wording or scope to match the exact product vision of your platform. Feature ID: STARS‑947 Feature Name: Pemilik Penginapan (Accommodation‑Owner Portal) Epic: Owner & Host Management Owner: Product Management – Marketplace Team Target Release: v3.2 (Q3 2026)

Scenario: Owner requests payout Given the owner has a payout balance ≥ Rp 500.000 When they click "Ajukan Penarikan" And select a bank account and amount Then the system creates a payout request with status "Menunggu Proses" And an email receipt is sent to the owner | # | Criteria | |---|----------| | 1 | All UI text is Bahasa Indonesia and follows the brand style guide. | | 2 | Registration form validates required fields, email format, phone number (Indonesia prefix +62 ), and KTP image size ≤ 5 MB. | | 3 | Owner can upload up to 10 photos per listing; images are auto‑compressed to ≤ 1 MB each. | | 4 | Listings support price per night , minimum stay , cancellation policy (flexible, moderate, strict). | | 5 | Dashboard shows real‑time balance (available for payout, pending settlement, total earnings). | | 6 | Owner can filter reservations by status (Pending, Confirmed, Checked‑in, Completed, Cancelled). | | 7 | Payouts are processed via the existing FinTech gateway (mid‑2026 integration). | | 8 | Activity log (create/edit/delete) is stored for 30 days and visible to Ops via an admin view. | | 9 | All endpoints are protected by OAuth2 Bearer token with role‑based access ( owner , admin ). | |10 | System complies with PDPA (Indonesia) – personal data encrypted at rest, and KTP images stored in a GDPR‑compatible bucket with restricted IAM. | |11 | Mobile‑first responsive layout passes Lighthouse score ≥ 90 on both desktop & mobile. | |12 | End‑to‑end test coverage ≥ 85 % (Cypress + Jest). | |13 | The feature does not degrade performance of the public marketplace (≤ 200 ms page load for listing page). | 🎨 UI / UX Mock‑up Guidance | Screen | Core Elements | Suggested Layout | |--------|----------------|------------------| | Login / Register | Email, password, “Lupa kata sandi?”, “Daftar sebagai Pemilik” button | Split‑screen: left – illustration; right – form | | Owner Dashboard | Top bar (logo, notifications, avatar), side nav (Daftar Penginapan, Reservasi, Keuangan, Profil), main area – quick stats cards (Total listing, Booking bulan ini, Saldo) | Card‑style grid, 3‑column on desktop, 1‑column stack on mobile | | Add/Edit Listing | Form sections: Informasi Umum , Fasilitas , Foto , Harga & Kebijakan – stepper navigation | Sticky “Simpan & Lanjut” button at bottom; preview pane on right (desktop) | | Reservation List | Table: Guest, Check‑in, Check‑out, Total, Status, Action (Detail) – filter dropdown + search bar | Row expansion for quick view; modal for full details | | Payout Request | Balance summary, input amount, bank selector, “Ajukan Penarikan” CTA | Confirmation modal with OTP (if enabled) | | Profile / Verification | KTP upload, bank account, contact details, status badge (Terverifikasi / Menunggu) | Inline validation messages in red/green | Tip: Use the existing component library (React + Material‑UI v5) to keep visual consistency. All icons should be from the Material Icons set, with the “translate” flag for Bahasa. 🗄️ Data Model (simplified) | Table / Collection | Fields (key) | Description | |--------------------|--------------|-------------| | owners | owner_id (PK), name , email , phone , ktp_url , bank_account , status ( pending , verified , rejected ), created_at , updated_at | Core owner profile | | listings | listing_id , owner_id (FK), title , description , address , city , province , latitude , longitude , price_per_night , min_stay , cancellation_policy , photos[] , status ( draft , pending_review , live , inactive ), created_at , updated_at | Accommodation data | | reservations | reservation_id , listing_id , guest_id , check_in , check_out , total_amount , status ( pending , confirmed , checked_in , completed , cancelled ), created_at | Booking records | | payouts | payout_id , owner_id , amount , bank_account , status ( requested , processing , paid , failed ), requested_at , processed_at | Financial withdrawals | | activity_logs | log_id , owner_id , action (enum), entity_type , entity_id , payload (JSON), timestamp | Audit trail for Ops |

Dependencies: - FinTech payout API (v2) - Existing Auth service | Metric | Target | |--------|--------| | New

Scenario: Owner creates a new accommodation listing Given a verified owner is logged in When they click "Tambah Penginapan" And fill out property details (title, description, address, foto, tipe kamar, harga, kebijakan pembatalan) And click "Simpan" Then the listing appears in the "Daftar Penginapan" table with status "Menunggu Review" And the Ops team receives a review notification

Scope: - Owner registration & KTP verification workflow - Dashboard with quick stats - Listing creation wizard (photos, price, policies) - Reservation list & detail view - Balance overview & payout request flow - Admin review screens for verification & listing approval

Give property owners (hoteliers, B&B hosts, villa managers, etc.) a self‑service portal where they can register , manage their listings , track reservations , receive payouts , and communicate with guests – all in Bahasa Indonesia, with a clean, mobile‑first UI. 👤 User Persona | Persona | Primary Goal | Pain Point | |--------|--------------|------------| | Pemilik Penginapan (small‑scale hotel/guesthouse owner) | Quickly publish rooms, see bookings, get paid, and answer guest queries without needing a tech‑savvy assistant. | Current admin panel is English‑only, fragmented, and requires multiple log‑ins for payment & reservation systems. | | Super‑Admin (Ops Team) | Monitor compliance, verify owners, intervene in disputes. | Lack of a single source of truth for owner data and activity logs. | 📖 User Story (Gherkin style) Feature: Pemilik Penginasta – Owner Portal Feel free to adjust the wording or scope

As a property owner (Pemilik Penginapan) I want a dedicated dashboard in Bahasa Indonesia So that I can manage my listings, bookings and payouts from one place.

Acceptance Criteria: (see table above)