Skip to content

Riddhish1/Pixiro

Repository files navigation

Pixro - Advanced Webinar Platform

Pixro is a modern webinar platform built with Next.js, featuring AI-powered assistance, live streaming capabilities, and integrated payment processing. The platform enables users to create, manage, and host interactive webinars with features like real-time chat, AI agents, and automated attendee management.

πŸš€ Features

Core Functionality

  • Live Webinar Hosting: Real-time streaming with Stream.io integration
  • AI Assistant Integration: Powered by Vapi.ai for intelligent interaction
  • Payment Processing: Stripe integration for monetization
  • User Authentication: Secure auth system using Clerk
  • Real-time Chat: Interactive communication during webinars
  • Automated Attendee Management: Track and manage webinar participants

Additional Features

  • πŸŒ“ Dark/Light Mode Support
  • πŸ“Š Analytics Dashboard
  • πŸ’¬ AI-powered Chat Assistance
  • πŸ” Role-based Access Control
  • πŸ“± Responsive Design
  • πŸ’³ Stripe Connect Integration

πŸ›  Tech Stack

  • Frontend: Next.js 15.2.4 with React 19
  • Backend: Next.js API Routes
  • Database: PostgreSQL with Prisma ORM
  • Authentication: Clerk
  • Streaming: Stream.io
  • AI Integration: Vapi.ai
  • Payment Processing: Stripe
  • State Management: Zustand
  • UI Components: Radix UI
  • Styling: Tailwind CSS

πŸ“ Project Structure

Root Directory

  • components.json - UI component configurations
  • next.config.ts - Next.js configuration
  • prisma/ - Database schema and migrations
  • public/ - Static assets
  • src/ - Source code

Source Directory (src/)

App Router (src/app/)

  • (auth)/ - Authentication routes
    • callback/ - OAuth callback handling
    • sign-in/ - User sign-in
    • sign-up/ - User registration
  • (protectedRoutes)/ - Authenticated user routes
    • ai-agents/ - AI assistant management
    • home/ - Dashboard
    • lead/ - Lead management
    • settings/ - User settings
    • webinars/ - Webinar management
  • (publicRoutes)/ - Public access routes
    • live-webinar/ - Webinar viewing interface

Components (src/components/)

  • ReusableComponent/ - Shared components
    • CreateWebinar/ - Webinar creation interface
    • LayoutComponents/ - Layout elements
    • Stripe/ - Payment components
    • SubscriptionModal/ - Subscription management
  • ui/ - UI component library

Core Modules

  • action/ - Server actions
  • lib/ - Utility functions and configurations
  • provider/ - Context providers
  • store/ - State management (Zustand stores)

πŸ—„οΈ Database Schema

Main Entities

  • User: Account management and profile
  • Webinar: Webinar session details
  • Attendee: Participant information
  • Attendance: Session participation tracking
  • AiAgents: AI assistant configurations

πŸš€ Getting Started

Prerequisites

  • Node.js (LTS version)
  • PostgreSQL
  • Stripe CLI (for payment testing)

Environment Setup

  1. Clone the repository
  2. Copy `.env.example` to `.env`
  3. Configure environment variables:
    • Database connection
    • Stream.io credentials
    • Stripe keys
    • Clerk authentication
    • Vapi.ai configuration

Installation

```bash

Install dependencies

npm install

Setup database

npx prisma generate npx prisma db push

Run development server

npm run dev ```

Testing Payments

```bash

Start Stripe webhook listener

stripe listen --forward-to localhost:3000/api/stripe-webhook ```

πŸ§ͺ Testing

Local Testing

  • Use multiple browsers or incognito windows for testing webinar functionality
  • Access via localhost:3000
  • For local network testing, use your machine's IP address

Multiple Participant Testing

  1. Start development server
  2. Open different browsers/incognito windows
  3. Login with different accounts
  4. Join the same webinar session

πŸ“ Key Files

Configuration

  • next.config.ts - Next.js settings
  • prisma/schema.prisma - Database schema
  • tsconfig.json - TypeScript configuration

Core Components

  • src/provider/StreamProvider.tsx - Video streaming setup
  • src/lib/prismaClient.ts - Database client
  • src/action/webinar.ts - Webinar management logic

πŸ”’ Security

  • JWT-based authentication
  • Role-based access control
  • Secure payment processing
  • Protected API routes
  • Input validation and sanitization

🌟 Best Practices

Development

  • Use TypeScript for type safety
  • Follow Next.js 13+ conventions
  • Implement proper error handling
  • Maintain consistent code style
  • Write meaningful comments

Deployment

  • Use environment variables
  • Implement proper logging
  • Monitor performance metrics
  • Regular security updates
  • Database backups

πŸ“« Support

For issues and feature requests, please create an issue in the repository.

πŸ”‘ License

[License Type] - See LICENSE file for details


For detailed documentation on specific features or components, please refer to the corresponding directories and their README files.

About

Modern Webinar Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •