Online Live Teaching Platform is a comprehensive educational software designed to facilitate online teaching and learning. Built with Flask, Vue.js, and PyQt5, this platform enables live streaming, interactive features, course management, and community discussions for teachers, students, administrators, and regulators.
-
Live Streaming and Interaction
- Video and audio live streaming
- Screen sharing and whiteboard tools
- Real-time chat and "raise hand" feature for student-teacher interaction
-
Course and Recording Management
- Course creation and enrollment
- Live session recording (view, download, delete)
- Upload and manage course materials
-
Student Engagement
- Attendance check-in system
- Community discussion forum with Markdown support
- Personalized course recommendations
-
Administrative Tools
- User and role management
- Platform data maintenance
- Content monitoring and complaint handling
- High Availability: Accessible anytime, anywhere
- Security: Encrypted data transmission and user authentication
- Scalability: Supports multiple devices and growing user bases
- Performance: Low latency, high concurrency, and fast response times
- Usability: Intuitive UI with clear workflows
- Flask web framework
- REST API for client-server communication
- WebSocket for real-time features
- Nginx with HTTP-FLV for video streaming
- Vue.js for the student web interface
- PyQt5 for the teacher desktop client
- HTML/CSS templates for rendering
- Relational database (e.g., MySQL or SQLite) for user and course data
- Object storage (OBS) for media files
- File system for static assets
- Prototyping with Mockplus (墨刀)
- Modular UI components for consistency
The project is organized into the following directories and files:
FLASK/
├── __pycache__/ # Compiled Python bytecode files
├── .git/ # Git repository metadata
├── blueprints/ # Flask blueprints for modular routing
├── migration/ # Database migration scripts
├── model/ # Database models and schemas
├── OBS/ # Object storage for media files
├── static/ # Static files (CSS, JS, images)
├── templates/ # HTML templates for rendering
├── Test/ # Test scripts and resources
├── tools/ # Utility scripts and tools
├── ui/ # UI design files and prototypes
├── app.py # Main Flask application file
└── config.py # Configuration settings
-
Clone the Repository:
git clone https://github.com/Decade-qiu/online-live-teaching-platform.git cd online-live-teaching-platform -
Install Backend Dependencies:
pip install -r requirements.txt
-
Set Up Environment Variables:
# Create .env file cp .env.example .env # Edit .env with your configurations DATABASE_URI=your_database_uri SECRET_KEY=your_secret_key NGINX_STREAMING_URL=your_nginx_streaming_url
-
Set Up the Frontend (Vue.js):
cd frontend npm install npm run serve -
Set Up the Streaming Server:
- Install Nginx with the HTTP-FLV module.
- Configure Nginx for streaming:
sudo cp tools/nginx.conf /etc/nginx/nginx.conf sudo nginx -s reload
-
Initialize the Database:
flask db upgrade
-
Run the Application:
python app.py
-
Run the Teacher Client:
python teacher_client.py
POST /auth/register- Register a new userPOST /auth/login- Log in and get a tokenGET /user/profile- Retrieve user profilePUT /user/profile- Update user profile
POST /course/create- Create a new courseGET /course/list- List all available coursesPOST /live/start- Start a live sessionGET /live/recordings- List session recordings
POST /discussion/post- Create a new discussion postGET /discussion/list- List discussion postsPOST /discussion/comment- Comment on a post
- JWT-based authentication for secure access
- Role-based access control for different user types
- Encrypted data transmission for privacy
- Content monitoring to ensure compliance
- Regular backups for data integrity
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Flask team for the lightweight web framework
- Vue.js team for the frontend framework
- PyQt5 for the teacher client interface
- Nginx for reliable streaming support
- Mockplus (墨刀) for UI/UX prototyping
- Core platform development
- Live streaming and interaction features
- Course and user management
- Enhanced community features
- Mobile application support
- Advanced analytics for learning progress
- AI-driven personalized learning paths
- Integration with third-party educational tools
- Global scalability improvements