This is an example of a book search engine that has been refactured from a RESTful API to a GraphQL API built with ApolloServer. It is built using MERN stack with a React front end, MongoDB database, and Node.js/Express.js server and API. Check the appropriate files and file structure to compare and contrast utility from a typical RESTful API with this ApolloServer based MERN stack.
The site allows users to search for books through Google Books API, which they can save books they're interested in to their saved books page after registering/login. Users can remove saved books in case they added the wrong book or is no longer needed. When users search a book, a max of 10 results is shown to choose from to select from, so refining the search query may be necessary to find a specific book/edition. The book card details presented show a book’s title, author, description, image, and a link to that book on the Google Books site.
- To install just clone this repo:
git clone [email protected]/hculp/book-search-engine
- Install all required packages with npm:
npm i
- To run the app locally, just use
npm run develop
.
To test the production side site, click on this Heroku link.
Create an account to test the features.
This is a picture of the homepage when the user opens the app.
This is a picture demonstrating a search query using book The Iliad.
This is an example image of the saved books page after a user has logged in and saved some books they searched.
Contribution falls under open MIT license.
- React
- GraphQL
- MongoDB and Mongoose
- Node.js
- Express.js
- Apollo Server
- JWT
- bcrypt
- Vite
- Bootstrap
- Google Books API
Send any questions or feedback to the following contacts:
- GitHub: https://github.com/hculp
- Email: [email protected]
Copyright (C) 2023 Houston Culpepper.
Distributed under the MIT License.