A Single page web application to track favourite breweries across the globe using open source https://www.openbrewerydb.org API
The full video demo of my application can be found on here
- React.js
- Typescript
- MUI - Component library
- react-map-gl - React wrapper to show maps
- mapbox-gl - Map library to show brewery location
- Zustand - State manager
- ZOD - Runtime data validation
- react-router-dom - Frontend routing
- axios - Data fetching
- Error handling is done throughout the app. If any error occurs during data fetching then error popup is shown detailing the error.
- Loading state are shown on UI
- Brewery address is shown on actual map (using mapbox-gl) which the user can interact with.
- Designed my own custom datagrid from scratch to show beer list with filtering/sorting/pagination. The data grid is data agnostic and can easily work with any JSON data.
- The beer searchbox filter on home page scrolls infinitely and fetch data as soon as user scrolls towards the end of the search result. The searched brewery can be added to favorite.
git clone https://github.com/abaldawa/favorite-breweries-tracker.git
cd favorite-breweries-tracker
cp .env.example .env
npm i
npm run start
- Go to browser on
localhost:3000
to see the UI