Interactive 3D WebGL E-Commerce & Inventory Platform
MiniShop 3D
MiniShop 3D bridges immersive 3D spatial graphics with enterprise e-commerce state management. It features a Three.js interactive product viewer, strategy-pattern checkout calculations (dynamic tax, volume discounts, shipping thresholds), state-pattern order status lifecycle (Pending -> Processing -> Shipped -> Delivered), and real-time stock alert observers.
Status
Production
Stack
Python, FastAPI, React 19, Three.js, Vite, SQLite, Tailwind CSS
Throughput / Users
2,500+ Transactions
Performance
99.5% Uptime
System Architecture & Problem Statement
Architecture Layers:
Key Product Features
Database Entity Schema & Relationships
Users
Collection/Table→ Creates many Carts and Orders
Products
Collection/Table→ Belongs to Carts and Orders
Orders
Collection/Table→ Has many OrderItems
API Specifications & Endpoints
/api/auth/loginAuthenticates User/Admin credentials and returns JWT bearer token.
/api/productsFetches product catalog with 3D asset metadata and category filters.
/api/checkoutProcesses cart items using strategy pattern tax/discount calculations and initiates order state.
/api/admin/inventory/logsAdmin-only audit route returning observer log events and low-stock warnings.
Interactive Visual Screenshots & Previews
Spatial 360-degree product viewport powered by Three.js and WebGL canvas controls.
Total Throughput
1,240 / day
Avg Latency
18ms
Health Index
99.8%
Management panel for stock updates, order state transitions, and real-time observer alerts.
🚀 Quick Start & Process to Run
Prerequisites
- Python 3.10+
- Node.js 18+
- npm
Required Environment Variables (.env)
SECRET_KEY=minishop_super_secret_jwt_key
DATABASE_URL=sqlite:///./backend/minishop.db
Execution Steps:
1. Clone Repository
Download MiniShop 3D source repository.
2. Install Dependencies
Install FastAPI backend dependencies and React frontend packages.
3. Start Backend FastAPI Server
Launch FastAPI server on http://localhost:8000.
4. Launch Frontend Vite Dev Server
Start Vite development server on http://localhost:5173.