ποΈ PodHub
A podcast platform designed for users, creators, and admins, providing seamless audio streaming, community engagement, and powerful creator tools.
With the growing popularity of podcasts, PodHub offers audio uploads, subscriptions, loyalty rewards, and analytics, making it easier for creators to share content and for users to enjoy and interact with it.
π Project Goal
To build an interactive and scalable podcasting platform that helps:
π§ Users discover, listen, and engage with podcasts
ποΈ Creators publish and manage their episodes while growing their audience
π οΈ Admins oversee platform activity, analytics, and moderation
β¨ Features π Authentication & Security
User, Creator, and Admin registration/login
JWT-based authentication for secure access
π§ Podcast Episodes
Upload audio episodes (via Cloudinary)
Browse and search episodes
Manage episodes (edit/delete)
π¬ Comments & Replies
Add comments to episodes
Reply to existing comments
View episode-specific discussions
π Subscriptions
Subscribe/unsubscribe to creators
View personal subscriptions
Creators can view their subscribers
π Loyalty System
Earn loyalty points through activity
Track loyalty status and tiers
Admins can update loyalty logic
π Analytics & Insights
Creator dashboard with episode/subscriber analytics
Admin dashboard with platform-wide analytics
πΈ Discounted Subscription Links
Creators generate discount codes
Users can redeem special subscription offers
π οΈ Admin Controls
Manage users, creators, and episodes
Moderate comments and content
Oversee loyalty rewards and engagement
π¨ Responsive & Modern UI
React + Vite frontend with TailwindCSS & Material UI
Works seamlessly on desktop and mobile devices
-
Clone the repository:
git clone https://github.com/Mahesh7s/podhub_project.git cd backend cd frontend //for frontend
-
Install dependencies:
npm install
-
Configure environment variables:
Create a
.envfile in thebackend/directory with the following:
Add your own details in the .env file with same keys
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
- Run the server:
The server will run on
npm start
http://localhost:3000by default.
π οΈ Tech Stack
Frontend: React, Vite, TailwindCSS, Material UI
Backend: Node.js, Express
Database: MongoDB
Authentication: JWT
File Storage: Cloudinary (for audio uploads)
Deployment: Netlify (Frontend) + any Node.js hosting (Backend)