Skip to content

A production-ready Marketplace & Auction Engine built with NestJS, Prisma, and PostgreSQL featuring dynamic specifications, real-time bidding, and split-payment processing

Notifications You must be signed in to change notification settings

shariyerShazan/Finn-ClientProject-Nestjs-Marketplace-Backend

Repository files navigation

Shazan - Marketplace & Auction Platform

LiveLink: https://shazan-ad-marketplace-project.onrender.com Swagger: https://shazan-ad-marketplace-project.onrender.com/docs

A full-featured marketplace and auction platform backend built with NestJS and PostgreSQL. Shazan enables users to buy, sell, and auction products with secure payments, real-time messaging, and a comprehensive seller management system.

Features

Core Functionality

  • User Authentication - Email/password authentication with JWT and OTP verification
  • Marketplace Listings - Create, update, and manage product listings (Fixed price & Auction)
  • Auction System - Time-based auctions with bidding functionality
  • Payment Processing - Stripe integration for secure transactions with platform fee splitting
  • Seller Management - Seller verification, Stripe account linking, and seller profiles
  • Commenting & Reviews - Thread-based comments on listings
  • Real-time Messaging - User-to-user messaging with conversation management
  • Image Management - Cloudinary integration for product image hosting
  • Categorization - Hierarchical category system with custom specification fields

User Roles

  • User - Can browse, purchase, bid, and message
  • Seller - Can list products and manage inventory
  • Admin - Platform management and seller verification

Tech Stack

  • Backend: NestJS
  • Database: PostgreSQL
  • ORM: Prisma
  • Authentication: JWT
  • Payments: Stripe
  • File Storage: Cloudinary
  • Email: Gmail SMTP
  • Environment: Node.js

Project Structure

├── src/
│   ├── auth/              # Authentication module
│   ├── users/             # User management
│   ├── sellers/           # Seller profiles
│   ├── ads/               # Marketplace listings
│   ├── bids/              # Bidding system
│   ├── payments/          # Payment processing
│   ├── messages/          # Messaging system
│   ├── comments/          # Comments & reviews
│   ├── categories/        # Category management
│   └── common/            # Shared utilities
├── prisma/
│   └── schema.prisma      # Database schema
├── .env                   # Environment variables
└── package.json           # Dependencies

Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • PostgreSQL (v12 or higher)
  • npm or yarn

Installation

  1. Clone the repository

    git clone <repository-url>
    cd shazan
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env
    # Edit .env with your configuration
  4. Set up the database

    npx prisma migrate dev --name init
  5. Start the development server

    npm run start:dev

The API will be available at http://localhost:3000

Documentation

Environment Configuration

See ENV.md for detailed environment variable setup.

Database

See DATABASE.md for complete schema documentation and relationships.

Contributing

Please read CONTRIBUTING.md for details on code standards and submission process.

License

Proprietary - All rights reserved

About

A production-ready Marketplace & Auction Engine built with NestJS, Prisma, and PostgreSQL featuring dynamic specifications, real-time bidding, and split-payment processing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published