Skip to content
Aarsh03Public
forked from Harshjsh02/Sabha-

About

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Sabha (सभा) 🎙️📹

सभा (Sabha) is a Sanskrit word meaning assembly, council, or congregation.
A high-performance, Zoom-like real-time video conferencing web application engineered to run entirely on 100% free-tier cloud resources with a dual-tier hybrid media engine: LiveKit Cloud SFU (50 to 100+ participants) with autonomous WebRTC Full-Mesh fallback.


🚀 Features (Zoom Parity)

  • 🔒 Mandatory Google Authentication & Verified Profiles: Secure login enforcing Google verified identities with immutable display names and login IP auditing (/api/auth/record-login).
  • 👑 Host (सभापति) & Co-Host (सह-सभापति) Controls:
    • Database Host Verification: Authenticated via Firestore (room.hostId === user.uid), eliminating insecure URL spoofing.
    • Co-Host Delegation: Promote trusted attendees to co-hosts with full moderation privileges.
    • Mute All & Individual Mute: Instantly silence noisy microphones.
    • Kick Participant: Remove disruptive users from the assembly with immediate broadcast signals.
    • Lock Sabha: Lock room to prevent unauthorized new entries.
    • Require Cameras: Mandate all participants keep their webcams active.
    • Security Permissions: Toggle participant rights to screen share, chat, or unmute.
  • 🚪 Waiting Room & Knocking System: Attendees wait in a stylized lobby until admitted; hosts/co-hosts receive real-time knocking banners with 1-click [Admit], [Deny], and [Admit all].
  • 🎙️ Live Speech Transcription & Closed Captions (CC): Zero-cost browser Web Speech API continuous transcription with real-time speaker attribution and toggleable floating subtitles overlay.
  • 🤖 AI Meeting Summaries (Google Gemini): Automatic structured executive overview, key discussion points, and action items generated via Gemini 3 Flash when the meeting concludes.
  • ✉️ Automated Zoho Email Delivery: Host and co-hosts receive the executive notes with the complete verbatim transcript attached as sabha-[roomId]-transcript.txt; all attendees receive the summary notes directly in their inbox.
  • 📐 Zoom-Style Multi-View Layout: Seamless switching between Gallery View, Active Speaker View, and Multi-Speaker View with top-bar dropdown and fullscreen controls.
  • 💻 Spotlight Presentation Stage (Screen Sharing): Dedicated presentation stage rendering high-fidelity screen shares with object-contain, presenter header badge, participant filmstrip, and 1-click "Stop Sharing".
  • 💬 In-Meeting Chat: Public messages to everyone or direct 1-on-1 private messages with live unread indicators.
  • 🎨 Interactive Sabha Whiteboard: Brainstorm together with multi-color drawing canvas, stroke controls, 1-click PNG export, and close board action.
  • ⏺️ In-Browser Meeting Recording: Record video & audio directly via the browser's MediaRecorder API into downloadable .webm files with $0 cloud recording fees.
  • ✋ Hand Raising & Reactions: Raise hand queue for orderly assemblies + floating emoji reactions (👍, ❤️, 👏, 😂, 🎉, 🚀) with celebratory confetti.
  • 🎙️ Active Speaker Detection: Glowing emerald audio halo around whoever is actively speaking using Web Audio API frequency analysis.
  • 🚪 Green Room Lobby: Pre-meeting preview of your webcam and live audio visualizer; cleanly releases OS hardware handles on join for mobile Android/desktop resilience.
  • 🔗 Clean Invite Sharing: Clean invite URLs (/room/[roomId]) with Web Share API, WhatsApp 1-click, and animated copy button.

📊 Capacity & Architecture: How Many People Can Sabha Handle for Free?

Real-Time Dual-Tier Media Architecture

Sabha uses an intelligent hybrid engine that combines LiveKit Cloud SFU with Full-Mesh WebRTC:

Mode Capacity Description
LiveKit SFU Mode 50 to 100+ people Ingests 1 stream per peer and dynamically fans out with Dynacast and adaptive bitrate.
WebRTC Mesh Mode 4 to 8 people Autonomous fallback using Google's free STUN servers and Firebase Firestore signaling.
Concurrent Meetings Across App Thousands / day Firebase Firestore Free Spark Plan provides 50,000 document reads/day and 20,000 writes/day, and Vercel provides 100 GB free bandwidth/month.

