Skip to content

nithinseelan/GuruAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 GuruAI

An AI-powered teaching practice platform that helps educators improve their teaching skills through real-time feedback and intelligent Q&A simulations.

📖 What It Does

Record practice lectures, receive AI-generated feedback on your teaching quality, and practice answering student questions. The platform analyzes your teaching effectiveness and generates contextually relevant questions based on your lecture content.

Key Features:

  • Record yourself teaching with video and audio
  • AI analysis of clarity, engagement, pacing, and structure
  • Automatic transcription of your lectures
  • Practice answering 3 AI-generated student questions
  • Detailed scores and feedback

🛠️ Tech Stack

Frontend: React, TypeScript, Vite, Tailwind CSS
Backend: FastAPI, Python
Database: Supabase (PostgreSQL)
AI: OpenAI Whisper, GPT-4o-mini, ElevenLabs
Media: FFmpeg

🚀 How to Run

Prerequisites

  • Node.js 18+
  • Python 3.10+
  • FFmpeg (brew install ffmpeg on macOS)

1. Clone the Repository

git clone https://github.com/yourusername/GuruAI.git
cd GuruAI

2. Backend Setup

cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

Create backend/.env:

OPENAI_API_KEY=your_openai_api_key
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
FRONTEND_ORIGIN=http://localhost:5173

3. Frontend Setup

cd frontend
npm install

Create frontend/.env:

VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_API_BASE_URL=http://localhost:8000
VITE_ELEVENLABS_API_KEY=your_elevenlabs_api_key

4. Database Setup

Run this SQL in your Supabase SQL Editor:

CREATE TABLE IF NOT EXISTS sessions (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id UUID REFERENCES auth.users(id),
  title TEXT NOT NULL,
  status TEXT DEFAULT 'pending',
  overall_score INTEGER,
  clarity_score INTEGER,
  engagement_score INTEGER,
  pacing_score INTEGER,
  structure_score INTEGER,
  responses_score INTEGER,
  feedback_positive TEXT[],
  feedback_improve TEXT[],
  student_questions JSONB DEFAULT '[]'::jsonb,
  practice_questions JSONB DEFAULT '[]'::jsonb,
  transcript TEXT,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

ALTER TABLE sessions ENABLE ROW LEVEL SECURITY;

CREATE POLICY "Users can view their own sessions" ON sessions
  FOR SELECT USING (auth.uid() = user_id);

CREATE POLICY "Users can insert their own sessions" ON sessions
  FOR INSERT WITH CHECK (auth.uid() = user_id);

CREATE POLICY "Users can update their own sessions" ON sessions
  FOR UPDATE USING (auth.uid() = user_id);

5. Run the Application

Start Backend:

cd backend
source venv/bin/activate
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Start Frontend:

cd frontend
npm run dev

Visit http://localhost:5173 in your browser.

🙏 Acknowledgments

  • HackOHI/O - Thanks for the wonderful hack-a-thon!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •