2.8 KiB
2.8 KiB
Dashboard Plan (Admin + User)
This file is the single dashboard planning and operations reference.
1) Dashboard objectives
- Operate Dewemoji safely (subscriptions, webhooks, settings).
- Manage Personal plan lifecycle and pricing.
- Give Personal users fast keyword/API key management.
2) Current admin routes (implemented)
GET /dashboard/admin/analyticsGET /dashboard/admin/usersPOST /dashboard/admin/users/tierGET /dashboard/admin/subscriptionsPOST /dashboard/admin/subscriptions/grantPOST /dashboard/admin/subscriptions/revokeGET /dashboard/admin/pricingPOST /dashboard/admin/pricing/updatePOST /dashboard/admin/pricing/resetGET /dashboard/admin/webhooksPOST /dashboard/admin/webhooks/{id}/replayGET /dashboard/admin/settingsPOST /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
- visitor: no dashboard
- free logged-in: dashboard access with locked personalization areas
- 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:
orderspaymentssubscriptionswebhook_events
Required runtime behaviors:
- webhook-confirmed status transitions
- pending checkout cooldown enforcement
- resume pending checkout from billing page
- safe downgrade when no active subscription remains
6) Access and security
- Admin access is role-based session auth (
users.role = admin). X-Admin-Tokenshould remain internal/dev usage only.- Log sensitive actions (tier changes, pricing updates, manual grants/revokes, webhook replays).
7) Implementation priorities
- strengthen payments/subscriptions observability
- finalize user dashboard CRUD ergonomics
- enforce non-destructive confirmations for sensitive admin actions
- add pagination/filter/sorting consistency across large admin lists