Skip to content

Latest commit

Β 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

eduMe_AI - AI-Powered Learning Platform

License: MIT Python 3.8 Next.js FastAPI

πŸŽ“ Overview

eduMe_AI is a comprehensive AI-powered learning platform that combines cutting-edge AI technology with educational tools. The platform features a SadTalker API for creating talking avatars from images and audio, along with a modern web interface for various learning activities.

🌟 Key Features

  • AI Avatar Generation: Create talking avatars using SadTalker technology
  • Career Quiz System: Interactive career assessment and guidance
  • AI Tutoring: Personalized learning assistance
  • Exam Preparation: Comprehensive study tools and resources
  • Skill Hub: Learning path recommendations and skill development
  • Rewards System: Gamified learning experience
  • Leaderboard: Competitive learning environment

πŸ—οΈ Architecture

The project consists of two main components:

Backend (SadTalker API)

  • FastAPI server with SadTalker integration
  • AWS S3 integration for file storage
  • Docker support for easy deployment
  • CUDA support for GPU acceleration

Frontend (Learning Platform)

  • Next.js 15 with TypeScript
  • Tailwind CSS for modern styling
  • Firebase for authentication and data storage
  • Framer Motion for smooth animations
  • Radix UI components for accessibility

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 18+
  • CUDA-compatible GPU (optional but recommended)
  • Docker (for containerized deployment)

Backend Setup

Manual Installation

  1. Clone the repository
git clone <your-repo-url>
cd eduMe_AI/backend
  1. Create and activate conda environment
conda create -n sadtalker python=3.8
conda activate sadtalker
  1. Install PyTorch with CUDA support
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
  1. Install other dependencies
conda install ffmpeg
pip install -r requirements.txt
  1. Set up environment variables
cp .env.example .env
# Edit .env with your AWS credentials and other settings
  1. Download SadTalker models
bash scripts/download_models.sh
  1. Start the API server
uvicorn --host "0.0.0.0" --port "8000" api:app

Docker Installation

  1. Build the Docker image
cd backend
docker build -t sadtalker .
  1. Run with GPU support
docker run --gpus=all --rm -p 8000:8000 -v ./.env:/sadtalker/.env -d --name sadtalker sadtalker

Frontend Setup

  1. Navigate to frontend directory
cd ../frontend
  1. Install dependencies
npm install
  1. Set up environment variables
# Create .env.local with your Firebase configuration
  1. Start development server
npm run dev

πŸ“š API Documentation

SadTalker API Endpoints

Generate Talking Avatar

POST /generate/

Request Body:

{
  "image_link": "https://example.com/image.jpg",
  "audio_link": "https://example.com/audio.wav",
  "s3_object_path": "uploads/avatar/"
}

Response:

{
  "status": "success",
  "video_url": "https://s3.amazonaws.com/bucket/video.mp4"
}

Test the API

curl -X POST "http://localhost:8000/generate/" \
  -H "Content-Type: application/json" \
  -d '{
    "image_link": "https://raw.githubusercontent.com/OpenTalker/SadTalker/main/examples/source_image/happy.png",
    "audio_link": "https://github.com/OpenTalker/SadTalker/raw/main/examples/driven_audio/chinese_poem2.wav"
  }'

API Documentation UI

Visit http://localhost:8000/docs for interactive API documentation.

🎯 Learning Platform Features

Career Quiz System

  • Interactive career assessment questions
  • Personalized career recommendations
  • Progress tracking and analytics

AI Tutoring

  • Personalized learning paths
  • Real-time assistance
  • Adaptive content delivery

Exam Preparation

  • Comprehensive study materials
  • Practice tests and quizzes
  • Performance analytics

Skill Hub

  • Skill assessment tools
  • Learning path recommendations
  • Progress tracking

Rewards & Gamification

  • Point-based reward system
  • Achievement badges
  • Leaderboard competition

πŸ› οΈ Development

Project Structure

eduMe_AI/
β”œβ”€β”€ backend/                 # SadTalker API server
β”‚   β”œβ”€β”€ api.py              # FastAPI application
β”‚   β”œβ”€β”€ src/                # SadTalker source code
β”‚   β”œβ”€β”€ scripts/            # Utility scripts
β”‚   └── requirements.txt    # Python dependencies
β”œβ”€β”€ frontend/               # Next.js learning platform
β”‚   β”œβ”€β”€ app/                # Next.js app directory
β”‚   β”œβ”€β”€ components/         # React components
β”‚   β”œβ”€β”€ contexts/           # React contexts
β”‚   └── package.json        # Node.js dependencies
└── README.md              # This file

Environment Variables

Backend (.env)

AWS_ACCESS_KEY=your_aws_access_key
AWS_SECRET_KEY=your_aws_secret_key
AWS_S3_REGION=us-west-1
AWS_S3_BUCKET_NAME=your_bucket_name

Frontend (.env.local)

NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id

πŸ§ͺ Testing

Backend Tests

cd backend
python -m pytest tests/

Frontend Tests

cd frontend
npm run test

πŸš€ Deployment

Production Build

Backend

cd backend
docker build -t eduMe_AI_backend .
docker run -p 8000:8000 eduMe_AI_backend

Frontend

cd frontend
npm run build
npm start

Environment Setup

  1. Set up AWS S3 bucket for file storage
  2. Configure Firebase project for authentication
  3. Set up environment variables in production
  4. Configure domain and SSL certificates

🀝 Contributing

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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • SadTalker: Original SadTalker implementation by OpenTalker
  • PhαΊ‘m Gia Linh: Original API implementation from sad-talker-api
  • FastAPI: Modern web framework for building APIs
  • Next.js: React framework for production
  • Tailwind CSS: Utility-first CSS framework

πŸ“ž Support

For support and questions:

  • Create an issue in the repository
  • Contact the development team
  • Check the FAQ for common questions

πŸ”„ Updates

See CHANGELOG for detailed version history and updates.


Made with ❀️ for educational innovation

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages