Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/williamcrownover/book-search-engine
A refactor of a MERN stack app from a RESTful API to a GraphQL API.
https://github.com/williamcrownover/book-search-engine
apollo-server graphql jwt-authentication mern-stack nodejs
Last synced: about 1 month ago
JSON representation
A refactor of a MERN stack app from a RESTful API to a GraphQL API.
- Host: GitHub
- URL: https://github.com/williamcrownover/book-search-engine
- Owner: WilliamCrownover
- License: mit
- Created: 2021-10-03T22:24:06.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-10-11T08:38:26.000Z (about 3 years ago)
- Last Synced: 2023-07-31T08:50:04.573Z (over 1 year ago)
- Topics: apollo-server, graphql, jwt-authentication, mern-stack, nodejs
- Language: JavaScript
- Homepage: https://book-search-engine-wlc.herokuapp.com/
- Size: 1.16 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)
## Description
The original version of this Google book search engine was built as a MERN stack application using a RESTful API. My goal was to refactor the app to use Apollo Server and a GraphQL API while retaining the original functionality for the user. By carefully dissecting the RESTful version and testing using tools like Insomnia I was able to create mirror GraphQL queries and mutations to replace the API routes. Much of the client side refactor took place in the React components as hooks, useQuery and useMutation. This app also uses JSON Web Tokens for authentication which are passed in through context middleware for queries and mutations. The app itself allows users to create accounts, search Google books api, save books to a dashboard, and remove books from the dashboard.
## Table of Contents
- [User Story](#user-story)
- [Live Site](#live-site)
- [Technologies](#technologies)
- [License](#license)
- [Contact](#contact)## User Story
```
AS AN avid reader
I WANT to search for new books to read
SO THAT I can keep a list of books to purchase
```
## Live Sitehttps://book-search-engine-wlc.herokuapp.com/
## Technologies
- Apollo Server
- Apollo Provider
- GraphQL
- JWT (JSON Web Token)## License
Licensed under the MIT License - https://opensource.org/licenses/MIT## Contact
If you have any questions you can email me at [email protected].
You can also check out my other work on GitHub at [WilliamCrownover](https://github.com/WilliamCrownover)