Back to Portfolio
Art A Suivre: Full-Stack E-commerce Marketplace Platform
E-commerce & Enterprise

Art A Suivre: Full-Stack E-commerce Marketplace Platform

Production-ready art & furniture marketplace built with NestJS, React, TypeScript, connecting buyers, designers, and dealers with 50+ features.

Project Overview

The Challenge

Traditional art and furniture marketplaces lack specialized workflows for designers creating moodboards and sharing curated selections with clients, requiring manual coordination and losing sales opportunities.

Buyers cannot reserve products while making purchasing decisions, leading to items being sold during the decision-making process and frustrating shopping experiences.

Dealers struggle with product submission, review workflows, and inventory management across multiple platforms, requiring custom solutions for each marketplace.

Existing platforms don't provide designer-specific features like project boards, client collaboration tools, and commission tracking for professional interior designers and decorators.

Marketplace platforms need robust automation for hold expiration, email notifications, payment processing, and order fulfillment to scale operations without manual intervention.

Architected and developed a comprehensive e-commerce marketplace platform from scratch for art, furniture, and curated decor. Built as a solo full-stack developer managing all aspects: backend architecture with NestJS, frontend development with React/Vite, database design with PostgreSQL, DevOps deployment, and data engineering workflows.

Engineered 38 modular backend services using NestJS with TypeORM, implementing complex e-commerce features including authentication with JWT, role-based access control for 4 user types (buyers, designers, dealers, admins), Stripe payment integration, BunnyCDN file storage, automated hold management with cron jobs, and comprehensive email notification system with 9 transactional templates.

Developed 84 frontend pages with React 18, Vite 6, and Tailwind CSS, featuring advanced UI components built with Radix UI primitives, complex state management with React Query, responsive design across all devices, and optimized performance with code splitting and lazy loading. Integrated Google Gemini AI for smart product recommendations and search functionality.

Implemented critical e-commerce workflows: product catalog with advanced filtering, shopping cart and wishlist, order management with tracking, time-limited product holds (decision rooms), dealer curation workflow, designer project boards (moodboards), shipping logistics, dispute resolution, and comprehensive admin analytics dashboard.

Technical Architecture

Click diagram to zoom

Frontend Architecture: React 18 with Vite 6 for fast HMR, React Router 6 for client-side routing, Tanstack Query for server state management, Radix UI for accessible components, Framer Motion for animations

Backend Architecture: NestJS 11 with modular design (38 modules), TypeORM for database abstraction, JWT-based authentication with role guards, automated cron jobs for hold management

Database Layer: PostgreSQL with TypeORM migrations, complex relationships (users, products, orders, holds, collections, project boards), efficient indexing for search and filtering

Authentication & Authorization: JWT access + refresh tokens, 4 user roles (buyer, designer, dealer, admin), passport strategies, role-based guards protecting endpoints

File Storage & CDN: BunnyCDN integration for image hosting, UUID-based file naming, automatic image optimization, secure upload endpoints with Multer

Payment Processing: Stripe integration with webhook handling, payment intent creation, order fulfillment workflows, payment status tracking

Automation Layer: Cron jobs for hold expiration (every 5 minutes), email reminders (every 15 minutes), automated product release, notification orchestration

Notification System: Nodemailer with Gmail SMTP, 9 Handlebars email templates (welcome, verification, password reset, order confirmation, shipping, holds), transactional email tracking

AI Integration: Google Gemini API for product recommendations, search enhancement, similarity matching, automated categorization suggestions

Key Challenges & Solutions

1

Complex Multi-Role Authorization System

Implemented JWT-based authentication with 4 distinct user roles (buyer, designer, dealer, admin) each with specific permissions. Created custom role guards and decorators for NestJS to protect endpoints, ensuring buyers can't access dealer routes and designers have proper board management access. Solved token refresh flow with secure httpOnly cookies.

2

Automated Hold Management with Cron Jobs

Built time-limited product hold system (decision rooms) with NestJS cron jobs checking expiration every 5 minutes, sending email reminders 1 hour before expiration every 15 minutes, and automatically releasing products back to inventory. Handled edge cases like concurrent holds, timezone conversions, and email delivery failures.

