You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+28-11Lines changed: 28 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# 🎵 TrackStack
2
2
3
-
Do you want to find a new **banger**? Try out this **music recommendation web app** that uses an algorithm based on **song metadata** (genre, energy, danceability, and more) to recommend **tracks** based on the parameters you choose. Discover new tracks from a database of over **50,000 tracks**!
3
+
Do you want to find a new **banger**? Try out this **music recommendation web app** that uses vectors based on **song metadata** (genre, energy, danceability, and more) enhanced by a weighted system to recommend **tracks** based on the weights you assign to each feature. Discover new tracks from a database of over **50,000 tracks**!
4
4
5
5
Check out the live version in Render:
6
6
@@ -46,7 +46,7 @@ I built this project for two main reasons:
46
46
47
47
## 📖 Usage
48
48
49
-
### Track new songs based on your preferences
49
+
### * Track new *songs* based on your preferences
50
50
51
51
Want to find a new banger?
52
52
@@ -64,15 +64,15 @@ In a few seconds you'll be redirected to a page showing the tracks that match yo
To search for a specific song, artist, or album, use the search bar in the top navbar and type what you are looking for. The system will load several results that try to match your query. The search is powered by ElasticSearch and its fuzzy search capabilities, using features like **fuzzy search**, **n-grams**, and **edge-ngrams** to increase recall and tolerate typos. Search across more than **28,000** results available to find the specific song you are looking for, as shown in the image below:
70
70
71
71
<palign="center">
72
72
<img src="./assets/songSearch.png" alt="Intelligent Song Search" />
73
73
</p>
74
74
75
-
### Check out the tracks
75
+
### * Check out the *tracks*
76
76
77
77
What's a good recommendation system if you can't **listen** to the tracks it suggests?
78
78
@@ -82,10 +82,10 @@ What's a good recommendation system if you can't **listen** to the tracks it sug
82
82
A **30-second song-preview** will be played automatically. At the bottom of the page, you can see more information about the currently playing track, such as its elapsed time and artists. The player also includes extra controls, like a button to play a random song, buttons to play the previous and next tracks by ID, and a slider to control the volume:
83
83
84
84
<palign="center">
85
-
<img src="./assets/play_song.png" alt="Click the play button" />
85
+
<img src="./assets/playSong.png" alt="Click the play button" />
86
86
</p>
87
87
88
-
### Learn more about a track
88
+
### * Learn more about a *track*
89
89
90
90
Want to know more about a specific track that caught your eye?
91
91
@@ -94,10 +94,10 @@ Want to know more about a specific track that caught your eye?
94
94
You'll be redirected to a page that shows additional information about the track, including its genres, duration, release date, album, and even a link to Spotify if you want to hear the full version:
1. Click the **Albums** section in the left sidebar.
133
+
2. Click on the image of any album that catches your attention.
134
+
135
+
You'll be redirected to a page where you can listen to their songs:
136
+
137
+
<palign="center">
138
+
<img src="./assets/albums.png" alt="Music album page"/>
139
+
</p>
140
+
141
+
<palign="center">
142
+
<img src="./assets/albumSongs.png" alt="Songs from an album" />
143
+
</p>
144
+
128
145
---
129
146
130
147
## 🖥️ Frontend Technologies
@@ -147,7 +164,7 @@ Explore over **100 genres** and find your next favorite song based on your taste
147
164
148
165
-**Sequelize**: An Object-Relational Mapping (ORM) for managing relational data models and interacting with the PostgreSQL database in a structured way. It retrieves dozens of songs, artists and albums in seconds, and by using a randomly generated seed in queries, delivers semi-random results that keep the experience fresh, letting users discover a new song or artist every time they visit.
149
166
150
-
-**PostgreSQL**: Primary Database, storing over **300k records** with high reliability and performance.
167
+
-**PostgreSQL**: Primary Database, storing over **300k records** with high reliability and performance. In addition with the PostgreSQL vectors extension to store a vector for each song stored in the database.
151
168
152
169
-**ElasticSearch**: High-performance search engine used to execute complex queries, with over **30k indexed documents** for lightning-fast retrieval. Designed to be flexible, being able to return the exact song, artist or album that you're looking for, or provide approximate matches by doing a **fuzzy search**, **n-grams**, and **edge-ngrams**, offering users a fast and modern search experience.
0 commit comments