40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# Sprint 2.1 — Web dashboard MVP
|
|
|
|
**Status:** Done
|
|
|
|
## Goals
|
|
|
|
Warmbox-branded operator dashboard for daily warmup management without curl.
|
|
|
|
## Screens
|
|
|
|
| Route | Purpose |
|
|
|-------|---------|
|
|
| `/` | Workspace overview, metric cards, alerts |
|
|
| `/campaigns` | Campaign list with status filters |
|
|
| `/campaigns/new` | 4-step wizard with recipe preview |
|
|
| `/campaigns/:id` | Overview, activity, satellites, compliance tabs |
|
|
| `/mailboxes` | CRUD + connection test |
|
|
| `/mailboxes/:id` | Detail + DNS check |
|
|
| `/activity` | Global log feed |
|
|
| `/settings` | AI settings, API key gate, job triggers |
|
|
|
|
## Stack
|
|
|
|
- Vite 6 + React 19 + TypeScript
|
|
- Tailwind + shadcn-style components
|
|
- TanStack Query + React Router v7
|
|
- Recharts for ramp and placement charts
|
|
- Mobile: bottom nav `< md`, sidebar `≥ md`
|
|
|
|
## Auth (self-hosted)
|
|
|
|
- API key stored in `sessionStorage`
|
|
- Skipped when server has no `API_KEY` set (dev mode)
|
|
|
|
## Verification
|
|
|
|
1. Open dashboard, enter API key if required
|
|
2. Create mailbox via provider preset
|
|
3. Launch campaign through wizard
|
|
4. Confirm stats on dashboard and campaign detail
|