AI-Powered Sign Language Learning Platform
An AI tutor that provides real-time feedback to students learning sign language using Azure AI and OpenAI. Built for Microsoft Imagine Cup.
- π₯ Real-time Webcam Learning: Practice sign language in front of your camera
- π¨ Visual Feedback: Color-coded accuracy indicators (Green/Yellow/Red)
- π Scoring System: Real-time accuracy scoring
- π€ AI-Based Tracking: Precise tracking of 21 hand joint points using MediaPipe
- π¬ Personalized Feedback: Custom learning feedback powered by Azure OpenAI
- π Structured Learning: Categorized word/phrase learning flow
- π Smart Search: Quick lesson search functionality
- π― Practice Today: Daily review simulation based on learned lessons
- π User Authentication: Secure login and signup system
- β° Session Management: 60-minute session timeout for security
- π Learning History: Track your progress over time
- π€ User Profile: View your learning statistics and achievements
- π Daily Practice: Review lessons you've learned today
- πΈ Multi-frame Capture: Dynamic sign language recognition with multiple frames
- π¬ Video/Image Support: Flexible media types for different lesson modes
- π RESTful API Integration: Seamless backend communication
- π¨ Responsive Design: Works on desktop and mobile devices
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool
- React Router - Navigation
- MediaPipe Holistic - Hand/pose tracking
- WebRTC - Webcam access
- HTML5 Canvas - Skeleton rendering
- Azure AI - Computer vision and pose analysis
- Azure OpenAI - Feedback generation
- RESTful API - Backend integration
- JWT Authentication - Secure user sessions
- Azure Static Web Apps - Frontend hosting
- Azure App Service - Backend API hosting
src/
βββ pages/
β βββ HomePage.tsx # Home (category selection + search)
β βββ CategoryDetailPage.tsx # Level selection (word/phrase)
β βββ ItemListPage.tsx # Lesson list
β βββ LessonDetailPage.tsx # Lesson details
β βββ PracticePage.tsx # Real-time learning
β βββ SimulationPage.tsx # Practice Today mode
β βββ ResultPage.tsx # Learning results
β βββ ProfilePage.tsx # User profile & history
β βββ LoginPage.tsx # Login & signup
βββ components/
β βββ Camera.tsx # Webcam + MediaPipe integration
β βββ ScoreBoard.tsx # Score display
β βββ Header.tsx # Header component
β βββ SidebarNav.tsx # Navigation sidebar
β βββ SessionTimeoutChecker.tsx # Session timeout handler
βββ services/
β βββ api.ts # API client
β βββ authService.ts # Authentication service
βββ types/
β βββ index.ts # TypeScript type definitions
βββ App.tsx # Router configuration
- Node.js 18+
- npm or yarn
- Webcam access
npm installCreate a .env.development file:
VITE_BACKEND_API_URL=your_backend_api_url
VITE_AI_API_URL=your_ai_api_urlnpm run devOpen http://localhost:5173 in your browser
npm run build- Sign Up / Login - Create an account or log in
- Browse Categories - Select from 8 different categories (Greetings, Emotions, Daily Life, etc.)
- Choose Level - Pick between Word or Phrase learning
- Select Lesson - Browse and select a lesson to learn
- View Lesson Details - Study the tutorial video and instructions
- Start Practice - Click "Start Learning" button
- Allow Webcam - Grant camera permission
- Practice Sign Language - Follow the on-screen guidance
- Get Real-time Feedback - See color-coded feedback:
- π’ Green: Accurate movement
- π‘ Yellow: Moderate accuracy
- π΄ Red: Needs correction
- Complete Learning - Click "Complete Learning" to see your results
- Click "Practice Today" in the sidebar
- System creates scenarios based on lessons you learned today
- Practice in realistic conversation contexts
- Get AI-powered feedback on your performance
- Use the search bar on the home page
- Type keywords (e.g., "hello", "thank")
- Press Enter or click the search icon
- Browse search results with video previews
- Click "Learning History" or "Profile" in the sidebar
- View your learning statistics
- Track daily progress
- See total lessons completed and average scores
- Session Duration: 60 minutes
- Auto Logout: Automatic logout after session expires
- Session Timeout Modal: Notification when session expires
- Secure Token Storage: JWT tokens in localStorage
- User registration with validation
- Secure login with password confirmation
- Protected routes requiring authentication
- Persistent login across page refreshes
- Primary: Azure Blue (#0078D4)
- Secondary: #005A9E
- Success: #16C60C
- Warning: #FFB800
- Error: #D13438
- Background: White with subtle gradients
- Text: #323130 (Primary), #605E5C (Secondary)
- Font Family: System UI fonts (Segoe UI, San Francisco, etc.)
- Headings: Bold, 24-48px
- Body: Regular, 14-18px
- π Greetings: Basic greetings for meetings and farewells
- π Emotions: Express joy, sadness, anger, etc.
- π Daily Life: Common expressions in daily life
- πͺ Family: Family relationships and titles
- π« School: School-related expressions
- π½οΈ Reactions: Expressions like "thank you", "sorry"
- β Alphabet: Fingerspelling alphabet
- π’ Numbers: Finger counting and numbers
- Real-time hand tracking (21 landmarks per hand)
- Pose tracking (33 landmarks)
- Face tracking for comprehensive analysis
- Personalized feedback generation
- Context-aware coaching messages
- Performance analysis
- Multi-frame capture for dynamic signs
- Pose comparison and scoring
- Accurate gesture recognition
- βΏ Social Impact: Improving education accessibility for deaf communities
- βοΈ Azure Technology: AI Vision + OpenAI + App Service + Static Web Apps
- π¨ Visual Impact: Real-time feedback creates powerful demonstrations
- π Scalability: Can support sign languages from different countries
- π± User Experience: Intuitive learning flow
- π¬ Innovation: AI-powered personalized learning at scale
GET /api/categories # Get all categories
GET /api/lessons # Get all lessons
GET /api/lessons/:id # Get specific lesson
GET /api/lessons/category/:categoryId # Get lessons by category
GET /api/lessons/:id/answer-frames/count # Get frame count for lesson
POST /api/auth/signup # User registration
POST /api/auth/login # User login
GET /api/learning-histories # Get learning history
POST /api/learning-histories # Save learning record
POST /api/lessons/:id/feedback/image # Single frame analysis
POST /api/lessons/:id/feedback/images # Multi-frame analysis
POST /api/simulation # Create practice scenario
- User authentication system
- Session management with timeout
- Search functionality
- Learning history tracking
- Practice Today simulation mode
- Multi-frame capture for dynamic signs
- Real-time AI feedback
- Profile page with statistics
- MediaPipe integration
- Achievement system (badges, levels)
- Social features (share progress)
- More sign language lessons
- Multi-language UI support
- Mobile app version
- Offline mode support
- Video recording and playback
- Leaderboard and competitions
This project was built for Microsoft Imagine Cup. Contributions are welcome!
MIT License
Made with β€οΈ for Microsoft Imagine Cup 2026
Team: en-trophy