React SPA that searches for artists and their upcoming events via the Bandsintown API, with localStorage caching and Jest test coverage.
Type an artist name into the search bar and the app fetches their profile and upcoming events from Bandsintown. Each event card links out to the Bandsintown event page. The last 10 searched artists are stored in localStorage with a two-week TTL so repeat searches do not make unnecessary API calls. A cache eviction strategy removes the oldest entry when localStorage is full.
- Artist search with live API lookup (Bandsintown)
- Upcoming events list with date, venue, and external link
- Date-range filtering: today, upcoming, or a specific date via calendar picker
- Recent search history — last 10 artists persisted in localStorage
- LocalStorage cache with 14-day TTL and LRU-style eviction on quota exceeded
- Jest unit tests for
ArtistCard,EventCard, andSearchBarcomponents - Deployed to GitHub Pages: sarb0z.github.io/ArtistFinder
React 18, React Router 6, Axios, Bootstrap 5, React Bootstrap, Jest, React Testing Library
# 1. Create a .env file in the project root:
# REACT_APP_BASE_URL=<bandsintown base url>
# REACT_APP_API_KEY=<your bandsintown app_id>
yarn install
yarn start # development server at http://localhost:3000
yarn test # run Jest test suite
yarn run deploy # build and push to GitHub PagesPersonal project, completed 2022. The Bandsintown API requires a registered app_id; the .env file is intentionally excluded from version control.