Skip to content
Omar Aldanaf

Case study

WebE-commerceDashboard

Victoria Mix

Bilingual perfume storefront with WhatsApp checkout, typo-tolerant search and an animated custom blend builder, backed by a full admin panel.

Client
Victoria Mix (Lebanon)
Industry
Perfumery
Status
Live
Home page with an interactive 3D logo medallion.
perfumes in the catalogue
528
automated tests
244

Overview

Victoria Mix is a perfume house with stands in Aley, Mount Lebanon. Its website lets customers browse the catalogue in English or Arabic, build a cart and place their order on WhatsApp, where payment and delivery are agreed. The signature feature, Our Mix, lets customers design their own fragrance from 2 to 5 perfumes and watch it poured, blended, labelled and capped in an animated bottle. Staff run the catalogue, content, orders and messages from a private admin panel and import inventory from spreadsheets.

The problem

The store needed a premium online presence for a large catalogue that customers can search easily in either language, and an ordering flow built around WhatsApp, where payment and delivery are arranged.

What I built

  • A bilingual Laravel storefront with a true right-to-left Arabic layout
  • Orders saved in the database first, then handed to WhatsApp as a ready-made message
  • Our Mix, an interactive blend builder
  • An admin panel with role-based access and a queued spreadsheet importer

Key features

  • 01Full English and Arabic versions with right-to-left layout, localised URLs and hreflang for search engines
  • 02Relevance-ranked search that tolerates accents, partial words and misspellings (for example, "sovage" finds Sauvage), in both languages
  • 03Catalogue filters by gender, category, size, price and availability, with sorting and live search suggestions
  • 04Checkout that stores the order and its item snapshots in one transaction, then opens WhatsApp with a bilingual order summary
  • 05Our Mix: pick 2 to 5 perfumes and watch them poured, blended, labelled and capped in an animated 3D bottle
  • 06"More from this house" suggestions, detecting the designer house from each perfume name
  • 07Admin panel for products, sizes, categories, locations, content, orders and messages, with bulk actions and CSV export
  • 08Queued CSV and Excel import with automatic column mapping, row validation, preview and a per-row report
  • 09Stand locations with embedded Google Maps

Architecture

  1. Browser
  2. Middleware
  3. Laravel services
  4. MySQL
  5. WhatsApp hand-off
Architecture: Browser to Middleware to Laravel services to MySQL to WhatsApp hand-off

Screens

Our Mix: choose 2 to 5 perfumes and watch the bottle fill.
Home page on a phone.
Navigation on a phone.

Decisions & challenges

Trust the server, never the browser

The browser sends only product ids and quantities. Prices, names and stock are always re-read from the database, including in the custom-mix message.

No build step

The front end is one hand-written stylesheet and one script with self-hosted fonts, which keeps pages light and free of external dependencies.

Progressive enhancement

Browsing, search, cart, checkout and contact all work without JavaScript; scripts add suggestions, animation and the blend builder.

Performance & security

Performance

  • Server-side pagination and eager loading throughout the catalogue
  • Home page data cached per language and cleared automatically when content changes
  • Analytics loaded only after the page is idle, and only when configured

Security

  • Content Security Policy with a per-request nonce and no inline styles, enforced by a test
  • Rate limits on login, checkout, contact, search and cart actions
  • Uploaded and remote images fully re-encoded to WebP, with remote fetches protected against SSRF
  • Visitor IP addresses stored only as a keyed hash

Inventory

Profile

Developer toolkit

  • GitHub

Systems toolkit

System

omar@world01

Client-side command palette. Type help to list commands.

WORLD_01 map

  1. SPAWN // OMAR Spawn Point / About
  2. CRAFTING // STACK Crafting Workshop / Skills
  3. MINE // PROJECTS Project Mine / Projects
  4. LAB // ARCHITECTURE Logic Lab / Architecture
  5. OPS // INFRASTRUCTURE Server Room / Infrastructure
  6. HALL // EXPERIENCE Achievement Hall / Experience
  7. PORTAL // CONTACT Portal / Contact