Prept is a modern interview marketplace platform that connects interviewees with expert interviewers for practice sessions. Featuring AI-powered feedback, real-time video calls, and tiered subscription plans, Prept helps candidates prepare for technical interviews with personalized guidance.
- ๐ฅ AI Question Generator: Role-specific questions generated live during interviews
- ๐ AI Feedback Reports: Comprehensive post-interview analysis covering:
- Technical depth assessment
- Communication skills evaluation
- Problem-solving approach analysis
- Personalized recommendations
- โญ Performance Ratings: Automated rating system (Poor, Average, Good, Excellent)
- ๐ฏ Interviewees: Browse experts, book sessions, receive AI feedback
- ๐งโ๐ผ Interviewers: Set availability, earn credits, provide expertise
- ๐ฌ HD Video Calls: Built with Stream video SDK
- ๐ฌ Persistent Chat: Message between sessions
- ๐น Session Recordings: Automatic recording and playback (Pro plan)
- ๐ Smart Scheduling: Timezone-aware booking system
| Plan | Price | Credits | Features |
|---|---|---|---|
| Free | $0 | 1/month | โข 1 mock interview โข HD video calls โข Persistent chat |
| Starter | $29 | 5/month | โข 5 mock interviews โข AI feedback reports โข Credits roll over |
| Pro | $69 | 15/month | โข 15 mock interviews โข AI feedback reports โข Session recordings โข Credits roll over |
- โ๏ธ Next.js 16 - React framework with App Router
- ๐จ React 18 - UI library
- ๐ TypeScript - Type-safe development
- ๐ญ Tailwind CSS - Utility-first styling
- ๐จ Shadcn/ui - Modern UI components
- ๐ฏ Lucide React - Icon library
- ๐ Clerk - Authentication & user management
- ๐๏ธ Supabase - Dashboard to manage user and application data
- ๐๏ธ PostgreSQL - Primary database
- ๐ฎ Prisma - ORM & database toolkit
- ๐ Clerk - User authentication
- ๐น Stream Video API - Real-time video calls
- ๐ค OpenAI API - AI feedback generation
- ๐ฆ npm - Package management
- ๐ง ESLint - Code linting
- โก Turbopack - Fast development builds
- Node.js 18+
- npm, yarn, or pnpm
- PostgreSQL database
- ๐ฅ Clone the repository
git clone https://github.com/asifcuber08/Prept--Ai-Interview-Marketplace.git
cd Prept--Ai-Interview-Marketplace- ๐ฆ Install dependencies
npm install
# or
yarn install
# or
pnpm install- โ๏ธ Environment Variables
Create a
.env.localfile in the root directory:
# Sign up in Supabase and get your Database and Direct URL
DATABASE_URL="postgresql://....."
DIRECT_URL="postgresql://postgres......"
# Sign up in Clerk and get your Authentication keys
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="your_clerk_publishable_key"
CLERK_SECRET_KEY="your_clerk_secret_key"
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in #use as it is
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up #use as it is
# Sign up in Arcjet and get your API key
ARCJET_KEY="your_arcjet_key"
# Sign up in Stream Video API and get your API key
NEXT_PUBLIC_STREAM_API_KEY="your_stream_api_key"
STREAM_SECRET_KEY="your_stream_secret_key"
# Sign up in Google AI Studio and get your API key
GEMINI_API_KEY="your_gemini_api_key"
# Sign up in Resend and get your API key
RESEND_API_KEY="your_resend_api_key"
# Admin payout password (for admin-only payout functionality)
ADMIN_PAYOUT_PASSWORD="your_admin_payout_password" #use any strong password
# App URL (for redirects and emails)
NEXT_PUBLIC_APP_URL=http://localhost:3000Sign up and get all the Environment Variables from Supabase, Clerk, Arcjet, Resend, Stream, and Google AI Studio (Gemini API Key).
- ๐๏ธ Setup Database
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# (Optional) Seed with sample data
npx prisma db seed- ๐ Start Development Server
npm run dev
# or
yarn dev
# or
pnpm dev- ๐ Open your browser Navigate to http://localhost:3000
To enable recordings and transcription events, you must configure a webhook in Stream Dashboard.
- Go to your Stream Dashboard
- Navigate to Webhooks
- Click Create Webhook
call.recording_readycall.transcription_ready
-
Production: https://your-domain.com/api/webhook/stream
-
Local Development (using ngrok):
#
npx ngrok http 3000
# Then copy the URL and use it as your webhook URL:
https://your-ngrok-url/api/webhook/streamprept/
โโโ app/ # Next.js App Router
โ โโโ (main)/ # Main application routes
โ โ โโโ dashboard/ # User dashboard
โ โ โโโ explore/ # Browse interviewers
โ โ โโโ interviewers/ # Interviewer profiles
โ โ โโโ appointments/ # User appointments
โ โโโ api/ # API routes
โ โโโ globals.css # Global styles
โโโ components/ # Reusable UI components
โ โโโ ui/ # Base UI components
โ โโโ reusables/ # Custom components
โโโ lib/ # Utilities & configurations
โ โโโ generated/ # Prisma generated files
โ โโโ prisma.ts # Database client
โโโ prisma/ # Database schema & migrations
โ โโโ schema.prisma # Database definition
โโโ public/ # Static assets
- ๐ Browse expert interviewers by category
- ๐ Book sessions using monthly credits
- ๐ฅ Join video calls at scheduled time
- ๐ Receive AI-powered feedback reports
- ๐น Review session recordings (Pro plan)
- โ๏ธ Set availability and session rates
- ๐ค Use AI question generator during interviews
- ๐ Track earnings and manage schedule
- ๐ฐ Earn credits per completed session
- ๐ธ Withdraw earned credits via payout system (admin-controlled)
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Database
npx prisma studio # Open database browser
npx prisma generate # Generate Prisma client
npx prisma migrate dev # Run migrations
npx prisma db seed # Seed database
- ๐ Clerk Integration: Complete auth system with social logins
- ๐ฅ Role-Based Access: Interviewer vs Interviewee permissions
- ๐ก๏ธ Route Protection: Secure API endpoints and pages
- ๐น Video Calls: Stream SDK integration for HD video
- ๐ฌ Live Chat: Persistent messaging system
- ๐ Smart Notifications: Email and in-app alerts
- ๐ง Smart Questions: Context-aware question generation
- ๐ Performance Analysis: Multi-dimensional feedback system
- ๐ฏ Personalized Tips: Tailored improvement suggestions
Pull requests are welcome! If you find a bug or want to add a feature, feel free to open an issue.
Made with โค๏ธ by Asif Shamim