Skip to content

Latest commit

Β 

History

147 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Pro-DJ 🎧

A comprehensive DJ booking platform that connects clients with professional DJs. Features include real-time booking management, payment processing, DJ profiles, and an intelligent matching system.

🌟 Key Features

For Clients

  • Smart DJ Discovery: Intelligent matching based on event type, music genres, and availability
  • Flexible Booking System: Hourly rate + add-ons pricing model
  • Real-time Updates: Live booking status updates via WebSocket
  • Payment Processing: Secure Stripe integration with refund capabilities
  • Booking Recovery: Easy rebooking after refunds with pre-filled data

For DJs

  • Profile Management: Customizable profiles with event-specific pricing
  • Add-on Services: DJ-specific add-ons (lighting, MC services, etc.)
  • Booking Control: Toggle availability and manage existing bookings
  • Real-time Dashboard: Live statistics and booking notifications
  • Event Type Specialization: Set different rates for different event types

For Admins

  • DJ Approval System: Review and approve new DJ registrations
  • Platform Management: Monitor bookings, payments, and user activity
  • Analytics: Track platform performance and revenue

πŸ› οΈ Tech Stack

Frontend:

Backend:

Dev Tools:

  • Docker for development environment
  • ESLint + Prettier for code quality
  • Git + GitHub for version control

🌐 Live Demo

Coming soon via Vercel


πŸ› οΈ Tech Stack

Frontend:

Backend:

Dev Tools:


πŸ“ Project Structure

pro-dj/
β”œβ”€β”€ app/                    # App router pages & layouts
β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”œβ”€β”€ book/              # Booking pages
β”‚   β”œβ”€β”€ dashboard/         # Dashboard pages (admin, DJ, client)
β”‚   β”œβ”€β”€ dj/                # DJ-specific pages
β”‚   └── auth/              # Authentication pages
β”œβ”€β”€ components/            # Reusable UI components
β”œβ”€β”€ lib/                   # Utilities (Prisma, Auth, Stripe, etc.)
β”œβ”€β”€ prisma/               # Database schema and migrations
β”œβ”€β”€ public/               # Static assets
β”œβ”€β”€ docker-compose.dev.yml # Development environment
└── README.md

πŸ” Authentication & Authorization

  • Google OAuth via NextAuth.js for seamless login
  • Role-based Access Control: Admin, DJ, and Client roles
  • JWT Tokens for secure session management
  • Admin Approval System for DJ registrations

πŸ’Έ Payment System

  • Stripe Integration for secure payment processing
  • Refund Management with partial and full refund capabilities
  • Payment Links for easy client payment completion
  • Webhook Processing for real-time payment confirmation

🎡 Booking System

  • Intelligent DJ Matching based on event type, genres, and availability
  • Flexible Pricing Model: Hourly rates + customizable add-ons
  • Event-Specific Pricing for different event types (weddings, clubs, etc.)
  • Real-time Status Updates via WebSocket connections
  • Booking Recovery for easy rebooking after refunds

πŸ“Š Real-time Features

  • Live Dashboard Updates for all user types
  • WebSocket Integration for instant notifications
  • Booking Status Tracking with timeout management
  • Real-time Chat (planned feature)

βœ… To Run Locally

Prerequisites

  • Node.js 18+
  • Docker and Docker Compose
  • PostgreSQL database

Quick Start

# Clone the repository
git clone https://github.com/JideOgun/Pro-Dj.git
cd Pro-Dj

# Copy environment variables
cp .env.example .env
# Edit .env with your configuration

# Start development environment with Docker
docker-compose -f docker-compose.dev.yml up -d

# Install dependencies
npm install

# Run database migrations
npx prisma migrate dev --name init

# Seed the database
npx prisma db seed

# Start the development server
npm run dev

Environment Variables

# Database
DATABASE_URL="postgresql://..."

# Authentication
NEXTAUTH_SECRET="your-secret"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"

# Stripe
STRIPE_SECRET_KEY="sk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."

# Admin
ADMIN_EMAIL="admin@example.com"
ADMIN_PASSWORD="secure-password"

πŸš€ Deployment

Production Setup

  • Frontend & API: Vercel
  • Database: Railway or Supabase
  • Payments: Stripe with webhook configuration
  • Environment: Docker containers for consistent deployment

Environment Configuration

# Production environment variables
NODE_ENV=production
DATABASE_URL="your-production-db-url"
NEXTAUTH_URL="https://your-domain.com"
STRIPE_SECRET_KEY="sk_live_..."

πŸ§ͺ Testing

API Testing

# Test booking creation
curl -X POST http://localhost:3000/api/bookings \
  -H "Content-Type: application/json" \
  -d '{"bookingType": "Wedding", "eventDate": "2025-01-15"}'

# Test DJ search
curl http://localhost:3000/api/djs?eventType=Wedding

Database Testing

# Reset database
npx prisma migrate reset

# Seed with test data
npx prisma db seed

πŸ“ˆ Roadmap

Phase 1 (Current) βœ…

  • Core booking system
  • Payment processing
  • DJ profiles and management
  • Real-time updates

Phase 2 (Next)

  • Real-time chat between clients and DJs
  • Advanced analytics dashboard
  • Mobile app development
  • Calendar integration

Phase 3 (Future)

  • AI-powered DJ recommendations
  • Event planning tools
  • Social features and reviews
  • Multi-language support

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Β© 2025 Jide Ogunbanjo β€” DJ, Dev, & Doer

Built with ❀️ and lots of β˜•

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages