WatchWave is a full-stack Video Streaming Web Application built with the MERN stack (MongoDB, Express.js, React, Node.js), designed as a YouTube Clone. It provides a smooth and responsive user experience for uploading, watching, liking, and commenting on videos — all in real-time.
This application is designed with scalability in mind and is fully containerized and deployed on Kubernetes, making it suitable for production-grade environments. It supports horizontal scaling, automated deployments, and integrates modern DevOps practices.
- Project Structure
- Technologies Used
- Libraries Used
- Description
- Features
- Screenshot
- Getting Started
- Usage
- Contributing
- Acknowledgments
- index.html: The main HTML file.
- features: Contains all state management slices.
- main.jsx: Handles the routing of the app.
- api: Contains API calls for getting, editing, and deleting videos.
- ReactJS
- Tailwind CSS
- JavaScript
- Redux Toolkit
- Node.js
- Express.js
- MongoDB
- react-router-dom
- axios
- react-icons
- redux-thunk
- mongoose
- User-friendly interface
- User authentication and authorization
- Video upload and management
- Responsive design for mobile and desktop
- Video playback
- User profile management
To run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/abd0hrz/k8s-streamify-app.git- Navigate to the project directory:
cd k8s-streamify-app- Install the required Node modules in both frontend and backend directories:
npm install-
Configure the environment variables using .env.sample
-
Run the client and server:
npm run dev- Open your browser and go to:
localhost:5173-
Sign Up or Log In
Create a new account or log in with an existing account.
-
Watch Videos
Browse and watch videos from various categories.
-
Upload Videos
Click on "Upload Video" to share your own content.
-
Manage Your Profile
Edit your profile details and manage your uploaded videos.