docs: Sprint 4 visual tour with 19 Playwright screenshots

This commit is contained in:
Patrick Plate
2026-06-12 17:35:39 +02:00
parent 154f79fe60
commit f8f562915e
20 changed files with 357 additions and 0 deletions
@@ -0,0 +1,152 @@
# 🌿 CannaManage — Visual Tour (Sprint 4)
**Generated:** 2026-06-12 | **Commit:** `fe6e96d` | **19 Screenshots** | **Dark + Light Mode**
---
## 🔐 Chapter 1: Authentication
### Admin Login
The admin login page greets club administrators with a clean, branded form. Email + password fields, CannaManage branding, and i18n-ready labels. Error states are handled gracefully when credentials fail.
| Dark Mode | Light Mode |
|-----------|------------|
| ![Admin Login — Dark](screenshots/01-login-dark.png) | ![Admin Login — Light](screenshots/01-login-light.png) |
---
### Member Portal Login
Members get a simplified login experience — same form but under the portal layout (top navigation instead of sidebar). This keeps the two user groups visually separated.
| Dark Mode | Light Mode |
|-----------|------------|
| ![Portal Login — Dark](screenshots/02-portal-login-dark.png) | ![Portal Login — Light](screenshots/02-portal-login-light.png) |
---
## 📊 Chapter 2: Admin Dashboard
### Club Overview
After login, admins land on the main dashboard. Four KPI cards at the top (active members, monthly distributions, stock weight, open recalls), a stock trend chart, recent distributions table, and quick action buttons.
![Dashboard — Dark Mode](screenshots/03-dashboard-dark.png)
---
### Member Management
The members page uses TanStack Table with full search, column sorting, pagination, and status badges (Active 🟢, Suspended 🟡, Expelled 🔴). Click any row to edit.
![Members — Dark Mode](screenshots/04-members-dark.png)
---
## 📦 Chapter 3: Distribution & Compliance
### Distribution History
All past distributions with lock icons (🔒) indicating immutable audit records. Filter by date range or member. A "today" summary card shows daily totals.
![Distributions — Dark Mode](screenshots/05-distributions-dark.png)
---
### New Distribution — Multi-Step Form
The 4-step distribution form enforces CanG compliance at each stage:
1. **Select member** — search + status check
2. **Quota check** — shows remaining daily (25g) and monthly (50g/30g) with color coding
3. **Batch + amount** — select from available batches, enter grams
4. **Confirm** — review all details before recording
![New Distribution — Dark Mode](screenshots/06-distribution-new-dark.png)
---
## 🌱 Chapter 4: Stock Management
### Batch Overview
Bar chart showing stock levels by strain, summary cards (total weight, batch count, pending recalls), and a table with recall buttons. Recalled batches are visually marked.
![Stock — Dark Mode](screenshots/07-stock-dark.png)
---
### Add New Batch
Form to register new cannabis batches: strain selector, THC/CBD percentages, supplier info, harvest date, weight. All required for traceability.
![New Batch — Dark Mode](screenshots/08-stock-new-dark.png)
---
## 📋 Chapter 5: Compliance Reports
### Report Center
Three report cards: Monthly Summary, Member List, and Recall Report. Each has download (PDF/CSV) and preview options. Reports are designed for regulatory submissions.
![Reports — Dark Mode](screenshots/09-reports-dark.png)
---
## 👤 Chapter 6: Member Portal
### Quota Dashboard
Members see their remaining quota as radial SVG progress rings — daily and monthly. Color-coded: green (<50%), amber (50-80%), red (>80%). Under-21 members see the reduced 30g/month limit.
| Dark Mode | Light Mode |
|-----------|------------|
| ![Portal Dashboard — Dark](screenshots/10-portal-dashboard-dark.png) | ![Portal Dashboard — Light](screenshots/10-portal-dashboard-light.png) |
---
### My Distribution History
Members can review their own past distributions. Month filter, lock icons confirming immutability. No edit/delete possible — read-only audit trail.
| Dark Mode | Light Mode |
|-----------|------------|
| ![Portal History — Dark](screenshots/11-portal-history-dark.png) | ![Portal History — Light](screenshots/11-portal-history-light.png) |
---
### Profile & Settings
Personal information (read-only, managed by admin), password change form, and preferences (language selector, theme toggle). Members can switch between dark/light mode here.
| Dark Mode | Light Mode |
|-----------|------------|
| ![Portal Profile — Dark](screenshots/12-portal-profile-dark.png) | ![Portal Profile — Light](screenshots/12-portal-profile-light.png) |
---
## 🎨 Theme Comparison
The entire application supports both dark and light mode with a single click toggle:
- **Dark** (default): `#0D1117` background, `#2ECC71` green accent — cannabis club aesthetic
- **Light**: `#FAFBFC` background, `#1B7A3D` darker green — for outdoor/mobile readability
---
## 📐 Tech Behind the Screenshots
- **Tool:** Playwright (Chromium, 1280×720 viewport)
- **Method:** Automated E2E script (`e2e/screenshot-tour.spec.ts`)
- **Auth:** Mock backend returning valid JWT session
- **Pages captured:** 12 unique routes × 2 themes (where auth allowed)
- **Total screenshots:** 19 PNG files (~1.2MB total)
To regenerate:
```bash
cd cannamanage-frontend
node e2e/mock-backend.mjs & # start mock auth backend
pnpm dev & # start Next.js dev server
pnpm exec playwright test e2e/screenshot-tour.spec.ts
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB