Skip to content

emrecancorapci/spotify-clone

Repository files navigation

Tauri/React Spotify Clone Application Project

Description

This is a Spotify clone application built with React. It aims to be a desktop application that allows users to search for songs, artists, and albums. Users will also be able to play songs, pause songs, and skip songs.

Getting Started

Prerequisites

Prerequisities can be found in here

Installation

  1. Clone the repo to your local machine using a terminal

    git clone https://github.com/emrecancorapci/spotify-clone
  2. Change directory

    cd spotify-clone
  3. Install NPM packages

    pnpm install
  4. Run the web application

    pnpm dev

Roadmap

Basic Features

  • Create main layout
  • Audio player control components
  • Sidebar basic layout
  • Tooltip implementation
  • Audio player logic with redux
  • Resizable layout
  • Basics for responsiveness
  • Expandable sidebar
  • Playlist page
  • MediaStream API implementation
  • Playable static playlist
  • Queue implementation
  • Basic user profile page
  • Basic artist page
  • Album page
  • Basic song page
  • Skeleton loading
  • Settings page
  • User authentication & authorization on web
  • Login page
  • Now playing module
  • Basic search functionality
  • Shareable links
  • Footer

Advanced Features

  • Playlist customization
  • Web Audio API implementation
  • Drag and drop implementation
  • Context menu (share, add to playlist, etc.)
  • Library filtering & sorting
  • Library folders implementation
  • Artist page improvements (top tracks, related artists, etc.)
  • Search page improvements (search by artist, album, etc.)
  • User profile page improvements (recently played, top artists, top tracks, etc.)
  • Song page improvements (lyrics, etc.)
  • Queue improvements (reorder, remove, etc.)
  • Dynamic playlist background (color based on album art)
  • User authentication & authorization on desktop (needs to be written in Rust)
  • Mobile support

Extra Features

  • Audio visualizer (dynamic player background based on audio frequency)
  • Lyrics
  • Custom themes
  • Light mode