Skip to content

savnani5/aura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Aura - AI-First Video Conferencing Platform

An enterprise-grade AI-native video conferencing platform built with Next.js 15, React 18, TypeScript, and LiveKit. Transform every meeting into a searchable, shareable, actionable workspace with advanced AI capabilities, real-time collaboration, and intelligent meeting management.

🌟 Key Features

πŸŽ₯ Advanced Video Conferencing

  • High-quality real-time video/audio with LiveKit
  • Adaptive bitrate and network optimization
  • Multi-participant support with grid/spotlight layouts
  • Screen sharing and presentation mode

πŸ€– AI-Powered Meeting Intelligence

  • Claude AI Assistant: Advanced conversational AI using Anthropic's Claude
  • Real-time Transcription: Live speech-to-text during meetings
  • Contextual Understanding: AI accesses current and historical meeting data
  • Vector Search: Semantic search through meeting history using Pinecone
  • Meeting Summaries: Automatic generation of key points and decisions
  • Action Item Extraction: AI identifies and tracks tasks and assignments
  • Web Search Integration: AI can search the web for real-time information

🏒 Enterprise Meeting Management

  • Persistent Meeting Workspaces: Create and manage dedicated meeting spaces
  • User Authentication: Secure access with Clerk authentication
  • Subscription Management: Tiered access with Stripe integration
  • Meeting History: Complete archive of past meetings and transcripts
  • Participant Management: Role-based permissions (host/participant)
  • Email Invitations: Automated meeting invites via Resend
  • Calendar Integration: Schedule recurring meetings (coming soon)

πŸ’¬ Enhanced Collaboration

  • Real-time Chat: In-meeting messaging with participants
  • AI Chat Integration: Chat directly with AI during meetings
  • Task Management: Create and assign tasks within meetings

πŸ“± Product Interface

Real-time AI Assistant

Real-time AI Assistant

Chat with AI during meetings for instant insights and answers

Live Transcription

Live Transcription

Automatic speech-to-text transcription during meetings

Meeting Summaries

Meeting Summary

AI-generated meeting summaries with key points and decisions

Task Management

Task Management

Create and assign tasks directly from meeting discussions

Meeting Workspace

Meeting Workspace

Comprehensive meeting workspace with all tools integrated

πŸ›  Tech Stack

Frontend & Core

  • Next.js 15: App Router with React Server Components
  • React 18: Latest React features with Concurrent Rendering
  • TypeScript: Full type safety and IntelliSense
  • Tailwind CSS: Utility-first styling with custom design system
  • Framer Motion: Smooth animations and transitions

Video & Real-time Communication

  • LiveKit: WebRTC infrastructure for video/audio
  • LiveKit Components: Pre-built React components
  • Real-time Messaging: WebSocket-based chat system

AI & Machine Learning

  • Anthropic Claude: Advanced conversational AI (Claude-3.5 Sonnet & Claude-4)
  • OpenAI: Text embeddings for semantic search
  • Pinecone: Vector database for AI context retrieval
  • Hybrid RAG: Retrieval-Augmented Generation system

Backend & Database

  • MongoDB: Document database with Mongoose ODM
  • Zustand: State management for complex UI state
  • Server Actions: Next.js server-side data mutations

Authentication & Payments

  • Clerk: Complete authentication and user management
  • Stripe: Subscription billing and payment processing
  • Webhook Handling: Real-time event processing

Communication & Notifications

  • Resend: Transactional email service
  • React Hot Toast: In-app notifications
  • Real-time Updates: Live meeting status and notifications

Development & Deployment

  • Vercel: Serverless deployment platform
  • ESLint & Prettier: Code quality and formatting
  • TypeScript: Full type coverage
  • Turbo: Fast development builds

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ (recommended: use Node.js 20)
  • MongoDB (local installation or MongoDB Atlas)
  • Package Manager: npm, yarn, or pnpm

Installation

  1. Clone the repository:
git clone <repository-url>
cd aura
  1. Install dependencies:
npm install
# or
pnpm install
  1. Set up environment variables:
cp env.example .env.local
  1. Configure your environment variables in .env.local:

See the Environment Variables section below for detailed configuration.

  1. Start the development server:
npm run dev
# or for faster builds with Turbo
npm run dev --turbo
  1. Open your browser: Navigate to http://localhost:3000 to access Aura.

πŸ”§ Available Scripts

# Development
npm run dev              # Start development server
npm run dev --turbo      # Start with Turbo (faster builds)

