system://hasnat.dev/projects/wabisaviart
← back to home
project_overview

WabiSaviArt - Multi-Vendor Marketplace

WabiSaviArt is a marketplace that prioritizes genuine creators and transparent commerce. The experience blends discovery, storytelling, and verified reviews with strong admin oversight and seller tooling.

Role: Backend Developer Scope: Marketplace Platform Focus: Trust + Payments
React NestJS Prisma PostgreSQL Stripe Redis Docker

// screenshots

Admin dashboard overview
Admin dashboard overview
Seller Product Details views
Seller Product Details views
Orders Table View
Orders Table View
Order Details View
Order Details View
Seller Store Details
Seller Store Details

// overview

vision

Empower authentic makers and help buyers shop with confidence through verifiable signals and human review.

audience

Independent artisans, boutique sellers, and customers seeking trusted, handcrafted products.

outcome

A modular marketplace backend that supports scale, transparency, and feature growth.

// problem

The client needed a production-ready marketplace where sellers could manage products, orders, and shop identity, while buyers could browse, purchase, and communicate seamlessly. Beyond standard e-commerce, the platform had to support authenticity signals such as maker verification, imported reviews, transparent fees, and admin oversight of listings and disputes. The system also required reliable media handling and multi-seller payment flows without compromising performance or maintainability.

// solution

I delivered a modular backend built with NestJS and Prisma, designed around clear domain boundaries for users, sellers, catalog, orders, payments, and messaging. I integrated Stripe for checkout, refunds, and seller onboarding, implemented S3-compatible media uploads with presigned URLs, and added Redis-backed caching and sessions for stability. The API supports role-based workflows for buyers, sellers, and admins, enabling marketplace operations, verification features, and transparency reporting.

// my_role

Backend Developer

  • Architected and implemented core API modules for auth, catalog, orders, payments, and media
  • Built role-based access control for admin, seller, and customer workflows
  • Modeled and migrated the database schema with Prisma, including catalog variants and order lifecycle
  • Integrated Stripe checkout, refunds, and seller onboarding and payout flows
  • Implemented object storage uploads with presigned URLs and secure validation
  • Supported deployment with Docker and runtime configuration for production

// tech_stack

frontend

React, Vite, Refine, Material UI, TypeScript

backend

Node.js (Bun runtime), NestJS, Prisma ORM

database

PostgreSQL

infrastructure

Docker, Redis, Stripe, S3-compatible storage, Twilio, Nodemailer, Git

// key_features

  • Role-based auth for buyer, seller, and admin workflows
  • Product catalog with variants, inventory, and media galleries
  • Stripe checkout with seller onboarding and payouts
  • S3-compatible media uploads with presigned URLs
  • Order management with refunds and dispute tracking
  • Maker verification and authenticity badges
  • Messaging between buyers and sellers

// contributions

  • Built the core NestJS modules and API contracts for marketplace operations
  • Designed Prisma models for users, sellers, products, orders, refunds, and disputes
  • Implemented Stripe payment intent flow, refunds, and seller onboarding
  • Added media uploads using S3-compatible storage with presigned URLs
  • Introduced Redis-backed caching and session support for performance
  • Hardened validation and error handling across public-facing endpoints
  • Packaged the app for containerized deployment with Docker

// challenges_&_solutions

Multi-variant catalog and data integrity

Problem: The product catalog needed to support variants, inventory, and rich media while preserving consistency and fast queries.

Solution: I designed a normalized catalog schema with variant relationships and indexes, then enforced validation in the API to keep inventory, pricing, and media in sync.

Reliable media handling

Problem: Seller uploads had to be secure, scalable, and resilient to failed or partial uploads.

Solution: I implemented presigned URL uploads to S3-compatible storage with size and type validation, plus consistent cleanup patterns for failed uploads.

Payments, refunds, and seller payouts

Problem: The platform needed to handle multi-seller checkout, refunds, and payouts while keeping order and payment states consistent.

Solution: I integrated Stripe for checkout and seller onboarding, enforced order state transitions, and added webhook-driven updates for payment status and refunds.

// impact

Production-ready backend

Aligned with transparency and authenticity goals for a trusted marketplace.

Simplified deployment

Dockerized packaging reduced environment issues and sped up releases.

Secure payment flows

Stripe Connect ensured safe checkout, refunds, and seller payouts.

Maintainable architecture

Modular services and a well-structured schema support future growth.

// what_i_learned

This project deepened my understanding of scalable marketplace architecture, Stripe Connect workflows, and the operational trade-offs of building trust features such as verification and transparent reporting.