Skip to content
Back to projects

Case study

Building a Bilingual Flower Shop E-Commerce Platform

Local flower shops in the Kurdistan Region of Iraq rely almost entirely on walk-in customers and informal phone orders. There was no dedicated online platform where Kurdish-speaking customers could browse flower arrangements, compare prices, place orders, and choose a specific delivery date — especially important for a gift-giving product where timing is everything. Beyond the customer side, shop owners had no way to delegate operational tasks to staff without handing over full system access. There was no accountability trail, no online payment option suited to the local market, and no bilingual interface that respected Kurdish readers who expect a right-to-left layout and familiar Sorani text. The gap was clear: a trustworthy, modern, bilingual e-commerce platform built specifically for local flower retail simply did not exist in the region.

What I Built

Bloom & Vine is a full-stack, production-ready e-commerce platform built from the ground up using PHP 8.2, MySQL, and Tailwind CSS — with no heavy framework, keeping the architecture transparent and fully under control. The platform serves three types of users: customers who browse and buy, admin staff who manage day-to-day operations, and a super admin who controls the entire system. Every part of the stack was built with real-world engineering in mind — not just to satisfy academic requirements, but to produce something that could be deployed and used by a real business. The customer side includes a full product catalogue with search and filtering, a shopping cart that tracks product variants, a checkout flow with delivery date selection, order extras, and coupon support. Payments are handled through First Iraqi Bank (FIB) — a real API integration with live payment initiation, status polling, and a secure webhook — alongside a Visa/Mastercard card form and cash on delivery. The admin panel gives store operators the tools they need: product and category management with bilingual fields, order tracking and status updates, coupon creation, and contact message handling. Every admin account has a custom permission set — a granular system where the super admin decides exactly what each staff member can and cannot do, with every action logged in an immutable audit trail. The entire platform runs in both English and Kurdish Sorani, with a proper RTL layout for Kurdish, seamless mid-session language switching, and bilingual content stored directly in the database. It is also a Progressive Web App — installable on Android and iOS, with offline support through a service worker.

Key Features

  • Bilingual interface — English (LTR) and Kurdish Sorani (RTL) with seamless mid-session language switching First Iraqi Bank (FIB) payment gateway — real API integration with payment initiation, status polling, and secure webhook handling Delivery date scheduling — customers choose a specific delivery date at checkout, with smart status indicators for admins Visa and Mastercard card payment — real-time format validation, server-side verification, and minimal secure storage (last 4 digits only, CVV never stored) Granular admin permission system — each admin gets a custom set of permissions assigned by the super admin, loaded at login for O(1) lookups Product reviews and 5-star rating system — one review per user per product, with averaged ratings displayed across the catalogue Wishlist — save products for later and add directly to cart, toggled via AJAX Order notifications — in-app notification feed for customers triggered by order and payment status changes Google OAuth login — fast sign-in without password creation Coupon and discount code system — percentage or fixed-amount discounts with usage limits, minimum order thresholds, and expiry dates Order extras — customers can add add-ons like vases or gift wrapping at checkout Super admin analytics dashboard — total revenue, top products, customer counts, and exportable sales reports Audit log — every admin action is written to an immutable log with admin ID, target, and timestamp PWA with offline support — installable on home screen, with service worker caching for fast repeat loads Full security stack — CSRF tokens on every form, Argon2ID password hashing, PDO prepared statements, XSS output escaping, and file upload validation

Outcome

Bloom & Vine was completed as a fully deployable, production-ready platform — not a prototype or a proof of concept, but a system a real flower shop could put live. Every primary objective set at the start of the project was met or exceeded. The platform integrates a real payment gateway (First Iraqi Bank) with live API calls, webhook processing, and atomic order updates — going well beyond the simulation-level payment handling common in academic projects. The bilingual Kurdish/English interface with proper RTL layout is, to my knowledge, the first of its kind built as a Computer Science thesis in the Kurdistan Region. On the security side, the platform meets professional standards: CSRF protection on every state-changing form, Argon2ID password hashing, PDO prepared statements throughout, XSS output escaping on all rendered data, and PCI-DSS-aligned card data minimisation. The admin permission system scales to any number of granular permissions without additional database queries per page load. The project was built solo across six development phases — from schema design to PWA setup — and resulted in 30+ PHP source files, 15+ database tables, and a codebase documented thoroughly enough for another developer to maintain without handholding.