A music discovery application based on vibes. Due to Spotify's new policies, new users need to message me to gain access.
See Docs
·
Report Bug
·
Request Feature
Table of Contents
Vibesbased is a full-stack music discovery web app that takes in plain-text music requests from users and plays personalized song recommendations by combining a host of APIs from Spotify, LastFM, and OpenAI. Users swipe through animated music cards to like and dislike songs building a vibe-driven portfolio over time.
The project is an attempt to offer a more intuitive and mood-aware way to explore music.
-
Spotify Web API & Web Playback SDK
Used to fetch user data and handle music streaming. -
Last.fm API
Pulls songs from tag.getTopTracks endpoint. -
OpenAI API (Completions endpoint)
Used to reason for appropriate tags and endpoints given user requests.
- Frontend: React, TypeScript, HTML, Tailwind CSS
- Backend: Java, Spring Boot
- Infrastructure: Docker, AWS EC2
- Database: PostgreSQL
Follow these steps to set up and run Vibesbased locally for development.
- Node.js (v16 or later) and npm
- Java JDK (version 11 or later)
- PostgreSQL database (locally installed or accessible remotely)
-
Clone the repository
git clone https://github.com/jcandrews2/vibesbased.git cd vibesbased -
Configure environment variables
Create a.envfile inside the backend directory (/backend) with your API keys and database connection string:
SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret LASTFM_API_KEY=your_lastfm_api_key OPENAI_API_KEY=your_openai_api_key DATABASE_URL=jdbc:postgresql://localhost:5432/vibesbaseddb -
Start your PostgreSQL database
Ensure your PostgreSQL server is running and you have created a database namedvibesbaseddb. -
Build and run the backend
cd backend ./mvnw clean install ./mvnw spring-boot:run -
Install dependencies and start the frontend
Open a new terminal window and run:
cd frontend npm install npm start -
Access the app
Open your browser and go to http://localhost:3000
Distributed under the MIT License. See LICENSE for more information.
James Andrews - jcandrews2@icloud.com
