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

110 lines
2.8 KiB
Markdown

# 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