videoTube is a comprehensive video platform where users can:
- Upload and play videos 📹
- Like and comment on videos ❤️💬
- Save liked videos in a special section
- Track watched videos in your watch history
- Enjoy optimistic view counting for a smooth experience 📊
- Frontend: React, Redux, React Query, Axios, Tailwind CSS
- Backend: Node.js, Express, MongoDB, Mongoose ORM
- Deployment: Docker, Nginx, Render
- Upload and play videos
- Like and comment on videos
- Save liked videos
- Track watched videos
- Optimistic view counting
Watch the demo video for a walkthrough of the project:
Check out the live project: Live Project
To get a local copy up and running, follow these simple steps.
- npm
- MongoDB
-
Clone the repo
git clone https://github.com/MerakiShubh/videotube-backend.git
-
Install npm pachages
npm install
-
Set up environment variables Copy the .env.sample file to .env and fill in the necessary values.
cp .env.sample .env
-
Start the development server
npm run dev
-
Pull the Docker image from Docker Hub:
docker pull merakishubh/videotube:latest
-
Create a .env file based on the .env.sample file and fill in the necessary values.
-
Run the Docker container:
docker run --env-file .env -p 3000:3000 merakishubh/videotube:latest