# 🎵 Cameroon Music Industry Platform
A comprehensive platform for the Cameroonian music industry, connecting artists, fans, and promoters.
## đź“‹ Project Overview
This platform provides:
- Music upload & storage with fingerprinting
- Artist identity verification
- Booking system with escrow payments
- Wallet & tipping system
- Audio player with waveform visualization
- Admin panel for platform management
## 🏗️ Architecture
### Frontend
- **Framework**: Next.js 14 (App Router)
- **Language**: TypeScript
- **Styling**: TailwindCSS + Vanilla CSS
- **State Management**: Zustand (with persistence)
- **API Client**: Axios (with auto token refresh)
- **Validation**: Zod
- **Icons**: Lucide React
### Backend
- **Framework**: NestJS
- **Database**: MySQL (Prisma ORM)
- **Cache/Session**: Redis (ioredis)
- **Authentication**: JWT (Passport) with refresh tokens
- **Validation**: Zod schemas
- **Security**: bcrypt password hashing, CORS protection
## 🚀 Getting Started
### Prerequisites
- Node.js 18+
- XAMPP (with MySQL running on port 3306)
- Redis (optional but recommended for production)
- npm or yarn
### Installation
#### 1. Clone the repository
```bash
git clone
cd cameroon-music-platform
```
#### 2. Setup Frontend
```bash
cd frontend
cp .env.example .env
npm install
npm run dev
```
Frontend will run on:
localhost
#### 3. Setup Backend
**Prerequisites**: Ensure XAMPP is installed and MySQL is running
```bash
cd backend
cp .env.example .env
# Update .env file with your MySQL credentials if needed
# Default XAMPP: DATABASE_URL="mysql://root@localhost:3306/cameroon_music_db"
# Install dependencies
npm install
# Generate Prisma Client
npm run prisma:generate
# Run migrations (this will create the database and tables)
npm run prisma:migrate
# Start development server
npm run start:dev
```
Backend will run on:
localhost
**Note**: The database `cameroon_music_db` will be created automatically when you run the migration. Make sure XAMPP MyS …