An intelligent, AI-driven learning platform that creates personalized educational experiences with integrated YouTube video content and ChromaDB knowledge retrieval.
- AI-Generated Course Structures: Automatically creates 7x10x10 course structures (7 modules, 10 submodules each, 10 lessons each)
- Intelligent Lesson Expansion: AI-powered detailed lesson plans with comprehensive learning objectives
- Interactive Code Editor: Built-in code editor with syntax highlighting for Python, C, and C++
- Real-time Code Evaluation: AI-powered code analysis and guidance without revealing solutions
- Voice-Based Learning Assessment: Record verbal summaries for AI evaluation of understanding
- Smart Video Discovery: AI generates 3 search prompts based on lesson content
- YouTube Video Search: Finds relevant educational videos using YouTube Data API
- Automatic Transcription: Downloads and transcribes video content
- AI-Generated Summaries: Creates concise summaries of video content
- Relevance Explanations: AI explains why each video is relevant to the lesson
- Seamless UI Integration: Videos displayed alongside lesson content
- ChromaDB Integration: Intelligent knowledge retrieval for personalized learning
- Progress Tracking: Comprehensive progress monitoring and analytics
- Adaptive Learning: Course adaptation based on student performance
- Frontend: Streamlit (Python web framework)
- AI Models: Ollama (via ngrok endpoint)
- Knowledge Base: ChromaDB
- Video Processing: YouTube Data API + youtube-transcript-api
- Code Editor: Streamlit-Ace
- Storage: Local file system with JSON metadata
-
Clone the repository:
git clone <your-repo-url> cd primary_code_hackathon
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
# Copy the example environment file cp env.example .env # Edit .env file with your actual API keys # You'll need: # - ElevenLabs API key for voice features # - YouTube Data API key for video integration # - ngrok endpoint for Ollama server
-
Run the setup script (optional):
python setup.py
-
Run the application:
streamlit run app.py
- Navigate to "Create Course" in the main menu
- Enter your learning topic (e.g., "learn C++", "learn web development")
- The AI will generate a comprehensive course structure
- Review and customize the generated content
- Select a course from the course map
- Click "Expand" on any lesson to generate detailed content
- NEW: YouTube videos will automatically be processed and displayed
- Use the interactive code editor to practice
- Record voice summaries for AI evaluation
- Videos are automatically discovered based on lesson content
- Each video includes:
- AI-generated summary
- Relevance explanation
- Direct YouTube link
- Channel information
- Videos are displayed in both course map and lesson workspace views
- YouTube Data API: For video search functionality
- Ollama Endpoint: For AI model interactions (via ngrok)
The system uses ChromaDB for intelligent knowledge retrieval. Ensure ChromaDB is properly configured for optimal performance.
primary_code_hackathon/
├── app.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── README.md # This file
├── .gitignore # Git ignore rules
├── src/
│ ├── services/
│ │ ├── course_service.py # Course generation and management
│ │ ├── course_storage.py # File system storage operations
│ │ ├── lesson_expander.py # AI lesson plan expansion
│ │ ├── youtube_service.py # YouTube video processing (NEW!)
│ │ ├── ollama_client.py # AI model communication
│ │ ├── chroma_store.py # ChromaDB knowledge retrieval
│ │ └── language_service.py # Language-specific utilities
│ └── utils/ # Utility functions
└── courses/ # Generated course content (gitignored)
- Lesson Expansion: When a lesson is expanded, the AI generates 3 search prompts
- Video Discovery: YouTube Data API searches for videos matching each prompt
- Content Processing: Videos are transcribed and summarized by AI
- Storage: All data is saved locally with the lesson content
- Display: Videos appear in the UI with summaries and explanations
Lesson Plan → AI Search Prompts → YouTube Search → Transcription → AI Summary → UI Display
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Streamlit for the amazing web framework
- Ollama for local AI model hosting
- ChromaDB for vector database capabilities
- YouTube Data API for video discovery
- youtube-transcript-api for video transcription
- ✅ AI-powered video discovery based on lesson content
- ✅ Automatic video transcription and summarization
- ✅ Seamless UI integration with lesson content
- ✅ Relevance explanations for each video
- ✅ Local storage of video metadata and transcripts
Made with ❤️ for AI-powered education



