Skip to content
Sharib Khan
← All work

Web Application

A full-fledged e-commerce platform with secure checkout, order tracking and Razorpay payments, plus a role-based admin dashboard for inventory and sales analytics.

Fig. 03 · Ecommerce Website system illustration

01Context

A freelance build for a client needing a complete storefront and the admin tooling to run it, not just a checkout page.

02Problem

The client needed to sell online and needed staff to manage inventory, watch incoming orders and see sales trends, without stitching together three separate tools.

03Approach

Build one Next.js application that serves the public storefront and, behind role-based access control, an admin dashboard over the same underlying data.

04Storefront

Product listing, cart, secure checkout and order tracking, with Razorpay handling payment capture.

05Backend & Payments

Auth.js for role-based sessions, and a MongoDB-backed API for products, orders and payment-status reconciliation with Razorpay.

06Admin Dashboard

Lets admins update inventory, watch incoming orders, and view sales broken down yearly, monthly and weekly, alongside other store-management features.

07Challenges

Keeping order and payment state consistent when a Razorpay confirmation arrived after the customer had already navigated away from checkout.

08Decisions

Treated Razorpay's payment webhook as the source of truth for order status, rather than the client-side redirect, so a closed tab couldn't leave an order stuck in a pending state.

Layer 01 / 4

Next.js

Product listing, cart and checkout flow for customers, with server-rendered pages for SEO.

Key features

  • Product listing & management
  • Secure checkout
  • Order tracking
  • Razorpay payment integration
  • Role-based access control
  • Sales analytics (yearly / monthly / weekly)

Result

Delivered as a freelance engagement: a production storefront plus the full admin side a business needs to actually run it, not just a demo checkout flow.

What I'd improve

Add abandoned-cart recovery emails, and move sales aggregation to a scheduled job instead of computing it on each dashboard load.

Next dossier · 01

MAGE