Reads is a front-end site that allows users to browse NYT Best Sellers and add them to their own Reading list. Users can track their progress through the book and add reviews and ratings. Users can also search the Open Library Database for additional titles to add to their list. The app uses the New York Times API to list the best-sellers in each of the seven NYT book-type featured lists. Selecting a book on the list takes the user to a more detailed page view that gives the user a short summary of the book and book details, such as author, cover, and isbns.
Featured Lists are as follows : (Hardcover-Fiction, Hardcover-Non-fiction. Paperback Trade Fiction, Paperback Non-Fiction, Combined E-Book & Print Fiction, Combined E-Book & Print Non-fiction, Advice, How-To, Misc)
I am an avid reader and love using my local library to support their mission as well as their authors. This site not only allows users to be exposed to trending titles, but also allows them to find books that they can then go and checkout at the OpenLibrary page, hence, supporting the hard work OpenLibrary does for the literary community!
https://readsnreads.netlify.app
- Built with React v17.0
- Visual Studio Code Version 1.60.1
- Browse the NYT Best Sellers Section.
- Gain additional details of each book on select.
- Browse millions of records stored with Open Library.
- Add books to MyReads and update progress, add reviews, and ratings as you finish them!
- Bookmarks allow users to track their progress through their books by submitting their current thoughts and pages read.
Note: This app was created using Visual Studio Code Version 1.60.1. Fork and clone the repo using either SSH or HTTPS in a directory of your choice.
In terminal:
$ git clone [SSH/HTTPS KEY]
This is a react app and will require that relevant dependencies are downloaded. Move into the repo directory (named react-reads)
$ cd ./react-reads
and run npm install to download relevant dependencies:
$ npm install
Once dependencies are installed, open the app in your IDE of choice (this example uses Visual Studio Code terminal command). Then start the app with 'npm start':
$ code .
$ npm start
To view main files, open the src directory. App.js contains the main code for the app and relevant components can be found in the components folder.
NYT API link https://developer.nytimes.com/docs/books-product/1/overview
- Note: API Key is required for usage and user must AUTHORIZE target API (in this case it was the NYT Books API). Go to the link provided above and create an account with the NYT API to gain access to your unique API key. Make sure to authorize your local app in order to gain functionality.
EXAMPLE: Example Call for best-selling hard-cover fiction books for the week of 09/01/2021.
Open Library API Link https://openlibrary.org/developers
- Note: No API key required. Calls are done with formatted https urls that include '.json' and the required parameters.
EXAMPLE: Example call for a specific book using the isbn:
https://openlibrary.org/isbn/9780140328721.json
{
"status": "OK",
"copyright": "Copyright (c) 2021 The New York Times Company. All Rights Reserved.",
"num_results": 15,
"last_modified": "2021-08-25T22:07:44-04:00",
"results": [
{
"list_name": "Hardcover Fiction",
"display_name": "Hardcover Fiction",
"bestsellers_date": "2021-08-21",
"published_date": "2021-09-05",
"rank": 1,
"rank_last_week": 1,
"weeks_on_list": 3,
"asterisk": 0,
"dagger": 0,
"amazon_product_url": "https://www.amazon.com/dp/1982173610?tag=NYTBSREV-20",
"book_details": [
{
"title": "BILLY SUMMERS",
"description": "A killer for hire who only takes out bad guys seeks redemption as he does one final job.",
"contributor": "by Stephen King",
"author": "Stephen King",
"contributor_note": "",
"price": "0.00",
"age_group": "",
"publisher": "Scribner",
"primary_isbn13": "9781982173616",
"primary_isbn10": "1982173610"
}
],
{
"publishers":[
"Puffin"
],
"number_of_pages":96,
"isbn_10":[
"0140328726"
],
"covers":[
8739161
],
"key":"/books/OL7353617M",
"authors":[
{
"key":"/authors/OL34184A"
}
],
"ocaid":"fantasticmrfoxpu00roal",
"contributions":[
"Tony Ross (Illustrator)"
],
"languages":[
{
"key":"/languages/eng"
}
],
"classifications":{
},
"source_records":[
"ia:fantasticmrfox00dahl_834",
"marc:marc_openlibraries_sanfranciscopubliclibrary/sfpl_chq_2018_12_24_run02.mrc:85081404:4525"
],
"title":"Fantastic Mr. Fox",
"identifiers":{
"goodreads":[
"1507552"
],
"librarything":[
"6446"
]
},
"isbn_13":[
"9780140328721"
],
Please provide feedback as I'd love to improve!
- Report a bug
- Submit a fix
- Propose new features
- Fork the repo and create a new branch.
- Any additional API's should be added to the documentation.
- Make sure your code is tested.
- Run num run lint for style unification!
- Issue the pull request.
- Provide a description of the bug.
- How it was produced and steps to reproduce. (Be thorough!)
- Expected behavior and what actually happened.
- Notes: Any errors you received that you think may be useful.