Skip to content

Latest commit

 

History

History
337 lines (250 loc) · 9.34 KB

File metadata and controls

337 lines (250 loc) · 9.34 KB

Nexora AI Logo

Nexora AI

Your AI-Powered Video Meeting Platform

Next.js TypeScript tRPC Stream Video Gemini Docker License

Create custom AI agents. Join HD video calls. Get instant summaries. 🔥

🚀 Live Demo

🎥 Demo Video

Experience Nexora AI in action:

nexora-ai-demo-final.3.1.online-video-cutter.com.mp4

Sign In Dashboard AI Agent Call
Sign In Dashboard AI Agent Call

✨ Features That Slap

🤖 Custom AI Agents

🧠 Create agents with custom instructions
🎯 Interview coach, tutor, sales assistant & more
Agents join your live video calls

📹 HD Video Meetings

🎥 Crystal-clear video powered by Stream
🎙️ Auto transcription & recording
👥 Real-time collaboration

💬 In-Call AI Assistant

🗣️ Ask questions by voice or text
Gemini replies in seconds
🧩 Context-aware answers during the call

📊 Post-Meeting Intelligence

📝 AI-generated markdown summaries
📜 Full meeting transcripts
🎬 Recording playback
💡 Ask AI about past meetings

🔐 Authentication

✉️ Email & password
🔵 Google sign-in
GitHub sign-in

📱 Screenshots

Create Agent Create Meeting Join Call
Create Agent Create Meeting Join Meeting
Meeting Summary
Meeting Summary

🛠️ Tech Stack

Technology Purpose
Next.js 15 App framework (App Router)
TypeScript Type-safe development
Tailwind CSS 4 Styling
tRPC End-to-end typesafe API
Drizzle ORM Database ORM
Neon PostgreSQL Serverless database
Better Auth Authentication
Stream Video SDK HD video calls
Google Gemini AI agent & summaries
Inngest Background jobs
Docker Containerization
Vercel Deployment

🚀 Getting Started

Prerequisites

Installation

# Clone the repo
git clone https://github.com/coder-Yash886/Meet-Ai.git
cd Meet-Ai/meetai

# Install dependencies
npm install

# Push database schema
npm run db:push

# Start dev server
npm run dev

Open http://localhost:3000 → redirects to /meetings.

Environment Variables

Create a .env file in the meetai folder:

DATABASE_URL=postgresql://...
BETTER_AUTH_SECRET=your-random-secret
BETTER_AUTH_URL=http://localhost:3000
NEXT_PUBLIC_APP_URL=http://localhost:3000
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXT_PUBLIC_STREAM_VIDEO_API_KEY=
STREAM_VIDEO_SECRET_KEY=
GEMINI_API_KEY=

Full local flow (summaries + webhooks):

npm run dev          # Terminal 1
npm run dev:webhook  # Terminal 2 — ngrok for Stream webhooks
npm run dev:inngest  # Terminal 3 — optional

🐳 Running with Docker

You can run Nexora AI inside a Docker container using either Docker Compose (recommended) or the Docker CLI.

Prerequisites for Docker

  • Docker Engine or Docker Desktop installed.
  • Ensure your .env file is created and populated with environment variables in the meetai folder.

Process & Commands

Option A: Using Docker Compose (Recommended)

  1. Build and start the container:

    docker compose up --build -d
  2. View live logs:

    docker compose logs -f
  3. Access the Application: Open http://localhost:3000 in your browser.

  4. Stop the container:

    docker compose down

Option B: Using Docker CLI

  1. Build the Docker image:

    docker build \
      --build-arg NEXT_PUBLIC_APP_URL=http://localhost:3000 \
      --build-arg NEXT_PUBLIC_STREAM_VIDEO_API_KEY=your_stream_api_key \
      -t nexora-ai .
  2. Run the container with your .env file:

    docker run -d \
      --name nexora-ai-app \
      -p 3000:3000 \
      --env-file .env \
      nexora-ai
  3. View container logs:

    docker logs -f nexora-ai-app
  4. Stop and remove the container:

    docker stop nexora-ai-app
    docker rm nexora-ai-app

🏗️ Architecture

meetai/
├── 📱 src/app/
│   ├── (auth)/              # Sign-in, dashboard
│   │   └── (dashboard)/
│   │       ├── meetings/    # Meeting list & detail
│   │       └── agents/      # Agent management
│   ├── call/[meetingId]/    # Live video call UI
│   └── api/                 # Auth, tRPC, webhooks, Inngest
├── 🧠 src/modules/
│   ├── agents/              # Agent CRUD & UI
│   ├── meetings/            # Meetings, summary, transcript
│   ├── call/                # Video call + AI agent UI
│   └── auth/                # Login / signup views
├── 📦 src/db/               # Drizzle schema
├── ⚙️ src/lib/              # Auth, Gemini, Stream helpers
├── 🎬 public/demo/          # Demo video
└── 📸 public/feature/       # App screenshots

🗺️ Key Routes

Route Description
/meetings Meeting list (default landing)
/meetings/[id] Meeting detail & summary
/agents Manage AI agents
/call/[meetingId] Live video call with AI
/sign-in Authentication

☁️ Deploy on Vercel

  1. Push to GitHub and import on Vercel
  2. Set all .env variables (use production URLs for BETTER_AUTH_URL & NEXT_PUBLIC_APP_URL)
  3. Add OAuth redirect URIs for Google & GitHub
  4. Configure Stream webhook: https://your-app.vercel.app/api/webhook
  5. Sync Inngest: https://your-app.vercel.app/api/inngest

📜 Scripts

Command Description
npm run dev Start dev server
npm run build Production build
npm run db:push Push schema to Neon
npm run db:studio Open Drizzle Studio
npm run dev:webhook ngrok tunnel for webhooks
npm run dev:inngest Inngest local dev server

🤝 Contributing

Contributions make open source amazing! Any PRs are welcome.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.


💖 Acknowledgments


⭐ Star this repo if you found it useful!

Made with 💪 by Yash Kumar

Twitter: @YashK47662

yashkumar.967565@gmail.com