A modern SaaS platform for hosting AI-enhanced webinars with automated sales capabilities, real-time chat, and intelligent customer interaction.
- AI-Powered Webinars: Host live webinars with AI agent assistance
- Real-time Chat: Stream-powered chat with automated moderation
- Product Integration: Seamless product sales during webinars
- Demo Stripe Integration: It's not real Stripe Account integration
- Analytics Dashboard: Comprehensive webinar and sales analytics
- Responsive Design: Mobile-first responsive UI
Robust authentication using Clerk with custom middleware protection.
- Protected Routes: Authenticated user features and dashboard
- Public Routes: Landing pages and public webinar access
- Framework: Next.js 14 (App Router)
- UI Library: React 18 + TypeScript
- Styling: Tailwind CSS + Shadcn/ui
- State Management: Zustand
- Authentication: Clerk
- Runtime: Node.js
- Database: PostgreSQL + Prisma ORM
- Real-time: Stream Chat
- AI Integration: Vapi.ai
- Platform: Vercel
- Database: Neon
- Node.js 18+
- PostgreSQL database
- Stripe account
- Clerk account
- Stream account
- Vapi.ai account
-
Clone the repository
git clone https://github.com/akramcodez/Piva.git cd Piva
-
Install dependencies
npm install --legacy-peer-deps
-
Environment Setup
cp .env.example .env.local
-
Configure Environment Variables
# Database DATABASE_URL="postgresql://..." # Clerk Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= CLERK_SECRET_KEY= # Stripe NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= STRIPE_SECRET_KEY= # Stream Chat NEXT_PUBLIC_STREAM_API_KEY= STREAM_SECRET_KEY= # Vapi.ai VAPI_API_KEY=
-
Database Setup
npx prisma generate npx prisma db push
-
Run Development Server
npm run dev
Open http://localhost:3000 to view the application.
src/
├── app/
│ ├── (auth)/ # Authentication routes
│ ├── (protectedRoutes)/ # Authenticated user routes
│ ├── (publicRoutes)/ # Public access routes
│ └── api/ # API routes
├── components/
│ ├── ui/ # Reusable UI components
│ └── ReusableComponents/ # Feature-specific components
├── actions/ # Server actions
├── lib/ # Utility functions
├── store/ # State management
└── types/ # TypeScript definitions
- Webinar analytics
- Revenue tracking
- Quick actions
- Recent activity
- Create/edit webinars
- Schedule management
- Attendee tracking
- AI agent configuration
- Product catalog
- Sales tracking
- Stripe integration
- Inventory management
- Custom AI assistants
- Prompt configuration
- Performance analytics
- Integration settings
- Account management
- Demo Stripe connection
- Platform preferences
- Analytics configuration
- Authentication: Clerk-based secure authentication
- Authorization: Route-level protection
- Data Protection: Encrypted sensitive data
- Payment Security: PCI-compliant Stripe integration
- API Security: Rate limiting and validation
-
Connect to Vercel
npm i -g vercel vercel login vercel
-
Configure Environment Variables
- Add all environment variables in Vercel dashboard
- Set up production database
- Configure domain settings
-
Deploy
vercel --prod
All protected API routes require valid authentication headers.
GET /api/webinars
- List user webinarsPOST /api/webinars
- Create new webinarGET /api/products
- List user productsPOST /api/stripe-connect
- Stripe connectionGET /api/analytics
- Get analytics data
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Email: skcodewizard786@gmail.com
- Twitter: @akramcodez
- Next.js - React framework
- Clerk - Authentication
- Stripe - Payment processing
- Stream - Real-time chat
- Vapi.ai - AI voice integration
- Shadcn/ui - UI components
Built with ❤️ by SK Akram