A full-stack web application that analyzes your Spotify listening habits and provides personalized music recommendations using machine learning.
- Spotify Integration: Seamless login with Spotify OAuth 2.0
- Music Analysis: Visualize your listening patterns and song features
- Smart Recommendations: Get personalized music suggestions using ML
- Shareable Profile: Share your music taste with friends
- Frontend: React, TailwindCSS
- Backend: FastAPI, Python, Scikit-learn
- Database: PostgreSQL
- Authentication: Spotify OAuth 2.0
- Deployment: Vercel (frontend) + Render/Railway (backend)
- Node.js (v16 or higher)
- Python 3.8+
- PostgreSQL
- Spotify Developer Account
-
Navigate to the backend directory:
cd backend -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env # Edit .env with your Spotify API credentials -
Run the development server:
uvicorn app.main:app --reload
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Create a
.envfile:cp .env.example .env # Add your backend API URL and Spotify client ID -
Start the development server:
npm run dev
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:8000/callback
DATABASE_URL=postgresql://user:password@localhost:5432/spotify_analyzer
VITE_API_URL=http://localhost:8000
VITE_SPOTIFY_CLIENT_ID=your_client_id
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Spotify Web API
- FastAPI
- React
- TailwindCSS
- Scikit-learn