Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ashlynn4567/book-search-engine
Book Search Engine is a site in which users can search for any book title or author, and search results containing their query will appear below. In this project, I integrate a GraphQL API into a fully functioning book engine that was built using the MERN stack, replacing the previous RESTful API.
https://github.com/ashlynn4567/book-search-engine
apollo bcrypt concurrently css expressjs graphql heroku javascript jwt mern-stack mongodb mongoosejs nodejs nodemon npm react
Last synced: 3 days ago
JSON representation
Book Search Engine is a site in which users can search for any book title or author, and search results containing their query will appear below. In this project, I integrate a GraphQL API into a fully functioning book engine that was built using the MERN stack, replacing the previous RESTful API.
- Host: GitHub
- URL: https://github.com/ashlynn4567/book-search-engine
- Owner: ashlynn4567
- Created: 2022-06-28T02:15:05.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-08-04T18:11:18.000Z (over 2 years ago)
- Last Synced: 2023-03-04T15:13:08.652Z (over 1 year ago)
- Topics: apollo, bcrypt, concurrently, css, expressjs, graphql, heroku, javascript, jwt, mern-stack, mongodb, mongoosejs, nodejs, nodemon, npm, react
- Language: JavaScript
- Homepage: https://arcane-sands-85119.herokuapp.com/
- Size: 42.2 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Book-Search-Engine
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
## Table-of-Contents
- [Description](#description)
- [Deployed Site](#deployed-site)
- [Features](#features)
- [Technologies](#technologies)
- [Future Development](#future-development)
- [Credits](#credits)## Description
Book Search Engine is a site in which users can search for any book title or author, and search results containing their query will appear below. In this project, I integrate a GraphQL API into a fully functioning book engine that was built using the MERN stack, replacing the previous RESTful API.
## Deployed Site
Follow [this link](https://arcane-sands-85119.herokuapp.com/) to view and use my site!
## Features
This is how the front-end webpage appears to viewers. It is responsive, adapting to multiple screen sizes. The main page shows new users a menu, with which they can search for books, login, or signup. If the user is logged in, the buttons they will see options to search for books, view their saved books, or logout.
Clicking the login/signup button on the main page will bring users to a login portal. The user can toggle the modal between a "sign up" or "login" option. Here they can either enter new credentials to sign up as a user in the signup section, or they can enter their already verfied credentials into the login section. To sign up, users must provide a username, a valid email address, and a password. To login, they only need to provide their email address and password for verification. Later, users can logout using the "logout" button that appears in the site's navigation.
If the user selects "search for books," they are then presented with an input field to search for books. Clicking "submit" will return a list of search results, each featuring a book's title, author, description, image, and a link to that book on the Google Books site. If the user is logged in while searching for books, then an option appears for them to save a book to their account. By clicking on the save option, that book is added to the "Saved Books" page. Users can manage their saved books from this page by deleting that book from their saved books list.
## Technologies
- React.js
- CSS
- Bootstrap
- JavaScript
- Node.js
- npm
- [Express.js](https://expressjs.com/)
- MongoDB
- [Mongoose](https://mongoosejs.com/)
- [@apollo/client](https://www.npmjs.com/package/@apollo/client)
- [apollo-server-express](https://www.npmjs.com/package/apollo-server-express)
- [graphQL](https://graphql.org/)
- [JWT](https://jwt.io/)
- [bcrypt](https://www.npmjs.com/package/bcrypt)
- [Google Books API](https://developers.google.com/books)
- [concurrently](https://www.npmjs.com/package/concurrently)
- [nodemon](https://www.npmjs.com/package/nodemon)## Future Development
In the future, I would like to add the following improvements:
- I would like to add a note function, where users can record their thoughts about the book as they read.
- I would like to add an option where users can click on the book to view purchasing options across multiple platforms.I'm always interested in refactoring code to improve it's functionality. If you would like to suggest your own improvements, you can reach me at the links below.
## Credits
This project was built with the help of the University of Oregon's Coding Boot Camp.
## Licensing
The application is covered under the following license: [MIT](https://opensource.org/licenses/MIT)