A modern, distributed video sharing platform built with React.js frontend and Spring Cloud microservices backend.
This project consists of two main components:
- Frontend: A modern React.js application providing the user interface
- Backend: A distributed microservices architecture built with Spring Cloud
- Video upload, playback, and processing
- Multi-quality video transcoding (480p, 720p, 1080p)
- Real-time video recommendations
- User authentication and profiles
- Social features (likes, comments, sharing)
- Responsive design
- Search functionality
- Real-time view count tracking
- HLS (HTTP Live Streaming) support
- React.js 18
- Redux Toolkit
- Material-UI
- React Router v6
- Axios
- React Player
frontend/
├── src/
│ ├── components/ # Reusable components
│ ├── services/ # API services
│ ├── store/ # Redux store
│ ├── utils/ # Utilities
│ ├── hooks/ # Custom hooks
│ ├── context/ # React context
│ ├── assets/ # Static assets
│ └── pages/ # Page components
- vrs-video: Video processing and management
- vrs-user-interaction: User interactions and social features
- ruoyi-resource: Resource and CDN management
- Spring Cloud & Spring Boot
- MySQL with MyBatis-Plus
- Redis with Redisson
- Apache Kafka
- Nacos Service Discovery
- FFmpeg for video processing
- Clone the repository and navigate to frontend:
git clone <repository-url>
cd frontend
- Install dependencies:
npm install
- Configure environment:
REACT_APP_API_BASE_URL=your_api_url
- Start development server:
npm start
- Configure your development environment:
- JDK 17
- Maven
- MySQL
- Redis
- FFmpeg
-
Configure application properties for each service
-
Start the required services:
- Nacos
- MySQL
- Redis
- Kafka
- Launch the microservices in order:
- Gateway
- Auth Service
- Video Service
- User Interaction Service
- ESLint for code linting
- Prettier for code formatting
- Husky for pre-commit hooks
- Application properties for each service
- FFmpeg settings for video processing
- Kafka consumer group settings
- Redis caching strategies
- Distributed session management
- API authentication and authorization
- Resource access control
- Rate limiting
- Log aggregation
- Performance metrics
- Health checks
- Error tracking
- Fork the repository
- Create a feature branch
- Commit changes
- Push to the branch
- Open a pull request
This project is licensed under the MIT License.
- K.C
- YouTube for inspiration
- React.js community
- Spring Cloud community
- RuoYi framework team