Stream Bits is a video streaming platform inspired by YouTube, built with a modern tech stack. This application features a user-friendly interface for video uploads, efficient transcoding services, and a scalable architecture using microservices and message queues.
- User-Friendly Interface: Intuitive design for easy navigation and video management.
- Video Uploads: Seamless uploading of videos with real-time progress tracking.
- Efficient Transcoding: Supports multiple video formats and resolutions.
- Scalable Architecture: Built with microservices and Kafka for handling large volumes of data.
- Frontend: Next.js
- Backend: Node.js
- Transcoding Service: Node.js with Kafka
- Database: PostgreSQL
- Message Queue: Kafka
stream-bits/
├── frontend/ # Frontend application
├── upload-service/ # Video upload service
└── transcode-service/ # Video transcoding service
To set up the project locally, follow these
1.Clone the repository:
git clone https://github.com/akashwarrior/stream-bits.git
cd stream-bits2.Install dependencies:
For the frontend:
cd frontend
npm installFor the upload service:
cd upload-service
npm installFor the transcoding:
cd transcode-service
npm install
Set up environment variables: Create a .env file in each service directory. Ensure you configure your database and Kafka settings.
Start the frontend:
cd frontend
npm run devStart the upload service:
cd upload-service
npm startStart the transcoding service:
cd transcode-service
mkdir downloads
mkdir output
npm startEnsure that Kafka and PostgreSQL are running and properly configured.
Contributions are welcome! If you'd like to contribute, please follow these steps:
Fork the repository. Create a new branch (git checkout -b feature/YourFeature). Make your changes and commit them (git commit -m 'Add some feature'). Push to the branch (git push origin feature/YourFeature). Create a pull request.