Streamify is a movie streaming platform that allows users to stream their favorite movies in different resolutions. It features a seamless login and registration experience using SSO (Single Sign-On) via OneAccess. Admin users can upload movies, which are then stored in MinIO and transcoded into multiple resolutions for the best user experience.
- User Authentication & Registration: Secure login and registration using SSO via OneAccess.
- Admin Dashboard: Admins can upload movies, which are stored in MinIO and transcoded to different resolutions.
- Streaming Service: Users can browse, select, and stream movies in various resolutions based on their network bandwidth.
- Responsive UI: The user interface is fully responsive and user-friendly.
- Frontend: React
- Backend: FastAPI
- Storage: MinIO for storing media content
- Transcoding: Automated transcoding of uploaded movies to multiple resolutions
- Authentication: SSO (Single Sign-On) with OneAccess
Follow these steps to set up the project locally:
- Node.js and npm installed on your machine
- Python 3.8+ installed
- Docker and Docker Compose installed (for MinIO and other services)
-
Clone the repository:
git clone https://github.com/kunal-paul04/Streamify.git cd Streamify/frontend -
Install dependencies:
npm install
-
Create a
.envfile in thefrontenddirectory and configure the backend URL:REACT_APP_BACKEND_URL=http://localhost:8000
-
Start the frontend:
npm start
-
The frontend will run on
http://localhost:3000.
-
Navigate to the backend directory:
cd Streamify/backend -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables by creating a
.envfile in thebackenddirectory with the following content:MINIO_ENDPOINT=http://localhost:9001 MINIO_ACCESS_KEY=your_minio_access_key MINIO_SECRET_KEY=your_minio_secret_key
-
Start the backend server:
uvicorn main:app --reload
-
The backend will run on
http://localhost:8000.
-
Use Docker Compose to set up MinIO:
docker-compose up -d
-
MinIO will be available at
http://localhost:9001. Use the credentials from the.envfile to access it.
- Admin Panel: Login as an admin to upload and manage movies.
- User Panel: Register and browse available movies. Select a movie to start streaming in the desired resolution.
If you want to contribute to Streamify, feel free to open an issue or submit a pull request.
- Satish Sinha - GitHub Profile
- Kunal Paul - GitHub Profile
- Abhay Manchanda - GitHub Profile
This project is licensed under the MIT License.
