An AI-powered teaching practice platform that helps educators improve their teaching skills through real-time feedback and intelligent Q&A simulations.
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
Frontend: React, TypeScript, Vite, Tailwind CSS
Backend: FastAPI, Python
Database: Supabase (PostgreSQL)
AI: OpenAI Whisper, GPT-4o-mini, ElevenLabs
Media: FFmpeg
- Node.js 18+
- Python 3.10+
- FFmpeg (
brew install ffmpegon macOS)
git clone https://github.com/yourusername/GuruAI.git
cd GuruAIcd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtCreate backend/.env:
OPENAI_API_KEY=your_openai_api_key
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
FRONTEND_ORIGIN=http://localhost:5173cd frontend
npm installCreate 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_keyRun 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);Start Backend:
cd backend
source venv/bin/activate
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Start Frontend:
cd frontend
npm run devVisit http://localhost:5173 in your browser.
- HackOHI/O - Thanks for the wonderful hack-a-thon!