Fullstack application for music streaming with real-time features:
- Backend: Node.js + Express
- Frontend: React + TypeScript
- Authentication: Clerk
Backend:
- Node.js + Express
- MongoDB
- Socket.io (Real-time)
- Clerk (Authentication)
- Cloudinary (Media Storage)
Frontend:
- React 18
- TypeScript
- Tailwind CSS
- Radix UI
- Clerk Authentication
- Axios
- πΈ Music streaming with player controls
- π Volume control with slider
- π§ Admin dashboard for content management
- π¬ Real-time chat integration
- π¨πΌβπΌ Online/Offline user status
- π Real-time user activity tracking
- π Analytics dashboard
songify/
βββ backend/ # Node.js + Express (API & Core Logic)
β βββ src/
β β βββ controller/
β β βββ models/
β β βββ routes/
β β βββ lib/
βββ frontend/ # React + TypeScript (Web Interface)
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ stores/
βββ music/ # Sample music files
Backend (Node.js):
cd backend
npm install
# Setup .env file
npm run devFrontend (React):
cd frontend
npm install
# Setup .env file
npm run devBackend (.env):
PORT=5000
MONGODB_URI=mongodb://localhost:27017/songify
ADMIN_EMAIL=your-email@example.com
NODE_ENV=development
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
Frontend (.env):
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
- GitHub: @hashiifabdillah
- LinkedIn: Hashiif Abdillah