# Production
npm run build            # Build for production
npm run start            # Start production server

# Code Quality
npm run lint             # Run ESLint
npm run lint:fix         # Fix ESLint issues
npm run format:check     # Check Prettier formatting
npm run format:write     # Apply Prettier formatting

# Database & AI
npm run migrate-pinecone # Migrate data to Pinecone
npm run test-pinecone    # Test Pinecone connection
npm run check-data       # Check existing data

πŸ” Environment Variables

The application requires several API keys and configuration variables. Copy env.example to .env.local and fill in your values:

Core Services (Required)

Variable Description Where to Get
LIVEKIT_API_KEY LiveKit API key for video/audio LiveKit Console
LIVEKIT_API_SECRET LiveKit API secret LiveKit Console
LIVEKIT_URL LiveKit WebSocket URL LiveKit Console
MONGODB_URI MongoDB connection string MongoDB Atlas or local

Authentication & Users

Variable Description Where to Get
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY Clerk public key Clerk Dashboard
CLERK_SECRET_KEY Clerk secret key Clerk Dashboard
CLERK_WEBHOOK_SECRET Clerk webhook secret Clerk Dashboard

AI & Machine Learning

Variable Description Where to Get
ANTHROPIC_API_KEY Claude AI API key Anthropic Console
OPENAI_API_KEY OpenAI API for embeddings OpenAI Platform
PINECONE_API_KEY Vector database API key Pinecone Console

Communication & Payments

Variable Description Where to Get
RESEND_API_KEY Email service API key Resend Console
STRIPE_SECRET_KEY Stripe payment processing Stripe Dashboard
STRIPE_WEBHOOK_SECRET Stripe webhook secret Stripe Dashboard
STRIPE_PRICE_ID Subscription price ID Stripe Dashboard

App Configuration

Variable Description Default
NEXT_PUBLIC_APP_URL Your app's base URL http://localhost:3000
NEXT_PUBLIC_SHOW_SETTINGS_MENU Show settings menu false

πŸ“‹ Getting API Keys

πŸŽ₯ LiveKit Setup
  1. Sign up at LiveKit Cloud
  2. Create a new project
  3. Go to Settings β†’ Keys
  4. Copy the API Key, API Secret, and WebSocket URL
  5. Your WebSocket URL format: wss://your-project.livekit.cloud
πŸ” Clerk Authentication Setup
  1. Sign up at Clerk
  2. Create a new application
  3. Go to API Keys section
  4. Copy the Publishable Key and Secret Key
  5. Set up webhooks in Webhooks section for user management
πŸ€– AI Services Setup

Anthropic Claude:

  1. Sign up at Anthropic Console
  2. Add billing information (required for API access)
  3. Generate an API key
  4. Ensure access to Claude-3.5 Sonnet and Claude-4 models

OpenAI:

  1. Sign up at OpenAI Platform
  2. Add billing information
  3. Generate an API key with embeddings access

Pinecone:

  1. Sign up at Pinecone
  2. Create a new project
  3. Generate an API key
  4. Note your environment and index name
πŸ“§ Resend Email Setup
  1. Sign up at Resend
  2. Add and verify your domain
  3. Generate an API key
  4. Configure DNS records for email delivery
πŸ’³ Stripe Payment Setup
  1. Sign up at Stripe
  2. Get your Secret Key from the API keys section
  3. Create a Product and Price for subscriptions
  4. Set up Webhooks for payment events
  5. Copy the webhook signing secret

πŸ—οΈ Building for Production

# Build the application
npm run build

# Start production server
npm start

πŸš€ Deployment

Vercel (Recommended)

  1. Connect Repository: Link your GitHub repository to Vercel
  2. Environment Variables: Add all environment variables in Vercel dashboard
  3. Deploy: Vercel will automatically deploy on every push to main branch
# Deploy to Vercel
npx vercel

# Production deployment
npx vercel --prod

Self-Hosting

  1. Build the application: npm run build
  2. Set up environment variables: Ensure all production variables are set
  3. Start the server: npm start
  4. Set up reverse proxy: Use Nginx or similar for production

Environment-Specific Configuration

  • Development: Uses .env.local
  • Production: Set environment variables in your hosting platform
  • Staging: Use .env.staging or platform-specific variables

πŸ“– Using Aura

