Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ModMarket - Game Mod Marketplace

A full-stack marketplace platform where creators can upload, distribute, and monetize game modifications (mods). Built with React, Express, MongoDB, and integrated with ShareMods for file hosting.

Idea

ModMarket connects game mod creators with players. Creators upload their mod files (via ShareMods) along with metadata, screenshots, and pricing. Players browse, search, filter, and download mods. The platform handles file hosting, download tracking, and creator payouts.

Features

  • Mod Upload & Management – Upload mod binaries with title, version, game, platform, screenshots, changelog, requirements, and DLC info
  • ShareMods Integration – Mod files are uploaded to ShareMods for external hosting; metadata stored in MongoDB
  • Screenshot Compression – Images are auto-compressed via Sharp and stored in MongoDB
  • Rich Mod Schema – Supports changelog entries, requirements, DLC tracking, tags, game versions, features list, ratings, and discount pricing
  • Browse & Search – Filter mods by game, platform, category, and search query
  • Download Tracking – Each download increments a counter
  • User Authentication – JWT-based auth (signup/login)
  • Creator Payouts – UPI-based payout requests with status tracking (pending/approved/rejected)
  • Pricing & Fees – Creators set a price; platform takes a 5% commission
  • Responsive UI – Dark theme UI built with React, Tailwind CSS v4, and Lucide icons
  • Windows Launcherstart.bat one-click launcher for both servers

Tech Stack

Frontend

  • React 19, TypeScript, Vite
  • Tailwind CSS v4 + @tailwindcss/vite plugin
  • Lucide React (icons)
  • Motion (animations)

Backend

  • Node.js, Express
  • MongoDB + Mongoose
  • JWT Authentication (bcryptjs + jsonwebtoken)
  • Multer (multipart parsing)
  • Sharp (image compression)
  • Form-Data + Axios (ShareMods API client)

External Services

  • ShareMods API – file hosting for mod binaries

Project Structure

modmarket/
├── start.bat                     # One-click launcher (Windows)
├── sharemods.txt                 # ShareMods API reference
├── backend/
│   ├── config/
│   │   └── db.js                 # MongoDB connection
│   ├── middleware/
│   │   └── auth.js               # JWT authentication middleware
│   ├── models/
│   │   ├── Mod.js                # Mod schema (screenshots, metadata, sharemods refs, changelog, requirements, ratings)
│   │   ├── User.js               # User schema
│   │   └── Payout.js             # Payout request schema
│   ├── routes/
│   │   ├── auth.js               # Signup/Login endpoints
│   │   ├── mods.js               # CRUD + upload/download/thumbnail endpoints
│   │   └── payouts.js            # Payout request endpoints
│   ├── uploads/screenshots/      # Legacy screenshot storage
│   ├── update_status.js          # Utility to update mod status
│   ├── .env                      # Environment variables
│   ├── server.js                 # Express app entry point (port 5001)
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── AuthView.tsx      # Login/Signup forms
│   │   │   ├── HomeView.tsx      # Landing page
│   │   │   ├── LibraryView.tsx   # Browse/search mods grid + modal
│   │   │   ├── Navbar.tsx        # Navigation bar
│   │   │   ├── PayoutView.tsx    # UPI payout requests
│   │   │   └── UploadView.tsx    # Upload/edit mod form
│   │   ├── types.ts              # TypeScript interfaces
│   │   ├── App.tsx               # Root app component
│   │   ├── main.tsx              # Vite entry point
│   │   └── index.css             # Global styles / Tailwind
│   ├── index.html
│   ├── vite.config.ts
│   └── package.json

Environment Variables

Create backend/.env:

MONGO_URI=mongodb://localhost:27017/modmarket
JWT_SECRET=your_jwt_secret_here
SHAREMODS_API_KEY=your_sharemods_api_key_here
SHAREMODS_BASE_URL=https://sharemods.com/api
PORT=5000

Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB (local or Atlas)

Quick Start (Windows)

start.bat

Backend

cd backend
npm install
npm start        # Starts on http://localhost:5001

Frontend

cd frontend
npm install
npm run dev      # Starts on http://localhost:5173

API Endpoints

Auth

Method Path Description
POST /api/auth/signup Register a new user
POST /api/auth/login Login & get JWT

Mods

Method Path Description
GET /api/mods List all mods
POST /api/mods/upload Upload a new mod (auth)
PUT /api/mods/:id Update mod metadata (auth)
POST /api/mods/:id/download Increment download count
GET /api/mods/:id/screenshots/:index Serve screenshot image
GET /api/mods/:id/thumbnail Serve thumbnail image

Payouts

Method Path Description
POST /api/payouts/request Create payout request
GET /api/payouts/:userId List user's payouts
PATCH /api/payouts/:id/status Update payout status (auth)

License

ISC

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages