A React app which can be used to see the detailed information about books from GoodReads.com.
The app now uses its own Express API to mitigate CORS related issues. It is not dependent on any third party endpoint anymore.
I created the following wireframe to decide on the key features of the prospective product.
- The project is based on Next.js.
- The project follows
styled-css
methodology for styling, due to Next.js. - All the major React components can be found under
components
folder. - For state management, the project uses
Redux
. - All state management and data fetching logic can be found under
redux
folder. - The UI is built using CSS3 Flexbox.
- The project uses Eslint for checking common linting errors.
- The production site is hosted on Heroku. Check it out.
- To start the development server locally
npm run dev
- To run tests
npm run test
- To run the linter
npm run lint
- To fix common linting errors
npm run lint -- --fix
-
Development Side:
- Use something like
Flow
orReact.propTypes
for strict typing. - Constants like developer keys etc., can be stored and loaded with libraries like
dot-env
. - Ensure consistent
BEM
based naming convention for CSS classes.
- Use something like
-
UI/UX Side:
- As of now, an in-transition search cannot be cancelled, would like to make it cancellable.
- Under the
Description
section, the app renders CDATA, instead of plain text. It could be handled appropriately. - To make it more responsive for smaller screens.
- The Book list can be made to scroll, so as to fit the overflowing UI into the viewport.