A sleek, modern web application for discovering, exploring, and saving your favorite albums. Built with React, Spotify API, and modern web technologies.
- π Advanced Search - Search albums, artists, and songs in real-time
- πΏ Album Details - View comprehensive information about any album
- π΅ Track Previews - Listen to 30-second previews of songs (when available)
- β€οΈ Save Favorites - Save your favorite albums locally using LocalStorage
- π New Releases - Discover trending and featured albums
- π Smart Filtering - Filter by year, popularity, and more
- ποΈ Sorting Options - Sort by popularity, release date, name, and more
- π Beautiful UI - Glassmorphism design with smooth animations
- π± Responsive Design - Works seamlessly on mobile, tablet, and desktop
- π¨ Dark Mode - Premium dark theme optimized for music discovery
- β¨ Smooth Animations - Framer Motion animations throughout
- π Spotify Integration - Open albums directly in Spotify
- π Recently Viewed - Track your recently viewed albums
- π Recently Searched - Quick access to recent searches
- Large hero section with gradient background
- Search bar with voice search capability
- New releases section
- Browse by mood categories
- Recently searched section
- Responsive grid layout
- Album cards with rich information
- Filter and sort options
- Loading states with skeleton loaders
- No results handling
- Large album cover with hover effects
- Comprehensive album information
- Full track list with preview capabilities
- Related albums from same artist
- Spotify integration button
- All saved favorite albums
- Organized grid layout
- Quick access to manage favorites
- Empty state guidance
- React 18 - UI library
- React Router 6 - Client-side routing
- Tailwind CSS - Utility-first CSS
- Framer Motion - Animation library
- Zustand - Lightweight state management
- LocalStorage - Persistent storage for favorites
- Spotify Web API - Music data
- Axios - HTTP client
- React Icons - Icon library
- Chart.js - Data visualization (optional)
- Node.js (v14 or higher)
- npm or yarn
- Spotify Developer Account
-
Clone the repository
cd Spotify_albumfinder -
Install dependencies
npm install
-
Set up Spotify API credentials
- Go to Spotify Developer Dashboard
- Create a new application
- Get your Client ID and Client Secret
- Create a
.envfile in the root directory:
REACT_APP_SPOTIFY_CLIENT_ID=your_client_id_here REACT_APP_SPOTIFY_CLIENT_SECRET=your_client_secret_here REACT_APP_SPOTIFY_REDIRECT_URI=http://localhost:3000/callback
-
Start the development server
npm start
-
Open your browser
- Navigate to
http://localhost:3000
- Navigate to
- Enter an album name, artist name, or song title in the search bar
- Press Enter or click the Search button
- Browse through the results
- Use the filter bar to narrow results by:
- Year - Filter by release year
- Popularity - Filter by minimum popularity score
- Sort - Sort by popularity, newest, oldest, or alphabetical
- Click the heart icon on any album card
- View all favorites in the Favorites page
- Favorites persist across browser sessions
- Open an album details page
- Click the play button on any track
- Listen to the 30-second preview
- Click the "Open on Spotify" button on album details page
- Opens the album in Spotify (requires Spotify account)
src/
βββ components/ # Reusable components
β βββ AlbumCard.jsx
β βββ ArtistCard.jsx
β βββ FavoriteButton.jsx
β βββ FilterBar.jsx
β βββ Footer.jsx
β βββ Loader.jsx
β βββ Navbar.jsx
β βββ SearchBar.jsx
β βββ TrackList.jsx
β βββ index.js
βββ pages/ # Page components
β βββ AboutPage.jsx
β βββ AlbumDetailsPage.jsx
β βββ FavoritesPage.jsx
β βββ HomePage.jsx
β βββ SearchPage.jsx
β βββ index.js
βββ services/ # API services
β βββ spotifyApi.js
βββ context/ # State management
β βββ store.js
βββ hooks/ # Custom hooks
β βββ index.js
βββ utils/ # Utility functions
β βββ helpers.js
βββ App.jsx
βββ index.jsx
βββ index.css
- Primary - Spotify Green:
#1DB954 - Background - Dark Black:
#0f172a - Card Background - Dark Gray:
#1e293b - Accent - Purple:
#8b5cf6 - Text - White/Light Gray:
#f1f5f9
- Glassmorphism - Semi-transparent glass effect on cards
- Gradient Backgrounds - Dynamic gradients
- Smooth Animations - Framer Motion for all transitions
- Premium Typography - System fonts optimized
- Responsive Grid - Auto-adjusting layouts
- Logo with hover effects
- Navigation links
- Theme toggle
- Mobile-responsive menu
- Real-time search input
- Voice search button
- Loading states
- Search suggestions
- Album artwork
- Album metadata
- Popularity badge
- Favorite button
- Hover animations
- Track number, name, artist
- Duration display
- Play/pause functionality
- 30-second previews
- Sort options
- Year filtering
- Popularity filtering
- Clear filters button
GET /search- Search for albums, artists, tracksGET /albums/{id}- Get album detailsGET /albums/{id}/tracks- Get album tracksGET /artists/{id}- Get artist detailsGET /artists/{id}/albums- Get artist's albumsGET /browse/new-releases- Get new releasesGET /browse/featured-playlists- Get featured playlistsGET /recommendations- Get recommendations
Albumix uses LocalStorage for:
- Favorites (
albumix-favorites) - Saved album data - Recent Searches (
albumix-recent-searches) - Search history - Recently Viewed (
albumix-recently-viewed) - Viewed albums - Spotify Token (
spotifyAccessToken) - API authentication
- Client credentials flow is used for API authentication
- No user passwords are stored
- Access tokens are cached with expiration
- All external links open in new tabs
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
npm run buildnpm install -g netlify-cli
netlify deploy --prod --dir=buildnpm install -g vercel
vercel --prod- User authentication with Spotify OAuth
- Personalized recommendations
- Playlist creation
- Social sharing features
- Advanced analytics dashboard
- Voice search integration
- Offline mode
- Genre-based browsing
- User ratings and reviews
- Music mood playlists
- Some albums may not have preview URLs available
- Spotify API rate limiting may apply
- Voice search requires browser permission
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
For issues, questions, or suggestions:
- GitHub Issues: Report an issue
- Email: contact@albumix.com
- Spotify API - For providing music data
- React Community - For amazing libraries and tools
- Design Inspiration - Apple Music, Spotify, and modern SaaS platforms
Built with β€οΈ for music lovers everywhere
This is a fan-made project and is not affiliated with Spotify AB.