Files
dewemoji/admin-dashboard-plan.md
2026-03-16 01:06:41 +07:00

2.8 KiB

Dashboard Plan (Admin + User)

This file is the single dashboard planning and operations reference.

1) Dashboard objectives

  1. Operate Dewemoji safely (subscriptions, webhooks, settings).
  2. Manage Personal plan lifecycle and pricing.
  3. Give Personal users fast keyword/API key management.

2) Current admin routes (implemented)

  • GET /dashboard/admin/analytics
  • GET /dashboard/admin/users
  • POST /dashboard/admin/users/tier
  • GET /dashboard/admin/subscriptions
  • POST /dashboard/admin/subscriptions/grant
  • POST /dashboard/admin/subscriptions/revoke
  • GET /dashboard/admin/pricing
  • POST /dashboard/admin/pricing/update
  • POST /dashboard/admin/pricing/reset
  • GET /dashboard/admin/webhooks
  • POST /dashboard/admin/webhooks/{id}/replay
  • GET /dashboard/admin/settings
  • POST /dashboard/admin/settings/update

3) Admin module scope

Analytics

  • user/subscription/payment/webhook totals
  • recent webhook and billing activity

Users

  • filter by tier/role/search
  • controlled tier update operations

Subscriptions and payments

  • grant/revoke workflows
  • provider/status visibility (paypal, qris/pakasir, admin)
  • pending/paid/failed/expired status clarity

Webhooks

  • recent events list
  • replay support
  • idempotency-safe processing expectations

Pricing

  • edit plan values and provider toggles
  • preserve change log snapshots for auditability

Settings

  • maintenance flag
  • public access guard values (public_enforce, origins, extension IDs, hourly limit)

4) User dashboard scope

User states

  1. visitor: no dashboard
  2. free logged-in: dashboard access with locked personalization areas
  3. personal: full access

User modules

  • Overview (summary metrics)
  • My Keywords (CRUD, filter, import/export)
  • API Keys (create/revoke)
  • Billing (current plan + payment history + resume pending)
  • Preferences (theme/tone; optional expansion)

UX priority

  • quick-add keywords on emoji detail pages (primary)
  • dashboard bulk management (secondary)

5) Billing integration expectations

Target data model coverage:

  • orders
  • payments
  • subscriptions
  • webhook_events

Required runtime behaviors:

  1. webhook-confirmed status transitions
  2. pending checkout cooldown enforcement
  3. resume pending checkout from billing page
  4. safe downgrade when no active subscription remains

6) Access and security

  • Admin access is role-based session auth (users.role = admin).
  • X-Admin-Token should remain internal/dev usage only.
  • Log sensitive actions (tier changes, pricing updates, manual grants/revokes, webhook replays).

7) Implementation priorities

  1. strengthen payments/subscriptions observability
  2. finalize user dashboard CRUD ergonomics
  3. enforce non-destructive confirmations for sensitive admin actions
  4. add pagination/filter/sorting consistency across large admin lists