Matthew Chhay's Book Search using the Google Books API. Open Live Preview
- Introduction
- Features
- Technologies Used
- Screenshots
- MVP
- Going beyond the MVP
- Issues discovered during development
- Setup
- Tools Used
- Project Status
- Room for Improvement
An app where a user can search for books from Google Book's API using React JS, React Router and Asynchronous programming.
- Search for books based on search terms from Google's Book database
- Can return up to 40 results on a single page
- Can sort by relevance or newest
- Modal with more information appears after clicking on a result
- React JavaScript with Create React App
- React Router
- SCSS/CSS
- Google Books API
- Header container introducing the page
- Form containing text input and search button
- Text input is used as a query and fetches the Google Books API using async/await
- A container of book card components in a grid-like format and responsive on different screen sizes
- BEM convention used appropriately
- Components require styling have its own SCSS file
- Palette uses variables and is stored in a global styles folder
- Iterators are used over loops
- User can start a search by hitting the enter key or by pressing the search button
- Provide feedback to user when there are no results for a particular query
- A modal appears with more information about a book after clicking on a book card
- Star Rating indicator
- Pages to see other results
- Google Books API totalItems value fluctuates when changing the following query parameters: maxResults, orderBy or startIndex for the same searchInput
- Clicking on the page buttons quickly may continuously loop fetch requests
- Git clone this repo
git clone git@github.com:chhaymatt/books.git
- Run
npm install
- Run
npm start
- Run
npm deploy
- Create React App - create a starting React app.
- React Router - for navigating to other modal views in the URL.
- Prettier - to tidy up code in spacing and structure. Get Prettier Extension
- Font Awesome - a library of icons that can be imported easily. Get Font Awesome icons
- Favicon.io - generate a favicon. Generate favicon
- Meta Tags - generate metadata. Generate metadata
- Coolors - colour palette generator. Generate colour palette
- Google Fonts - a library of free fonts. Get Google Fonts
Project is ongoing
- Address eslint warnings
- Move getData query to a higher level and pass props down rather than up and may try useContext
- Sort by Oldest for the current page