🛠️ Tech Stack & Zero-Cost Infrastructure

  • Frontend & Routing: Next.js 16 (App Router, TypeScript, React 19, Turbopack)
  • Styling: Tailwind CSS v4 + Lucide Icons + Glassmorphism HUD
  • Real-Time Signaling: Firebase Firestore + LiveKit Cloud SFU (or automatic local BroadcastChannel fallback)
  • Authentication & Auditing: Firebase Google Authentication + Serverless IP Audit Log
  • AI Intelligence: Google Gemini API (gemini-3-flash-preview via @google/genai)
  • Email Delivery: Zoho Mail SMTP (nodemailer) with attachments
  • Media Engine: Hybrid LiveKit Cloud SFU + Native WebRTC (RTCPeerConnection, getUserMedia, getDisplayMedia, Web Audio API)
  • Hosting: Vercel (Hobby Tier: $0.00 / month forever)
  • Database: Firebase (Spark Tier: $0.00 / month forever)

⚡ Getting Started

1. Clone & Install Dependencies

git clone https://github.com/Harshjsh02/Sabha-.git
cd Sabha-
npm install

2. Configure Environment Variables

Create a .env.local file (or copy .env.example):

# Firebase Free Spark Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=AIzaSy...
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-app.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-app
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-app.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=1234567890
NEXT_PUBLIC_FIREBASE_APP_ID=1:1234567890:web:...

# LiveKit Cloud SFU (Free 50GB Tier)
LIVEKIT_URL=wss://your-project.livekit.cloud
NEXT_PUBLIC_LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=your_livekit_api_key
LIVEKIT_API_SECRET=your_livekit_api_secret

# Google Gemini AI Summarization
GEMINI_API_KEY=your_gemini_api_key

# Zoho Mail SMTP Settings
ZOHO_MAIL_USER=your_email@domain.com
ZOHO_MAIL_PASS="your_password"
ZOHO_MAIL_HOST=smtp.zoho.in
ZOHO_MAIL_PORT=465

3. Run Development Server

npm run dev

Open http://localhost:3000 to view your Sabha instance.


📚 Complete Project Documentation Suite

For comprehensive architectural, engineering, security, and product deep-dives, consult the following specifications:

Document Purpose & Scope
📖 Product Master Specification (docs/product.md) Comprehensive 21-section end-to-end product & system architecture
🧠 Development Context (docs/context.md) Current phase, tech stack, state management & edge case handling
🤖 AI Pair Programming Guide (AGENTS.md) System prompt, core principles, glassmorphic styling & workflows
📋 Product Requirements Document (PRD) Problem validation, Zoom parity requirements, feature sets & NFRs
🏗️ System Architecture High-level topology, LiveKit SFU + Mesh hybrid engine & sequence diagrams
🔌 API & Signaling Specification REST routes, LiveKit JWT token API, Firestore signaling payloads
🗄️ Database & State Architecture Firestore ERD, collection schemas, quotas, and security rules
🌲 Codebase Tree Structure (docs/tree_structure.md) Granular breakdown of files and directories across the project
🛡️ Security & Privacy Guide DTLS-SRTP encryption, zero-knowledge recording & threat mitigations
🎙️ Audio Engine & Speaker Detection Web Audio API decibel analysis, RMS calculation & active speaker halos
🗺️ User Journeys & Interaction Flows Host and attendee interaction journeys and escalation flows
🚀 Investor & Community Pitch Vision, market opportunity, unfair advantages & key milestones
📋 Task Plan & Sprint Breakdown Granular sprint-by-sprint implementation tracking
🐛 Known Issues & Tech Debt Log of bugs, dead code, and unresolved typing issues
📝 Roadmap & Todo List Immediate action items and upcoming features

🌐 Deploying to Vercel in 60 Seconds

  1. Push your code to your GitHub repository (https://github.com/Harshjsh02/Sabha-.git).
  2. Go to Vercel Dashboard and click "Add New Project".
  3. Import your GitHub repository.
  4. Add the NEXT_PUBLIC_FIREBASE_* and LIVEKIT_* environment variables in the Vercel dashboard.
  5. Click Deploy! Your Sabha meeting app is live with SSL, global CDN, and $0 running costs.

👨‍💻 Author & Community

Designed & Built with ❤️ by Harsh Joshi for the CodersHigh community.

About

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages