Skip to content
Mithiin
All projects

Versa Ecommerce

A complete e-commerce platform for Versa's radio and device business, selling to individuals and companies. It covers the storefront customers buy from, the console staff run the store with, and the backend service that prices, takes orders, bills subscriptions and handles payments.

Versa Ecommerce app icon

Highlights

  • Three ways to buy, priced on the product page

    A buyer chooses to own a device outright, subscribe to it monthly over a fixed term, or own it with added cover. The price changes with the choice, and a subscription shows both the one-time and the monthly amount.

  • Checkout that cannot fail late

    The delivery fee comes from the buyer's city and the store's delivery zones, so a city nobody delivers to is caught at the address step, not at payment. Orders that need approval are still placed, then become payable once approved.

  • A console that opens on work, not statistics

    Each dashboard tile is a queue with an age that escalates from clear to at risk to breached, and the worst queue leads. Every tile opens the screen that can clear it.

  • Fulfilment with guard rails

    An order cannot be packed until every line has its serial numbers and a quality check. Cancelling a paid order refunds it in the same step, so an order is never left cancelled but unrefunded.

  • Six services merged into one

    The backend was built as six separate services, then consolidated into one service with six modules. The merge removed 16 of 23 message topics and cut the source by 22 percent, and the module boundaries stayed.

Everything it does

  • Catalogue with search and filters by brand, device type and contract
  • Three ways to buy a device — outright, on a monthly plan, or outright with added cover
  • Cart that follows the account and merges a cart built while signed out
  • Stepped checkout — contact, delivery address, review, agreements, payment
  • Delivery fee worked out by the server from the buyer's city and configured delivery zones
  • Promo codes that say why a code was rejected
  • Card payments through Stripe, with the first card saved for later orders
  • Recurring subscription billing against a saved card
  • Buyer verification, with regulated and subscription orders held until approved
  • Order tracking with courier, tracking number and printable invoice
  • Business accounts, so orders are attributed to a company
  • Staff dashboard that opens on work queues ranked by how overdue they are
  • Fulfilment steps from confirmed to delivered, with serial numbers required to pack
  • Full refund in the same step as cancelling a paid order
  • Products, prices, promotions, fees, couriers and delivery zones managed from the console
  • Currency, tax and terms configured per country
  • Permission matrix where widening access needs a second confirmation and a reason
  • Read-only activity log with filters and CSV export

Specifications

Role
Full-stack developer
Platform
Web app
Period
2024 – 2026
Frontend
Two Next.js apps — store and console — sharing a design system
Backend
One NestJS service with six domain modules, MongoDB and Kafka
Payments
Stripe, with card details entered in Stripe's own form
Automated tests
Unit, browser and mutation testing on both the frontend and the backend
Documentation
In-repo user manual, domain rules and architecture decision records
Stack
Next.jsTypeScriptNestJSMongoDBKafkaStripe
Next projectVersa Asset Management

Build yours

Want something like Versa Ecommerce?

Tell us what you need and how it differs. We reply within 24 hours with questions, a rough timeline and next steps.