This project is a refactor of a Google Books API search engine. Originally built with a RESTful API, this application has been refactored to use a GraphQL API built with Apollo Server. The application is developed using the MERN stack: MongoDB for the database, Express.js and Node.js for the server, and React for the front end. Users can search for books, save them to their personal list, and manage their saved books. I enjoyed working on this one, I hope you enjoy using it!
- Book Search: Search for books using the Google Books API.
- User Authentication: Sign up and log in to save books.
- Save Books: Save books to your personal list.
- Manage Saved Books: View and remove books from your saved list.
To install this application locally:
- Clone the repository
git clone https://github.com/collinsjosephj/wordWanderer.git
- Navigate into the project directory file
cd wordWanderer
- Install dependencies, both in the server side and the client side of the application, and then navigate back to the root level for deployment.
npm install
cd client
npm install
cd ...
- You will need to create an .env file, at the root or server directory, and add your MONGODB_URI:
In the `.env` file: MONGODB_URI=your_mongodb_uri
- Now you can start the development server:
npm run render-build
npm run develop
- Now that you have set up the application, navigate to
http://localhost:3000in your browser of choice. - Sign in with username, email, and password credentials in order to save books to your personalized list.
- Or, you can just simply browse at your will, enjoy!
This application is deployed live with Render, and uses MongoDB Atlas for its database. Here is the link to view the live version: wordWanderer
Contributions are welcome! If you have suggestions for improvements or new features, please open an issue or submit a pull request. You can also reach out to me via the links provided below. I would absolutely love to collaborate on any and all projects, big and small.
This project is licensed under the MIT License. See the LICENSE file for details.
If you have any questions about the repo, open an issue or contact me directly via email here.
You can find more of my work on GitHub.