Skip to content

JakeSimmens/book-shelf

Repository files navigation


jReads

Track and Discuss Your Books
Visit Site

Table of Contents
  1. About The Project
  2. Contact
  3. Acknowledgements

About The Project

Reading personal growth and fiction books have been a big part of my life. Inspired by goodreads, jReads is for multiple users to track and discuss books they are interested in. Users may add titles by browsing thru books in the current jReads database or by searching Google Book's vast selection of titles. Each book has it's own comment section associated with it.

Areas of focus:

  • Creating an API to interact with any database API
  • User authentication
  • Managing database resources
  • Managing user comments
  • Unit testing
  • RESTful routes

Creating an abstract layer to interact with the database API and the jReads code was the step I was most excited about. I went into it with the mindset of using MongoDB now and being able to swap it out with a SQL database in the future. Building this additional layer enabled me to create a variety of different functions customized to the needs of the application such as modifying user and book data.

Each book in a user's collection is stored in the local database while making it easy to add new titles to the collection thru Google Books. The books and data are initially searched for and found using the Google Books API. Any books a user adds to their own library are saved to the jReads database for easy reference in the future.

Built With

Challenges

Pooling Connections

Many blogs covering MongoDB will teach you how to incorporate Mongo into your project, but they skim over how to optimize the performance. Shortly after finishing the interface for the Mongo API, the opened connections to Mongo went sky high with low user traffic. After a morning of research, I concluded that a connection pool was needed and went forward with the implementation. This change reduced the number of connections and increased the speed of the website.

MondgoDB

Coming from a background with SQL, adjusting to Mongo's query selectors took some practice. The most challenging aspect was figuring out how to access an element in an array that is embedded within a file. Digging thru and reading documentations is a skill that I used frequently on this project.

Contact

Jake Simmens - Website - LinkedIn - [email protected]

Project Link: https://jreads.jakesimmens.com

Acknowledgements

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published