
Rowshan Printers — Packaging Printer Website & Admin Dashboard
( Role )
Designer & Full-Stack Developer
( Scope )
- The website’s design and every page in Next.js 16; Bangla and English with i18next; the Express and MongoDB API with JWT sign-in; the admin dashboard — overview
- Orders
- Customers
- Ledger and accounts
- Products and categories
- Traffic
- Product insights
- Searches and SEO through Google Search Console; cookieless analytics; signed Cloudinary uploads
- The clean-photo sheet with MediaPipe hand detection in the browser
- The AI photo studio (OpenAI or Gemini
- Keys encrypted at rest); moving the old WooCommerce catalogue and 96 cleaned product photos across; SEO with structured data
- An image sitemap and redirects for the old URLs
( Stack )
- Next.js 16
- GSAP
- i18next
- TanStack Query
- NextAuth
- Recharts
- Express
- MongoDB
- Cloudinary
- Sharp
- MediaPipe
- OpenAI
- Gemini
- Vitest




( Brief )
Rowshan Printers prints packaging for online and offline businesses: courier and mailer boxes, mehendi and perfume boxes, shoe and chocolate boxes, stickers, cash memos and mailer poly. Customers order on Messenger or by phone, not through a cart. The new site had to show the whole catalogue clearly, Bangla first, and lead every visitor to that conversation — and the owner needed one place to run the business behind it.
( Approach )
The website is one blue on white with dashed frame lines and square corner dots, condensed headings in Barlow Condensed and Anek Bangla, DM Mono labels, a GSAP preloader and a hero that changes product photos through a cut-out reveal. All 45 products and 16 categories came over from the old WooCommerce site with their slugs, so old /product/ links still land on the right page. Every product page has a Messenger order button and the hotline; the whole site runs in Bangla and English.
Behind it is an Express and MongoDB API and an admin dashboard: orders and customers, payments and expenses in an append-only ledger where corrections are reversals, catalogue editing, and cookieless visitor analytics — traffic sources, product interest, and what people searched for and didn’t find. Photos never pass through the API: the browser uploads straight to Cloudinary. “Add photos” removes the background, trims and centres the box on the site’s grey square and flags hands before the owner confirms; an AI studio can restyle a shot after a reference photo.



( Challenge )
The owner’s photos were phone shots with hands, watermarked titles and a warehouse behind the box. They had to become one consistent catalogue without a photographer, and the owner had to stay in control of what goes live — so every cleaned photo is shown before and after, and nothing publishes until it is confirmed. Analytics had to work without cookies or a consent banner: a visitor is counted by a hash that changes every day, and the owner’s own visits are left out. And because orders happen in chat, the money side had to be honest: a payment or expense is never edited, only reversed, so the balance always adds up.
( Responsibilities )
The website’s design and every page in Next.js 16; Bangla and English with i18next; the Express and MongoDB API with JWT sign-in; the admin dashboard — overview, orders, customers, ledger and accounts, products and categories, traffic, product insights, searches and SEO through Google Search Console; cookieless analytics; signed Cloudinary uploads, the clean-photo sheet with MediaPipe hand detection in the browser, and the AI photo studio (OpenAI or Gemini, keys encrypted at rest); moving the old WooCommerce catalogue and 96 cleaned product photos across; SEO with structured data, an image sitemap and redirects for the old URLs.

