Skip to content

Indie Bunny is a web-based platform that allows independent game developers to list, showcase, and sell their games. It introduces a unique tipping feature where players can support developers financially and, in return, receive a random indie game from the mystery pool.

Notifications You must be signed in to change notification settings

gonequacker/Indie-Bunny-marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

78 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Indie Bunny Marketplace

A Full-Stack Indie-Based Game Marketplace with Tipping, Mystery Rewards, Role-Based Access, and Admin Approval Workflow. (Early version)


๐Ÿท๏ธ Badges

React Django Supabase PostgreSQL Firebase Render Vercel License Status


๐Ÿ“š Table of Contents


๐Ÿš€ Introduction

Indie Bunny Marketplace is a modern full-stack platform designed to support independent game developers through a hybrid marketplace + tipping reward model. Players may purchase games directly or tip developers to access a mystery pool of developer-submitted games.

The system was built using: - React (Vercel) for the frontend\

  • Django REST (Render) for the backend\
  • Supabase PostgreSQL for the database\
  • Firebase Authentication for secure identity\
  • Modern relational schema (3NF) with specialization, weak entities, and transaction modeling

This README provides a long-form, GitHub-friendly overview based on the complete PDF report.


๐ŸŽฏ Project Overview

The Problem

Indie developers struggle with: - Platform saturation\

  • Limited visibility\
  • Poor monetization options

The Solution

Indie Bunny Marketplace offers: - A curated indie game storefront\

  • Developer tipping with rewards\
  • Region-based pricing\
  • Role-based UI for players, developers, and admins\
  • Approval workflow to maintain platform quality

๐Ÿงฉ Major Features

๐Ÿ‘ค Player Features

  • Browse game listings
  • Purchase games
  • Add items to wishlist
  • Tip developers
  • Earn mystery rewards
  • Receive actionable notifications
  • View purchase history

๐Ÿง‘โ€๐Ÿ’ป Developer Features

  • Upload games for admin approval
  • Create regular or temporary listings
  • Set prices & tipping thresholds
  • Manage their uploaded games
  • Track listing visibility and approval status

๐Ÿ›ก Admin Features

  • Approve or reject pending games
  • Delete inappropriate or outdated listings
  • Manage assigned users
  • Moderate platform content

๐Ÿ— System Architecture

Frontend (React, Vercel)
        โ”‚
        โ–ผ
Backend API (Django REST on Render)
        โ”‚
        โ–ผ
PostgreSQL (Supabase)
        โ”‚
        โ”œโ”€โ”€ Authentication via Firebase
        โ””โ”€โ”€ Storage for images / metadata

Design goals: - High modularity

  • Scalable DB design
  • Cloud-based CI/CD
  • Secure authentication & authorization

๐Ÿ“ ERD & Schema Design

Key ERD Elements

  • User as the core entity
  • Player, Developer, Admin as specialized roles
  • PendingGame as a weak entity waiting for approval
  • GameListing โ†’ RegularListing & TemporaryListing subclasses
  • Wishlist & WishlistEntries (weak entity)
  • MysteryPool & RECEIVES relationship
  • CountryPricing for region-based price modifiers

ERD Diagram

ERD-DIAGRAM

๐Ÿ—„ Final Relational Schema

Core Tables

  • User(UserID, Name, Email, Password, Role, WalletBalance, Country, IsActive)
  • Player(UserID, PlayHistory)
  • Developer(UserID, PortfolioLink)
  • Admin(UserID, AccessLevel)

Game Tables

  • PendingGame(...)
  • Game(...)
  • GameListing(...)
  • RegularListing(ListingID)
  • TemporaryListing(ListingID, DiscountPercent, StartTime, EndTime)

Transaction Tables

  • Purchase, BUYS
  • Tip
  • MysteryPool, RECEIVES

Support Tables

  • Wishlist, WishlistEntries
  • Notification
  • CountryPricing

Normalization

The schema satisfies: - 1NF: Atomic fields\

  • 2NF: No partial dependencies\
  • 3NF: No transitive dependencies

Relational Model (RM) Diagram

image

Legend for RM:
image


๐Ÿ”„ Core User Workflows

โœ” Buying a Game

  1. Insert into Purchase
  2. Insert into BUYS
  3. Deduct from wallet
  4. Send notification

๐Ÿ’ฐ Tipping a Developer

  1. Tip is logged
  2. Tip may qualify for mystery reward
  3. Game added via RECEIVES

๐Ÿ“ Game Upload Approval

  1. Developer uploads โ†’ PendingGame
  2. Admin approves:
    • Insert into Game
    • Insert into GameListing
    • Insert into RegularListing or TemporaryListing
  3. Delete from PendingGame

๐Ÿ–ฅ System Interface

๐Ÿก Home Page

  • Mascot-driven branding
  • Featured games
  • Quick navigation

๐ŸŽฎ Game Browser

  • Sorting, filtering, tagging
  • Regular vs temporary listings
  • Price adjustments shown dynamically

๐Ÿ“ฉ Notifications

  • Read/unread states
  • Actionable with deep links

๐Ÿงบ Wishlist

  • Add/remove items
  • Quick jump to listings

๐Ÿง‘โ€๐Ÿ’ป Developer Dashboard

  • Upload new games
  • Track approval progress
  • Manage existing listings

๐Ÿ›ก Admin Dashboard

  • View all pending uploads
  • Approve / reject instantly
  • Manage assigned users

๐Ÿงช Test Accounts

Player
Email: player@example.com
Password: pass123

Developer
Email: dev@example.com
Password: pass123

Admin
Email: admin@example.com
Password: pass123

โ–ถ๏ธ Live Demo

Frontend:
https://indie-bunny-marketplace.vercel.app/

Backend and database are fully connected.


๐Ÿ—ƒ How to Run Locally

1. Clone the repo

git clone https://github.com/your-repo.git

2. Install frontend

cd frontend
npm install
npm run dev

3. Install backend

cd backend
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

4. Configure .env files

  • Firebase credentials
  • Supabase URL & key
  • Django secret key

๐Ÿ“Œ Future Enhancements

  • Developer analytics dashboard
  • Stripe/PayPal payment integrations
  • Game reviews & ratings
  • Rich notification filters
  • Automated schema migrations
  • Admin audit logs
  • A cleaner and more asthetically pleasing UI

๐Ÿ“„ License

MIT License. See LICENSE for details.


About

Indie Bunny is a web-based platform that allows independent game developers to list, showcase, and sell their games. It introduces a unique tipping feature where players can support developers financially and, in return, receive a random indie game from the mystery pool.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •