This application is a web application that allows users to search, play, and share music of different genres. This application is currently under development.
Note: The development process of this project was stopped because it took too much time. I cannot yet give any information about whether it is temporary or permanent.
This application is built using MERN (MongoDB, Express.js, React.js, Node.js) stack and a Server Side Rendering (SSR) framework such as Next.js. Additionally, Redis is used for caching and improving performance.
- MongoDB - NoSQL database is used.
- Express.js - Server-side web application framework is used.
- React.js - Used for building user interfaces.
- Node.js - Used for running server-side logic.
- Next.js - Used for server-side rendering.
- Redis - In-memory data store used for caching.
- MiniSearch - Used for full-text search capabilities.
To run this application on your local machine, follow the below steps:
- Clone this repository:
git clone https://github.com/fatihege/rival-music.git
- Navigate to the project directory:
cd rival-music/server
for server-side,cd rival-music/client
for client-side - Update NPM config:
npm config set legacy-peer-deps true
- Install the required dependencies:
npm install
- To start the development server:
npm run dev
The application will be running at localhost:3000
.
To run this application on your local machine using Docker, follow the below steps:
- Clone this repository:
git clone https://github.com/fatihege/rival-music.git
- Navigate to the project directory:
cd rival-music
- Build the Docker image:
docker compose build
- Run the Docker container:
docker compose up
The application will be running at localhost:3000
.
Endpoint | Description | Finished |
---|---|---|
GET / | Home page | ✅ |
GET /explore | Explore music genres and search for everything | ✅ |
GET /genre/:genre | A genre with the given tag | ✅ |
GET /library | User's library of saved songs and playlists | ✅ |
GET /library/playlists | User's liked and created playlists | ✅ |
GET /library/tracks | User's liked tracks | ✅ |
GET /library/albums | User's liked albums | ✅ |
GET /playlist/:id | A playlist with the given ID | ✅ |
GET /artist/:id | An artist with the given ID | ✅ |
GET /album/:id | Album page with the given ID | ✅ |
GET /profile | Users profile | ✅ |
You can support this project by starring ⭐, sharing 📲, and contributing 👩💻
And also you can support me by buying me a coffee ☕️
This project is licensed under the MIT License.