β οΈ WIP: Not ready for production use yet, just started development on this project.
Streamify is a self-hosted video streaming platform built using Java Spring Boot,
React TypeScript, MongoDB, and Nginx as a reverse proxy. It allows users to
easily deploy their own streaming service without the need to hire developers.
Just install Docker (or later, a standalone .exe
or .deb
package) and you're ready
to go!
If you need help, have issues, questions, or feature requests:
- Email:
- GitHub Issues: https://github.com/NullPointerExcy/streamify/issues
Click here to expand
Feature | Status | Notes |
---|---|---|
Community Module | π§ Implemented, need to add image support and link support | Users can create and participate in discussions, comment on topics, and filter by title, games, and videos. |
Video Streaming | HLS playback is currently bugged. | |
Playlists | β Completed | Create, sort, and search playlists by name or genre. |
Watch History | β Completed | Track watched videos with details like view count, duration, and upload date. |
Watch List | β Completed | Save videos to a watch list for later viewing. |
User Settings | π§ Implemented, but needs work | Update username, email, password, and profile picture. |
Login (OAuth Integration) | π Planned Support for Google and Twitch OAuth login. Currently only supports custom login. |
Click here to expand
Feature | Status | Notes |
---|---|---|
Admin Panel | β Completed | Centralized management of the platform. |
Game Management | β Completed | Manage game-related metadata. |
Video Management | β Completed | Manage video uploads and metadata. |
Playlist Management | β Completed | Create and manage playlists. |
User Management | β Completed | Manage user accounts and roles. |
Design Settings | π§ Implemented, but still adding more design options. | Change color scheme, title, and other design elements. |
Feature Management | π§ Implemented, but also adding more features. | Enable or disable features like community or limit it for specific users. |
Application Properties Management | π§ Implemented, more are going to be added | Set streaming resource folder, video storage path, and other application properties. |
Click here to expand
Feature | Status | Notes |
---|---|---|
Community Module | β Completed | Create topics, comment on them, filter by title, creator, or related games/videos. |
OAuth Integration | π Planned | Support for Google and Twitch OAuth login. |
Playlist Management | β Completed | Create, sort, and search playlists. |
Video Playback | HLS video streaming has issues. | |
Watch List Integration | β Completed | Add or remove videos from the watch list. |
Video Thumbnails | β Completed | Display thumbnails for each video in a playlist. |
Responsive Design | β Completed | Adaptive grid layout for various screen sizes. |
Hover Effects | β Completed | Interactive hover effects for modern UI. |
Profile Management | β Completed | Change username, email, and password. |
Profile Picture Upload | β Completed | Upload and preview profile pictures. |
Dynamic Update | β Completed | Real-time updates without page refreshes. |
Video Library | β Completed | Browse and filter videos by name, game, or playlist. |
Dynamic Filtering and Sorting | β Completed | Real-time search and sorting options. |
Watch Time Tracking | β Completed | Track watch time for personalized analytics. |
View History | β Completed | List of previously watched videos. |
Interactive Navigation | β Completed | Navigate directly to the watched video from history. |
Personalized Watch List | β Completed | Save videos to a personalized watch list. |
Dynamic Removal | β Completed | Easily remove videos from the watch list. |
Comprehensive Admin Dashboard | β Completed | Centralized control of the platform. |
Multi-Section Management | β Completed | Manage Games, Videos, Playlists, Users, Design, Features, and Application Properties. |
Click here to expand
Feature | Status | Notes |
---|---|---|
Java Spring Boot | β Implemented | Backend framework. |
React with TypeScript | β Implemented | Frontend framework. |
MongoDB | β Implemented | Database. |
Nginx (Reverse Proxy) | β Implemented | Reverse Proxy setup. |
RabbitMQ Integration | π Planned | For asynchronous messaging and scalability. |
Click here to expand
Feature | Status | Notes |
---|---|---|
Standalone Installation | π Planned | .exe for Windows and .deb for Linux. |
Enhanced Video Analytics | π Planned | Deeper insights into user engagement and watch patterns. |
Advanced UI Theming | π Planned | Customization of color schemes, layouts, and more. |
- Community Module: Users can create and participate in discussions, comment on topics, and filter topics by title, games and videos.
- Video Streaming: Stream videos with support for HLS playback (Currently bugged).
- Playlists: Create and manage playlists, sort by name or genre, and view total videos and duration.
- Watch History: Track watched videos with details like view count, duration, and upload date.
- Watch List: Save videos to a watch list for later viewing.
- User Settings: Update username, email, password, and profile picture.
- (Planned) Login: OAuth login support for Google and Twitch, currently only supports custom login.
- Admin Panel: Centralized management of the platform with the following sections:
- Game Management
- Video Management
- Playlist Management
- User Management
- Design Settings
- Change the platform's color scheme, title, and other design elements.
- Feature Management
- Enable or disable features like community (Create topics, Comments etc.) or limit it for specific users.
- Application Properties Management
- Set streaming resource folder, video storage path, and other application properties.
- Backend:
Java Spring Boot
- Frontend:
React with TypeScript and Material UI
- Database:
MongoDB
- Reverse Proxy:
Nginx
- Planned Integration:
RabbitMQ
The Community module allows users to:
- Create Topics: Users can create topics related to games or videos.
- Comment on Topics: Add and manage comments on each topic.
- Search and Filter: Filter by title, creator, or related games/videos.
- Dynamic Navigation: Navigate to video pages directly from community discussions.
- (Planned) OAuth Integration: Support for Google and Twitch OAuth login.
- Local Authentication: Standard email and password login with JWT storage in localStorage.
- Playlist Management: Create, sort, and search playlists.
- Video Playback: HLS video streaming with custom player controls.
- Watch List Integration: Add or remove videos from the watch list.
- Video Thumbnails: Display thumbnails for each video in a playlist.
- Responsive Design: Adaptive grid layout for various screen sizes.
- Hover Effects: Interactive hover effects for a modern UI experience.
- Profile Management: Change username, email, and password.
- Profile Picture Upload: Upload and preview profile pictures.
- Dynamic Update: Real-time updates for user settings without page refreshes.
- Video Library: Browse and filter videos by name, game, or playlist.
- Dynamic Filtering and Sorting: Real-time search and sorting options.
- Watch Time Tracking: Track watch time for personalized analytics.
- View History: List of previously watched videos.
- Interactive Navigation: Navigate directly to the watched video from history.
- Responsive Design: Optimized for both desktop and mobile views.
- Personalized Watch List: Save videos to a personalized watch list.
- Dynamic Removal: Easily remove videos from the watch list.
- Interactive UI: Hover effects and smooth transitions for better UX.
- Comprehensive Admin Dashboard: Centralized control of the platform.
- Multi-Section Management:
- Game Management
- Video Management
- Playlist Management
- User Management
- Design Settings
- Feature Management
- Application Properties Management
- The primary limitation is your hardware or server capacity, Streamify is designed to utilize the resources you provide.
- Advanced UI theming is planned but currently limited to basic color and title customization.
This project is licensed under the MIT License.