The ‘Make a Spotify Clone from Scratch: JavaScript PHP and MySQL Course’ is an upskilling program that teaches students how to create a music streaming website similar to Spotify. The course covers everything that Spotify offers such as user registration, real-time search for artists & songs, creating and editing playlists, and basic controls like play, pause, skip, shuffle and repeat.

The course is suitable for anyone. It teaches several in-demand skills including HTML, CSS, PHP, JavaScript, JQuery, and MySQL. This course is an excellent resource for anyone looking to stand out as a software developer or software engineer. The course is usually available for INR 2,299 on Udemy but students can click on the link and get the ‘Make a Spotify Clone from Scratch: JavaScript PHP and MySQL Course’ for INR 449.

Who all can opt for this course?

  • Web developers or software engineers who aspire to work for a company like Google, Facebook, or Microsoft.
  • Those who wish to learn HTML, JavaScript, PHP, and MySQL.

Course Highlights

Key HighlightsDetails
Registration LinkApply Now!
PriceINR 449 (INR 2,29980% off
Duration15 hours
Student Enrollment10,173 students
InstructorReece Kenney
Topics CoveredHandling user data, styling registration page, navigation menu, tables, music player, search bar, etc.
Course LevelBeginner
Total Student Reviews1,809

Learning Outcomes

  • Create your own music streaming platform similar to Spotify.
  • Master JavaScript, PHP, HTML, and MySQL.
  • Learn vital skills that are crucial for any aspiring software engineer.

Course Content

S.No.Module (Duration)Topics
1.Setting up the sign up/ log in forms (22 minutes)Setting up your local server
Creating the login form
Creating the register form
2.Handling the user’s submitted data (01 hour 13 minutes)Intro to PHP – Handling form submission
Form sanitation – Cleaning the input
Separating our code
Preparing our validation functions
Creating the Account class
Validating the username
Validating the name and emails
Validating the passwords
Checking if the sign up was successful
Outputting error messages
Creating our Constants class
Remembering form values
3.Completing the sign up / log in process (43 minutes)Creating the users table
Connecting to our database from PHP
Inserting user details
Testing out the sign up process!
Query not working? Watch this video
Last remaining validation checks
Login handler
4.Styling the registration page (01 hour 10 minutes)Adding a background image
Styling the login container
Styling our text boxes
Input placeholder color
Styling the submit buttons
Buttons to switch between forms
Showing and hiding the forms on press
Showing only the relevant form when data is submitted
Show/hide button – mouse pointer
Right section content
Applying style to the right section content
56,800+ icons FOR FREE – Icons8
Styling the error messages
Remembering the username after failed log in attempt
5.Creating the now playing bar (59 minutes)Quick overview of the index page
Now playing bar container
Creating the now playing bar element
Left, center and middle sections of the bar
All the icons for our site
Adding our player buttons
Making the play and pause buttons larger
Progress bar parent elements
The progress bar
Album artwork
Track info labels
Volume bar
6.Navigation menu (25 minutes)Page containers
Creating our navigation bar container
Navigation bar site logo
Navigation items
Navigation search icon
Navigation links color change on hover
7.Tables and data (22 minutes)Overview of our MySQL table structure
Creating our database tables
Inserting data into the artists, genres and albums tables
Inserting data into the songs table + FREE music files
Shortcut to inserting data into the songs table
8.‘Music you might like’ page (37 minutes)Organisational trick
Main view containers
Header and footer files
Getting albums from the database
Outputting the album artwork images
Styling the album artwork images
Styling the album title
Making the albums clickable links
9.Album page (01 hour 17 minutes)Getting album id from url
Getting the artist of the album
Creating the Artist class
Creating the Album class
Album header section
Styling the header section
Displaying the number of songs in the album
Creating the Song class
Getting the songs on an album
Outputting the track count
Outputting the track name and artist name
Outputting the track duration
Styling the track list rows
Styling the track count
Track style finishing touches
10.The music player (02 hours 42 minutes)Introduction to HTML5 Audio
Creating our initial playlist of 10 random songs
Including JQuery
Set track function setup
Set track function
Playing and pausing the song via buttons
Introduction to Ajax calls
Getting a song via ajax
Getting the artist via ajax
Getting the album via Ajax
Updating the plays count when a song is played
Displaying the time remaining label
Formatting the time remaining
Updating the progress bar as the song plays
Dragging the progress bar on click
Controlling the volume
Updating the volume progress bar
Preventing controls from highlighting on mouse drag
Skipping to the next song
Song repeat mode
Repeat button
Playing the next song when current song ends
Previous song button
Mute button
Shuffle button
Shuffle – Part 1
Shuffle – Part 2
Playing songs by clicking on the song’s play button
Fixing the song’s play button bug
11.Seamless page transitions (33 minutes)UserLoggedIn JavaScript variable
Changing pages dynamically
Knowing if a page was loaded from ajax or not
Replacing all links with our dynamic links
Small play button bug
Changing the URL when we load a new page
Browse page
12.Artist page (28 minutes)Artist info section
Styling the artist info section
Songs section
Albums section
Artist page play button
Now playing bar links
13.Search page (45 minutes)Creating our search input section
Styling the search input
Searching when the user stops typing
Searching for songs
Searching for artists
Styling the artists search results section
Fixing the artist name bug
Searching for albums
Invalidating the search timer
14.Your music page (playlists) (44 minutes)Creating our playlist MySql tables
Creating the playlist page
The createPlaylist function
Create playlist file
Creating the User class
Outputting the user’s playlists
Creating the Playlist class
Playlist links
Styling the playlists
15.The playlist page (21 minutes)Creating the header section of the page
Displaying the playlist’s songs
Delete playlist function
Delete playlist ajax
16.Song options menu (01 hour 08 minutes)Creating the options menu
Showing the options menu
Hiding the options menu
Add to playlist dropdown menu
Populating the dropdown with playlists
Styling the dropdown menu
When the dropdown menu is changed
Saving songs to a playlist
Bug fix: Adding to an empty playlist
Copying options menu to other pages
Remove song from playlist function
Removing song ajax code
17.Settings page (01 hour 01 minutes)Settings page setup
Logout button
Settings link on the navigation menu
User details forms
Styling the user details forms
Update email function
Update email ajax code
Update password function
Update password ajax code
You made it! Congratulations!

Resources Required

No prior knowledge is required. If students are aware of basic HTML that would be beneficial, but it is not a pre-requisite.

Featured Review

Ahmad Sheraz (5/5): I loved the course and it was an amazing journey. Instructor cooperation was more than I could ask for. As a beginner in programming, I can say without any doubt that this course is absolutely necessary for anyone who wants to learn programming not just web development. With due respect, I do have a suggestion that this course can become an ultimate source for learning programming if it also had exercises. For that to work out, udemy must have some way to increase progress by doing exercises in some courses so that learners actually get inclined to do it there, so I don’t blame the instructor entirely for that. I also have a request for the instructor, please provide sources where you think we can learn the best and go deeper in the knowledge. That would be an added bonus. Last, there is some advice for people who want to buy this course, don’t buy this course if you are a complete beginner. Even though the instructor explained everything in complete detail without wasting time. It’s way better if you have some background knowledge about programming. If you are going to buy it and you have experience then rest assured this course is the absolutely necessary step you took toward your programming journey.


  • Keith K (5/5): One of my best takeaways from this was the de-romanticising of coding.
  • Nanette Julius (5/5): You have literally been the best instructor I have come across on Udemy.
  • Tyler Billings (5/5): Reece’s instructional methods and teaching styles are perfect for those learning the concepts of JavaScript, PHP, and MySQL.
  • Chris (5/5): I wouldn’t say its for beginners but It has been excellent and the fact he answers questions still made me decide to go from 4.5 to 5 stars.


  • Jori E. (3.5/5): I definitely did enjoy this course but I only had a couple of problems with it. The course says that no prior knowledge is needed other than HTML but that is not true. You need to know at least the syntax of PHP before doing this course or you will be confused at the beginning until you’ve done enough. The instructor doesn’t really take the time to explain the syntax of the languages but more just goes straight into it. Another thing, is that I felt best practices were not used in this course. It felt as if the code was all over the place but that could just be PHP (I’m fairly new to PHP so this just may the case of the language). If you are an absolute beginner, I would not recommend the course but if you are a beginner looking for more PHP practice then I would definitely recommend this course. All in all though, good job to the instructor cause I definitely did learn a lot from this course!
  • Michael B. (3.5/5): Overall, it’s a decent course. I was dissapointed because mp3 formats allow you to house album metadata and is accessible through javascript. It kinda makes the whole thing needlessly complicated. I did love the fact that he goes into MySQL database creation and manipulation, then accessing it through HTML/js.

About the Author

The instructor of this course is Reece Kenney who is a software engineer at Microsoft. With a 4.7 instructor rating and 8,802 reviews on Udemy, he offers 9 courses and has taught 32,118 students so far.

  • Reece Kenney is from Rugby, England.
  • He works as a software engineer for Microsoft, working on a range of front-end and back-end programming projects using languages such as JavaScript, TypeScript, and C#, etc.
  • He has a lot of expertise in creating products that are used every day by millions of people thanks to his job at Microsoft.
  • He has also collaborated with some of the world’s top-notch software engineers for a couple of projects.

Comparison Table

ParametersMake a Spotify Clone from Scratch: JavaScript PHP and MySQLBuild a Social Network from Scratch: JavaScript PHP + MySQLMake a Responsive Portfolio Website: JavaScript and HTML
OffersINR 449 (INR 2,299) 80% offINR 449 (INR 3,499) 87% offINR 449 (INR 3,499) 87% off
Duration15 hours17 hours4 hours
Student Enrollments10,17213,5134,054
InstructorsReece KenneyReece KenneyReece Kenney
Register HereApply Now!Apply Now!Apply Now!

Leave feedback about this

  • Rating