Musify [https://musifypesu.netlify.app/]
Musify is a full-stack music streaming web application inspired by Spotify. It allows any user to upload songs, search globally, and stream audio in real time — with no authentication required
The application is built using React, Express, and MongoDB Atlas, with cloud deployment via Netlify and Render.
🚀 Features
🎧 Upload audio files to a global cloud library
🔍 Search songs by title or artist
📂 Centralized song storage using MongoDB GridFS
🌐 No login or user accounts required
☁️ Fully cloud-hosted (Frontend + Backend + Database)
🏗️ Tech Stack Frontend
React (Create React App)
JavaScript (ES6+)
HTML5 Audio API
CSS
Backend
Node.js
Express.js
MongoDB (Atlas)
GridFSBucket (native MongoDB streaming)
Multer (in-memory uploads)
Deployment
Frontend: Netlify
Backend: Render
Database: MongoDB Atlas (M0 Free Tier)
🌐 Live Deployment Architecture Browser (User) ↓ Netlify (React Frontend) ↓ Render (Express Backend) ↓ MongoDB Atlas (GridFS + Metadata)
🔌 API Endpoints Health Check GET /api/ping
Upload Song POST /api/songs/upload Content-Type: multipart/form-data
Fetch All Songs GET /api/songs
Stream Audio GET /api/songs/:id/stream
🛠️ Environment Variables Frontend (Netlify) REACT_APP_API_BASE=https://.onrender.com
Must be set in Netlify → Site Settings → Environment Variables Redeploy required after change.
Backend (Render) MONGO_URI=mongodb+srv://:@cluster.mongodb.net/spotify PORT=10000
Stored securely in Render → Environment Variables
⚠ Important Notes MongoDB Free Tier Behavior
MongoDB Atlas M0 clusters automatically pause after inactivity
When paused, the song list may appear empty temporarily
Logging into Atlas or first API call resumes the cluster
✔ This is expected behavior on the free tier
🧪 Local Development (Optional) Backend cd spotify-backend npm install npm run dev
Frontend cd spotify-frontend npm install npm start
🚫 Limitations
No user authentication
No playlists or favorites
No admin moderation
MongoDB free tier may pause during inactivity
📌 Future Improvements
User accounts & authentication
Playlist creation
Song thumbnails / album art
Like & favorite system
Streaming progress persistence
Admin moderation panel
👨💻 Author
Musify Built as a full-stack academic project demonstrating real-world deployment of a MERN-based application.
🔗 Live Demo: https://musifypesu.netlify.app/
📜 License
This project is licensed under the MIT License. Free to use for educational and personal projects.