v0.7.0

Analytics & Reporting

  • Staff performance stats — staff card now shows aggregated service counts (e.g. "373 piercings, 13 check-ups") with pie chart distribution and average check metric, filterable by period (1M / 2M / 6M / 1Y)
  • Most popular services ranking — new analytics widget showing a numbered leaderboard of most-booked services with progress bars; supports period selection (1M / 3M / 6M / 1Y) and staff filtering; also available as bar/pie chart
  • Net profit per procedure — admin view in staff services list now shows commission %, commission amount, and net profit per service, color-coded green/red
  • Average check filtering — average check analytics now support minimum amount threshold, staff filter, and event type filter
  • Dynamic widget discovery — "Add Widget" modal now shows all available analytics metrics from the server instead of a hardcoded list; new backend metrics appear automatically
  • Widget period persistence — selected time range is saved per widget and restored on next page load without requiring edit mode

Service Categories

  • Service categories — group services by category (e.g. Ear Piercings, Body Piercings, Consultations) for better organization and analytics aggregation
  • Category management — admin-only page for creating, editing, and deleting categories with assignment toggles per service
  • Categories in services list — new column in the services table showing assigned categories

Inventory Enhancements

  • Margin tracking — inventory table now shows margin percentage (admin-only, color-coded green/red) and margin details in the product modal
  • Product popularity — new sortable "Sold" column showing total units sold per product
  • Product filtering — filter inventory by dynamic attributes (color, volume, etc.), text search, and categories
  • Editable imported products — price, cost, quantity, and description can now be edited even for externally-imported products, with badge indicating overridden values
  • Sale history per product — inventory item modal now shows sale history for that specific product
  • Redesigned product modal — proper sections (Product, Pricing, Stock) with bordered layout and standard loading indicator
  • Fixed: price columns now use minimum width, preventing content clipping

Staff Management

  • Staff-specific service duration — each staff member can now have a custom service time per service, alongside custom pricing
  • Services grouped by category — staff services section now shows collapsible category groups with search
  • "Provides Services" toggle — admins can mark staff who don't provide services (e.g. administrators); hides Services and Performance Stats sections accordingly

Calendar & Events

  • Event type management — create, edit, and delete event types with color picker in Configuration → Calendar section
  • Event reference status — calendar event badges in Sales now show visit status (green dot for completed, gray for planned)
  • Fixed: staff avatars now display correctly in Week/Day view column headers with tooltip (name, position, shift time)

UI & Usability Improvements

  • Configuration page polish — tab icons added, URL anchor navigation (#general, #booking, etc.) with browser back/forward support
  • Smooth grid filters — filter panels animate on open/close, skeleton loaders during first data load, no more twitch when expanding price filters
  • Consistent button icons — standardized Create (plus-circle) and Save (checkmark) button icons across the entire application
  • Customer visit history collapse — visits collapse to 5 most recent with "Show more" button when count exceeds 5
  • Mobile UI improvements — removed search field gap, icon-only buttons on mobile, dashboard in sidebar, auto-collapse sidebar on navigation

Bug Fixes

  • Fixed inventory grid price columns being clipped on narrow screens
  • Fixed staff avatars not loading in calendar Week/Day column headers
  • Fixed pie chart breaking when switching chart type on ranking widgets
  • Fixed filter panel animation jump caused by fixed max-height value
  • Fixed sidebar double icon when collapsed with service categories submenu
  • Fixed parent menu item highlight when a subitem is active

Internal

  • Inventory field management supports 3 modes: CRM-managed, imported-overridable, imported-read-only
  • Analytics metrics now include type indicator (plain vs group) for frontend rendering decisions
  • Product cost captured at time of sale for accurate historical margin calculation