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.
- 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
- 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
- DJ Approval System: Review and approve new DJ registrations
- Platform Management: Monitor bookings, payments, and user activity
- Analytics: Track platform performance and revenue
Frontend:
- Next.js 15 (App Router, TypeScript)
- Tailwind CSS for styling
- Framer Motion for animations
- React Hook Form + Zod for form handling
- Socket.IO for real-time updates
- React Hot Toast for notifications
Backend:
- Next.js API Routes
- Prisma + PostgreSQL for database
- NextAuth.js with Google OAuth + JWT
- Stripe for payment processing and refunds
- Socket.IO for real-time communication
Dev Tools:
- Docker for development environment
- ESLint + Prettier for code quality
- Git + GitHub for version control
Coming soon via Vercel
Frontend:
- Next.js (App Router, TypeScript)
- Tailwind CSS
- ShadCN for beautiful UI components
- React Hook Form + Zod for form handling and validation
Backend:
- Next.js API Routes
- Prisma + PostgreSQL
- NextAuth.js with Google OAuth + JWT
- Stripe for payment processing
- Firebase Storage for large audio files
- Cloudinary for event and promotional images
Dev Tools:
- Cursor IDE
- ESLint + Prettier
- Git + GitHub
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
- 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
- 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
- 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
- Live Dashboard Updates for all user types
- WebSocket Integration for instant notifications
- Booking Status Tracking with timeout management
- Real-time Chat (planned feature)
- Node.js 18+
- Docker and Docker Compose
- PostgreSQL database
# 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# 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"- Frontend & API: Vercel
- Database: Railway or Supabase
- Payments: Stripe with webhook configuration
- Environment: Docker containers for consistent deployment
# Production environment variables
NODE_ENV=production
DATABASE_URL="your-production-db-url"
NEXTAUTH_URL="https://your-domain.com"
STRIPE_SECRET_KEY="sk_live_..."# 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# Reset database
npx prisma migrate reset
# Seed with test data
npx prisma db seed- Core booking system
- Payment processing
- DJ profiles and management
- Real-time updates
- Real-time chat between clients and DJs
- Advanced analytics dashboard
- Mobile app development
- Calendar integration
- AI-powered DJ recommendations
- Event planning tools
- Social features and reviews
- Multi-language support
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ and lots of β