MERNtube is a comprehensive web application built using the MERN stack, offering many features similar to YouTube. Although it currently lacks a video recommendation system, this feature is planned for future updates.
- Login: Secure user login system.
- Signup: New user registration.
- Logout: Session logout functionality.
Personalized user space for managing content:
- Home: User-specific homepage.
- Videos: User's uploaded videos, with filtering options by latest, oldest, and popularity.
- Playlists: Manage playlists (create, edit, update, delete).
- Subscribers: View subscriber base.
Manage and view video content:
- Video Feed: Infinite scroll video feed.
- Sorting: Sort videos by latest or oldest.
- Publishing: Publish new videos.
- Management: Remove, update, and change video publish status.
- Watch Later: Bookmark videos to watch later.
- Playlist Integration: Add videos to playlists.
Manage channel subscriptions:
- Subscribe/Unsubscribe: Subscribe or unsubscribe from channels.
- Subscription List: Manage subscribed channels list.
Track and manage watch history:
- History View: View watch history with infinite scroll pagination.
- Management: Remove individual videos or clear entire history.
- Pause/Resume: Pause or resume history tracking.
Bookmark videos to watch later:
- Watch Later List: View watch later list with infinite scroll pagination.
- Management: Remove individual videos.
Manage liked videos:
- Liked Video List: View liked videos with infinite scroll pagination.
Manage videos within playlists:
- Playlist Video View: View all videos in a playlist with filtering options and infinite scroll pagination.
Enhanced video viewing with interactive features:
- Video Information: Display video title, description, views, and upload date.
- Interaction: Like, unlike, and comment on videos.
- Comments: View and interact with comments, with infinite scroll pagination.
Manage user settings.
Overview of channel statistics and video management tools.
- React.js
- TypeScript
- Tailwind CSS
- react-router-dom
- Redux Toolkit
- react-redux
- axios
- js-abbreviation-number
- react-hot-toast
- react-icons
- react-timeago
- tailwind-merge
- Node.js
- Express.js
- Mongoose
- mongoose-aggregate-paginate-v2
- Multer
- JSON Web Token
- dotenv
- CORS
- Cookie-parser
- bcrypt
- Cloudinary