logo
Marjon Customer Cabinet
Featured
Customer Web Portal

Marjon Customer Cabinet

Marjon Customer Cabinet is a customer-facing web portal for business clients of Marjon in Uzbekistan. It is built as a pnpm + Turborepo monorepo that hosts two products: Marjon Reklama, where customers create and track advertising deals on vehicles, review payments and follow vehicle routes on a map, and Marjon Yuk, where they manage cargo, packages and shipment tracking. The app follows Feature-Sliced Design with strict one-way dependencies between the host app, the domain packages and a shared design system, and is localized in Uzbek and Russian.

Project Information

Role: Frontend Developer
Team: Team Project (Frontend + Backend + Mobile)
Duration: 6 months
Year: 2026

Tech Stack

React 19
TypeScript
Vite
Tailwind CSS 4
Radix UI / shadcn/ui
React Router 7
TanStack Query
Zustand
Formik + Yup
Axios
Leaflet
Recharts
Turborepo
pnpm Workspaces
Vitest
Sentry
PostHog

Key Features

  • Advertising deals: list, details and status tracking
  • Order wizard for creating new ad campaigns
  • Payment history and payment details
  • Vehicle route history on an interactive map
  • Cargo and shipment tracking
  • Login, signup, profile and settings
  • Contact and support page
  • Uzbek and Russian localization
  • Guided onboarding tours for new users

My Responsibilities

  • Developed features in the Feature-Sliced Design monorepo across the host app and the ads and shipment domain packages
  • Built ad deal management, the order wizard and payment history screens
  • Implemented map-based vehicle route history with Leaflet, clustering and heatmap layers
  • Built cargo and shipment tracking pages for the Marjon Yuk product
  • Integrated REST APIs with Axios and TanStack Query, including JWT session handling
  • Implemented login, signup, profile and settings flows with Formik and Yup validation
  • Set up Sentry error monitoring and PostHog analytics
  • Followed team conventions: ESLint, Prettier, Husky hooks and conventional commit messages

Advantages

  • Two products, one account: advertising and cargo in a single customer portal
  • Customers see where their branded vehicles have driven, directly on a map
  • Clear separation of domains keeps each package independent and easy to maintain
  • Shared design system gives a consistent look across all screens
  • Localized in Uzbek and Russian for local business customers

Challenges

  • Keeping ads and shipment domains independent while sharing one design system
  • Rendering long vehicle routes and many map points without slowing the UI
  • Building a multi-step order wizard with validation across steps
  • Working in a monorepo with several packages and a shared build pipeline

Solutions

  • Enforced one-way dependencies between the host app, domain packages and shared-ui with ESLint import rules
  • Used marker clustering, heatmaps and GeoJSON tiling to keep maps responsive
  • Used Formik with Yup schemas to validate each step of the wizard
  • Used Turborepo to orchestrate builds and caching, and lazy-loaded pages to reduce the initial bundle

Project Gallery

Marjon Customer Cabinet - Image 1
Marjon Customer Cabinet - Image 2
Marjon Customer Cabinet - Image 3
Marjon Customer Cabinet - Image 4
Marjon Customer Cabinet - Image 5
Marjon Customer Cabinet - Image 6
Marjon Customer Cabinet - Image 7
Marjon Customer Cabinet - Image 8
Marjon Customer Cabinet - Image 9
Marjon Customer Cabinet - Image 10
Marjon Customer Cabinet - Image 11
Marjon Customer Cabinet - Image 12
Marjon mijozlar kabineti - transport reklamasi va yuk portali | Muxsinjon