A Comprehensive Educational Platform for Video-Based Learning, Real-Time Collaboration, and AI-Powered Content Analysis
- Overview
- Features
- Technology Stack
- System Architecture
- Installation
- Configuration
- Usage
- Testing
- API Documentation
- Deployment
- Contributing
- License
SLIIT-HUB is a modern, comprehensive educational platform designed to facilitate video-based learning, real-time collaboration, and AI-powered content analysis. The system serves students, lecturers, and administrators with role-based access control and cutting-edge web technologies.
- ๐ฅ Video Content Management: Upload, process, and stream educational videos
- ๐ค AI Integration: Automatic transcription, summarization, and content analysis
- ๐ฌ Real-Time Communication: WebRTC-based video conferencing and meetings
- ๐ฅ Role-Based Access: Separate interfaces for students, lecturers, and administrators
- ๐ Resource Repository: Comprehensive file management and sharing system
- ๐ Analytics Dashboard: Performance tracking and insights
- Video Upload & Management: Upload educational videos with metadata
- Lecturer Review System: Request reviews and receive feedback
- Resource Access: Download and organize educational materials
- Meeting Participation: Join virtual classrooms and study sessions
- Progress Tracking: Monitor learning progress and achievements
- Content Review: Review and approve student video submissions
- Resource Management: Upload and organize course materials
- Meeting Hosting: Create and manage virtual classrooms
- Student Monitoring: Track student progress and engagement
- Content Creation: Develop and share educational resources
- User Management: Oversee student and lecturer accounts
- Degree Management: Manage academic programs and courses
- System Monitoring: Platform-wide analytics and insights
- Content Moderation: Ensure content quality and compliance
- System Announcements: Broadcast important information
- Automatic Transcription: Convert video audio to text using Whisper
- Content Summarization: Generate concise video summaries with GPT
- Scene Detection: Identify topic transitions and key moments
- Smart Descriptions: Auto-generate video descriptions and tags
- Content Analysis: Extract insights and patterns from videos
- React 18: Modern UI framework with hooks and context
- React Router: Client-side routing and navigation
- Axios: HTTP client for API communication
- CSS3: Custom styling with CSS variables and modules
- WebRTC: Real-time video and audio communication
- Node.js: Server-side JavaScript runtime
- Express.js: Web application framework
- MongoDB: NoSQL database for data persistence
- Mongoose: MongoDB object modeling
- Socket.io: Real-time bidirectional communication
- JWT: JSON Web Token authentication
- Python 3.9+: AI processing and analysis
- Flask: Lightweight web framework for AI API
- OpenAI Whisper: Speech-to-text transcription
- OpenAI GPT: Content generation and summarization
- OpenCV: Computer vision and scene detection
- NumPy/Pandas: Data processing and analysis
- Git: Version control and collaboration
- npm/yarn: Package management
- ESLint: Code quality and consistency
- Jest: Testing framework
- Docker: Containerization and deployment
src/
โโโ modules/ # Feature-based modules
โ โโโ admin/ # Administrative functions
โ โโโ ai/ # AI tool interface
โ โโโ calendar/ # Calendar and reminders
โ โโโ communication/# Meeting system
โ โโโ content/ # Video content management
โ โโโ lecturer/ # Lecturer review system
โ โโโ resources/ # File repository
โ โโโ tutoring/ # Student video uploads
โ โโโ user/ # Authentication and profiles
โโโ shared/ # Common components
โ โโโ components/ # Reusable UI components
โ โโโ hooks/ # Custom React hooks
โ โโโ styles/ # Global CSS and variables
โโโ services/ # API and WebRTC services
server/
โโโ modules/ # Feature modules
โ โโโ admin/ # Degree and user management
โ โโโ ai/ # AI service integration
โ โโโ announcements/# System announcements
โ โโโ content/ # Video and comment management
โ โโโ lecturer/ # Review workflow
โ โโโ meeting/ # Real-time meeting system
โ โโโ notifications/# User notifications
โ โโโ resources/ # File management
โ โโโ tutoring/ # Student video processing
โ โโโ user/ # Authentication and profiles
โโโ middleware/ # Auth and validation
โโโ websocket/ # Real-time communication
โโโ config/ # Database and environment
python_services/
โโโ api.py # Flask API endpoints
โโโ gpt/ # GPT integration service
โโโ scene_detection/ # Video scene analysis
โโโ whisper_service/ # Audio transcription
โโโ tests/ # Comprehensive test suite
- Node.js 18.0.0 or higher
- MongoDB 6.0 or higher
- Python 3.9 or higher
- Git
git clone https://github.com/your-username/SLIIT-HUB.git
cd SLIIT-HUBcd client
npm installcd ../server
npm installcd ../python_services
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt# Copy environment templates
cp .env.example .env
cp python_services/env_template.txt python_services/.env
# Edit environment variables
nano .env
nano python_services/.env# Server Configuration
PORT=5000
NODE_ENV=development
# Database
MONGO_URI=mongodb://localhost:27017/sliithub_db
# Authentication
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=24h
# AI Service
AI_SERVICE_URL=http://localhost:5001
# File Upload
MAX_FILE_SIZE=100000000
UPLOAD_PATH=./uploads# Flask Configuration
FLASK_APP=api.py
FLASK_ENV=development
PORT=5001
# OpenAI Configuration
OPENAI_API_KEY=your_openai_api_key
# File Paths
UPLOAD_FOLDER=./uploads
THUMBNAIL_FOLDER=./uploads/thumbnails# Start MongoDB
mongod
# Create database
mongo
use sliithub_dbcd server
npm start
# Server will run on http://localhost:5000cd python_services
python api.py
# AI service will run on http://localhost:5001cd client
npm start
# Frontend will run on http://localhost:3000- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- AI Service: http://localhost:5001
- MongoDB: mongodb://localhost:27017
-
Student Access
- Register with student ID and email
- Upload educational videos
- Request lecturer reviews
- Access learning resources
-
Lecturer Access
- Register with department credentials
- Review student video submissions
- Create and manage resources
- Host virtual meetings
-
Administrator Access
- Manage user accounts
- Oversee degree programs
- Monitor system performance
- Create system announcements
cd client
npm testcd server
npm testcd python_services
python -m pytest tests/The application includes comprehensive testing with:
- 52 Functional Test Cases across all modules
- AI Model Accuracy Testing (88.3% overall accuracy)
- Usability Testing (91.3% task success rate)
- Performance and Security Testing
- Functional Testing: 49/52 test cases passed (94.2% success rate)
- AI Model Accuracy: 88.3% across all AI services
- Usability: 91.3% task success rate
- Performance: Handles 100+ concurrent users
- Security: All security tests passed
POST /api/register # User registration
POST /api/login # User login
POST /api/admin/login # Admin login
GET /api/profile # Get user profile
PUT /api/profile # Update user profilePOST /api/tutoring/upload # Upload video
GET /api/content/videos # List videos
GET /api/content/videos/:id # Get video details
GET /api/tutoring/videos/:id/stream # Stream video
POST /api/tutoring/videos/:id/request-review # Request reviewPOST /api/meetings # Create meeting
GET /api/meetings # List meetings
GET /api/meetings/:id # Get meeting details
PUT /api/meetings/:id # Update meeting
DELETE /api/meetings/:id # Delete meetingPOST /api/ai/generate-summary # Generate video summary
POST /api/ai/generate-timestamps # Generate video timestamps
POST /api/ai/generate-description # Generate video description
GET /api/ai/health # AI service health checkPOST /api/resources/upload # Upload resource
GET /api/resources # List resources
GET /api/resources/download/:id # Download resource
PUT /api/resources/:id # Update resource
DELETE /api/resources/:id # Delete resource# Set production environment
NODE_ENV=production
PORT=80cd client
npm run buildcd server
npm startcd python_services
gunicorn -w 4 -b 0.0.0.0:5001 api:appFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 5000
CMD ["npm", "start"]FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5001
CMD ["python", "api.py"]- HTTPS: SSL/TLS certificate configuration
- Load Balancing: Nginx reverse proxy setup
- Monitoring: Application performance monitoring
- Backup: Automated database and file backups
We welcome contributions to SLIIT-HUB! Please follow these guidelines:
- 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
- Follow the existing code style and conventions
- Write comprehensive tests for new features
- Update documentation for any API changes
- Ensure all tests pass before submitting
- Use meaningful variable and function names
- Add comments for complex logic
- Follow ESLint configuration
- Write clear commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
- SLIIT: Sri Lanka Institute of Information Technology
- OpenAI: For providing GPT and Whisper APIs
- React Community: For the excellent frontend framework
- Node.js Community: For the robust backend runtime
- MongoDB: For the flexible NoSQL database
For support and questions:
- Email: support@sliithub.com
- Issues: GitHub Issues
- Documentation: Project Wiki
- Mobile Application: React Native mobile app
- Advanced Analytics: Learning progress tracking
- Machine Learning: Personalized content recommendations
- Multi-language Support: Internationalization
- Advanced Search: Elasticsearch integration
- Microservices: Service decomposition
- Message Queues: Asynchronous processing
- CDN Integration: Content delivery optimization
- Database Sharding: Horizontal scaling
SLIIT-HUB - Empowering Education Through Technology ๐
Built by J A D Dulmina