Developer Docs

Malet Owner Dashboard - User Guide

Overview

The Malet Owner Dashboard is your central control panel for managing your Malet (Mall Outlet) on Ngwenya. It provides real-time metrics, Murchase tracking, schedule configuration, and quick access to all management tools. For details on how sensitive settings are stored, see the Malet Vaults & Verification architecture.

Access: Navigate to deck.mallnline.com/{your-malet-handle}/manage or click the Manage button in the navigation bar (visible only to Malet Owners). This interface is hosted by the standalone ngwenya-deck application.


Creating a Malet

New Malets are created via the Malet Creation Wizard at /create-malet. The wizard supports:

  • Multi-vertical selection โ€” Malets can belong to multiple industry verticals simultaneously (e.g., Food Court + Retail)
  • Real-time handle checking โ€” Your m|handle URL is validated as you type
  • Discovery tags โ€” Choose from curated suggestions or add your own custom tags
  • Tier selection โ€” Starter (free), Pro ($29/mo), or Enterprise (custom)

See Onboarding & Malet Creation Architecture for full technical details.


Quick Start

Getting to Your Dashboard

There are two ways to reach your dashboard:

  1. From the navigation bar โ€” The purple "Manage" button appears on the right side of the MaletNav bar on every page of your Malet.
  2. From the Malet hero โ€” The "Manage Malet" button appears alongside "Browse Catalog" and "Learn More" on your Malet's home page.

Both buttons are visible only to the Malet Owner โ€” Visitors will never see them.

Overview Dashboard (`/manage`)

Your landing page shows four key metrics at a glance:

Metric What it shows
๐Ÿ“ฆ Products Total products in your catalog
๐Ÿ”ง Services Total services you offer
๐Ÿ“‹ Active Murchases Murchases that are pending or in progress
๐Ÿ› Open Issues Community issues on your Malet awaiting attention
๐Ÿ’ธ Revenue Total revenue for the period

Below the metrics, Quick Actions provide one-click access to:

  • Add Product / Add Service
  • Manage Schedule
  • Write Blog Post

Schedule Management (`/manage/schedule`)

What It Does

Configure when each of your bookable services is available. Visitors see these availability windows when booking through your Malet.

How to Use

  1. Navigate to Manage โ†’ Schedule (sidebar) or use the Quick Action link
  2. You'll see a card for each bookable service (services with requiresBooking: true)
  3. Click a service card to expand it and reveal the schedule editor

Per-Service Schedule Cards

Each card shows:

  • Service name and duration
  • Status badge โ€” whether a schedule is configured
  • Schedule summary โ€” e.g. "Monโ€“Fri 09:00โ€“17:00" or "Closed"
  • Exception count โ€” holidays or special closures

Editing a Schedule

  1. Expand a service card by clicking on it
  2. Use the Schedule Manager to set recurring weekly time slots:
    • Toggle days on/off
    • Add multiple time slots per day (e.g. 09:00โ€“12:00, 14:00โ€“17:00)
  3. Use the Schedule Exception Manager for one-off overrides:
    • Add holiday closures
    • Set special hours for specific dates
  4. Click Save Schedule โ€” the button shows a checkmark on success

Issue Tracking Banner

If Visitors have submitted issues about your services, a banner at the top shows:

  • Total issues / open count
  • Direct link to the community section to respond

Statistics Row

At the top, quick stats show:

Stat Meaning
Bookable Services How many services accept bookings
Schedules Set How many have a schedule configured
Exceptions Total holiday/override entries

Murchase Management (`/manage/murchases`)

What It Does

View and track all incoming Murchases (workrooms) for your Malet.

How to Use

  1. Navigate to Manage โ†’ Murchases (sidebar)
  2. Use the filter tabs to view Murchases by status:
    • All โ€” Every Murchase
    • Pending โ€” Awaiting action
    • In Progress โ€” Currently being fulfilled
    • Completed โ€” Successfully delivered
    • Cancelled โ€” Cancelled Murchases

