JJ Activewear

MIT-DEV designed and built JJ Activewear's platform end to end: the storefront, a Django admin that runs catalog, stock, payments, deliveries and returns, and a mobile app for the brand's couriers.

Visit live site
JJ Activewear — production website screenshot

JJ Activewear is a Moldovan sportswear brand selling online at jjactivewear.md. Beyond a storefront, the brand needed one system to run its catalog, stock, deliveries, payments and returns. MIT-DEV designed and built it end to end.

680

tracked tasks

and counting, well past launch

3

apps, one backend

storefront, admin panel, courier app

2

delivery networks

in-house couriers and a national carrier

The challenge

A fashion brand sells the same item in several sizes and colors, from a warehouse and a store, and delivers it with its own couriers or through a national carrier. Run on separate tools, that means stock counts that disagree, orders passed between systems by hand and reports rebuilt every day. The platform had to:

  • Sell: a storefront in Romanian, Russian and English, from product page to order tracking.
  • Keep stock right: one stock for every channel, with a full history for every barcode.
  • Deliver and get paid: card payments, delivery routing and returns in the same system.

What we built

A catalog built for fashion. Products carry variations, sizes, colors, collections, media and SEO fields, so the storefront shows exactly what is in stock and filters it by category, collection, color, size and price.

jjactivewear.md/en/set-with-jacket-and-leggings
A product page with size and color variants and a low-stock notice
Every variant, its own stock. Sizes and colors are separate variations, and the page shows when one runs low.

A storefront from browse to delivery. Product listings, product pages, cart, checkout, customer accounts and order tracking, in three languages.

jjactivewear.md/en/shop · filters
The shop with filters by category, collection, tag and color
Filters by category, collection, tag, color, size and price.
shopping bag
A shopping bag with three products in different sizes and colors
A bag that keeps each item's color and size.

Stock in one place. Inventory, warehouse and supplier modules keep a barcode-level history, record inbound invoices and reserve stock centrally.

Payments and deliveries. Online card payments, including partial refunds. Map-based delivery zones route each order to the in-house courier fleet or to a national carrier, with shipping labels and return shipments handled from the admin.

An app for couriers. Couriers work from a mobile app with every address pinned on a map and a flag that tells them whether the customer pays in cash or by card.

Returns and reporting. Order returns, Excel and CSV exports, and daily sales, sales activity and finance reports come out of the same system.

Under the hood

The backend runs on Django with an Unfold-based admin panel, on containerized infrastructure with CI pipelines. Errors are monitored as they happen, and scheduled background jobs handle the recurring work.

JJ Activewear home page on a phone

Home

A product page with variants on a phone

Product

The shopping bag on a phone

Bag

Built for the phone. Browse, pick a size and check out with a tab bar always in reach.

The result

JJ Activewear runs sales, fulfilment and reporting from a single operational platform. With nearly 680 tracked tasks, the work has continued well past launch: ongoing hardening, performance work and new features driven by the client's day-to-day operations.

Tech stack

DjangoUnfoldSentryCI/CDMobile app