3

Scalable Product Catalog with Advanced Filtering

Designed efficient database schema with TypeORM supporting complex product queries (category, price range, dealer, availability, featured). Implemented pagination, sorting, and full-text search. Optimized with database indexing reducing query time from 2s to <200ms for 10,000+ products.

4

BunnyCDN Integration for Image Management

Integrated BunnyCDN for scalable image storage and delivery. Created upload endpoints with Multer handling multipart/form-data, implemented UUID-based file naming preventing collisions, added automatic image optimization with Sharp, and built CDN URL generation for fast global delivery.

5

Designer Project Boards with Real-time Collaboration

Built complete project board system allowing designers to create moodboards, organize products by project, share with clients via unique links, and track engagement. Implemented board permissions, product pinning, notes, and export functionalities enabling professional designer workflows.

6

Order Fulfillment & Shipping Logistics

Developed end-to-end order management from cart checkout to delivery tracking. Integrated Stripe for payment processing, created order status state machine (pending → paid → shipped → delivered), implemented shipping carrier integration, and automated email notifications at each status change.

7

Frontend State Management at Scale

Architected frontend state using T anstack Query for server state (products, orders, user data) with automatic caching and refetching, React Context for authentication state, and local state for UI interactions. Optimized with query key factories, infinite scrolling, and optimistic updates for instant UI feedback.

Impact & Results

Solo full-stack development managing backend (NestJS), frontend (React), database (PostgreSQL), DevOps, and data engineering

50+ production-ready API endpoints with complete Swagger/OpenAPI documentation for frontend integration

38 modular backend services following NestJS best practices with dependency injection and clean architecture

84 frontend pages built with React 18, Vite 6, and Tailwind CSS providing complete marketplace functionality

Automated hold management processing expirations every 5 minutes and sending reminders every 15 minutes via cron jobs

9 transactional email templates (Handlebars) covering complete user journey from registration to delivery

Multi-role authentication supporting buyers, designers, dealers, and admins with role-specific dashboards and permissions

BunnyCDN integration enabling fast global image delivery with automatic optimization and secure upload workflows

Google Gemini AI integration providing intelligent product recommendations and enhanced search capabilities

Comprehensive admin analytics dashboard with platform statistics, dealer management, and curation workflow

TypeScript end-to-end ensuring type safety across 38 backend modules and 84 frontend pages

Production-ready deployment with Docker, comprehensive testing (Jest), and detailed technical documentation

Key Features

  • Multi-role authentication (Buyer, Designer, Dealer, Admin) with JWT
  • 50+ RESTful API endpoints with complete Swagger documentation
  • Product catalog with categories, filters, and advanced search
  • Shopping cart, wishlist, and user collections
  • Time-limited product holds with automated expiration (cron jobs)
  • Complete order management with Stripe payment integration
  • Shipping logistics with tracking and notifications
  • Designer project boards (moodboards) with client sharing
  • Dealer product submission with admin curation workflow
  • BunnyCDN integration for CDN-optimized image delivery
  • Email notification system with 9 transactional templates
  • AI-powered product recommendations (Google Gemini)
  • Comprehensive admin dashboard with analytics
  • Real-time dispute resolution system
  • Price alerts and product question/answer system
  • Responsive design with Tailwind CSS and Radix UI
  • TypeScript end-to-end for type safety
  • Automated testing with Jest (unit & e2e)

Technologies Used

NestJS 11React 18TypeScript 5Vite 6PostgreSQLTypeORMRedisTailwind CSSRadix UIReact Router 6Tanstack QueryFramer MotionBunnyCDNStripeGoogle Gemini AINodemailerSwagger/OpenAPIJestDocker

Project Gallery

Admin Dashboard with Analytics
Admin Dashboard with Analytics
Product Marketplace View
Product Marketplace View
Designer Project Board
Designer Project Board

Project Details

Client

Freelance E-commerce Project

Timeline

December 2024 - Ongoing (1 month, Coming Soon)

Role

Solo Full Stack Developer (Backend, Frontend, DevOps, Data Engineering)

© 2026 Firas Jday. All rights reserved.

0%