Murchase Cards

Each Murchase card shows:

  • Murchase ID (truncated, with copy-on-click)
  • Status badge (color-coded)
  • Progress bar โ€” visual completion percentage
  • Current step โ€” what stage the Murchase is at
  • Creation date
  • Link to the full workroom for step-by-step management

The management sidebar provides access to all sections:

Link Route Purpose
Overview /manage Dashboard metrics + actions
Products /manage/products Product catalog management
Services /manage/services Service offerings
Murchases /manage/murchases Murchase tracking
Schedule /manage/schedule Service availability
Bookings /manage/bookings Visitor booking management
Promotions /manage/promotions Discount codes
Blog /manage/blog Content management
Settings /manage/settings Malet configuration (see Vaults)

File Structure

ngwenya-deck/src/
โ”œโ”€โ”€ lib/
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ””โ”€โ”€ maletOwnerUtils.ts              # Utility functions
โ”œโ”€โ”€ routes/
โ”‚   โ””โ”€โ”€ [malet]/
โ”‚       โ”œโ”€โ”€ +page.svelte                  # Malet page (Manage Malet button)
โ”‚       โ”œโ”€โ”€ MaletNav.svelte               # Nav bar (Manage button)
โ”‚       โ””โ”€โ”€ manage/
โ”‚           โ”œโ”€โ”€ +page.svelte              # Overview dashboard
โ”‚           โ”œโ”€โ”€ +page.ts                  # Data loader (counts)
โ”‚           โ”œโ”€โ”€ Sidebar.svelte            # Navigation sidebar
โ”‚           โ”œโ”€โ”€ murchases/
โ”‚           โ”‚   โ”œโ”€โ”€ +page.svelte          # Murchase management UI
โ”‚           โ”‚   โ””โ”€โ”€ +page.ts             # Loads workrooms
โ”‚           โ””โ”€โ”€ schedule/
โ”‚               โ”œโ”€โ”€ +page.svelte          # Schedule management UI
โ”‚               โ””โ”€โ”€ +page.ts             # Loads services + schedules
โ””โ”€โ”€ tests/
    โ””โ”€โ”€ maletOwnerUtils.test.ts             # 17 unit tests

Utility Functions (`maletOwnerUtils.ts`)

Function Purpose
groupWorkroomsByStatus Groups workroom array by status field
countActiveWorkrooms Counts non-completed, non-cancelled workrooms
getScheduleSummary Human-readable schedule string (e.g. "Monโ€“Fri 09:00โ€“17:00")
countExceptions Counts schedule exception entries
summariseIssues Returns {total, open, closed} from issues array

Testing Checklist

Overview Dashboard

  • Navigate to /manage โ€” verify four stat cards show correct counts
  • Verify stat cards display Products, Services, Active Murchases, Open Issues
  • Click each Quick Action link โ€” verify navigation works
  • Check dark mode renders correctly

Schedule Management

  • Navigate to /manage/schedule โ€” verify all bookable services appear
  • Expand a service card โ€” verify schedule editor loads
  • Add a time slot to a day โ€” verify it persists after save
  • Add a multi-slot day (morning + afternoon) โ€” verify both display
  • Add an exception (holiday) โ€” verify it appears in the exception list
  • Save schedule โ€” verify checkmark feedback appears
  • Verify stats row counts update after changes
  • Verify issue tracking banner shows correct open/closed counts
  • Check dark mode renders correctly

Murchase Management

  • Navigate to /manage/murchases โ€” verify Murchases load
  • Switch between filter tabs (All/Pending/In Progress/Completed/Cancelled)
  • Verify filter counts are correct
  • Verify Murchase cards show progress bars and current step
  • Click a Murchase card โ€” verify navigation to workroom detail

Manage Button

  • As Malet Owner: verify Manage button appears in MaletNav on all Malet pages
  • As Malet Owner: verify Manage Malet button appears in Malet hero
  • As Visitor: verify neither button is visible
  • Click Manage button โ€” navigates to /manage