Skip to content

Pushkar-Kulkarni-00/Musify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

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

▶️ Stream audio directly from the database

📂 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.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors