A comprehensive system for converting markdown scripts into professional video courses with AI-powered enhancements.
- Video Course Generation: Transform markdown content into engaging video courses
- AI-Powered Enhancements: Multiple LLM providers (OpenAI, Anthropic, Ollama) for content enhancement
- TTS & Music: High-quality text-to-speech (Bark, SpeechT5) and background music generation
- Multi-Platform: Desktop app (Electron), mobile app (React Native), and web player
- Production Ready: Docker deployment, Prometheus/Grafana monitoring, JWT authentication
- Fully Tested: Comprehensive test coverage with unit, integration, and e2e tests
- Docker 20.10+ and Docker Compose 2.0+
- 4GB+ RAM and 20GB+ storage
- API keys for LLM features (OpenAI, Anthropic) - optional for basic functionality
# Clone and set up development environment
git clone https://github.com/your-org/course-creator.git
cd course-creator
cp .env.example .env
# Edit .env with your API keys (optional)
docker-compose --profile development up -d- API Server: http://localhost:8080
- Desktop App: http://localhost:3000
- Web Player: http://localhost:3001
- API Docs: http://localhost:8080/docs
- Monitoring: http://localhost:3002 (Grafana - admin/admin123)
course-creator/
├── core-processor/ # Go backend and processing engine
│ ├── api/ # REST API handlers
│ ├── jobs/ # Background job processing
│ ├── llm/ # LLM provider integrations
│ ├── metrics/ # Prometheus metrics
│ ├── mcp_servers/ # MCP server implementations
│ ├── pipeline/ # Video/audio processing pipeline
│ ├── repository/ # Database operations
│ ├── services/ # Business logic
│ └── tests/ # Test suites
├── creator-app/ # Electron desktop application
├── mobile-player/ # React Native mobile app
├── player-app/ # React web player
├── monitoring/ # Grafana/Prometheus configs
├── nginx/ # Reverse proxy config
└── docker-compose.yml # Full stack deployment
# Database
DB_HOST=postgres
DB_PORT=5432
DB_NAME=course_creator
DB_USER=course_creator
DB_PASSWORD=your_secure_password
# LLM Providers (optional but recommended)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
OLLAMA_BASE_URL=http://localhost:11434
# Storage
STORAGE_TYPE=local
STORAGE_PATH=/app/storage
# Or S3:
# STORAGE_TYPE=s3
# AWS_ACCESS_KEY_ID=...
# AWS_SECRET_ACCESS_KEY=...POST /api/v1/auth/register- Register new userPOST /api/v1/auth/login- User loginPOST /api/v1/auth/refresh- Refresh JWT token
POST /api/v1/courses/generate- Generate course from markdownGET /api/v1/courses- List user coursesGET /api/v1/courses/:id- Get course details
GET /api/v1/jobs- List user jobsGET /api/v1/jobs/:id- Get job statusPOST /api/v1/jobs/:id/cancel- Cancel job
GET /api/v1/health- Health checkGET /api/v1/metrics- Prometheus metrics
# Backend (Go)
cd core-processor
go mod download
go run . server
# Desktop App
cd creator-app
npm install
npm run dev
# Mobile App
cd mobile-player
npm install
npm run ios # or npm run android# Run all tests
go test ./...
# Run specific test suites
go test ./tests/unit
go test ./tests/integration
go test ./tests/e2e
# Run with coverage
go test -cover ./...# Production
docker-compose up -d
# Development with hot reload
docker-compose --profile development up -d
# With monitoring
docker-compose --profile monitoring up -d# Automated development environment setup
./setup-dev.sh- Prometheus: http://localhost:9090
- Grafana: http://localhost:3002
- Health Check: http://localhost:8080/api/v1/health
- Metrics: http://localhost:8080/api/v1/metrics
- OpenAI: GPT-3.5, GPT-4 for content enhancement
- Anthropic: Claude for alternative LLM support
- Ollama: Local LLM deployment
- Free Provider: Mock provider for testing
- Fallback: Automatic provider switching on failures
- Bark: High-quality neural TTS with multiple voices
- SpeechT5: Alternative TTS with speaker embeddings
- Text Splitting: Automatic chunking for long content
- LLaVA: Visual content understanding
- OCR: Text extraction from images
- Object Detection: Identify elements in diagrams
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Desktop App │ │ Mobile App │ │ Web Player │
│ (Electron) │ │ (React Native) │ │ (React) │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌─────────────┴─────────────┐
│ REST API │
│ (Gin + Go 1.24) │
└─────────────┬─────────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐
│ LLMs │ │ TTS │ │ Jobs │
│Providers │ │ Engines │ │ Queue │
└───────────┘ └───────────┘ └───────────┘
- JWT-based authentication with refresh tokens
- Rate limiting (100 req/min default)
- Input validation and sanitization
- HTTPS in production
- No credentials in code (use environment variables)
- CORS configuration for cross-origin requests
- Horizontal scaling support with Docker Compose
- Connection pooling for database
- Async job processing with Redis
- CDN-ready static assets
- Optimized for 1080p+ video output
- Metrics collection with Prometheus
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Write tests for your changes (100% coverage required)
- Run all tests:
go test ./... - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Go:
gofmtandgolint - TypeScript: Prettier and ESLint
- 100% test coverage required
- All PRs must pass CI checks
MIT License - see LICENSE file for details.
- Documentation: docs/
- API Reference: docs/api/
- Deployment Guide: DEPLOYMENT.md
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- ✅ Basic course generation
- ✅ Multi-LLM provider support
- ✅ Desktop app
- ✅ Web player
- ✅ Docker deployment
- ✅ Authentication & authorization
- ✅ Monitoring with Prometheus/Grafana
- Mobile app completion
- Advanced video editing features
- Multi-language course support
- Course templates library
- Real-time progress tracking
- Real-time collaboration
- AI-powered content suggestions
- Whiteboard animation support
- Interactive quizzes and assessments
- SCORM/xAPI export
Built with ❤️ for course creators worldwide.
- Go 1.21+
- Node.js 18+
- FFmpeg (optional, for video processing)
- React Native development environment (for mobile)
cd core-processor
go mod tidy
go build .
./core-processor serverThe API server will start on http://localhost:8080
cd creator-app
npm install
npm run build
npm startcd mobile-player
npm install
# For iOS
npm run ios
# For Android
npm run android- Write Markdown: Create a course script in markdown format
- Use Desktop App: Open the creator app, select your markdown file
- Configure Options: Choose voice, quality, background music
- Generate: Click generate to create the video course
- Play: Use the mobile or desktop player to view the course
# Course Title
This is the course description.
## Introduction
Welcome to the course!
## Main Content
This is the main content section.POST /api/v1/courses/generate
Content-Type: application/json
{
"markdown_path": "/path/to/course.md",
"output_dir": "/path/to/output",
"options": {
"voice": "bark",
"backgroundMusic": true,
"languages": ["en"],
"quality": "standard"
}
}GET /api/v1/coursesGET /api/v1/courses/{id}- Markdown Parsing: Extract structure, content, and metadata
- TTS Generation: Convert text to speech using MCP servers
- Video Assembly: Combine audio, visuals, and text overlays
- Post-Processing: Add subtitles, background music, final packaging
- Bark TTS: High-quality text-to-speech
- SpeechT5: Alternative TTS engine
- Suno: Background music generation
- LLaVA: Image analysis and description
- Pix2Struct: UI parsing for diagrams
cd core-processor
go test ./...# Backend
cd core-processor && go build .
# Desktop app
cd creator-app && npm run build
# Mobile app
cd mobile-player && npm run android # or ios- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details
- Real-time video preview
- Advanced video editing tools
- Multi-language support
- Cloud storage integration
- Collaborative editing
- Analytics and engagement tracking