Sonore is a modern, lightweight music streaming application designed to let users discover, play, and curate music playlists. It combines a clean UI with performant back-end services to deliver low-latency playback and an easy-to-use experience for listeners and curators.
- Project overview
- Key features
- Tech stack (suggested)
- Quick start (development)
- Production / build
- Environment variables
- File structure (suggested)
- Contributing
- Tests
- Deployment
- Roadmap
- License
- Contact
Sonore is intended to be a full-stack music streaming platform where users can:
- Browse and search music (tracks, albums, artists)
- Stream tracks with minimal buffering
- Create and share playlists
- Like or favorite tracks for quick access
- Manage a profile and view listening history
This repository contains the source code and configuration to run Sonore locally and deploy it to production.
- Fast, resilient audio streaming
- Modern responsive UI (desktop & mobile)
- Search and discovery (by track, artist, album, genre)
- Playlist management
- Create playlists: build and save custom playlists from any tracks in the catalog.
- Blend playlists: merge or "blend" multiple playlists into a single listening session (mix tracks from several playlists while preserving order/weights).
- Video lookup for songs: checkout videos of a song — the backend can generate a best-effort YouTube search query (and return a video id) so clients can show the official music video, lyric video, or official audio when available.
- Link songs: attach external links or related-track references to songs (for example, link to remixes, alternate versions, or artist pages).
- Focus queue feature: create a temporary, focused playback queue — build sessions by duration, by genre/language filters, or by blended playlists to reduce distractions and keep listening tightly curated.
- User authentication and profiles
- Basic analytics (listening counts, favorites)
- Extensible architecture for integrations (third-party catalogs, ads, social)
- Front-end: React
- Back-end: Node.js + Express
- Database: MongoDB
- Media storage / streaming: Cloudinary
- Authentication: JWT and Oauth2
- Dev tooling: ESLint, Prettier
Adjust this section to reflect the actual technologies used in this repository.
Prerequisites
- Node.js (16+ recommended)
- npm or yarn
-
Clone the repository git clone https://github.com/Riya922003/Sonore-Music-Streaming-.git cd Sonore-Music-Streaming-
-
Install dependencies
- If the project is monorepo with folders like
client/andserver/, run installation in each folder: cd frontend && npm install cd backend && npm install - Otherwise from repo root: npm install
- If the project is monorepo with folders like
-
Run services (local dev)
- Start backend: cd backend node server.js
- Start frontend: cd frontend npm run dev Or, use the root dev command if provided: npm run dev
-
Open the app
- Front-end typically runs at http://localhost:3000
- API typically runs at http://localhost:4000 (adjust if different)
Build the application for production:
-
Front-end: cd client npm run build npm run start (or serve static assets)
-
Back-end: cd server npm run build npm run start
The application requires a set of environment variables to run. Example variables (adjust to your implementation):
- SERVER_PORT=4000
- DATABASE_URL=postgres://user:password@localhost:5432/sonore
- JWT_SECRET=your_jwt_secret
- STORAGE_PROVIDER=s3|local
- S3_BUCKET=name-of-bucket
- S3_REGION=region
- S3_ACCESS_KEY_ID=xxx
- S3_SECRET_ACCESS_KEY=xxx
- NODE_ENV=development|production
Place sensitive values in .env and never commit them. Use .env.example to show names and expected format.
Contributions are welcome! Suggested workflow:
- Fork the repo
- Create a feature branch: git checkout -b feat/my-feature
- Implement changes and add tests where applicable
- Run linting and tests
- Open a pull request describing the changes
Please follow the existing code style and add tests for new functionality. If you intend to make a large change, open an issue first to discuss the design. Open issues and feature requests are tracked in GitHub Issues. Please add ideas or request features there.
- Email- [email protected]
- Password-Riya@2003
This project is released under the MIT License. See LICENSE for details.
Maintainer: Riya Gupta
- GitHub: https://github.com/Riya922003