Skip to content

Releases: raouf-b-dev/ecommerce-admin-dashboard

v0.7.0

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 18 Oct 15:59
v0.7.0
754ffb7

Admin dashboard 0.7.0 adds a production Docker image published to GHCR (runtime API_BASE_URL) and reuses formatOptionalText for consistent dash fallbacks on null customer, shipping, and SKU fields.

Works with ecommerce-store-api v0.10.0 or later. The generated client matches API v0.11.0.

Added

  • Production Docker image (nginx unprivileged, port 8080) published to ghcr.io/raouf-b-dev/ecommerce-admin-dashboard for linux/amd64 and linux/arm64 on pushes to master and v* tags. The API origin is read at container start from API_BASE_URL instead of being compiled in (#118).

Changed

  • Null customer/shipping/SKU display paths reuse formatOptionalText for a consistent dash fallback (#117).

Compare v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 17 Oct 14:05
v0.6.0
b2e328f

Works with ecommerce-store-api v0.10.0 or later. The generated client matches v0.11.0.

Changed

  • Breaking: production builds require VITE_API_BASE_URL and fail at startup without it instead of calling localhost (#113).
  • Generated API client synced with API v0.11.0: order customer name/email, shipping address and item SKU may be null and render as - (#113).
  • npm run test:e2e installs Playwright Chromium first through a pretest:e2e hook; it downloads only when missing (#113).
  • Dependency updates: production deps (Radix UI dialog/dropdown/label/slot, TanStack Query and Table, lucide-react, react-hook-form, socket.io-client, zod), dev deps (Playwright 1.64, Vite 8.3, Vitest 5.0.4, ESLint 10.12 and others), brace-expansion and source-map-js lockfile bumps, GitHub Actions setup-node 7.1.0 (#95, #103, #105, #106, #107).

Fixed

  • npm install resolves the oxc-transform-react peer conflict (pinned to 0.152.x for @vitejs/plugin-react), MSW install scripts are allowed, and npm run verify finds the npm CLI through npm_execpath on Windows and Unix (#110).

Compare v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 16 Oct 10:13
v0.5.0
b691105

Requires ecommerce-store-api v0.10.0 or later. Pair with API v0.10.0 (and storefront v0.4.0 when that ships).

Added

  • Platform config integration: the display currency comes from GET /v1/platform/config. Operator user menu in the header (#93).
  • Payment method labels (#94).
  • Demo-data banner in mock mode, on the login page and in the app shell. Follow-up to #74, which 0.4.1 left out.

Changed

  • Breaking: payment method CARD replaces STRIPE. Requires ecommerce-store-api v0.10.0 (#94).
  • Product create and update always send currency, matching the API v0.10.0 contract (#94).
  • Responsive admin shell below desktop widths (#90).
  • Tests use the production compiler; mobile Playwright projects added (#91).
  • Slimmer agent guidance (#88).
  • Regenerated README showcase stills and walkthrough for the 0.5.0 shell (user menu, demo banner, payment labels).

Fixed

  • Only optimistic lock conflicts are treated as version conflicts (#92).
  • CI status gate uses E2E_STATUS (#82).
  • E2E CI boots the API from the NestJS 12 dist/main.js layout and keeps phone project viewports (#100).

Compare v0.4.1...v0.5.0

v0.4.1

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 29 Sep 13:27
v0.4.1
c8bf27e

Patch 0.4.1.

  • Zod 4
  • AUTHORS alignment
  • CHANGELOG.md

Demo banner (#74) is not in this tag.

v0.4.0

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 28 Sep 10:02
v0.4.0
a8dc941

Release 0.4.0 (develop -> master).

Highlights

  • Brand color tokens and typography foundation
  • Product thumbnails and URL image preview
  • Categories in the primary sidebar navigation
  • Themed Recharts tooltips
  • Mock product images synced with updated API contracts
  • Roadmap updates and dependency bumps

Works with ecommerce-store-api v0.9.0 or later.

Full Changelog: v0.3.0...v0.4.0

Release v0.3.0

Release v0.3.0 Pre-release
Pre-release

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 19 Sep 10:06
9e9909e

Release v0.3.0

Operator dashboard polish after v0.2.0: session persistence for refresh-token lifetime, architectural boundary hardening, OpenAPI client and MSW mock sync against API v0.8.0 contracts, regenerated visual showcase assets, and a guided first-time operator setup checklist on empty product/inventory tables.

Targets ecommerce-store-api v0.8.0. Payments on order detail remain read-only. Live Stripe ops UI and hosted staging are still out of scope.

Scope

In this release Not in this release
Persist admin session for refresh-token lifetime Payment capture / refund UI
Auth / architecture boundary hardening Command palette (Cmd+K)
OpenAPI client + MSW mock sync with API fields Dashboard trend badges / extra analytics facts
Visual showcase and walkthrough asset refresh Hosted staging
Guided operator setup checklist on true-empty products/inventory
Filter-aware table empty copy for orders/users
Actions SHA pins; CONTRIBUTING / CoC / SECURITY

Auth and chrome

  • Admin session persisted for the refresh-token lifetime so reloads do not drop operators mid-shift.
  • Architectural boundary and auth-code hardening (lib/components stay free of feature imports).

Operator UX

  • True-empty products and inventory show an actionable setup checklist (add product, adjust stock when unlocked, review roles) driven by permissions and product count.
  • Filtered empties stay distinct from first-run empties.
  • Regenerated visual showcase / walkthrough assets for README and portfolio demos.

Contract sync

  • OpenAPI-typed client and MSW mock data aligned with API CQRS fields (including category product counts and related list shapes).

Repository hygiene

  • GitHub Actions pinned to full commit SHAs with version comments.
  • CONTRIBUTING, CODE_OF_CONDUCT, and SECURITY reporting aligned with the API contact pattern.

Stats

Metric Value
Since v0.2.0
Files changed 111
Insertions / deletions +2,732 / -788
Commits 42 (35 excluding merges)

Pull requests

PR Title
#50 Operator setup checklist and table empty states
#49 Regenerate visual showcase and walkthrough assets
#48 Sync OpenAPI client, mock data, and docs
#47 Harden architectural boundaries and auth codes
#42 Persist admin session for refresh token lifetime
#39 CODEOWNERS

Full changelog: v0.2.0...v0.3.0

v0.2.0 Initial release

Pre-release

Choose a tag to compare

@raouf-b-dev raouf-b-dev released this 06 Sep 13:26
39941a8

Release v0.2.0

First tagged release of the operator SPA. Operators can sign in, rotate a seeded password, and manage catalog, stock, orders, users, and roles against ecommerce-store-api v0.7.0.

Business rules stay in the API. The UI hides navigation or shows a forbidden page when a permission is missing. Payments on order detail are read-only. There is no hosted demo.

Package 0.1.0 was never tagged. This cut is the first public milestone of the dashboard.

Scope

In this release Not in this release
Login, forced password change, operator gate, silent refresh Payment capture or refund UI
Dashboard, products, categories, inventory, orders, users, roles Command palette and first-run checklists
List filters and sorts in the URL Extra dashboard facts still missing from OpenAPI
MSW preview (npm run dev:mock) Hosted staging
Theme, WebSocket toasts, live-API Playwright Storefront (ecommerce-store-web)

Auth and session

  • Access token in memory. Refresh cookie is HttpOnly (credentials: include).
  • First login for seeded operators lands on change-password. Other shell routes wait until mustChangePassword is cleared.
  • Sessions without access_admin cannot enter the SPA (login rejects them; OperatorRoute enforces the same gate).
  • Domain HTTP 401 triggers one in-flight refresh and a single retry. After a successful refresh, session permissions and mustChangePassword are updated so nav chrome stays accurate.
  • Limited operators land on the first permitted screen instead of looping on the dashboard or Forbidden "home".
  • ADRs: ADR-0001 through ADR-0007.

Operator screens

  • Dashboard: analytics reads from /v1/admin/analytics/* (Recharts). Grafana/Prometheus are not a data source.
  • Products: list, create, edit, search, active/inactive filter, activate/deactivate.
  • Categories: list and catalog association on product forms.
  • Inventory: list, detail, stock adjust. HTTP 409 shows a conflict banner. The client does not invent a version field.
  • Orders: list, detail, Process / Ship (and related transitions the API already exposes). Payments on the order are displayed, not mutated.
  • Users: list, detail, activate/deactivate, address book (add, default, delete). Role change is shown only when the session has manage_roles.
  • Roles: permission matrix editor.

List query params the API already accepts are wired in the UI and reflected in the URL.

Client contract

  • Typed client from the API OpenAPI spec (openapi-fetch + generated schema.d.ts). Regenerate with npm run api:generate while the API is running.
  • TanStack Query for lists, detail, and mutations. Centralized API error mapping for forms and toasts.
  • RBAC chrome is UX only. Authorization is enforced on the API.

Local preview and quality

  • npm run env:init then npm run dev on port 5174 against a live API (default http://localhost:3000).
  • npm run dev:mock is an in-browser MSW replica. Demo 1-click login. Mock data resets on full reload. Playwright still needs a live API.
  • Theme: light, dark, and system, persisted in localStorage.
  • Socket.IO toasts for new orders and low stock, with query invalidation.
  • PR CI: lint, typecheck, unit tests, build, npm audit. Playwright on master / main and workflow_dispatch.
  • Live operator checklist: docs/RELEASE-GATE.md.

Stats

Metric Value
Since untagged 0.1.0 (initial commit)
Files changed 330
Insertions +41,594
Commits 352 (327 excluding merges)
Playwright specs 12
ADRs 7 (ADR-0001 to ADR-0007)

Pull requests

PR Title
#1 Scaffold, toolchain, and governance
#2 Responsive app shell and page structure
#3 Authentication and RBAC navigation chrome
#4 Forced password change routing and UI
#5 env:init for local Vite config
#6 Products list, create, and edit
#7 Operator gate and silent token refresh
#8 Inventory list, detail, and adjust
#9 Orders list, detail, and transitions
#10 Users list and detail
#11 Analytics dashboard and null-safe detail reads
#12 Quality, a11y, and journey tests
#13 Local Swagger URL in documentation
#14 List filters, column sort, URL parity
#15 Product, user, and role management screens
#16 Centralized error handling and strict API typing
#17 Product catalog status and user role assignment
#18 Customer address book on user detail
#19 MSW standalone preview
#20 Architecture cleanup, auth, mock routes, filters
#21 Theme, real-time feed, and auth hardening
#22 Release gate verification and auth hardening
#23 Dashboard cockpit layout and status styling
#24 Detail views and showcase assets
#25 Category management views and product catalog integration

README screenshot paths and the 0.2.0 version bump landed on release-v0-2-0 after #25.

Full changelog: initial commit through v0.2.0