OMAR
Field NotesCV

Storefront + Admin · 2026

Tulip Flowers

A multi-location luxury flower storefront for the Egyptian market — Alexandria, New Borg Al Arab, and Alamein — each branch running as an independent store with its own pricing, availability, and imagery. Arabic RTL-first, with no payment gateway by design: checkout composes a fully-Arabic WhatsApp order message the shop owner confirms offline. React 18 + Vite + TypeScript monorepo with an Express + Prisma backend and a full admin dashboard.

01 / Overview

Overview

A multi-location luxury flower storefront for the Egyptian market — Alexandria, New Borg Al Arab, and Alamein — each branch running as an independent store with its own pricing, availability, and imagery. Arabic RTL-first, with no payment gateway by design: checkout composes a fully-Arabic WhatsApp order message the shop owner confirms offline. React 18 + Vite + TypeScript monorepo with an Express + Prisma backend and a full admin dashboard.

02 / The Problem

The Problem

A luxury florist with three branches was running every order through phone calls and DMs. They did not need a webshop. They needed their real sales process, online.

03 / My Contribution

My Contribution

Design + Full-Stack Build

The available record identifies the role above. Team structure, pre-existing work, and individual task ownership are not stored, so no further attribution is claimed.

05 / Key Decisions

Key Decisions

  1. I watched how they actually sell

    Before writing a line, I traced a real order end to end. Customers ask for a photo, ask what is fresh today, then pay on delivery. The bottleneck was never checkout — it was trust and availability. That reframed the whole build.

  2. Each branch became its own store

    The easy build is one catalog with a location filter. But Alexandria, New Borg Al Arab, and Alamein carry different stock at different prices. So every branch got its own catalog, pricing, availability, and imagery — one codebase, three real shops.

  3. Checkout ends in WhatsApp, on purpose

    No payment gateway. The cart composes a complete, correctly formatted Arabic order message — items, branch, delivery notes — and hands it to WhatsApp. The owner confirms in the channel he already lives in, and the customer never meets a form they distrust.

  4. Arabic first, not Arabic translated

    RTL was the default layout, not a mirrored afterthought. Type scale, numerals, product cards and the checkout copy were designed in Arabic first, then verified in English — which is why nothing reads like a converted template.

  5. A dashboard so they never call me

    A React + TypeScript monorepo over Express and Prisma, with a full admin panel for products, branches, and orders. Handover is the real deadline: if the client needs a developer to change a price, the project failed.

08 / Result

Result

3Independent Branches
0Payment Friction
100%Arabic-First UI

Next project

Avenue Interior Design Hire Me