Getting Started

  1. Sign Up: Create a free account or join as a guest
  2. Create Room: Set up a new meeting room with participants
  3. Join Meeting: Enter room via direct link or dashboard
  4. Enable AI: Sign up to unlock AI assistant features

Meeting Features

  • πŸŽ₯ Video Controls: Camera on/off, background effects, screen sharing
  • 🎀 Audio Controls: Microphone mute/unmute, noise suppression
  • πŸ’¬ Real-time Chat: Message participants during meetings
  • πŸ€– AI Assistant: Chat with AI about meeting content
  • πŸ“ Transcription: Live speech-to-text transcription

AI Assistant Usage

The AI assistant provides intelligent meeting support:

  • Meeting Insights: "Summarize the key decisions made today"
  • Historical Context: "What did we discuss about this topic in previous meetings?"
  • Action Items: "Create a task list from today's discussion"
  • Web Search: "What are the latest trends in our industry?"
  • Participant Analysis: "Who has been most active in recent meetings?"

Advanced Features

  • Task Management: Create and assign tasks within meetings
  • Meeting Analytics: Track participation and engagement metrics
  • Subscription Management: Upgrade for advanced AI features
  • Email Invitations: Automatically send meeting invites
  • Calendar Integration: Schedule recurring meetings (coming soon)

πŸ—οΈ Project Architecture

aura/
β”œβ”€β”€ app/                          # Next.js 15 App Router
β”‚   β”œβ”€β”€ (auth)/                  # Authentication routes
β”‚   β”‚   β”œβ”€β”€ sign-in/             # Sign in pages
β”‚   β”‚   └── sign-up/             # Sign up pages
β”‚   β”œβ”€β”€ api/                     # API routes
β”‚   β”‚   β”œβ”€β”€ ai-chat/             # AI assistant endpoints
β”‚   β”‚   β”œβ”€β”€ meetings/            # Meeting management
β”‚   β”‚   β”œβ”€β”€ subscription/        # Stripe integration
β”‚   β”‚   └── webhooks/            # External webhooks
β”‚   β”œβ”€β”€ meeting/[meetingId]/     # Individual meeting pages
β”‚   β”œβ”€β”€ rooms/[roomName]/        # Live meeting rooms
β”‚   β”œβ”€β”€ subscription/            # Billing and subscription
β”‚   └── layout.tsx               # Root layout
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ landing/                 # Landing page components
β”‚   β”œβ”€β”€ meeting/                 # Meeting UI components
β”‚   β”œβ”€β”€ ui/                      # Reusable UI components
β”‚   └── workspace/               # Dashboard components
β”œβ”€β”€ lib/                         # Core utilities and services
β”‚   β”œβ”€β”€ ai/                      # AI and ML services
β”‚   β”‚   β”œβ”€β”€ chatbot.ts           # Claude AI integration
β”‚   β”‚   β”œβ”€β”€ embeddings.ts        # OpenAI embeddings
β”‚   β”‚   β”œβ”€β”€ hybrid-rag.ts        # RAG system
β”‚   β”‚   └── pinecone.ts          # Vector database
β”‚   β”œβ”€β”€ database/                # Database layer
β”‚   β”‚   └── mongodb.ts           # MongoDB integration
β”‚   β”œβ”€β”€ services/                # External services
β”‚   β”‚   β”œβ”€β”€ email.ts             # Resend email service
β”‚   β”‚   β”œβ”€β”€ livekit-room-service.ts # LiveKit integration
β”‚   β”‚   └── stripe.ts            # Stripe payment service
β”‚   β”œβ”€β”€ state/                   # State management
β”‚   β”‚   └── meeting-store.ts     # Zustand stores
β”‚   └── utils/                   # Utility functions
β”œβ”€β”€ public/                      # Static assets
β”œβ”€β”€ styles/                      # Global styles
└── scripts/                     # Utility scripts

🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes: Follow the existing code style
  4. Run tests: npm run lint and npm run format:check
  5. Commit changes: git commit -m 'Add amazing feature'
  6. Push to branch: git push origin feature/amazing-feature
  7. Open a Pull Request: Describe your changes

Development Guidelines

  • Follow TypeScript best practices
  • Use Prettier for code formatting
  • Write meaningful commit messages
  • Test your changes thoroughly
  • Update documentation as needed

πŸ“„ License

Apache License 2.0 - see LICENSE file for details.

πŸ†˜ Support


Built with ❀️ by Paras Savnani

About

An enterprise-grade AI-native video conferencing platform.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published