Mahmoud Marey
Start a Project
Back to selected work

Kenda Medical E-commerce

Medical commerce, built end to end.

A live Arabic and English store for medical and home-healthcare equipment, backed by a dedicated administration application and a modular .NET commerce backend.

Role

Sole developer · Product design · Frontend · Backend · Architecture · Deployment

Scope

Storefront · Administration · Commerce APIs · Data · Infrastructure

Project technologies
  • Angular 20 · SSR
  • Angular 22 · Admin
  • .NET 10 · FastEndpoints
  • EF Core · PostgreSQL
  • Tailwind CSS
  • Docker · Nginx
Live storefrontVisit live store
Storefront / Desktop
Storefront / Desktop kenda-medical.sa

Delivered

Customer experience and store operations, connected.

01

Bilingual storefront

Product, category, and brand discovery, search, cart, and checkout in Arabic and English.

02

Operational administration

A dedicated application for catalog, content, orders, promotions, delivery locations, and returns.

03

Modular backend

Commerce APIs and a PostgreSQL data model with separated business modules and permission-based access.

01 / Overview

The goal was not simply to create an online catalog.

Kenda Medical needed a store for medical and home-healthcare equipment that customers could browse in Arabic or English, together with tools to operate the catalog and orders.

I implemented the complete system: an Angular 20 SSR storefront, an Angular 22 administration application, and a .NET 10 modular backend using FastEndpoints, EF Core, and PostgreSQL.

02 / The Challenge

Commerce becomes complicated quickly.

A customer sees products, categories, images, prices, search, cart, checkout, and order information.

Behind that experience, the business needs structured product data, content management, order processing, payment handling, shipping integration, notifications, authentication, and administrative workflows.

The engineering challenge: keep bilingual shopping, administration, and backend business rules consistent across separate applications.

03 / Storefront Experience

Designed around product discovery.

The storefront focuses on making it easy for customers to move from discovery to purchase.

The experience includes structured category navigation, product browsing, promotional content, reusable product experiences, responsive layouts, product details, image exploration, cart interactions, and checkout flows.

The interface is designed to remain consistent across desktop and mobile while supporting both RTL and LTR experiences.

Storefront / Desktop
Storefront / Desktop
Product Page / Mobile
Mobile

04 / Product Experience

Product information without unnecessary friction.

Product pages bring the important purchasing information forward while still allowing customers to explore imagery, variations, related products, and supporting information.

Reusable product components keep the experience consistent across the homepage, categories, search results, recommendations, and related-product sections.

05 / Commerce Experience

From product discovery to order.

Each stage is designed as part of the same workflow rather than as an isolated screen.

  1. Discover
  2. Evaluate
  3. Add to Cart
  4. Checkout
  5. Payment
  6. Delivery
  7. Order

06 / Administration

The storefront is only half the product.

The Angular 22 administration application manages the product catalog, categories, brands, store content, promotions, orders, delivery locations, and returns.

Navigation and access are driven by backend module permissions. Operators can search, filter, and work with structured records through reusable administration components.

Admin / Operations
Admin / Operations

07 / Integrations

Provider boundaries that can evolve.

Dedicated payment and shipping interfaces let provider behavior evolve independently of catalog and order management. The initial adapters support manual operations.

01

Payments

Payment provider registration and configuration are separated from order logic. A manual payment adapter is implemented.

02

Delivery

Shipping providers, delivery countries and cities, and checkout shipping quotes form a dedicated delivery workflow. A manual shipping adapter is implemented.

03

Availability alerts

Product-availability subscriptions give operators a way to track interest in products that are currently unavailable.

08 / System Architecture

Built as a platform that can evolve.

Customer-facing experiences, administration, business capabilities, integrations, and infrastructure stay separated so each area can evolve without turning the platform into one tightly coupled codebase.

CustomerStorefrontCommerce APIsBusiness ModulesData & Integrations
OperationsAdmin ApplicationAPIsBusiness Modules
External

Payments

Delivery

Notifications

Future AI Capabilities

09 / Engineering Decisions

Structure that protects the product as it grows.

01

Server-rendered storefront

Angular SSR delivers storefront HTML before hydration, while the administration remains a separate Angular application.

02

Modular business logic

Catalog, merchandising, orders, delivery, and returns are registered as distinct commerce capabilities in a .NET modular monolith.

03

Provider boundaries

Payment and shipping adapters keep provider-specific behavior outside the core commerce workflow.

04

Relational data

EF Core and PostgreSQL model commerce records and their relationships behind typed APIs.

05

Arabic & English

Localized interfaces and direction-aware layouts support the same shopping experience in RTL and LTR.

06

Permission-based administration

Backend permissions and module-provided navigation determine the administration capabilities available to a user.

10 / Beyond Commerce

The next layer is intelligence.

AI is a future extension of this commerce platform, not a feature claimed as delivered in this case study.

The existing structured catalog and commerce APIs could support retrieval, product assistance, and controlled operational tools in a later phase.

The goal isn't to add a chatbot.
It's to make intelligence another capability of the system.
Have a similar problem?

Let's build the system around it.

Start a Project